igniteui-angular 11.1.46 → 11.1.47

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.
@@ -205,6 +205,8 @@ export class IgxInputDirective {
205
205
  }
206
206
  /** @hidden @internal */
207
207
  clear() {
208
+ var _a, _b;
209
+ (_b = (_a = this.ngControl) === null || _a === void 0 ? void 0 : _a.control) === null || _b === void 0 ? void 0 : _b.setValue('');
208
210
  this.nativeElement.value = null;
209
211
  this._fileNames = '';
210
212
  }
@@ -437,4 +439,4 @@ IgxInputDirective.propDecorators = {
437
439
  onInput: [{ type: HostListener, args: ['input',] }],
438
440
  change: [{ type: HostListener, args: ['change', ['$event'],] }]
439
441
  };
440
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaWduaXRldWktYW5ndWxhci9zcmMvbGliL2RpcmVjdGl2ZXMvaW5wdXQvaW5wdXQuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFSCxpQkFBaUIsRUFDakIsU0FBUyxFQUNULFVBQVUsRUFDVixXQUFXLEVBQ1gsWUFBWSxFQUNaLE1BQU0sRUFDTixLQUFLLEVBRUwsUUFBUSxFQUNSLElBQUksR0FDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBRUgsZUFBZSxFQUVmLE9BQU8sR0FDVixNQUFNLGdCQUFnQixDQUFDO0FBRXhCLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBRXpFLE1BQU0sMEJBQTBCLEdBQUc7SUFDL0IsVUFBVTtJQUNWLFNBQVM7SUFDVCxXQUFXO0lBQ1gsV0FBVztJQUNYLEtBQUs7SUFDTCxLQUFLO0lBQ0wsTUFBTTtDQUNULENBQUM7QUFFRixNQUFNLENBQU4sSUFBWSxhQUlYO0FBSkQsV0FBWSxhQUFhO0lBQ3JCLHVEQUFPLENBQUE7SUFDUCxtREFBSyxDQUFBO0lBQ0wsdURBQU8sQ0FBQTtBQUNYLENBQUMsRUFKVyxhQUFhLEtBQWIsYUFBYSxRQUl4QjtBQUVEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQW9CRztBQUtILE1BQU0sT0FBTyxpQkFBaUI7SUF1QzFCLFlBQ1csVUFBNkIsRUFDVyxPQUFnQixFQUlyRCxXQUE0QixFQUM1QixPQUFxQyxFQUNyQyxHQUFzQjtRQVB6QixlQUFVLEdBQVYsVUFBVSxDQUFtQjtRQUNXLFlBQU8sR0FBUCxPQUFPLENBQVM7UUFJckQsZ0JBQVcsR0FBWCxXQUFXLENBQWlCO1FBQzVCLFlBQU8sR0FBUCxPQUFPLENBQThCO1FBQ3JDLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBOUNwQzs7Ozs7Ozs7Ozs7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SUFFRDs7Ozs7O09BTUc7SUFDSyxtQkFBbUI7UUFDdkIsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLGNBQWMsRUFBRSxFQUFFO1lBQ3pDLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxhQUFhLEVBQUUsQ0FBQyxDQUFDO2dCQUM5QyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUM7Z0JBQzVELGFBQWEsQ0FBQyxPQUFPLENBQUM7U0FDN0I7SUFDTCxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxJQUFXLElBQUk7UUFDWCxPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDO0lBQ25DLENBQUM7OztZQXJhSixTQUFTLFNBQUM7Z0JBQ1AsUUFBUSxFQUFFLFlBQVk7Z0JBQ3RCLFFBQVEsRUFBRSxVQUFVO2FBQ3ZCOzs7WUExQ1EsaUJBQWlCO1lBSHRCLE9BQU8sdUJBdUZGLFFBQVEsWUFBSSxJQUFJLFlBQUksTUFBTSxTQUFDLE9BQU87WUF6RnZDLGVBQWUsdUJBMEZWLFFBQVEsWUFDUixJQUFJLFlBQ0osTUFBTSxTQUFDLGVBQWU7WUF2RzNCLFVBQVU7WUFGVixpQkFBaUI7OztzQkE0RWhCLFdBQVcsU0FBQyw4QkFBOEI7eUJBZ0IxQyxXQUFXLFNBQUMsaUNBQWlDO29CQWdDN0MsS0FBSzt1QkE0QkosS0FBSyxZQUNMLFdBQVcsU0FBQyxVQUFVO3VCQWdDdkIsS0FBSztzQkFvQkwsWUFBWSxTQUFDLE9BQU87cUJBVXBCLFlBQVksU0FBQyxNQUFNO3NCQU1uQixZQUFZLFNBQUMsT0FBTztxQkFLcEIsWUFBWSxTQUFDLFFBQVEsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQWZ0ZXJWaWV3SW5pdCxcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBEaXJlY3RpdmUsXG4gICAgRWxlbWVudFJlZixcbiAgICBIb3N0QmluZGluZyxcbiAgICBIb3N0TGlzdGVuZXIsXG4gICAgSW5qZWN0LFxuICAgIElucHV0LFxuICAgIE9uRGVzdHJveSxcbiAgICBPcHRpb25hbCxcbiAgICBTZWxmLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gICAgQWJzdHJhY3RDb250cm9sLFxuICAgIEZvcm1Db250cm9sTmFtZSxcbiAgICBOZ0NvbnRyb2wsXG4gICAgTmdNb2RlbCxcbn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBJZ3hJbnB1dEdyb3VwQmFzZSB9IGZyb20gJy4uLy4uL2lucHV0LWdyb3VwL2lucHV0LWdyb3VwLmNvbW1vbic7XG5cbmNvbnN0IG5hdGl2ZVZhbGlkYXRpb25BdHRyaWJ1dGVzID0gW1xuICAgICdyZXF1aXJlZCcsXG4gICAgJ3BhdHRlcm4nLFxuICAgICdtaW5sZW5ndGgnLFxuICAgICdtYXhsZW5ndGgnLFxuICAgICdtaW4nLFxuICAgICdtYXgnLFxuICAgICdzdGVwJyxcbl07XG5cbmV4cG9ydCBlbnVtIElneElucHV0U3RhdGUge1xuICAgIElOSVRJQUwsXG4gICAgVkFMSUQsXG4gICAgSU5WQUxJRCxcbn1cblxuLyoqXG4gKiBUaGUgYGlneElucHV0YCBkaXJlY3RpdmUgY3JlYXRlcyBzaW5nbGUtIG9yIG11bHRpbGluZSB0ZXh0IGVsZW1lbnRzLCBjb3ZlcmluZyBjb21tb24gc2NlbmFyaW9zIHdoZW4gZGVhbGluZyB3aXRoIGZvcm0gaW5wdXRzLlxuICpcbiAqIEBpZ3hNb2R1bGUgSWd4SW5wdXRHcm91cE1vZHVsZVxuICpcbiAqIEBpZ3hQYXJlbnQgRGF0YSBFbnRyeSAmIERpc3BsYXlcbiAqXG4gKiBAaWd4VGhlbWUgaWd4LWlucHV0LWdyb3VwLXRoZW1lXG4gKlxuICogQGlneEtleXdvcmRzIGlucHV0LCBpbnB1dCBncm91cCwgZm9ybSwgZmllbGQsIHZhbGlkYXRpb25cbiAqXG4gKiBAaWd4R3JvdXAgcHJlc2VudGF0aW9uXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYGh0bWxcbiAqIDxpbnB1dC1ncm91cD5cbiAqICA8bGFiZWwgZm9yPVwiYWRkcmVzc1wiPkFkZHJlc3M8L2xhYmVsPlxuICogIDxpbnB1dCBpZ3hJbnB1dCBuYW1lPVwiYWRkcmVzc1wiIHR5cGU9XCJ0ZXh0XCIgWyhuZ01vZGVsKV09XCJjdXN0b21lci5hZGRyZXNzXCI+XG4gKiA8L2lucHV0LWdyb3VwPlxuICogYGBgXG4gKi9cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnW2lneElucHV0XScsXG4gICAgZXhwb3J0QXM6ICdpZ3hJbnB1dCcsXG59KVxuZXhwb3J0IGNsYXNzIElneElucHV0RGlyZWN0aXZlIGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcbiAgICAvKipcbiAgICAgKiBTZXRzL2dldHMgd2hldGhlciB0aGUgYFwiaWd4LWlucHV0LWdyb3VwX19pbnB1dFwiYCBjbGFzcyBpcyBhZGRlZCB0byB0aGUgaG9zdCBlbGVtZW50LlxuICAgICAqIERlZmF1bHQgdmFsdWUgaXMgYGZhbHNlYC5cbiAgICAgKlxuICAgICAqIEBleGFtcGxlXG4gICAgICogYGBgdHlwZXNjcmlwdFxuICAgICAqIHRoaXMuaWd4SW5wdXQuaXNJbnB1dCA9IHRydWU7XG4gICAgICogYGBgXG4gICAgICpcbiAgICAgKiBAZXhhbXBsZVxuICAgICAqIGBgYHR5cGVzY3JpcHRcbiAgICAgKiBsZXQgaXNDTGFzc0FkZGVkID0gdGhpcy5pZ3hJbnB1dC5pc0lucHV0O1xuICAgICAqIGBgYFxuICAgICAqL1xuICAgIEBIb3N0QmluZGluZygnY2xhc3MuaWd4LWlucHV0LWdyb3VwX19pbnB1dCcpXG4gICAgcHVibGljIGlzSW5wdXQgPSBmYWxzZTtcbiAgICAvKipcbiAgICAgKiBTZXRzL2dldHMgd2hldGhlciB0aGUgYFwiY2xhc3MuaWd4LWlucHV0LWdyb3VwX190ZXh0YXJlYVwiYCBjbGFzcyBpcyBhZGRlZCB0byB0aGUgaG9zdCBlbGVtZW50LlxuICAgICAqIERlZmF1bHQgdmFsdWUgaXMgYGZhbHNlYC5cbiAgICAgKlxuICAgICAqIEBleGFtcGxlXG4gICAgICogYGBgdHlwZXNjcmlwdFxuICAgICAqIHRoaXMuaWd4SW5wdXQuaXNUZXh0QXJlYSA9IHRydWU7XG4gICAgICogYGBgXG4gICAgICpcbiAgICAgKiBAZXhhbXBsZVxuICAgICAqIGBgYHR5cGVzY3JpcHRcbiAgICAgKiBsZXQgaXNDTGFzc0FkZGVkID0gdGhpcy5pZ3hJbnB1dC5pc1RleHRBcmVhO1xuICAgICAqIGBgYFxuICAgICAqL1xuICAgIEBIb3N0QmluZGluZygnY2xhc3MuaWd4LWlucHV0LWdyb3VwX190ZXh0YXJlYScpXG4gICAgcHVibGljIGlzVGV4dEFyZWEgPSBmYWxzZTtcblxuICAgIHByaXZhdGUgX2Rpc2FibGVkID0gZmFsc2U7XG4gICAgcHJpdmF0ZSBfdmFsaWQgPSBJZ3hJbnB1dFN0YXRlLklOSVRJQUw7XG4gICAgcHJpdmF0ZSBfc3RhdHVzQ2hhbmdlcyQ6IFN1YnNjcmlwdGlvbjtcbiAgICBwcml2YXRlIF9maWxlTmFtZXM6IHN0cmluZztcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwdWJsaWMgaW5wdXRHcm91cDogSWd4SW5wdXRHcm91cEJhc2UsXG4gICAgICAgIEBPcHRpb25hbCgpIEBTZWxmKCkgQEluamVjdChOZ01vZGVsKSBwcm90ZWN0ZWQgbmdNb2RlbDogTmdNb2RlbCxcbiAgICAgICAgQE9wdGlvbmFsKClcbiAgICAgICAgQFNlbGYoKVxuICAgICAgICBASW5qZWN0KEZvcm1Db250cm9sTmFtZSlcbiAgICAgICAgcHJvdGVjdGVkIGZvcm1Db250cm9sOiBGb3JtQ29udHJvbE5hbWUsXG4gICAgICAgIHByb3RlY3RlZCBlbGVtZW50OiBFbGVtZW50UmVmPEhUTUxJbnB1dEVsZW1lbnQ+LFxuICAgICAgICBwcm90ZWN0ZWQgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZlxuICAgICkge31cblxuICAgIHByaXZhdGUgZ2V0IG5nQ29udHJvbCgpOiBOZ0NvbnRyb2wge1xuICAgICAgICByZXR1cm4gdGhpcy5uZ01vZGVsID8gdGhpcy5uZ01vZGVsIDogdGhpcy5mb3JtQ29udHJvbDtcbiAgICB9XG4gICAgLyoqXG4gICAgICogU2V0cyB0aGUgYHZhbHVlYCBwcm9wZXJ0eS5cbiAgICAgKlxuICAgICAqIEBleGFtcGxlXG4gICAgICogYGBgaHRtbFxuICAgICAqIDxpbnB1dC1ncm91cD5cbiAgICAgKiAgPGlucHV0IGlneElucHV0ICNpZ3hJbnB1dCBbdmFsdWVdPVwiJ0lneElucHV0IFZhbHVlJ1wiPlxuICAgICAqIDwvaW5wdXQtZ3JvdXA+XG4gICAgICogYGBgXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgc2V0IHZhbHVlKHZhbHVlOiBhbnkpIHtcbiAgICAgICAgdGhpcy5uYXRpdmVFbGVtZW50LnZhbHVlID0gdmFsdWUgPz8gJyc7XG4gICAgICAgIHRoaXMudXBkYXRlVmFsaWRpdHlTdGF0ZSgpO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBHZXRzIHRoZSBgdmFsdWVgIHByb3BlcnR5LlxuICAgICAqXG4gICAgICogQGV4YW1wbGVcbiAgICAgKiBgYGB0eXBlc2NyaXB0XG4gICAgICogQFZpZXdDaGlsZCgnaWd4SW5wdXQnLCB7cmVhZDogSWd4SW5wdXREaXJlY3RpdmV9KVxuICAgICAqICBwdWJsaWMgaWd4SW5wdXQ6IElneElucHV0RGlyZWN0aXZlO1xuICAgICAqIGxldCBpbnB1dFZhbHVlID0gdGhpcy5pZ3hJbnB1dC52YWx1ZTtcbiAgICAgKiBgYGBcbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0IHZhbHVlKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5uYXRpdmVFbGVtZW50LnZhbHVlO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBTZXRzIHRoZSBgZGlzYWJsZWRgIHByb3BlcnR5LlxuICAgICAqXG4gICAgICogQGV4YW1wbGVcbiAgICAgKiBgYGBodG1sXG4gICAgICogPGlucHV0LWdyb3VwPlxuICAgICAqICA8aW5wdXQgaWd4SW5wdXQgI2lneElucHV0IFtkaXNhYmxlZF09XCJ0cnVlXCI+XG4gICAgICogPC9pbnB1dC1ncm91cD5cbiAgICAgKiBgYGBcbiAgICAgKi9cbiAgICAgQElucHV0KClcbiAgICAgQEhvc3RCaW5kaW5nKCdkaXNhYmxlZCcpXG4gICAgIHB1YmxpYyBzZXQgZGlzYWJsZWQodmFsdWU6IGJvb2xlYW4pIHtcbiAgICAgICAgIHRoaXMuX2Rpc2FibGVkID0gdGhpcy5pbnB1dEdyb3VwLmRpc2FibGVkID0gISEoKHZhbHVlIGFzIGFueSA9PT0gJycpIHx8IHZhbHVlKTtcbiAgICAgICAgIGlmICh0aGlzLmZvY3VzZWQgJiYgdGhpcy5fZGlzYWJsZWQpIHtcbiAgICAgICAgICAgICAvLyBCcm93c2VyIGZvY3VzIG1heSBub3QgZmlyZSBpbiBnb29kIHRpbWUgYW5kIG1lc3Mgd2l0aCBjaGFuZ2UgZGV0ZWN0aW9uLCBhZGp1c3QgaGVyZSBpbiBhZHZhbmNlOlxuICAgICAgICAgICAgIHRoaXMuaW5wdXRHcm91cC5pc0ZvY3VzZWQgPSBmYWxzZTtcbiAgICAgICAgIH1cbiAgICAgfVxuICAgIC8qKlxuICAgICAqIEdldHMgdGhlIGBkaXNhYmxlZGAgcHJvcGVydHlcbiAgICAgKlxuICAgICAqIEBleGFtcGxlXG4gICAgICogYGBgdHlwZXNjcmlwdFxuICAgICAqIEBWaWV3Q2hpbGQoJ2lneElucHV0Jywge3JlYWQ6IElneElucHV0RGlyZWN0aXZlfSlcbiAgICAgKiAgcHVibGljIGlneElucHV0OiBJZ3hJbnB1dERpcmVjdGl2ZTtcbiAgICAgKiBsZXQgaXNEaXNhYmxlZCA9IHRoaXMuaWd4SW5wdXQuZGlzYWJsZWQ7XG4gICAgICogYGBgXG4gICAgICovXG4gICAgcHVibGljIGdldCBkaXNhYmxlZCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2Rpc2FibGVkO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNldHMgdGhlIGByZXF1aXJlZGAgcHJvcGVydHkuXG4gICAgICpcbiAgICAgKiBAZXhhbXBsZVxuICAgICAqIGBgYGh0bWxcbiAgICAgKiA8aW5wdXQtZ3JvdXA+XG4gICAgICogIDxpbnB1dCBpZ3hJbnB1dCAjaWd4SW5wdXQgW3JlcXVpcmVkXT1cInRydWVcIj5cbiAgICAgKiA8L2lucHV0LWdyb3VwPlxuICAgICAqIGBgYFxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHNldCByZXF1aXJlZCh2YWx1ZTogYm9vbGVhbikge1xuICAgICAgICB0aGlzLm5hdGl2ZUVsZW1lbnQucmVxdWlyZWQgPSB0aGlzLmlucHV0R3JvdXAuaXNSZXF1aXJlZCA9IHZhbHVlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldHMgd2hldGhlciB0aGUgaWd4SW5wdXQgaXMgcmVxdWlyZWQuXG4gICAgICpcbiAgICAgKiBAZXhhbXBsZVxuICAgICAqIGBgYHR5cGVzY3JpcHRcbiAgICAgKiBsZXQgaXNSZXF1aXJlZCA9IHRoaXMuaWd4SW5wdXQucmVxdWlyZWQ7XG4gICAgICogYGBgXG4gICAgICovXG4gICAgcHVibGljIGdldCByZXF1aXJlZCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubmF0aXZlRWxlbWVudC5oYXNBdHRyaWJ1dGUoJ3JlcXVpcmVkJyk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBAaW50ZXJuYWxcbiAgICAgKi9cbiAgICBASG9zdExpc3RlbmVyKCdmb2N1cycpXG4gICAgcHVibGljIG9uRm9jdXMoKSB7XG4gICAgICAgIHRoaXMuaW5wdXRHcm91cC5pc0ZvY3VzZWQgPSB0cnVlO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBAcGFyYW0gZXZlbnQgVGhlIGV2ZW50IHRvIGludm9rZSB0aGUgaGFuZGxlclxuICAgICAqXG4gICAgICogQGhpZGRlblxuICAgICAqIEBpbnRlcm5hbFxuICAgICAqL1xuICAgIEBIb3N0TGlzdGVuZXIoJ2JsdXInKVxuICAgIHB1YmxpYyBvbkJsdXIoKSB7XG4gICAgICAgIHRoaXMuaW5wdXRHcm91cC5pc0ZvY3VzZWQgPSBmYWxzZTtcbiAgICAgICAgdGhpcy51cGRhdGVWYWxpZGl0eVN0YXRlKCk7XG4gICAgfVxuICAgIC8qKiBAaGlkZGVuIEBpbnRlcm5hbCAqL1xuICAgIEBIb3N0TGlzdGVuZXIoJ2lucHV0JylcbiAgICBwdWJsaWMgb25JbnB1dCgpIHtcbiAgICAgICAgdGhpcy5jaGVja05hdGl2ZVZhbGlkaXR5KCk7XG4gICAgfVxuICAgIC8qKiBAaGlkZGVuIEBpbnRlcm5hbCAqL1xuICAgIEBIb3N0TGlzdGVuZXIoJ2NoYW5nZScsIFsnJGV2ZW50J10pXG4gICAgcHVibGljIGNoYW5nZShldmVudDogRXZlbnQpIHtcbiAgICAgICAgaWYgKHRoaXMudHlwZSA9PT0gJ2ZpbGUnKSB7XG4gICAgICAgICAgICBjb25zdCBmaWxlTGlzdDogRmlsZUxpc3QgfCBudWxsID0gKGV2ZW50LnRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50KVxuICAgICAgICAgICAgICAgIC5maWxlcztcbiAgICAgICAgICAgIGNvbnN0IGZpbGVBcnJheTogRmlsZVtdID0gW107XG5cbiAgICAgICAgICAgIGlmIChmaWxlTGlzdCkge1xuICAgICAgICAgICAgICAgIGZvciAoY29uc3QgZmlsZSBvZiBBcnJheS5mcm9tKGZpbGVMaXN0KSkge1xuICAgICAgICAgICAgICAgICAgICBmaWxlQXJyYXkucHVzaChmaWxlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHRoaXMuX2ZpbGVOYW1lcyA9IChmaWxlQXJyYXkgfHwgW10pLm1hcCgoZjogRmlsZSkgPT4gZi5uYW1lKS5qb2luKCcsICcpO1xuXG4gICAgICAgICAgICBpZiAodGhpcy5yZXF1aXJlZCAmJiBmaWxlTGlzdD8ubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgIHRoaXMuX3ZhbGlkID0gSWd4SW5wdXRTdGF0ZS5JTklUSUFMO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gQGludGVybmFsICovXG4gICAgcHVibGljIGdldCBmaWxlTmFtZXMoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9maWxlTmFtZXM7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gQGludGVybmFsICovXG4gICAgcHVibGljIGNsZWFyKCkge1xuICAgICAgICB0aGlzLm5hdGl2ZUVsZW1lbnQudmFsdWUgPSBudWxsO1xuICAgICAgICB0aGlzLl9maWxlTmFtZXMgPSAnJztcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiBAaW50ZXJuYWwgKi9cbiAgICBwdWJsaWMgbmdBZnRlclZpZXdJbml0KCkge1xuICAgICAgICB0aGlzLmlucHV0R3JvdXAuaGFzUGxhY2Vob2xkZXIgPSB0aGlzLm5hdGl2ZUVsZW1lbnQuaGFzQXR0cmlidXRlKFxuICAgICAgICAgICAgJ3BsYWNlaG9sZGVyJ1xuICAgICAgICApO1xuXG4gICAgICAgIGlmICh0aGlzLm5nQ29udHJvbCAmJiB0aGlzLm5nQ29udHJvbC5kaXNhYmxlZCAhPT0gbnVsbCkge1xuICAgICAgICAgICAgdGhpcy5kaXNhYmxlZCA9IHRoaXMubmdDb250cm9sLmRpc2FibGVkO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuaW5wdXRHcm91cC5kaXNhYmxlZCA9XG4gICAgICAgICAgICB0aGlzLmlucHV0R3JvdXAuZGlzYWJsZWQgfHxcbiAgICAgICAgICAgIHRoaXMubmF0aXZlRWxlbWVudC5oYXNBdHRyaWJ1dGUoJ2Rpc2FibGVkJyk7XG4gICAgICAgIHRoaXMuaW5wdXRHcm91cC5pc1JlcXVpcmVkID0gdGhpcy5uYXRpdmVFbGVtZW50Lmhhc0F0dHJpYnV0ZShcbiAgICAgICAgICAgICdyZXF1aXJlZCdcbiAgICAgICAgKTtcblxuICAgICAgICAvLyBNYWtlIHN1cmUgd2UgZG8gbm90IGludmFsaWRhdGUgdGhlIGlucHV0IG9uIGluaXRcbiAgICAgICAgaWYgKCF0aGlzLm5nQ29udHJvbCkge1xuICAgICAgICAgICAgdGhpcy5fdmFsaWQgPSBJZ3hJbnB1dFN0YXRlLklOSVRJQUw7XG4gICAgICAgIH1cbiAgICAgICAgLy8gQWxzbyBjaGVjayB0aGUgY29udHJvbCdzIHZhbGlkYXRvcnMgZm9yIHJlcXVpcmVkXG4gICAgICAgIGlmIChcbiAgICAgICAgICAgICF0aGlzLmlucHV0R3JvdXAuaXNSZXF1aXJlZCAmJlxuICAgICAgICAgICAgdGhpcy5uZ0NvbnRyb2wgJiZcbiAgICAgICAgICAgIHRoaXMubmdDb250cm9sLmNvbnRyb2wudmFsaWRhdG9yXG4gICAgICAgICkge1xuICAgICAgICAgICAgY29uc3QgdmFsaWRhdGlvbiA9IHRoaXMubmdDb250cm9sLmNvbnRyb2wudmFsaWRhdG9yKFxuICAgICAgICAgICAgICAgIHt9IGFzIEFic3RyYWN0Q29udHJvbFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIHRoaXMuaW5wdXRHcm91cC5pc1JlcXVpcmVkID0gdmFsaWRhdGlvbiAmJiB2YWxpZGF0aW9uLnJlcXVpcmVkO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgZWxUYWcgPSB0aGlzLm5hdGl2ZUVsZW1lbnQudGFnTmFtZS50b0xvd2VyQ2FzZSgpO1xuICAgICAgICBpZiAoZWxUYWcgPT09ICd0ZXh0YXJlYScpIHtcbiAgICAgICAgICAgIHRoaXMuaXNUZXh0QXJlYSA9IHRydWU7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmlzSW5wdXQgPSB0cnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMubmdDb250cm9sKSB7XG4gICAgICAgICAgICB0aGlzLl9zdGF0dXNDaGFuZ2VzJCA9IHRoaXMubmdDb250cm9sLnN0YXR1c0NoYW5nZXMuc3Vic2NyaWJlKFxuICAgICAgICAgICAgICAgIHRoaXMub25TdGF0dXNDaGFuZ2VkLmJpbmQodGhpcylcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxuICAgIC8qKiBAaGlkZGVuIEBpbnRlcm5hbCAqL1xuICAgIHB1YmxpYyBuZ09uRGVzdHJveSgpIHtcbiAgICAgICAgaWYgKHRoaXMuX3N0YXR1c0NoYW5nZXMkKSB7XG4gICAgICAgICAgICB0aGlzLl9zdGF0dXNDaGFuZ2VzJC51bnN1YnNjcmliZSgpO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8qKlxuICAgICAqIFNldHMgYSBmb2N1cyBvbiB0aGUgaWd4SW5wdXQuXG4gICAgICpcbiAgICAgKiBAZXhhbXBsZVxuICAgICAqIGBgYHR5cGVzY3JpcHRcbiAgICAgKiB0aGlzLmlneElucHV0LmZvY3VzKCk7XG4gICAgICogYGBgXG4gICAgICovXG4gICAgcHVibGljIGZvY3VzKCkge1xuICAgICAgICB0aGlzLm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogR2V0cyB0aGUgYG5hdGl2ZUVsZW1lbnRgIG9mIHRoZSBpZ3hJbnB1dC5cbiAgICAgKlxuICAgICAqIEBleGFtcGxlXG4gICAgICogYGBgdHlwZXNjcmlwdFxuICAgICAqIGxldCBpZ3hJbnB1dE5hdGl2ZUVsZW1lbnQgPSB0aGlzLmlneElucHV0Lm5hdGl2ZUVsZW1lbnQ7XG4gICAgICogYGBgXG4gICAgICovXG4gICAgcHVibGljIGdldCBuYXRpdmVFbGVtZW50KCkge1xuICAgICAgICByZXR1cm4gdGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQ7XG4gICAgfVxuICAgIC8qKiBAaGlkZGVuIEBpbnRlcm5hbCAqL1xuICAgIHByb3RlY3RlZCBvblN0YXR1c0NoYW5nZWQoKSB7XG4gICAgICAgIC8vIEVuYWJsZS9EaXNhYmxlIGNvbnRyb2wgYmFzZWQgb24gbmdDb250cm9sICM3MDg2XG4gICAgICAgIGlmICh0aGlzLmRpc2FibGVkICE9PSB0aGlzLm5nQ29udHJvbC5kaXNhYmxlZCkge1xuICAgICAgICAgICAgdGhpcy5kaXNhYmxlZCA9IHRoaXMubmdDb250cm9sLmRpc2FibGVkO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMudXBkYXRlVmFsaWRpdHlTdGF0ZSgpO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICogQGludGVybmFsXG4gICAgICovXG4gICAgcHJvdGVjdGVkIHVwZGF0ZVZhbGlkaXR5U3RhdGUoKSB7XG4gICAgICAgIGlmICh0aGlzLm5nQ29udHJvbCkge1xuICAgICAgICAgICAgaWYgKHRoaXMubmdDb250cm9sLmNvbnRyb2wudmFsaWRhdG9yIHx8IHRoaXMubmdDb250cm9sLmNvbnRyb2wuYXN5bmNWYWxpZGF0b3IpIHtcbiAgICAgICAgICAgICAgICAvLyBSdW4gdGhlIHZhbGlkYXRpb24gd2l0aCBlbXB0eSBvYmplY3QgdG8gY2hlY2sgaWYgcmVxdWlyZWQgaXMgZW5hYmxlZC5cbiAgICAgICAgICAgICAgICBjb25zdCBlcnJvciA9IHRoaXMubmdDb250cm9sLmNvbnRyb2wudmFsaWRhdG9yKHt9IGFzIEFic3RyYWN0Q29udHJvbCk7XG4gICAgICAgICAgICAgICAgdGhpcy5pbnB1dEdyb3VwLmlzUmVxdWlyZWQgPSBlcnJvciAmJiBlcnJvci5yZXF1aXJlZDtcbiAgICAgICAgICAgICAgICBpZiAoIXRoaXMuZGlzYWJsZWQgJiYgKHRoaXMubmdDb250cm9sLmNvbnRyb2wudG91Y2hlZCB8fCB0aGlzLm5nQ29udHJvbC5jb250cm9sLmRpcnR5KSkge1xuICAgICAgICAgICAgICAgICAgICAvLyB0aGUgY29udHJvbCBpcyBub3QgZGlzYWJsZWQgYW5kIGlzIHRvdWNoZWQgb3IgZGlydHlcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fdmFsaWQgPSB0aGlzLm5nQ29udHJvbC5pbnZhbGlkID9cbiAgICAgICAgICAgICAgICAgICAgICAgIElneElucHV0U3RhdGUuSU5WQUxJRCA6IHRoaXMuZm9jdXNlZCA/IElneElucHV0U3RhdGUuVkFMSUQgOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIElneElucHV0U3RhdGUuSU5JVElBTDtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAvLyAgaWYgY29udHJvbCBpcyB1bnRvdWNoZWQsIHByaXN0aW5lLCBvciBkaXNhYmxlZCBpdHMgc3RhdGUgaXMgaW5pdGlhbC4gVGhpcyBpcyB3aGVuIHVzZXIgZGlkIG5vdCBpbnRlcmFjdFxuICAgICAgICAgICAgICAgICAgICAvLyAgd2l0aCB0aGUgaW5wdXQgb3Igd2hlbiBmb3JtL2NvbnRyb2wgaXMgcmVzZXRcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fdmFsaWQgPSBJZ3hJbnB1dFN0YXRlLklOSVRJQUw7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAvLyBJZiB2YWxpZGF0b3IgaXMgZHluYW1pY2FsbHkgY2xlYXJlZCwgcmVzZXQgbGFiZWwncyByZXF1aXJlZCBjbGFzcyhhc3RlcmlzaykgYW5kIElneElucHV0U3RhdGUgIzEwMDEwXG4gICAgICAgICAgICAgICAgdGhpcy5fdmFsaWQgPSBJZ3hJbnB1dFN0YXRlLklOSVRJQUw7XG4gICAgICAgICAgICAgICAgdGhpcy5pbnB1dEdyb3VwLmlzUmVxdWlyZWQgPSBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuY2hlY2tOYXRpdmVWYWxpZGl0eSgpO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEdldHMgd2hldGhlciB0aGUgaWd4SW5wdXQgaGFzIGEgcGxhY2Vob2xkZXIuXG4gICAgICpcbiAgICAgKiBAZXhhbXBsZVxuICAgICAqIGBgYHR5cGVzY3JpcHRcbiAgICAgKiBsZXQgaGFzUGxhY2Vob2xkZXIgPSB0aGlzLmlneElucHV0Lmhhc1BsYWNlaG9sZGVyO1xuICAgICAqIGBgYFxuICAgICAqL1xuICAgIHB1YmxpYyBnZXQgaGFzUGxhY2Vob2xkZXIoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLm5hdGl2ZUVsZW1lbnQuaGFzQXR0cmlidXRlKCdwbGFjZWhvbGRlcicpO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBHZXRzIHRoZSBwbGFjZWhvbGRlciBlbGVtZW50IG9mIHRoZSBpZ3hJbnB1dC5cbiAgICAgKlxuICAgICAqIEBleGFtcGxlXG4gICAgICogYGBgdHlwZXNjcmlwdFxuICAgICAqIGxldCBpZ3hJbnB1dFBsYWNlaG9sZGVyID0gdGhpcy5pZ3hJbnB1dC5wbGFjZWhvbGRlcjtcbiAgICAgKiBgYGBcbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0IHBsYWNlaG9sZGVyKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5uYXRpdmVFbGVtZW50LnBsYWNlaG9sZGVyO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEByZXR1cm5zIEFuIGluZGljYXRvciBvZiB3aGV0aGVyIHRoZSBpbnB1dCBoYXMgdmFsaWRhdG9yIGF0dHJpYnV0ZXMgb3Igbm90XG4gICAgICpcbiAgICAgKiBAaGlkZGVuXG4gICAgICogQGludGVybmFsXG4gICAgICovXG4gICAgcHJpdmF0ZSBfaGFzVmFsaWRhdG9ycygpOiBib29sZWFuIHtcbiAgICAgICAgZm9yIChjb25zdCBuYXRpdmVWYWxpZGF0aW9uQXR0cmlidXRlIG9mIG5hdGl2ZVZhbGlkYXRpb25BdHRyaWJ1dGVzKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5uYXRpdmVFbGVtZW50Lmhhc0F0dHJpYnV0ZShuYXRpdmVWYWxpZGF0aW9uQXR0cmlidXRlKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBHZXRzIHdoZXRoZXIgdGhlIGlneElucHV0IGlzIGZvY3VzZWQuXG4gICAgICpcbiAgICAgKiBAZXhhbXBsZVxuICAgICAqIGBgYHR5cGVzY3JpcHRcbiAgICAgKiBsZXQgaXNGb2N1c2VkID0gdGhpcy5pZ3hJbnB1dC5mb2N1c2VkO1xuICAgICAqIGBgYFxuICAgICAqL1xuICAgIHB1YmxpYyBnZXQgZm9jdXNlZCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaW5wdXRHcm91cC5pc0ZvY3VzZWQ7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEdldHMgdGhlIHN0YXRlIG9mIHRoZSBpZ3hJbnB1dC5cbiAgICAgKlxuICAgICAqIEBleGFtcGxlXG4gICAgICogYGBgdHlwZXNjcmlwdFxuICAgICAqIGxldCBpZ3hJbnB1dFN0YXRlID0gdGhpcy5pZ3hJbnB1dC52YWxpZDtcbiAgICAgKiBgYGBcbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0IHZhbGlkKCk6IElneElucHV0U3RhdGUge1xuICAgICAgICByZXR1cm4gdGhpcy5fdmFsaWQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2V0cyB0aGUgc3RhdGUgb2YgdGhlIGlneElucHV0LlxuICAgICAqXG4gICAgICogQGV4YW1wbGVcbiAgICAgKiBgYGB0eXBlc2NyaXB0XG4gICAgICogdGhpcy5pZ3hJbnB1dC52YWxpZCA9IElneElucHV0U3RhdGUuSU5WQUxJRDtcbiAgICAgKiBgYGBcbiAgICAgKi9cbiAgICBwdWJsaWMgc2V0IHZhbGlkKHZhbHVlOiBJZ3hJbnB1dFN0YXRlKSB7XG4gICAgICAgIHRoaXMuX3ZhbGlkID0gdmFsdWU7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2V0cyB3aGV0aGVyIHRoZSBpZ3hJbnB1dCBpcyB2YWxpZC5cbiAgICAgKlxuICAgICAqIEBleGFtcGxlXG4gICAgICogYGBgdHlwZXNjcmlwdFxuICAgICAqIGxldCB2YWxpZCA9IHRoaXMuaWd4SW5wdXQuaXNWYWxpZDtcbiAgICAgKiBgYGBcbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0IGlzVmFsaWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLnZhbGlkICE9PSBJZ3hJbnB1dFN0YXRlLklOVkFMSUQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQSBmdW5jdGlvbiB0byBhc3NpZ24gYSBuYXRpdmUgdmFsaWRpdHkgcHJvcGVydHkgb2YgYW4gaW5wdXQuXG4gICAgICogVGhpcyBzaG91bGQgYmUgdXNlZCB3aGVuIHRoZXJlJ3Mgbm8gbmdDb250cm9sXG4gICAgICpcbiAgICAgKiBAaGlkZGVuXG4gICAgICogQGludGVybmFsXG4gICAgICovXG4gICAgcHJpdmF0ZSBjaGVja05hdGl2ZVZhbGlkaXR5KCkge1xuICAgICAgICBpZiAoIXRoaXMuZGlzYWJsZWQgJiYgdGhpcy5faGFzVmFsaWRhdG9ycygpKSB7XG4gICAgICAgICAgICB0aGlzLl92YWxpZCA9IHRoaXMubmF0aXZlRWxlbWVudC5jaGVja1ZhbGlkaXR5KCkgP1xuICAgICAgICAgICAgICAgIHRoaXMuZm9jdXNlZCA/IElneElucHV0U3RhdGUuVkFMSUQgOiBJZ3hJbnB1dFN0YXRlLklOSVRJQUwgOlxuICAgICAgICAgICAgICAgIElneElucHV0U3RhdGUuSU5WQUxJRDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJldHVybnMgdGhlIGlucHV0IHR5cGUuXG4gICAgICpcbiAgICAgKiBAaGlkZGVuXG4gICAgICogQGludGVybmFsXG4gICAgICovXG4gICAgcHVibGljIGdldCB0eXBlKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5uYXRpdmVFbGVtZW50LnR5cGU7XG4gICAgfVxufVxuIl19
442
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaWduaXRldWktYW5ndWxhci9zcmMvbGliL2RpcmVjdGl2ZXMvaW5wdXQvaW5wdXQuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFSCxpQkFBaUIsRUFDakIsU0FBUyxFQUNULFVBQVUsRUFDVixXQUFXLEVBQ1gsWUFBWSxFQUNaLE1BQU0sRUFDTixLQUFLLEVBRUwsUUFBUSxFQUNSLElBQUksR0FDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBRUgsZUFBZSxFQUVmLE9BQU8sR0FDVixNQUFNLGdCQUFnQixDQUFDO0FBRXhCLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBRXpFLE1BQU0sMEJBQTBCLEdBQUc7SUFDL0IsVUFBVTtJQUNWLFNBQVM7SUFDVCxXQUFXO0lBQ1gsV0FBVztJQUNYLEtBQUs7SUFDTCxLQUFLO0lBQ0wsTUFBTTtDQUNULENBQUM7QUFFRixNQUFNLENBQU4sSUFBWSxhQUlYO0FBSkQsV0FBWSxhQUFhO0lBQ3JCLHVEQUFPLENBQUE7SUFDUCxtREFBSyxDQUFBO0lBQ0wsdURBQU8sQ0FBQTtBQUNYLENBQUMsRUFKVyxhQUFhLEtBQWIsYUFBYSxRQUl4QjtBQUVEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQW9CRztBQUtILE1BQU0sT0FBTyxpQkFBaUI7SUF1QzFCLFlBQ1csVUFBNkIsRUFDVyxPQUFnQixFQUlyRCxXQUE0QixFQUM1QixPQUFxQyxFQUNyQyxHQUFzQjtRQVB6QixlQUFVLEdBQVYsVUFBVSxDQUFtQjtRQUNXLFlBQU8sR0FBUCxPQUFPLENBQVM7UUFJckQsZ0JBQVcsR0FBWCxXQUFXLENBQWlCO1FBQzVCLFlBQU8sR0FBUCxPQUFPLENBQThCO1FBQ3JDLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBOUNwQzs7Ozs7Ozs7Ozs7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dGVyVmlld0luaXQsXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgRGlyZWN0aXZlLFxuICAgIEVsZW1lbnRSZWYsXG4gICAgSG9zdEJpbmRpbmcsXG4gICAgSG9zdExpc3RlbmVyLFxuICAgIEluamVjdCxcbiAgICBJbnB1dCxcbiAgICBPbkRlc3Ryb3ksXG4gICAgT3B0aW9uYWwsXG4gICAgU2VsZixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICAgIEFic3RyYWN0Q29udHJvbCxcbiAgICBGb3JtQ29udHJvbE5hbWUsXG4gICAgTmdDb250cm9sLFxuICAgIE5nTW9kZWwsXG59IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgSWd4SW5wdXRHcm91cEJhc2UgfSBmcm9tICcuLi8uLi9pbnB1dC1ncm91cC9pbnB1dC1ncm91cC5jb21tb24nO1xuXG5jb25zdCBuYXRpdmVWYWxpZGF0aW9uQXR0cmlidXRlcyA9IFtcbiAgICAncmVxdWlyZWQnLFxuICAgICdwYXR0ZXJuJyxcbiAgICAnbWlubGVuZ3RoJyxcbiAgICAnbWF4bGVuZ3RoJyxcbiAgICAnbWluJyxcbiAgICAnbWF4JyxcbiAgICAnc3RlcCcsXG5dO1xuXG5leHBvcnQgZW51bSBJZ3hJbnB1dFN0YXRlIHtcbiAgICBJTklUSUFMLFxuICAgIFZBTElELFxuICAgIElOVkFMSUQsXG59XG5cbi8qKlxuICogVGhlIGBpZ3hJbnB1dGAgZGlyZWN0aXZlIGNyZWF0ZXMgc2luZ2xlLSBvciBtdWx0aWxpbmUgdGV4dCBlbGVtZW50cywgY292ZXJpbmcgY29tbW9uIHNjZW5hcmlvcyB3aGVuIGRlYWxpbmcgd2l0aCBmb3JtIGlucHV0cy5cbiAqXG4gKiBAaWd4TW9kdWxlIElneElucHV0R3JvdXBNb2R1bGVcbiAqXG4gKiBAaWd4UGFyZW50IERhdGEgRW50cnkgJiBEaXNwbGF5XG4gKlxuICogQGlneFRoZW1lIGlneC1pbnB1dC1ncm91cC10aGVtZVxuICpcbiAqIEBpZ3hLZXl3b3JkcyBpbnB1dCwgaW5wdXQgZ3JvdXAsIGZvcm0sIGZpZWxkLCB2YWxpZGF0aW9uXG4gKlxuICogQGlneEdyb3VwIHByZXNlbnRhdGlvblxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGBodG1sXG4gKiA8aW5wdXQtZ3JvdXA+XG4gKiAgPGxhYmVsIGZvcj1cImFkZHJlc3NcIj5BZGRyZXNzPC9sYWJlbD5cbiAqICA8aW5wdXQgaWd4SW5wdXQgbmFtZT1cImFkZHJlc3NcIiB0eXBlPVwidGV4dFwiIFsobmdNb2RlbCldPVwiY3VzdG9tZXIuYWRkcmVzc1wiPlxuICogPC9pbnB1dC1ncm91cD5cbiAqIGBgYFxuICovXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ1tpZ3hJbnB1dF0nLFxuICAgIGV4cG9ydEFzOiAnaWd4SW5wdXQnLFxufSlcbmV4cG9ydCBjbGFzcyBJZ3hJbnB1dERpcmVjdGl2ZSBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XG4gICAgLyoqXG4gICAgICogU2V0cy9nZXRzIHdoZXRoZXIgdGhlIGBcImlneC1pbnB1dC1ncm91cF9faW5wdXRcImAgY2xhc3MgaXMgYWRkZWQgdG8gdGhlIGhvc3QgZWxlbWVudC5cbiAgICAgKiBEZWZhdWx0IHZhbHVlIGlzIGBmYWxzZWAuXG4gICAgICpcbiAgICAgKiBAZXhhbXBsZVxuICAgICAqIGBgYHR5cGVzY3JpcHRcbiAgICAgKiB0aGlzLmlneElucHV0LmlzSW5wdXQgPSB0cnVlO1xuICAgICAqIGBgYFxuICAgICAqXG4gICAgICogQGV4YW1wbGVcbiAgICAgKiBgYGB0eXBlc2NyaXB0XG4gICAgICogbGV0IGlzQ0xhc3NBZGRlZCA9IHRoaXMuaWd4SW5wdXQuaXNJbnB1dDtcbiAgICAgKiBgYGBcbiAgICAgKi9cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLmlneC1pbnB1dC1ncm91cF9faW5wdXQnKVxuICAgIHB1YmxpYyBpc0lucHV0ID0gZmFsc2U7XG4gICAgLyoqXG4gICAgICogU2V0cy9nZXRzIHdoZXRoZXIgdGhlIGBcImNsYXNzLmlneC1pbnB1dC1ncm91cF9fdGV4dGFyZWFcImAgY2xhc3MgaXMgYWRkZWQgdG8gdGhlIGhvc3QgZWxlbWVudC5cbiAgICAgKiBEZWZhdWx0IHZhbHVlIGlzIGBmYWxzZWAuXG4gICAgICpcbiAgICAgKiBAZXhhbXBsZVxuICAgICAqIGBgYHR5cGVzY3JpcHRcbiAgICAgKiB0aGlzLmlneElucHV0LmlzVGV4dEFyZWEgPSB0cnVlO1xuICAgICAqIGBgYFxuICAgICAqXG4gICAgICogQGV4YW1wbGVcbiAgICAgKiBgYGB0eXBlc2NyaXB0XG4gICAgICogbGV0IGlzQ0xhc3NBZGRlZCA9IHRoaXMuaWd4SW5wdXQuaXNUZXh0QXJlYTtcbiAgICAgKiBgYGBcbiAgICAgKi9cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLmlneC1pbnB1dC1ncm91cF9fdGV4dGFyZWEnKVxuICAgIHB1YmxpYyBpc1RleHRBcmVhID0gZmFsc2U7XG5cbiAgICBwcml2YXRlIF9kaXNhYmxlZCA9IGZhbHNlO1xuICAgIHByaXZhdGUgX3ZhbGlkID0gSWd4SW5wdXRTdGF0ZS5JTklUSUFMO1xuICAgIHByaXZhdGUgX3N0YXR1c0NoYW5nZXMkOiBTdWJzY3JpcHRpb247XG4gICAgcHJpdmF0ZSBfZmlsZU5hbWVzOiBzdHJpbmc7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHVibGljIGlucHV0R3JvdXA6IElneElucHV0R3JvdXBCYXNlLFxuICAgICAgICBAT3B0aW9uYWwoKSBAU2VsZigpIEBJbmplY3QoTmdNb2RlbCkgcHJvdGVjdGVkIG5nTW9kZWw6IE5nTW9kZWwsXG4gICAgICAgIEBPcHRpb25hbCgpXG4gICAgICAgIEBTZWxmKClcbiAgICAgICAgQEluamVjdChGb3JtQ29udHJvbE5hbWUpXG4gICAgICAgIHByb3RlY3RlZCBmb3JtQ29udHJvbDogRm9ybUNvbnRyb2xOYW1lLFxuICAgICAgICBwcm90ZWN0ZWQgZWxlbWVudDogRWxlbWVudFJlZjxIVE1MSW5wdXRFbGVtZW50PixcbiAgICAgICAgcHJvdGVjdGVkIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWZcbiAgICApIHt9XG5cbiAgICBwcml2YXRlIGdldCBuZ0NvbnRyb2woKTogTmdDb250cm9sIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubmdNb2RlbCA/IHRoaXMubmdNb2RlbCA6IHRoaXMuZm9ybUNvbnRyb2w7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIFNldHMgdGhlIGB2YWx1ZWAgcHJvcGVydHkuXG4gICAgICpcbiAgICAgKiBAZXhhbXBsZVxuICAgICAqIGBgYGh0bWxcbiAgICAgKiA8aW5wdXQtZ3JvdXA+XG4gICAgICogIDxpbnB1dCBpZ3hJbnB1dCAjaWd4SW5wdXQgW3ZhbHVlXT1cIidJZ3hJbnB1dCBWYWx1ZSdcIj5cbiAgICAgKiA8L2lucHV0LWdyb3VwPlxuICAgICAqIGBgYFxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHNldCB2YWx1ZSh2YWx1ZTogYW55KSB7XG4gICAgICAgIHRoaXMubmF0aXZlRWxlbWVudC52YWx1ZSA9IHZhbHVlID8/ICcnO1xuICAgICAgICB0aGlzLnVwZGF0ZVZhbGlkaXR5U3RhdGUoKTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogR2V0cyB0aGUgYHZhbHVlYCBwcm9wZXJ0eS5cbiAgICAgKlxuICAgICAqIEBleGFtcGxlXG4gICAgICogYGBgdHlwZXNjcmlwdFxuICAgICAqIEBWaWV3Q2hpbGQoJ2lneElucHV0Jywge3JlYWQ6IElneElucHV0RGlyZWN0aXZlfSlcbiAgICAgKiAgcHVibGljIGlneElucHV0OiBJZ3hJbnB1dERpcmVjdGl2ZTtcbiAgICAgKiBsZXQgaW5wdXRWYWx1ZSA9IHRoaXMuaWd4SW5wdXQudmFsdWU7XG4gICAgICogYGBgXG4gICAgICovXG4gICAgcHVibGljIGdldCB2YWx1ZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubmF0aXZlRWxlbWVudC52YWx1ZTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogU2V0cyB0aGUgYGRpc2FibGVkYCBwcm9wZXJ0eS5cbiAgICAgKlxuICAgICAqIEBleGFtcGxlXG4gICAgICogYGBgaHRtbFxuICAgICAqIDxpbnB1dC1ncm91cD5cbiAgICAgKiAgPGlucHV0IGlneElucHV0ICNpZ3hJbnB1dCBbZGlzYWJsZWRdPVwidHJ1ZVwiPlxuICAgICAqIDwvaW5wdXQtZ3JvdXA+XG4gICAgICogYGBgXG4gICAgICovXG4gICAgIEBJbnB1dCgpXG4gICAgIEBIb3N0QmluZGluZygnZGlzYWJsZWQnKVxuICAgICBwdWJsaWMgc2V0IGRpc2FibGVkKHZhbHVlOiBib29sZWFuKSB7XG4gICAgICAgICB0aGlzLl9kaXNhYmxlZCA9IHRoaXMuaW5wdXRHcm91cC5kaXNhYmxlZCA9ICEhKCh2YWx1ZSBhcyBhbnkgPT09ICcnKSB8fCB2YWx1ZSk7XG4gICAgICAgICBpZiAodGhpcy5mb2N1c2VkICYmIHRoaXMuX2Rpc2FibGVkKSB7XG4gICAgICAgICAgICAgLy8gQnJvd3NlciBmb2N1cyBtYXkgbm90IGZpcmUgaW4gZ29vZCB0aW1lIGFuZCBtZXNzIHdpdGggY2hhbmdlIGRldGVjdGlvbiwgYWRqdXN0IGhlcmUgaW4gYWR2YW5jZTpcbiAgICAgICAgICAgICB0aGlzLmlucHV0R3JvdXAuaXNGb2N1c2VkID0gZmFsc2U7XG4gICAgICAgICB9XG4gICAgIH1cbiAgICAvKipcbiAgICAgKiBHZXRzIHRoZSBgZGlzYWJsZWRgIHByb3BlcnR5XG4gICAgICpcbiAgICAgKiBAZXhhbXBsZVxuICAgICAqIGBgYHR5cGVzY3JpcHRcbiAgICAgKiBAVmlld0NoaWxkKCdpZ3hJbnB1dCcsIHtyZWFkOiBJZ3hJbnB1dERpcmVjdGl2ZX0pXG4gICAgICogIHB1YmxpYyBpZ3hJbnB1dDogSWd4SW5wdXREaXJlY3RpdmU7XG4gICAgICogbGV0IGlzRGlzYWJsZWQgPSB0aGlzLmlneElucHV0LmRpc2FibGVkO1xuICAgICAqIGBgYFxuICAgICAqL1xuICAgIHB1YmxpYyBnZXQgZGlzYWJsZWQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9kaXNhYmxlZDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTZXRzIHRoZSBgcmVxdWlyZWRgIHByb3BlcnR5LlxuICAgICAqXG4gICAgICogQGV4YW1wbGVcbiAgICAgKiBgYGBodG1sXG4gICAgICogPGlucHV0LWdyb3VwPlxuICAgICAqICA8aW5wdXQgaWd4SW5wdXQgI2lneElucHV0IFtyZXF1aXJlZF09XCJ0cnVlXCI+XG4gICAgICogPC9pbnB1dC1ncm91cD5cbiAgICAgKiBgYGBcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBzZXQgcmVxdWlyZWQodmFsdWU6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5uYXRpdmVFbGVtZW50LnJlcXVpcmVkID0gdGhpcy5pbnB1dEdyb3VwLmlzUmVxdWlyZWQgPSB2YWx1ZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBHZXRzIHdoZXRoZXIgdGhlIGlneElucHV0IGlzIHJlcXVpcmVkLlxuICAgICAqXG4gICAgICogQGV4YW1wbGVcbiAgICAgKiBgYGB0eXBlc2NyaXB0XG4gICAgICogbGV0IGlzUmVxdWlyZWQgPSB0aGlzLmlneElucHV0LnJlcXVpcmVkO1xuICAgICAqIGBgYFxuICAgICAqL1xuICAgIHB1YmxpYyBnZXQgcmVxdWlyZWQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLm5hdGl2ZUVsZW1lbnQuaGFzQXR0cmlidXRlKCdyZXF1aXJlZCcpO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICogQGludGVybmFsXG4gICAgICovXG4gICAgQEhvc3RMaXN0ZW5lcignZm9jdXMnKVxuICAgIHB1YmxpYyBvbkZvY3VzKCkge1xuICAgICAgICB0aGlzLmlucHV0R3JvdXAuaXNGb2N1c2VkID0gdHJ1ZTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogQHBhcmFtIGV2ZW50IFRoZSBldmVudCB0byBpbnZva2UgdGhlIGhhbmRsZXJcbiAgICAgKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBAaW50ZXJuYWxcbiAgICAgKi9cbiAgICBASG9zdExpc3RlbmVyKCdibHVyJylcbiAgICBwdWJsaWMgb25CbHVyKCkge1xuICAgICAgICB0aGlzLmlucHV0R3JvdXAuaXNGb2N1c2VkID0gZmFsc2U7XG4gICAgICAgIHRoaXMudXBkYXRlVmFsaWRpdHlTdGF0ZSgpO1xuICAgIH1cbiAgICAvKiogQGhpZGRlbiBAaW50ZXJuYWwgKi9cbiAgICBASG9zdExpc3RlbmVyKCdpbnB1dCcpXG4gICAgcHVibGljIG9uSW5wdXQoKSB7XG4gICAgICAgIHRoaXMuY2hlY2tOYXRpdmVWYWxpZGl0eSgpO1xuICAgIH1cbiAgICAvKiogQGhpZGRlbiBAaW50ZXJuYWwgKi9cbiAgICBASG9zdExpc3RlbmVyKCdjaGFuZ2UnLCBbJyRldmVudCddKVxuICAgIHB1YmxpYyBjaGFuZ2UoZXZlbnQ6IEV2ZW50KSB7XG4gICAgICAgIGlmICh0aGlzLnR5cGUgPT09ICdmaWxlJykge1xuICAgICAgICAgICAgY29uc3QgZmlsZUxpc3Q6IEZpbGVMaXN0IHwgbnVsbCA9IChldmVudC50YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudClcbiAgICAgICAgICAgICAgICAuZmlsZXM7XG4gICAgICAgICAgICBjb25zdCBmaWxlQXJyYXk6IEZpbGVbXSA9IFtdO1xuXG4gICAgICAgICAgICBpZiAoZmlsZUxpc3QpIHtcbiAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IGZpbGUgb2YgQXJyYXkuZnJvbShmaWxlTGlzdCkpIHtcbiAgICAgICAgICAgICAgICAgICAgZmlsZUFycmF5LnB1c2goZmlsZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB0aGlzLl9maWxlTmFtZXMgPSAoZmlsZUFycmF5IHx8IFtdKS5tYXAoKGY6IEZpbGUpID0+IGYubmFtZSkuam9pbignLCAnKTtcblxuICAgICAgICAgICAgaWYgKHRoaXMucmVxdWlyZWQgJiYgZmlsZUxpc3Q/Lmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgICB0aGlzLl92YWxpZCA9IElneElucHV0U3RhdGUuSU5JVElBTDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuIEBpbnRlcm5hbCAqL1xuICAgIHB1YmxpYyBnZXQgZmlsZU5hbWVzKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fZmlsZU5hbWVzO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuIEBpbnRlcm5hbCAqL1xuICAgIHB1YmxpYyBjbGVhcigpIHtcbiAgICAgICAgdGhpcy5uZ0NvbnRyb2w/LmNvbnRyb2w/LnNldFZhbHVlKCcnKTtcbiAgICAgICAgdGhpcy5uYXRpdmVFbGVtZW50LnZhbHVlID0gbnVsbDtcbiAgICAgICAgdGhpcy5fZmlsZU5hbWVzID0gJyc7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gQGludGVybmFsICovXG4gICAgcHVibGljIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICAgICAgdGhpcy5pbnB1dEdyb3VwLmhhc1BsYWNlaG9sZGVyID0gdGhpcy5uYXRpdmVFbGVtZW50Lmhhc0F0dHJpYnV0ZShcbiAgICAgICAgICAgICdwbGFjZWhvbGRlcidcbiAgICAgICAgKTtcblxuICAgICAgICBpZiAodGhpcy5uZ0NvbnRyb2wgJiYgdGhpcy5uZ0NvbnRyb2wuZGlzYWJsZWQgIT09IG51bGwpIHtcbiAgICAgICAgICAgIHRoaXMuZGlzYWJsZWQgPSB0aGlzLm5nQ29udHJvbC5kaXNhYmxlZDtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmlucHV0R3JvdXAuZGlzYWJsZWQgPVxuICAgICAgICAgICAgdGhpcy5pbnB1dEdyb3VwLmRpc2FibGVkIHx8XG4gICAgICAgICAgICB0aGlzLm5hdGl2ZUVsZW1lbnQuaGFzQXR0cmlidXRlKCdkaXNhYmxlZCcpO1xuICAgICAgICB0aGlzLmlucHV0R3JvdXAuaXNSZXF1aXJlZCA9IHRoaXMubmF0aXZlRWxlbWVudC5oYXNBdHRyaWJ1dGUoXG4gICAgICAgICAgICAncmVxdWlyZWQnXG4gICAgICAgICk7XG5cbiAgICAgICAgLy8gTWFrZSBzdXJlIHdlIGRvIG5vdCBpbnZhbGlkYXRlIHRoZSBpbnB1dCBvbiBpbml0XG4gICAgICAgIGlmICghdGhpcy5uZ0NvbnRyb2wpIHtcbiAgICAgICAgICAgIHRoaXMuX3ZhbGlkID0gSWd4SW5wdXRTdGF0ZS5JTklUSUFMO1xuICAgICAgICB9XG4gICAgICAgIC8vIEFsc28gY2hlY2sgdGhlIGNvbnRyb2wncyB2YWxpZGF0b3JzIGZvciByZXF1aXJlZFxuICAgICAgICBpZiAoXG4gICAgICAgICAgICAhdGhpcy5pbnB1dEdyb3VwLmlzUmVxdWlyZWQgJiZcbiAgICAgICAgICAgIHRoaXMubmdDb250cm9sICYmXG4gICAgICAgICAgICB0aGlzLm5nQ29udHJvbC5jb250cm9sLnZhbGlkYXRvclxuICAgICAgICApIHtcbiAgICAgICAgICAgIGNvbnN0IHZhbGlkYXRpb24gPSB0aGlzLm5nQ29udHJvbC5jb250cm9sLnZhbGlkYXRvcihcbiAgICAgICAgICAgICAgICB7fSBhcyBBYnN0cmFjdENvbnRyb2xcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICB0aGlzLmlucHV0R3JvdXAuaXNSZXF1aXJlZCA9IHZhbGlkYXRpb24gJiYgdmFsaWRhdGlvbi5yZXF1aXJlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGVsVGFnID0gdGhpcy5uYXRpdmVFbGVtZW50LnRhZ05hbWUudG9Mb3dlckNhc2UoKTtcbiAgICAgICAgaWYgKGVsVGFnID09PSAndGV4dGFyZWEnKSB7XG4gICAgICAgICAgICB0aGlzLmlzVGV4dEFyZWEgPSB0cnVlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5pc0lucHV0ID0gdHJ1ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLm5nQ29udHJvbCkge1xuICAgICAgICAgICAgdGhpcy5fc3RhdHVzQ2hhbmdlcyQgPSB0aGlzLm5nQ29udHJvbC5zdGF0dXNDaGFuZ2VzLnN1YnNjcmliZShcbiAgICAgICAgICAgICAgICB0aGlzLm9uU3RhdHVzQ2hhbmdlZC5iaW5kKHRoaXMpXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH1cbiAgICAvKiogQGhpZGRlbiBAaW50ZXJuYWwgKi9cbiAgICBwdWJsaWMgbmdPbkRlc3Ryb3koKSB7XG4gICAgICAgIGlmICh0aGlzLl9zdGF0dXNDaGFuZ2VzJCkge1xuICAgICAgICAgICAgdGhpcy5fc3RhdHVzQ2hhbmdlcyQudW5zdWJzY3JpYmUoKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvKipcbiAgICAgKiBTZXRzIGEgZm9jdXMgb24gdGhlIGlneElucHV0LlxuICAgICAqXG4gICAgICogQGV4YW1wbGVcbiAgICAgKiBgYGB0eXBlc2NyaXB0XG4gICAgICogdGhpcy5pZ3hJbnB1dC5mb2N1cygpO1xuICAgICAqIGBgYFxuICAgICAqL1xuICAgIHB1YmxpYyBmb2N1cygpIHtcbiAgICAgICAgdGhpcy5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEdldHMgdGhlIGBuYXRpdmVFbGVtZW50YCBvZiB0aGUgaWd4SW5wdXQuXG4gICAgICpcbiAgICAgKiBAZXhhbXBsZVxuICAgICAqIGBgYHR5cGVzY3JpcHRcbiAgICAgKiBsZXQgaWd4SW5wdXROYXRpdmVFbGVtZW50ID0gdGhpcy5pZ3hJbnB1dC5uYXRpdmVFbGVtZW50O1xuICAgICAqIGBgYFxuICAgICAqL1xuICAgIHB1YmxpYyBnZXQgbmF0aXZlRWxlbWVudCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50O1xuICAgIH1cbiAgICAvKiogQGhpZGRlbiBAaW50ZXJuYWwgKi9cbiAgICBwcm90ZWN0ZWQgb25TdGF0dXNDaGFuZ2VkKCkge1xuICAgICAgICAvLyBFbmFibGUvRGlzYWJsZSBjb250cm9sIGJhc2VkIG9uIG5nQ29udHJvbCAjNzA4NlxuICAgICAgICBpZiAodGhpcy5kaXNhYmxlZCAhPT0gdGhpcy5uZ0NvbnRyb2wuZGlzYWJsZWQpIHtcbiAgICAgICAgICAgIHRoaXMuZGlzYWJsZWQgPSB0aGlzLm5nQ29udHJvbC5kaXNhYmxlZDtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnVwZGF0ZVZhbGlkaXR5U3RhdGUoKTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqIEBpbnRlcm5hbFxuICAgICAqL1xuICAgIHByb3RlY3RlZCB1cGRhdGVWYWxpZGl0eVN0YXRlKCkge1xuICAgICAgICBpZiAodGhpcy5uZ0NvbnRyb2wpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLm5nQ29udHJvbC5jb250cm9sLnZhbGlkYXRvciB8fCB0aGlzLm5nQ29udHJvbC5jb250cm9sLmFzeW5jVmFsaWRhdG9yKSB7XG4gICAgICAgICAgICAgICAgLy8gUnVuIHRoZSB2YWxpZGF0aW9uIHdpdGggZW1wdHkgb2JqZWN0IHRvIGNoZWNrIGlmIHJlcXVpcmVkIGlzIGVuYWJsZWQuXG4gICAgICAgICAgICAgICAgY29uc3QgZXJyb3IgPSB0aGlzLm5nQ29udHJvbC5jb250cm9sLnZhbGlkYXRvcih7fSBhcyBBYnN0cmFjdENvbnRyb2wpO1xuICAgICAgICAgICAgICAgIHRoaXMuaW5wdXRHcm91cC5pc1JlcXVpcmVkID0gZXJyb3IgJiYgZXJyb3IucmVxdWlyZWQ7XG4gICAgICAgICAgICAgICAgaWYgKCF0aGlzLmRpc2FibGVkICYmICh0aGlzLm5nQ29udHJvbC5jb250cm9sLnRvdWNoZWQgfHwgdGhpcy5uZ0NvbnRyb2wuY29udHJvbC5kaXJ0eSkpIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gdGhlIGNvbnRyb2wgaXMgbm90IGRpc2FibGVkIGFuZCBpcyB0b3VjaGVkIG9yIGRpcnR5XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX3ZhbGlkID0gdGhpcy5uZ0NvbnRyb2wuaW52YWxpZCA/XG4gICAgICAgICAgICAgICAgICAgICAgICBJZ3hJbnB1dFN0YXRlLklOVkFMSUQgOiB0aGlzLmZvY3VzZWQgPyBJZ3hJbnB1dFN0YXRlLlZBTElEIDpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZ3hJbnB1dFN0YXRlLklOSVRJQUw7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gIGlmIGNvbnRyb2wgaXMgdW50b3VjaGVkLCBwcmlzdGluZSwgb3IgZGlzYWJsZWQgaXRzIHN0YXRlIGlzIGluaXRpYWwuIFRoaXMgaXMgd2hlbiB1c2VyIGRpZCBub3QgaW50ZXJhY3RcbiAgICAgICAgICAgICAgICAgICAgLy8gIHdpdGggdGhlIGlucHV0IG9yIHdoZW4gZm9ybS9jb250cm9sIGlzIHJlc2V0XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX3ZhbGlkID0gSWd4SW5wdXRTdGF0ZS5JTklUSUFMO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgLy8gSWYgdmFsaWRhdG9yIGlzIGR5bmFtaWNhbGx5IGNsZWFyZWQsIHJlc2V0IGxhYmVsJ3MgcmVxdWlyZWQgY2xhc3MoYXN0ZXJpc2spIGFuZCBJZ3hJbnB1dFN0YXRlICMxMDAxMFxuICAgICAgICAgICAgICAgIHRoaXMuX3ZhbGlkID0gSWd4SW5wdXRTdGF0ZS5JTklUSUFMO1xuICAgICAgICAgICAgICAgIHRoaXMuaW5wdXRHcm91cC5pc1JlcXVpcmVkID0gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmNoZWNrTmF0aXZlVmFsaWRpdHkoKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvKipcbiAgICAgKiBHZXRzIHdoZXRoZXIgdGhlIGlneElucHV0IGhhcyBhIHBsYWNlaG9sZGVyLlxuICAgICAqXG4gICAgICogQGV4YW1wbGVcbiAgICAgKiBgYGB0eXBlc2NyaXB0XG4gICAgICogbGV0IGhhc1BsYWNlaG9sZGVyID0gdGhpcy5pZ3hJbnB1dC5oYXNQbGFjZWhvbGRlcjtcbiAgICAgKiBgYGBcbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0IGhhc1BsYWNlaG9sZGVyKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5uYXRpdmVFbGVtZW50Lmhhc0F0dHJpYnV0ZSgncGxhY2Vob2xkZXInKTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogR2V0cyB0aGUgcGxhY2Vob2xkZXIgZWxlbWVudCBvZiB0aGUgaWd4SW5wdXQuXG4gICAgICpcbiAgICAgKiBAZXhhbXBsZVxuICAgICAqIGBgYHR5cGVzY3JpcHRcbiAgICAgKiBsZXQgaWd4SW5wdXRQbGFjZWhvbGRlciA9IHRoaXMuaWd4SW5wdXQucGxhY2Vob2xkZXI7XG4gICAgICogYGBgXG4gICAgICovXG4gICAgcHVibGljIGdldCBwbGFjZWhvbGRlcigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubmF0aXZlRWxlbWVudC5wbGFjZWhvbGRlcjtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAcmV0dXJucyBBbiBpbmRpY2F0b3Igb2Ygd2hldGhlciB0aGUgaW5wdXQgaGFzIHZhbGlkYXRvciBhdHRyaWJ1dGVzIG9yIG5vdFxuICAgICAqXG4gICAgICogQGhpZGRlblxuICAgICAqIEBpbnRlcm5hbFxuICAgICAqL1xuICAgIHByaXZhdGUgX2hhc1ZhbGlkYXRvcnMoKTogYm9vbGVhbiB7XG4gICAgICAgIGZvciAoY29uc3QgbmF0aXZlVmFsaWRhdGlvbkF0dHJpYnV0ZSBvZiBuYXRpdmVWYWxpZGF0aW9uQXR0cmlidXRlcykge1xuICAgICAgICAgICAgaWYgKHRoaXMubmF0aXZlRWxlbWVudC5oYXNBdHRyaWJ1dGUobmF0aXZlVmFsaWRhdGlvbkF0dHJpYnV0ZSkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2V0cyB3aGV0aGVyIHRoZSBpZ3hJbnB1dCBpcyBmb2N1c2VkLlxuICAgICAqXG4gICAgICogQGV4YW1wbGVcbiAgICAgKiBgYGB0eXBlc2NyaXB0XG4gICAgICogbGV0IGlzRm9jdXNlZCA9IHRoaXMuaWd4SW5wdXQuZm9jdXNlZDtcbiAgICAgKiBgYGBcbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0IGZvY3VzZWQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmlucHV0R3JvdXAuaXNGb2N1c2VkO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBHZXRzIHRoZSBzdGF0ZSBvZiB0aGUgaWd4SW5wdXQuXG4gICAgICpcbiAgICAgKiBAZXhhbXBsZVxuICAgICAqIGBgYHR5cGVzY3JpcHRcbiAgICAgKiBsZXQgaWd4SW5wdXRTdGF0ZSA9IHRoaXMuaWd4SW5wdXQudmFsaWQ7XG4gICAgICogYGBgXG4gICAgICovXG4gICAgcHVibGljIGdldCB2YWxpZCgpOiBJZ3hJbnB1dFN0YXRlIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3ZhbGlkO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNldHMgdGhlIHN0YXRlIG9mIHRoZSBpZ3hJbnB1dC5cbiAgICAgKlxuICAgICAqIEBleGFtcGxlXG4gICAgICogYGBgdHlwZXNjcmlwdFxuICAgICAqIHRoaXMuaWd4SW5wdXQudmFsaWQgPSBJZ3hJbnB1dFN0YXRlLklOVkFMSUQ7XG4gICAgICogYGBgXG4gICAgICovXG4gICAgcHVibGljIHNldCB2YWxpZCh2YWx1ZTogSWd4SW5wdXRTdGF0ZSkge1xuICAgICAgICB0aGlzLl92YWxpZCA9IHZhbHVlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldHMgd2hldGhlciB0aGUgaWd4SW5wdXQgaXMgdmFsaWQuXG4gICAgICpcbiAgICAgKiBAZXhhbXBsZVxuICAgICAqIGBgYHR5cGVzY3JpcHRcbiAgICAgKiBsZXQgdmFsaWQgPSB0aGlzLmlneElucHV0LmlzVmFsaWQ7XG4gICAgICogYGBgXG4gICAgICovXG4gICAgcHVibGljIGdldCBpc1ZhbGlkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy52YWxpZCAhPT0gSWd4SW5wdXRTdGF0ZS5JTlZBTElEO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEEgZnVuY3Rpb24gdG8gYXNzaWduIGEgbmF0aXZlIHZhbGlkaXR5IHByb3BlcnR5IG9mIGFuIGlucHV0LlxuICAgICAqIFRoaXMgc2hvdWxkIGJlIHVzZWQgd2hlbiB0aGVyZSdzIG5vIG5nQ29udHJvbFxuICAgICAqXG4gICAgICogQGhpZGRlblxuICAgICAqIEBpbnRlcm5hbFxuICAgICAqL1xuICAgIHByaXZhdGUgY2hlY2tOYXRpdmVWYWxpZGl0eSgpIHtcbiAgICAgICAgaWYgKCF0aGlzLmRpc2FibGVkICYmIHRoaXMuX2hhc1ZhbGlkYXRvcnMoKSkge1xuICAgICAgICAgICAgdGhpcy5fdmFsaWQgPSB0aGlzLm5hdGl2ZUVsZW1lbnQuY2hlY2tWYWxpZGl0eSgpID9cbiAgICAgICAgICAgICAgICB0aGlzLmZvY3VzZWQgPyBJZ3hJbnB1dFN0YXRlLlZBTElEIDogSWd4SW5wdXRTdGF0ZS5JTklUSUFMIDpcbiAgICAgICAgICAgICAgICBJZ3hJbnB1dFN0YXRlLklOVkFMSUQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIHRoZSBpbnB1dCB0eXBlLlxuICAgICAqXG4gICAgICogQGhpZGRlblxuICAgICAqIEBpbnRlcm5hbFxuICAgICAqL1xuICAgIHB1YmxpYyBnZXQgdHlwZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubmF0aXZlRWxlbWVudC50eXBlO1xuICAgIH1cbn1cbiJdfQ==
@@ -10823,6 +10823,8 @@ class IgxInputDirective {
10823
10823
  }
10824
10824
  /** @hidden @internal */
10825
10825
  clear() {
10826
+ var _a, _b;
10827
+ (_b = (_a = this.ngControl) === null || _a === void 0 ? void 0 : _a.control) === null || _b === void 0 ? void 0 : _b.setValue('');
10826
10828
  this.nativeElement.value = null;
10827
10829
  this._fileNames = '';
10828
10830
  }