@gravitee/ui-particles-angular 7.28.3 → 7.28.4

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.
@@ -36,6 +36,10 @@ export class GioFormTagsInputComponent {
36
36
  * called with `true` it will add the tag, otherwise it will just ignore it
37
37
  */
38
38
  this.tagValidationHook = undefined;
39
+ /**
40
+ * Set to true to force the chip to be part of the autocomplete options.
41
+ */
42
+ this.useAutocompleteOptionValueOnly = false;
39
43
  this._tagInput = null;
40
44
  this._value = null;
41
45
  // From ControlValueAccessor interface
@@ -195,6 +199,9 @@ export class GioFormTagsInputComponent {
195
199
  this.addChipToFormControl({ value: event.option.value });
196
200
  }
197
201
  onMatChipTokenEnd() {
202
+ if (this.useAutocompleteOptionValueOnly) {
203
+ return;
204
+ }
198
205
  // Give priority to the `onAutocompleteSelect` when validating with the blur event
199
206
  setTimeout(() => {
200
207
  this.addChipToFormControl({ value: this._tagInput?.nativeElement.value ?? '' });
@@ -220,7 +227,7 @@ export class GioFormTagsInputComponent {
220
227
  }
221
228
  GioFormTagsInputComponent.nextId = 0;
222
229
  GioFormTagsInputComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GioFormTagsInputComponent, deps: [{ token: i1.NgControl, optional: true, self: true }, { token: i0.ElementRef }, { token: i2.FocusMonitor }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
223
- GioFormTagsInputComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: GioFormTagsInputComponent, selector: "gio-form-tags-input", inputs: { ariaLabel: ["aria-label", "ariaLabel"], addOnBlur: "addOnBlur", tagValidationHook: "tagValidationHook", autocompleteOptions: "autocompleteOptions", displayValueWith: "displayValueWith", placeholder: "placeholder", required: "required", disabled: "disabled" }, host: { properties: { "id": "this.id", "class.floating": "this.shouldLabelFloat", "attr.aria-describedby": "this.describedBy" } }, providers: [
230
+ GioFormTagsInputComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: GioFormTagsInputComponent, selector: "gio-form-tags-input", inputs: { ariaLabel: ["aria-label", "ariaLabel"], addOnBlur: "addOnBlur", tagValidationHook: "tagValidationHook", autocompleteOptions: "autocompleteOptions", displayValueWith: "displayValueWith", useAutocompleteOptionValueOnly: "useAutocompleteOptionValueOnly", placeholder: "placeholder", required: "required", disabled: "disabled" }, host: { properties: { "id": "this.id", "class.floating": "this.shouldLabelFloat", "attr.aria-describedby": "this.describedBy" } }, providers: [
224
231
  {
225
232
  provide: MatFormFieldControl,
226
233
  useExisting: GioFormTagsInputComponent,
@@ -249,6 +256,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
249
256
  type: Input
250
257
  }], displayValueWith: [{
251
258
  type: Input
259
+ }], useAutocompleteOptionValueOnly: [{
260
+ type: Input
252
261
  }], tagInput: [{
253
262
  type: ViewChild,
254
263
  args: ['tagInput']
@@ -280,4 +289,4 @@ const sanitizeAutocompleteOptions = (options) => {
280
289
  return { value: option, label: option };
281
290
  });
282
291
  };
283
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2lvLWZvcm0tdGFncy1pbnB1dC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS1wYXJ0aWNsZXMtYW5ndWxhci9zcmMvbGliL2dpby1mb3JtLXRhZ3MtaW5wdXQvZ2lvLWZvcm0tdGFncy1pbnB1dC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS1wYXJ0aWNsZXMtYW5ndWxhci9zcmMvbGliL2dpby1mb3JtLXRhZ3MtaW5wdXQvZ2lvLWZvcm0tdGFncy1pbnB1dC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFrQkEsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDOUQsT0FBTyxFQUFxQixTQUFTLEVBQXVCLFdBQVcsRUFBRSxLQUFLLEVBQWEsUUFBUSxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHNUksT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDbkUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUNqQyxPQUFPLEVBQUUsU0FBUyxFQUFjLEVBQUUsRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDMUQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7Ozs7Ozs7QUFtQnRGLE1BQU0sT0FBTyx5QkFBeUI7SUErSnBDO0lBQ0Usc0NBQXNDO0lBQ0YsU0FBb0IsRUFDdkMsS0FBaUIsRUFDakIsRUFBZ0IsRUFDekIsaUJBQW9DO1FBSFIsY0FBUyxHQUFULFNBQVMsQ0FBVztRQUN2QyxVQUFLLEdBQUwsS0FBSyxDQUFZO1FBQ2pCLE9BQUUsR0FBRixFQUFFLENBQWM7UUFDekIsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFt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cmlnaHQgKEMpIDIwMTUgVGhlIEdyYXZpdGVlIHRlYW0gKGh0dHA6Ly9ncmF2aXRlZS5pbylcbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L2V4cGxpY2l0LW1lbWJlci1hY2Nlc3NpYmlsaXR5XG5cbmltcG9ydCB7IEZvY3VzTW9uaXRvciB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9hMTF5JztcbmltcG9ydCB7IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2VyY2lvbic7XG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBEb0NoZWNrLCBFbGVtZW50UmVmLCBIb3N0QmluZGluZywgSW5wdXQsIE9uRGVzdHJveSwgT3B0aW9uYWwsIFNlbGYsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE5nQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE1hdEF1dG9jb21wbGV0ZVNlbGVjdGVkRXZlbnQgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9hdXRvY29tcGxldGUnO1xuaW1wb3J0IHsgTWF0Rm9ybUZpZWxkQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2Zvcm0tZmllbGQnO1xuaW1wb3J0IHsgaXNFbXB0eSB9IGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgeyBmcm9tRXZlbnQsIE9ic2VydmFibGUsIG9mLCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgbWFwLCBzdGFydFdpdGgsIHN3aXRjaE1hcCwgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5leHBvcnQgdHlwZSBUYWdzID0gQXJyYXk8c3RyaW5nPjtcblxuZXhwb3J0IHR5cGUgQXV0b2NvbXBsZXRlT3B0aW9ucyA9IChzdHJpbmcgfCB7IHZhbHVlOiBzdHJpbmc7IGxhYmVsOiBzdHJpbmcgfSlbXTtcblxuZXhwb3J0IHR5cGUgRGlzcGxheVZhbHVlV2l0aEZuID0gKHZhbHVlOiBzdHJpbmcpID0+IE9ic2VydmFibGU8c3RyaW5nPjtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZ2lvLWZvcm0tdGFncy1pbnB1dCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9naW8tZm9ybS10YWdzLWlucHV0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZ2lvLWZvcm0tdGFncy1pbnB1dC5jb21wb25lbnQuc2NzcyddLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBNYXRGb3JtRmllbGRDb250cm9sLFxuICAgICAgdXNlRXhpc3Rpbmc6IEdpb0Zvcm1UYWdzSW5wdXRDb21wb25lbnQsXG4gICAgfSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgR2lvRm9ybVRhZ3NJbnB1dENvbXBvbmVudCBpbXBsZW1lbnRzIE1hdEZvcm1GaWVsZENvbnRyb2w8VGFncz4sIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBEb0NoZWNrLCBPbkRlc3Ryb3kge1xuICBwcml2YXRlIHN0YXRpYyBuZXh0SWQgPSAwO1xuXG4gIHB1YmxpYyBfb25DaGFuZ2U6IChfdGFnczogVGFncyB8IG51bGwpID0+IHZvaWQgPSAoKSA9PiAoe30pO1xuXG4gIHB1YmxpYyBfb25Ub3VjaGVkOiAoKSA9PiB2b2lkID0gKCkgPT4gKHt9KTtcbiAgcHJpdmF0ZSB0b3VjaGVkID0gZmFsc2U7XG5cbiAgQElucHV0KCdhcmlhLWxhYmVsJylcbiAgcHVibGljIGFyaWFMYWJlbCA9ICcnO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBhZGRPbkJsdXIgPSB0cnVlO1xuXG4gIC8qKlxuICAgKiBGdW5jdGlvbiBjYWxsZWQgZWFjaCB0aW1lIGEgdGFnIGlzIGFkZGVkLCBpdCBjYW4gYmUgdXNlZCB0byBob29rIGluc2lkZSB0aGVcbiAgICogYWRkaXRpb24gcHJvY2VzcyB0bywgZm9yIGluc3RhbmNlLCBoYXZlIGN1c3RvbSB2YWxpZGF0aW9uIGluIHRoZSBjb21wb25lbnRzXG4gICAqIHVzaW5nIGBnaW8tZm9ybS10YWdzLWlucHV0YC5cbiAgICpcbiAgICogUGFyYW1ldGVycyBhcmU6XG4gICAqIC0gYHRhZ2A6IFRoZSB2YWx1ZSBvZiB0aGUgdGFnIHRvIGFkZFxuICAgKiAtIGB2YWxpZGF0aW9uQ2JgOiBUaGUgY2FsbGJhY2sgZnVuY3Rpb24gdG8gY2FsbCB3aGVuIHZhbGlkYXRpb24gaXMgZG9uZS4gSWZcbiAgICogY2FsbGVkIHdpdGggYHRydWVgIGl0IHdpbGwgYWRkIHRoZSB0YWcsIG90aGVyd2lzZSBpdCB3aWxsIGp1c3QgaWdub3JlIGl0XG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgdGFnVmFsaWRhdGlvbkhvb2s6ICgodGFnOiBzdHJpbmcsIHZhbGlkYXRpb25DYjogKHNob3VsZEFkZFRhZzogYm9vbGVhbikgPT4gdm9pZCkgPT4gdm9pZCkgfCB1bmRlZmluZWQgPSB1bmRlZmluZWQ7XG5cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBhdXRvY29tcGxldGVPcHRpb25zKHY6IEF1dG9jb21wbGV0ZU9wdGlvbnMgfCAoKHNlYXJjaDogc3RyaW5nKSA9PiBPYnNlcnZhYmxlPEF1dG9jb21wbGV0ZU9wdGlvbnM+KSB8IHVuZGVmaW5lZCkge1xuICAgIHRoaXMuX2F1dG9jb21wbGV0ZU9wdGlvbnMgPSB2O1xuICAgIHRoaXMuaW5pdEF1dG9jb21wbGV0ZSgpO1xuICB9XG4gIHB1YmxpYyBfYXV0b2NvbXBsZXRlT3B0aW9ucz86IEF1dG9jb21wbGV0ZU9wdGlvbnMgfCAoKHNlYXJjaDogc3RyaW5nKSA9PiBPYnNlcnZhYmxlPEF1dG9jb21wbGV0ZU9wdGlvbnM+KTtcblxuICAvKipcbiAgICogR2V0IHRoZSBsYWJlbCBvZiBhbiBvcHRpb24gdmFsdWUuXG4gICAqIFRvIHVzZSB3aXRoIGF1dG9jb21wbGV0ZU9wdGlvbnMgbGFiZWwgJiB2YWx1ZSBtb2RlLlxuICAgKiBGdW5jdGlvbiBjYWxsZWQgZWFjaCB0aW1lIGEgdGFnIG5lZWRzIHRvIGJlIGRpc3BsYXllZCBpZCBkZWZpbmVkLlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBkaXNwbGF5VmFsdWVXaXRoKGRpc3BsYXlWYWx1ZVdpdGg6IERpc3BsYXlWYWx1ZVdpdGhGbikge1xuICAgIHRoaXMuX2Rpc3BsYXlWYWx1ZVdpdGggPSAodmFsdWU6IHN0cmluZykgPT4ge1xuICAgICAgaWYgKHRoaXMuZGlzcGxheVZhbHVlQ2FjaGVbdmFsdWVdKSB7XG4gICAgICAgIHJldHVybiBvZih0aGlzLmRpc3BsYXlWYWx1ZUNhY2hlW3ZhbHVlXSk7XG4gICAgICB9XG4gICAgICByZXR1cm4gZGlzcGxheVZhbHVlV2l0aCh2YWx1ZSkucGlwZShcbiAgICAgICAgdGFwKGxhYmVsID0+IHtcbiAgICAgICAgICB0aGlzLmRpc3BsYXlWYWx1ZUNhY2hlW3ZhbHVlXSA9IGxhYmVsO1xuICAgICAgICB9KSxcbiAgICAgICk7XG4gICAgfTtcbiAgfVxuXG4gIEBWaWV3Q2hpbGQoJ3RhZ0lucHV0JylcbiAgcHVibGljIHNldCB0YWdJbnB1dCh2OiBFbGVtZW50UmVmPEhUTUxJbnB1dEVsZW1lbnQ+IHwgbnVsbCkge1xuICAgIHRoaXMuX3RhZ0lucHV0ID0gdjtcbiAgICB0aGlzLmluaXRBdXRvY29tcGxldGUoKTtcbiAgfVxuICBwcml2YXRlIF90YWdJbnB1dDogRWxlbWVudFJlZjxIVE1MSW5wdXRFbGVtZW50PiB8IG51bGwgPSBudWxsO1xuXG4gIC8vIEZyb20gQ29udHJvbFZhbHVlQWNjZXNzb3IgaW50ZXJmYWNlXG4gIHB1YmxpYyBnZXQgdmFsdWUoKTogVGFncyB8IG51bGwge1xuICAgIHJldHVybiB0aGlzLl92YWx1ZTtcbiAgfVxuXG4gIHB1YmxpYyBzZXQgdmFsdWUoX3RhZ3M6IFRhZ3MgfCBudWxsKSB7XG4gICAgdGhpcy5fdmFsdWUgPSBfdGFncztcbiAgICB0aGlzLl9vbkNoYW5nZShfdGFncyk7XG4gICAgdGhpcy5zdGF0ZUNoYW5nZXMubmV4dCgpO1xuICB9XG5cbiAgcHJpdmF0ZSBfdmFsdWU6IFRhZ3MgfCBudWxsID0gbnVsbDtcblxuICAvLyBGcm9tIENvbnRyb2xWYWx1ZUFjY2Vzc29yIGludGVyZmFjZVxuICBwdWJsaWMgc3RhdGVDaGFuZ2VzID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICAvLyBGcm9tIENvbnRyb2xWYWx1ZUFjY2Vzc29yIGludGVyZmFjZVxuICBASG9zdEJpbmRpbmcoJ2lkJylcbiAgcHVibGljIGlkID0gYGdpby1mb3JtLXRhZ3MtaW5wdXQtJHtHaW9Gb3JtVGFnc0lucHV0Q29tcG9uZW50Lm5leHRJZCsrfWA7XG5cbiAgLy8gRnJvbSBDb250cm9sVmFsdWVBY2Nlc3NvciBpbnRlcmZhY2VcbiAgQElucHV0KClcbiAgcHVibGljIGdldCBwbGFjZWhvbGRlcigpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLl9wbGFjZWhvbGRlcjtcbiAgfVxuXG4gIHB1YmxpYyBzZXQgcGxhY2Vob2xkZXIocGxoOiBzdHJpbmcpIHtcbiAgICB0aGlzLl9wbGFjZWhvbGRlciA9IHBsaDtcbiAgICB0aGlzLnN0YXRlQ2hhbmdlcy5uZXh0KCk7XG4gIH1cblxuICBwcml2YXRlIF9wbGFjZWhvbGRlciA9ICcnO1xuXG4gIHB1YmxpYyBhdXRvY29tcGxldGVGaWx0ZXJlZE9wdGlvbnMkPzogT2JzZXJ2YWJsZTxSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+W10+O1xuXG4gIC8vIEZyb20gQ29udHJvbFZhbHVlQWNjZXNzb3IgaW50ZXJmYWNlXG4gIHB1YmxpYyBmb2N1c2VkID0gZmFsc2U7XG5cbiAgLy8gRnJvbSBDb250cm9sVmFsdWVBY2Nlc3NvciBpbnRlcmZhY2VcbiAgcHVibGljIGdldCBlbXB0eSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gaXNFbXB0eSh0aGlzLnZhbHVlKSAmJiBpc0VtcHR5KHRoaXMuX3RhZ0lucHV0Py5uYXRpdmVFbGVtZW50Py52YWx1ZSk7XG4gIH1cblxuICAvLyBGcm9tIENvbnRyb2xWYWx1ZUFjY2Vzc29yIGludGVyZmFjZVxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLmZsb2F0aW5nJylcbiAgcHVibGljIGdldCBzaG91bGRMYWJlbEZsb2F0KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmZvY3VzZWQgfHwgIXRoaXMuZW1wdHk7XG4gIH1cblxuICAvLyBGcm9tIENvbnRyb2xWYWx1ZUFjY2Vzc29yIGludGVyZmFjZVxuICBASW5wdXQoKVxuICBwdWJsaWMgZ2V0IHJlcXVpcmVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9yZXF1aXJlZDtcbiAgfVxuXG4gIHB1YmxpYyBzZXQgcmVxdWlyZWQocmVxOiBib29sZWFuKSB7XG4gICAgdGhpcy5fcmVxdWlyZWQgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkocmVxKTtcbiAgICB0aGlzLnN0YXRlQ2hhbmdlcy5uZXh0KCk7XG4gIH1cblxuICBwcml2YXRlIF9yZXF1aXJlZCA9IGZhbHNlO1xuXG4gIC8vIEZyb20gQ29udHJvbFZhbHVlQWNjZXNzb3IgaW50ZXJmYWNlXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBnZXQgZGlzYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX2Rpc2FibGVkIHx8ICh0aGlzLm5nQ29udHJvbCAmJiB0aGlzLm5nQ29udHJvbC5kaXNhYmxlZCA9PT0gdHJ1ZSk7XG4gIH1cblxuICBwdWJsaWMgc2V0IGRpc2FibGVkKGRpczogYm9vbGVhbikge1xuICAgIHRoaXMuX2Rpc2FibGVkID0gY29lcmNlQm9vbGVhblByb3BlcnR5KGRpcyk7XG4gICAgdGhpcy5zdGF0ZUNoYW5nZXMubmV4dCgpO1xuICB9XG5cbiAgcHJpdmF0ZSBfZGlzYWJsZWQgPSBmYWxzZTtcblxuICBwdWJsaWMgX2Rpc3BsYXlWYWx1ZVdpdGg/OiAodmFsdWU6IHN0cmluZykgPT4gT2JzZXJ2YWJsZTxzdHJpbmc+O1xuXG4gIHByaXZhdGUgZGlzcGxheVZhbHVlQ2FjaGU6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7fTtcblxuICAvLyBGcm9tIENvbnRyb2xWYWx1ZUFjY2Vzc29yIGludGVyZmFjZVxuICBwdWJsaWMgZ2V0IGVycm9yU3RhdGUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIChcbiAgICAgIHRoaXMudG91Y2hlZCAmJlxuICAgICAgLy8gaWYgcmVxdWlyZWQgY2hlY2sgaWYgaXMgZW1wdHlcbiAgICAgICgodGhpcy5yZXF1aXJlZCAmJiB0aGlzLmVtcHR5KSB8fFxuICAgICAgICAvLyBpZiB0aGVyZSBpcyBhIHRvdWNoZWQgY29udHJvbCBjaGVjayBpZiB0aGVyZSBpcyBhbiBlcnJvclxuICAgICAgICAodGhpcy5uZ0NvbnRyb2wgJiYgdGhpcy5uZ0NvbnRyb2wudG91Y2hlZCA9PT0gdHJ1ZSAmJiAhIXRoaXMubmdDb250cm9sLmVycm9ycykpXG4gICAgKTtcbiAgfVxuXG4gIC8vIEZyb20gQ29udHJvbFZhbHVlQWNjZXNzb3IgaW50ZXJmYWNlXG4gIHB1YmxpYyBjb250cm9sVHlwZT86IHN0cmluZztcblxuICAvLyBGcm9tIENvbnRyb2xWYWx1ZUFjY2Vzc29yIGludGVyZmFjZVxuICBwdWJsaWMgYXV0b2ZpbGxlZD86IGJvb2xlYW47XG5cbiAgLy8gRnJvbSBDb250cm9sVmFsdWVBY2Nlc3NvciBpbnRlcmZhY2VcbiAgcHVibGljIHVzZXJBcmlhRGVzY3JpYmVkQnk/OiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgLy8gRnJvbSBDb250cm9sVmFsdWVBY2Nlc3NvciBpbnRlcmZhY2VcbiAgICBAT3B0aW9uYWwoKSBAU2VsZigpIHB1YmxpYyByZWFkb25seSBuZ0NvbnRyb2w6IE5nQ29udHJvbCxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGVsUmVmOiBFbGVtZW50UmVmLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgZm06IEZvY3VzTW9uaXRvcixcbiAgICBwcml2YXRlIGNoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgKSB7XG4gICAgLy8gUmVwbGFjZSB0aGUgcHJvdmlkZXIgZnJvbSBhYm92ZSB3aXRoIHRoaXMuXG4gICAgaWYgKHRoaXMubmdDb250cm9sICE9IG51bGwpIHtcbiAgICAgIC8vIFNldHRpbmcgdGhlIHZhbHVlIGFjY2Vzc29yIGRpcmVjdGx5IChpbnN0ZWFkIG9mIHVzaW5nXG4gICAgICAvLyB0aGUgcHJvdmlkZXJzKSB0byBhdm9pZCBydW5uaW5nIGludG8gYSBjaXJjdWxhciBpbXBvcnQuXG4gICAgICB0aGlzLm5nQ29udHJvbC52YWx1ZUFjY2Vzc29yID0gdGhpcztcbiAgICB9XG5cbiAgICBmbS5tb25pdG9yKGVsUmVmLm5hdGl2ZUVsZW1lbnQsIHRydWUpLnN1YnNjcmliZShvcmlnaW4gPT4ge1xuICAgICAgdGhpcy5mb2N1c2VkID0gISFvcmlnaW47XG4gICAgICB0aGlzLl9vblRvdWNoZWQoKTtcbiAgICAgIHRoaXMudG91Y2hlZCA9IHRydWU7XG4gICAgICB0aGlzLnN0YXRlQ2hhbmdlcy5uZXh0KCk7XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgbmdEb0NoZWNrKCk6IHZvaWQge1xuICAgIC8vIHN5bmMgY29udHJvbCB0b3VjaGVkIHdpdGggbG9jYWwgdG91Y2hlZFxuICAgIGlmICh0aGlzLm5nQ29udHJvbCAhPSBudWxsICYmIHRoaXMudG91Y2hlZCAhPT0gdGhpcy5uZ0NvbnRyb2wudG91Y2hlZCkge1xuICAgICAgdGhpcy50b3VjaGVkID0gdGhpcy5uZ0NvbnRyb2wudG91Y2hlZCA9PT0gdHJ1ZTtcbiAgICAgIHRoaXMuc3RhdGVDaGFuZ2VzLm5leHQoKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5zdGF0ZUNoYW5nZXMuY29tcGxldGUoKTtcbiAgICB0aGlzLmZtLnN0b3BNb25pdG9yaW5nKHRoaXMuZWxSZWYubmF0aXZlRWxlbWVudCk7XG4gIH1cblxuICAvLyBGcm9tIENvbnRyb2xWYWx1ZUFjY2Vzc29yIGludGVyZmFjZVxuICBwdWJsaWMgd3JpdGVWYWx1ZSh2YWx1ZTogc3RyaW5nW10pOiB2b2lkIHtcbiAgICB0aGlzLl92YWx1ZSA9IHZhbHVlO1xuICB9XG5cbiAgLy8gRnJvbSBDb250cm9sVmFsdWVBY2Nlc3NvciBpbnRlcmZhY2VcbiAgcHVibGljIHJlZ2lzdGVyT25DaGFuZ2UoZm46ICh0YWdzOiBUYWdzIHwgbnVsbCkgPT4gdm9pZCk6IHZvaWQge1xuICAgIHRoaXMuX29uQ2hhbmdlID0gZm47XG4gIH1cblxuICAvLyBGcm9tIENvbnRyb2xWYWx1ZUFjY2Vzc29yIGludGVyZmFjZVxuICBwdWJsaWMgcmVnaXN0ZXJPblRvdWNoZWQoZm46ICgpID0+IHZvaWQpOiB2b2lkIHtcbiAgICB0aGlzLl9vblRvdWNoZWQgPSBmbjtcbiAgfVxuXG4gIC8vIEZyb20gQ29udHJvbFZhbHVlQWNjZXNzb3IgaW50ZXJmYWNlXG4gIEBIb3N0QmluZGluZygnYXR0ci5hcmlhLWRlc2NyaWJlZGJ5JylcbiAgcHVibGljIGRlc2NyaWJlZEJ5ID0gJyc7XG5cbiAgcHVibGljIHNldERlc2NyaWJlZEJ5SWRzKGlkczogc3RyaW5nW10pOiB2b2lkIHtcbiAgICB0aGlzLmRlc2NyaWJlZEJ5ID0gaWRzLmpvaW4oJyAnKTtcbiAgfVxuXG4gIC8vIEZyb20gQ29udHJvbFZhbHVlQWNjZXNzb3IgaW50ZXJmYWNlXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnMsIEB0eXBlc2NyaXB0LWVzbGludC9uby1lbXB0eS1mdW5jdGlvblxuICBwdWJsaWMgb25Db250YWluZXJDbGljayhfZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkIHt9XG5cbiAgcHVibGljIGFkZENoaXBUb0Zvcm1Db250cm9sKGV2ZW50OiB7IHZhbHVlOiBzdHJpbmcgfSk6IHZvaWQge1xuICAgIGNvbnN0IGlucHV0ID0gdGhpcy5fdGFnSW5wdXQ/Lm5hdGl2ZUVsZW1lbnQ7XG4gICAgY29uc3QgdGFnVG9BZGQgPSAoZXZlbnQudmFsdWUgPz8gJycpLnRyaW0oKTtcblxuICAgIGlmIChpc0VtcHR5KHRhZ1RvQWRkKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vIEFkZCB0aGUgdGFnIG9ubHkgaWYgc2hvdWxkQWRkVGFnIGluIHZhbGlkYXRpb25DYiByZXR1cm4gdHJ1ZVxuICAgIC8vIFNldCBkZWZhdWx0IGNhbGxiYWNrIGlmIG5vdCBkZWZpbmVkXG4gICAgY29uc3QgdGFnVmFsaWRhdGlvbkhvb2sgPSB0aGlzLnRhZ1ZhbGlkYXRpb25Ib29rID8/ICgoXywgdmFsaWRhdGlvbkNiKSA9PiB2YWxpZGF0aW9uQ2IodHJ1ZSkpO1xuXG4gICAgY29uc3QgdmFsaWRhdGlvbkNiID0gKHNob3VsZEFkZFRhZzogYm9vbGVhbikgPT4ge1xuICAgICAgLy8gQWRkIG5ldyBUYWcgaW4gZm9ybSBjb250cm9sXG4gICAgICBpZiAoc2hvdWxkQWRkVGFnKSB7XG4gICAgICAgIC8vIERlbGV0ZSBUYWcgaWYgYWxyZWFkeSBleGlzdGluZ1xuICAgICAgICBjb25zdCBmb3JtQ29udHJvbFZhbHVlID0gWy4uLih0aGlzLnZhbHVlID8/IFtdKV0uZmlsdGVyKHYgPT4gdiAhPT0gdGFnVG9BZGQpO1xuXG4gICAgICAgIHRoaXMudmFsdWUgPSBbLi4uZm9ybUNvbnRyb2xWYWx1ZSwgdGFnVG9BZGRdO1xuICAgICAgfVxuICAgIH07XG5cbiAgICAvLyBSZXNldCB0aGUgaW5wdXQgdmFsdWVcbiAgICBpZiAoaW5wdXQpIHtcbiAgICAgIGlucHV0LnZhbHVlID0gJyc7XG4gICAgfVxuXG4gICAgdGFnVmFsaWRhdGlvbkhvb2sodGFnVG9BZGQsIHZhbGlkYXRpb25DYik7XG4gIH1cblxuICBwdWJsaWMgcmVtb3ZlQ2hpcFRvRm9ybUNvbnRyb2wodGFnOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLnZhbHVlID0gWy4uLih0aGlzLnZhbHVlID8/IFtdKV0uZmlsdGVyKHYgPT4gdiAhPT0gdGFnKTtcbiAgICB0aGlzLmNoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcbiAgfVxuXG4gIHB1YmxpYyBvbkF1dG9jb21wbGV0ZVNlbGVjdChldmVudDogTWF0QXV0b2NvbXBsZXRlU2VsZWN0ZWRFdmVudCk6IHZvaWQge1xuICAgIHRoaXMuYWRkQ2hpcFRvRm9ybUNvbnRyb2woeyB2YWx1ZTogZXZlbnQub3B0aW9uLnZhbHVlIH0pO1xuICB9XG5cbiAgcHVibGljIG9uTWF0Q2hpcFRva2VuRW5kKCk6IHZvaWQge1xuICAgIC8vIEdpdmUgcHJpb3JpdHkgdG8gdGhlIGBvbkF1dG9jb21wbGV0ZVNlbGVjdGAgd2hlbiB2YWxpZGF0aW5nIHdpdGggdGhlIGJsdXIgZXZlbnRcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMuYWRkQ2hpcFRvRm9ybUNvbnRyb2woeyB2YWx1ZTogdGhpcy5fdGFnSW5wdXQ/Lm5hdGl2ZUVsZW1lbnQudmFsdWUgPz8gJycgfSk7XG4gICAgfSwgMTAwKTtcbiAgfVxuXG4gIHByaXZhdGUgaW5pdEF1dG9jb21wbGV0ZSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5fYXV0b2NvbXBsZXRlT3B0aW9ucyAmJiB0aGlzLl90YWdJbnB1dD8ubmF0aXZlRWxlbWVudCkge1xuICAgICAgdGhpcy5hdXRvY29tcGxldGVGaWx0ZXJlZE9wdGlvbnMkID0gZnJvbUV2ZW50KHRoaXMuX3RhZ0lucHV0Lm5hdGl2ZUVsZW1lbnQsICdrZXl1cCcpLnBpcGUoXG4gICAgICAgIHN0YXJ0V2l0aChbXSBhcyBzdHJpbmdbXSksXG4gICAgICAgIHN3aXRjaE1hcCgoKSA9PiB7XG4gICAgICAgICAgaWYgKHR5cGVvZiB0aGlzLl9hdXRvY29tcGxldGVPcHRpb25zID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fYXV0b2NvbXBsZXRlT3B0aW9ucyh0aGlzLl90YWdJbnB1dD8ubmF0aXZlRWxlbWVudC52YWx1ZSA/PyAnJykucGlwZShcbiAgICAgICAgICAgICAgbWFwKG9wdGlvbnMgPT4gc2FuaXRpemVBdXRvY29tcGxldGVPcHRpb25zKG9wdGlvbnMpKSxcbiAgICAgICAgICAgICAgLy8gQWRkIG9wdGlvbnMgdG8gZGlzcGxheVZhbHVlQ2FjaGUgdG8gYXZvaWQgY2FsbCBvbiBzZWxlY3RcbiAgICAgICAgICAgICAgdGFwKG9wdGlvbnMgPT4ge1xuICAgICAgICAgICAgICAgIG9wdGlvbnMuZm9yRWFjaChvcHRpb24gPT4ge1xuICAgICAgICAgICAgICAgICAgdGhpcy5kaXNwbGF5VmFsdWVDYWNoZVtvcHRpb24udmFsdWVdID0gb3B0aW9uLmxhYmVsO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBvZihkZWZhdWx0QXV0b2NvbXBsZXRlRmlsdGVyKHRoaXMuX2F1dG9jb21wbGV0ZU9wdGlvbnMgPz8gW10sIHRoaXMuX3RhZ0lucHV0Py5uYXRpdmVFbGVtZW50LnZhbHVlID8/ICcnKSk7XG4gICAgICAgIH0pLFxuXG4gICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgICApO1xuICAgICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxuICB9XG59XG5cbmNvbnN0IGRlZmF1bHRBdXRvY29tcGxldGVGaWx0ZXIgPSAoXG4gIG9wdGlvbnM6IEF1dG9jb21wbGV0ZU9wdGlvbnMsXG4gIHNlYXJjaDogc3RyaW5nLFxuKToge1xuICB2YWx1ZTogc3RyaW5nO1xuICBsYWJlbDogc3RyaW5nO1xufVtdID0+IHtcbiAgcmV0dXJuIHNhbml0aXplQXV0b2NvbXBsZXRlT3B0aW9ucyhvcHRpb25zKS5maWx0ZXIoXG4gICAgZGVmYXVsdEhlYWRlciA9PlxuICAgICAgZGVmYXVsdEhlYWRlci5sYWJlbC50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKChzZWFyY2ggPz8gJycpLnRvTG93ZXJDYXNlKCkpIHx8XG4gICAgICBkZWZhdWx0SGVhZGVyLnZhbHVlLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoKHNlYXJjaCA/PyAnJykudG9Mb3dlckNhc2UoKSksXG4gICk7XG59O1xuXG5jb25zdCBzYW5pdGl6ZUF1dG9jb21wbGV0ZU9wdGlvbnMgPSAoXG4gIG9wdGlvbnM6IEF1dG9jb21wbGV0ZU9wdGlvbnMsXG4pOiB7XG4gIHZhbHVlOiBzdHJpbmc7XG4gIGxhYmVsOiBzdHJpbmc7XG59W10gPT4ge1xuICByZXR1cm4gb3B0aW9ucy5tYXAob3B0aW9uID0+IHtcbiAgICBpZiAob3B0aW9uICYmIHR5cGVvZiBvcHRpb24gIT09ICdzdHJpbmcnICYmICd2YWx1ZScgaW4gb3B0aW9uICYmICdsYWJlbCcgaW4gb3B0aW9uKSB7XG4gICAgICByZXR1cm4gb3B0aW9uO1xuICAgIH1cbiAgICByZXR1cm4geyB2YWx1ZTogb3B0aW9uLCBsYWJlbDogb3B0aW9uIH07XG4gIH0pO1xufTtcbiIsIjwhLS1cblxuICAgIENvcHlyaWdodCAoQykgMjAxNSBUaGUgR3Jhdml0ZWUgdGVhbSAoaHR0cDovL2dyYXZpdGVlLmlvKVxuXG4gICAgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAgICB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gICAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG5cbiAgICAgICAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuXG4gICAgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICAgIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAgICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAgICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gICAgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG5cbi0tPlxuPG1hdC1jaGlwLWxpc3QgI3RhZ0NoaXBMaXN0IFthdHRyLmFyaWEtbGFiZWxdPVwiYXJpYUxhYmVsXCIgbXVsdGlwbGUgW2Rpc2FibGVkXT1cImRpc2FibGVkXCI+XG4gIDxtYXQtY2hpcCAqbmdGb3I9XCJsZXQgdGFnIG9mIHZhbHVlXCIgW3NlbGVjdGFibGVdPVwiZmFsc2VcIiBbcmVtb3ZhYmxlXT1cIiFkaXNhYmxlZFwiIChyZW1vdmVkKT1cInJlbW92ZUNoaXBUb0Zvcm1Db250cm9sKHRhZylcIj5cbiAgICB7eyBfZGlzcGxheVZhbHVlV2l0aCA/IChfZGlzcGxheVZhbHVlV2l0aCh0YWcpIHwgYXN5bmMpIDogdGFnIH19XG4gICAgPG1hdC1pY29uIG1hdENoaXBSZW1vdmU+Y2FuY2VsPC9tYXQtaWNvbj5cbiAgPC9tYXQtY2hpcD5cbiAgPGlucHV0XG4gICAgKm5nSWY9XCIhZGlzYWJsZWRcIlxuICAgICN0YWdJbnB1dFxuICAgIFttYXRBdXRvY29tcGxldGVEaXNhYmxlZF09XCIhX2F1dG9jb21wbGV0ZU9wdGlvbnNcIlxuICAgIFttYXRBdXRvY29tcGxldGVdPVwiYXV0b1wiXG4gICAgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCJcbiAgICBbbWF0Q2hpcElucHV0Rm9yXT1cInRhZ0NoaXBMaXN0XCJcbiAgICBbbWF0Q2hpcElucHV0QWRkT25CbHVyXT1cImFkZE9uQmx1clwiXG4gICAgKG1hdENoaXBJbnB1dFRva2VuRW5kKT1cIm9uTWF0Q2hpcFRva2VuRW5kKClcIlxuICAvPlxuICA8bWF0LWF1dG9jb21wbGV0ZSAjYXV0bz1cIm1hdEF1dG9jb21wbGV0ZVwiIChvcHRpb25TZWxlY3RlZCk9XCJvbkF1dG9jb21wbGV0ZVNlbGVjdCgkZXZlbnQpXCI+XG4gICAgPG1hdC1vcHRpb24gKm5nRm9yPVwibGV0IG9wdGlvbiBvZiBhdXRvY29tcGxldGVGaWx0ZXJlZE9wdGlvbnMkIHwgYXN5bmNcIiBbdmFsdWVdPVwib3B0aW9uLnZhbHVlXCI+XG4gICAgICB7eyBvcHRpb24ubGFiZWwgfX1cbiAgICA8L21hdC1vcHRpb24+XG4gIDwvbWF0LWF1dG9jb21wbGV0ZT5cbjwvbWF0LWNoaXAtbGlzdD5cbiJdfQ==
292
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2lvLWZvcm0tdGFncy1pbnB1dC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS1wYXJ0aWNsZXMtYW5ndWxhci9zcmMvbGliL2dpby1mb3JtLXRhZ3MtaW5wdXQvZ2lvLWZvcm0tdGFncy1pbnB1dC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS1wYXJ0aWNsZXMtYW5ndWxhci9zcmMvbGliL2dpby1mb3JtLXRhZ3MtaW5wdXQvZ2lvLWZvcm0tdGFncy1pbnB1dC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFrQkEsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDOUQsT0FBTyxFQUFxQixTQUFTLEVBQXVCLFdBQVcsRUFBRSxLQUFLLEVBQWEsUUFBUSxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHNUksT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDbkUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUNqQyxPQUFPLEVBQUUsU0FBUyxFQUFjLEVBQUUsRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDMUQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7Ozs7Ozs7QUFtQnRGLE1BQU0sT0FBTyx5QkFBeUI7SUFxS3BDO0lBQ0Usc0NBQXNDO0lBQ0YsU0FBb0IsRUFDdkMsS0FBaUIsRUFDakIsRUFBZ0IsRUFDekIsaUJBQW9DO1FBSFIsY0FBUyxHQUFULFNBQVMsQ0FBVztRQUN2QyxVQUFLLEdBQUwsS0FBSyxDQUFZO1FBQ2pCLE9BQUUsR0FBRixFQUFFLENBQWM7UUFDekIsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFt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RSxLQUFLLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsQ0FBQztJQUMxQyxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKEMpIDIwMTUgVGhlIEdyYXZpdGVlIHRlYW0gKGh0dHA6Ly9ncmF2aXRlZS5pbylcbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L2V4cGxpY2l0LW1lbWJlci1hY2Nlc3NpYmlsaXR5XG5cbmltcG9ydCB7IEZvY3VzTW9uaXRvciB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9hMTF5JztcbmltcG9ydCB7IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2VyY2lvbic7XG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBEb0NoZWNrLCBFbGVtZW50UmVmLCBIb3N0QmluZGluZywgSW5wdXQsIE9uRGVzdHJveSwgT3B0aW9uYWwsIFNlbGYsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE5nQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE1hdEF1dG9jb21wbGV0ZVNlbGVjdGVkRXZlbnQgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9hdXRvY29tcGxldGUnO1xuaW1wb3J0IHsgTWF0Rm9ybUZpZWxkQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2Zvcm0tZmllbGQnO1xuaW1wb3J0IHsgaXNFbXB0eSB9IGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgeyBmcm9tRXZlbnQsIE9ic2VydmFibGUsIG9mLCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgbWFwLCBzdGFydFdpdGgsIHN3aXRjaE1hcCwgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5leHBvcnQgdHlwZSBUYWdzID0gQXJyYXk8c3RyaW5nPjtcblxuZXhwb3J0IHR5cGUgQXV0b2NvbXBsZXRlT3B0aW9ucyA9IChzdHJpbmcgfCB7IHZhbHVlOiBzdHJpbmc7IGxhYmVsOiBzdHJpbmcgfSlbXTtcblxuZXhwb3J0IHR5cGUgRGlzcGxheVZhbHVlV2l0aEZuID0gKHZhbHVlOiBzdHJpbmcpID0+IE9ic2VydmFibGU8c3RyaW5nPjtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZ2lvLWZvcm0tdGFncy1pbnB1dCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9naW8tZm9ybS10YWdzLWlucHV0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZ2lvLWZvcm0tdGFncy1pbnB1dC5jb21wb25lbnQuc2NzcyddLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBNYXRGb3JtRmllbGRDb250cm9sLFxuICAgICAgdXNlRXhpc3Rpbmc6IEdpb0Zvcm1UYWdzSW5wdXRDb21wb25lbnQsXG4gICAgfSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgR2lvRm9ybVRhZ3NJbnB1dENvbXBvbmVudCBpbXBsZW1lbnRzIE1hdEZvcm1GaWVsZENvbnRyb2w8VGFncz4sIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBEb0NoZWNrLCBPbkRlc3Ryb3kge1xuICBwcml2YXRlIHN0YXRpYyBuZXh0SWQgPSAwO1xuXG4gIHB1YmxpYyBfb25DaGFuZ2U6IChfdGFnczogVGFncyB8IG51bGwpID0+IHZvaWQgPSAoKSA9PiAoe30pO1xuXG4gIHB1YmxpYyBfb25Ub3VjaGVkOiAoKSA9PiB2b2lkID0gKCkgPT4gKHt9KTtcbiAgcHJpdmF0ZSB0b3VjaGVkID0gZmFsc2U7XG5cbiAgQElucHV0KCdhcmlhLWxhYmVsJylcbiAgcHVibGljIGFyaWFMYWJlbCA9ICcnO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBhZGRPbkJsdXIgPSB0cnVlO1xuXG4gIC8qKlxuICAgKiBGdW5jdGlvbiBjYWxsZWQgZWFjaCB0aW1lIGEgdGFnIGlzIGFkZGVkLCBpdCBjYW4gYmUgdXNlZCB0byBob29rIGluc2lkZSB0aGVcbiAgICogYWRkaXRpb24gcHJvY2VzcyB0bywgZm9yIGluc3RhbmNlLCBoYXZlIGN1c3RvbSB2YWxpZGF0aW9uIGluIHRoZSBjb21wb25lbnRzXG4gICAqIHVzaW5nIGBnaW8tZm9ybS10YWdzLWlucHV0YC5cbiAgICpcbiAgICogUGFyYW1ldGVycyBhcmU6XG4gICAqIC0gYHRhZ2A6IFRoZSB2YWx1ZSBvZiB0aGUgdGFnIHRvIGFkZFxuICAgKiAtIGB2YWxpZGF0aW9uQ2JgOiBUaGUgY2FsbGJhY2sgZnVuY3Rpb24gdG8gY2FsbCB3aGVuIHZhbGlkYXRpb24gaXMgZG9uZS4gSWZcbiAgICogY2FsbGVkIHdpdGggYHRydWVgIGl0IHdpbGwgYWRkIHRoZSB0YWcsIG90aGVyd2lzZSBpdCB3aWxsIGp1c3QgaWdub3JlIGl0XG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgdGFnVmFsaWRhdGlvbkhvb2s6ICgodGFnOiBzdHJpbmcsIHZhbGlkYXRpb25DYjogKHNob3VsZEFkZFRhZzogYm9vbGVhbikgPT4gdm9pZCkgPT4gdm9pZCkgfCB1bmRlZmluZWQgPSB1bmRlZmluZWQ7XG5cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBhdXRvY29tcGxldGVPcHRpb25zKHY6IEF1dG9jb21wbGV0ZU9wdGlvbnMgfCAoKHNlYXJjaDogc3RyaW5nKSA9PiBPYnNlcnZhYmxlPEF1dG9jb21wbGV0ZU9wdGlvbnM+KSB8IHVuZGVmaW5lZCkge1xuICAgIHRoaXMuX2F1dG9jb21wbGV0ZU9wdGlvbnMgPSB2O1xuICAgIHRoaXMuaW5pdEF1dG9jb21wbGV0ZSgpO1xuICB9XG4gIHB1YmxpYyBfYXV0b2NvbXBsZXRlT3B0aW9ucz86IEF1dG9jb21wbGV0ZU9wdGlvbnMgfCAoKHNlYXJjaDogc3RyaW5nKSA9PiBPYnNlcnZhYmxlPEF1dG9jb21wbGV0ZU9wdGlvbnM+KTtcblxuICAvKipcbiAgICogR2V0IHRoZSBsYWJlbCBvZiBhbiBvcHRpb24gdmFsdWUuXG4gICAqIFRvIHVzZSB3aXRoIGF1dG9jb21wbGV0ZU9wdGlvbnMgbGFiZWwgJiB2YWx1ZSBtb2RlLlxuICAgKiBGdW5jdGlvbiBjYWxsZWQgZWFjaCB0aW1lIGEgdGFnIG5lZWRzIHRvIGJlIGRpc3BsYXllZCBpZCBkZWZpbmVkLlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBkaXNwbGF5VmFsdWVXaXRoKGRpc3BsYXlWYWx1ZVdpdGg6IERpc3BsYXlWYWx1ZVdpdGhGbikge1xuICAgIHRoaXMuX2Rpc3BsYXlWYWx1ZVdpdGggPSAodmFsdWU6IHN0cmluZykgPT4ge1xuICAgICAgaWYgKHRoaXMuZGlzcGxheVZhbHVlQ2FjaGVbdmFsdWVdKSB7XG4gICAgICAgIHJldHVybiBvZih0aGlzLmRpc3BsYXlWYWx1ZUNhY2hlW3ZhbHVlXSk7XG4gICAgICB9XG4gICAgICByZXR1cm4gZGlzcGxheVZhbHVlV2l0aCh2YWx1ZSkucGlwZShcbiAgICAgICAgdGFwKGxhYmVsID0+IHtcbiAgICAgICAgICB0aGlzLmRpc3BsYXlWYWx1ZUNhY2hlW3ZhbHVlXSA9IGxhYmVsO1xuICAgICAgICB9KSxcbiAgICAgICk7XG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgdG8gdHJ1ZSB0byBmb3JjZSB0aGUgY2hpcCB0byBiZSBwYXJ0IG9mIHRoZSBhdXRvY29tcGxldGUgb3B0aW9ucy5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyB1c2VBdXRvY29tcGxldGVPcHRpb25WYWx1ZU9ubHkgPSBmYWxzZTtcblxuICBAVmlld0NoaWxkKCd0YWdJbnB1dCcpXG4gIHB1YmxpYyBzZXQgdGFnSW5wdXQodjogRWxlbWVudFJlZjxIVE1MSW5wdXRFbGVtZW50PiB8IG51bGwpIHtcbiAgICB0aGlzLl90YWdJbnB1dCA9IHY7XG4gICAgdGhpcy5pbml0QXV0b2NvbXBsZXRlKCk7XG4gIH1cbiAgcHJpdmF0ZSBfdGFnSW5wdXQ6IEVsZW1lbnRSZWY8SFRNTElucHV0RWxlbWVudD4gfCBudWxsID0gbnVsbDtcblxuICAvLyBGcm9tIENvbnRyb2xWYWx1ZUFjY2Vzc29yIGludGVyZmFjZVxuICBwdWJsaWMgZ2V0IHZhbHVlKCk6IFRhZ3MgfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy5fdmFsdWU7XG4gIH1cblxuICBwdWJsaWMgc2V0IHZhbHVlKF90YWdzOiBUYWdzIHwgbnVsbCkge1xuICAgIHRoaXMuX3ZhbHVlID0gX3RhZ3M7XG4gICAgdGhpcy5fb25DaGFuZ2UoX3RhZ3MpO1xuICAgIHRoaXMuc3RhdGVDaGFuZ2VzLm5leHQoKTtcbiAgfVxuXG4gIHByaXZhdGUgX3ZhbHVlOiBUYWdzIHwgbnVsbCA9IG51bGw7XG5cbiAgLy8gRnJvbSBDb250cm9sVmFsdWVBY2Nlc3NvciBpbnRlcmZhY2VcbiAgcHVibGljIHN0YXRlQ2hhbmdlcyA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgLy8gRnJvbSBDb250cm9sVmFsdWVBY2Nlc3NvciBpbnRlcmZhY2VcbiAgQEhvc3RCaW5kaW5nKCdpZCcpXG4gIHB1YmxpYyBpZCA9IGBnaW8tZm9ybS10YWdzLWlucHV0LSR7R2lvRm9ybVRhZ3NJbnB1dENvbXBvbmVudC5uZXh0SWQrK31gO1xuXG4gIC8vIEZyb20gQ29udHJvbFZhbHVlQWNjZXNzb3IgaW50ZXJmYWNlXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBnZXQgcGxhY2Vob2xkZXIoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5fcGxhY2Vob2xkZXI7XG4gIH1cblxuICBwdWJsaWMgc2V0IHBsYWNlaG9sZGVyKHBsaDogc3RyaW5nKSB7XG4gICAgdGhpcy5fcGxhY2Vob2xkZXIgPSBwbGg7XG4gICAgdGhpcy5zdGF0ZUNoYW5nZXMubmV4dCgpO1xuICB9XG5cbiAgcHJpdmF0ZSBfcGxhY2Vob2xkZXIgPSAnJztcblxuICBwdWJsaWMgYXV0b2NvbXBsZXRlRmlsdGVyZWRPcHRpb25zJD86IE9ic2VydmFibGU8UmVjb3JkPHN0cmluZywgc3RyaW5nPltdPjtcblxuICAvLyBGcm9tIENvbnRyb2xWYWx1ZUFjY2Vzc29yIGludGVyZmFjZVxuICBwdWJsaWMgZm9jdXNlZCA9IGZhbHNlO1xuXG4gIC8vIEZyb20gQ29udHJvbFZhbHVlQWNjZXNzb3IgaW50ZXJmYWNlXG4gIHB1YmxpYyBnZXQgZW1wdHkoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGlzRW1wdHkodGhpcy52YWx1ZSkgJiYgaXNFbXB0eSh0aGlzLl90YWdJbnB1dD8ubmF0aXZlRWxlbWVudD8udmFsdWUpO1xuICB9XG5cbiAgLy8gRnJvbSBDb250cm9sVmFsdWVBY2Nlc3NvciBpbnRlcmZhY2VcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5mbG9hdGluZycpXG4gIHB1YmxpYyBnZXQgc2hvdWxkTGFiZWxGbG9hdCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5mb2N1c2VkIHx8ICF0aGlzLmVtcHR5O1xuICB9XG5cbiAgLy8gRnJvbSBDb250cm9sVmFsdWVBY2Nlc3NvciBpbnRlcmZhY2VcbiAgQElucHV0KClcbiAgcHVibGljIGdldCByZXF1aXJlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fcmVxdWlyZWQ7XG4gIH1cblxuICBwdWJsaWMgc2V0IHJlcXVpcmVkKHJlcTogYm9vbGVhbikge1xuICAgIHRoaXMuX3JlcXVpcmVkID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHJlcSk7XG4gICAgdGhpcy5zdGF0ZUNoYW5nZXMubmV4dCgpO1xuICB9XG5cbiAgcHJpdmF0ZSBfcmVxdWlyZWQgPSBmYWxzZTtcblxuICAvLyBGcm9tIENvbnRyb2xWYWx1ZUFjY2Vzc29yIGludGVyZmFjZVxuICBASW5wdXQoKVxuICBwdWJsaWMgZ2V0IGRpc2FibGVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9kaXNhYmxlZCB8fCAodGhpcy5uZ0NvbnRyb2wgJiYgdGhpcy5uZ0NvbnRyb2wuZGlzYWJsZWQgPT09IHRydWUpO1xuICB9XG5cbiAgcHVibGljIHNldCBkaXNhYmxlZChkaXM6IGJvb2xlYW4pIHtcbiAgICB0aGlzLl9kaXNhYmxlZCA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eShkaXMpO1xuICAgIHRoaXMuc3RhdGVDaGFuZ2VzLm5leHQoKTtcbiAgfVxuXG4gIHByaXZhdGUgX2Rpc2FibGVkID0gZmFsc2U7XG5cbiAgcHVibGljIF9kaXNwbGF5VmFsdWVXaXRoPzogKHZhbHVlOiBzdHJpbmcpID0+IE9ic2VydmFibGU8c3RyaW5nPjtcblxuICBwcml2YXRlIGRpc3BsYXlWYWx1ZUNhY2hlOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge307XG5cbiAgLy8gRnJvbSBDb250cm9sVmFsdWVBY2Nlc3NvciBpbnRlcmZhY2VcbiAgcHVibGljIGdldCBlcnJvclN0YXRlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAoXG4gICAgICB0aGlzLnRvdWNoZWQgJiZcbiAgICAgIC8vIGlmIHJlcXVpcmVkIGNoZWNrIGlmIGlzIGVtcHR5XG4gICAgICAoKHRoaXMucmVxdWlyZWQgJiYgdGhpcy5lbXB0eSkgfHxcbiAgICAgICAgLy8gaWYgdGhlcmUgaXMgYSB0b3VjaGVkIGNvbnRyb2wgY2hlY2sgaWYgdGhlcmUgaXMgYW4gZXJyb3JcbiAgICAgICAgKHRoaXMubmdDb250cm9sICYmIHRoaXMubmdDb250cm9sLnRvdWNoZWQgPT09IHRydWUgJiYgISF0aGlzLm5nQ29udHJvbC5lcnJvcnMpKVxuICAgICk7XG4gIH1cblxuICAvLyBGcm9tIENvbnRyb2xWYWx1ZUFjY2Vzc29yIGludGVyZmFjZVxuICBwdWJsaWMgY29udHJvbFR5cGU/OiBzdHJpbmc7XG5cbiAgLy8gRnJvbSBDb250cm9sVmFsdWVBY2Nlc3NvciBpbnRlcmZhY2VcbiAgcHVibGljIGF1dG9maWxsZWQ/OiBib29sZWFuO1xuXG4gIC8vIEZyb20gQ29udHJvbFZhbHVlQWNjZXNzb3IgaW50ZXJmYWNlXG4gIHB1YmxpYyB1c2VyQXJpYURlc2NyaWJlZEJ5Pzogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIC8vIEZyb20gQ29udHJvbFZhbHVlQWNjZXNzb3IgaW50ZXJmYWNlXG4gICAgQE9wdGlvbmFsKCkgQFNlbGYoKSBwdWJsaWMgcmVhZG9ubHkgbmdDb250cm9sOiBOZ0NvbnRyb2wsXG4gICAgcHJpdmF0ZSByZWFkb25seSBlbFJlZjogRWxlbWVudFJlZixcbiAgICBwcml2YXRlIHJlYWRvbmx5IGZtOiBGb2N1c01vbml0b3IsXG4gICAgcHJpdmF0ZSBjaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICkge1xuICAgIC8vIFJlcGxhY2UgdGhlIHByb3ZpZGVyIGZyb20gYWJvdmUgd2l0aCB0aGlzLlxuICAgIGlmICh0aGlzLm5nQ29udHJvbCAhPSBudWxsKSB7XG4gICAgICAvLyBTZXR0aW5nIHRoZSB2YWx1ZSBhY2Nlc3NvciBkaXJlY3RseSAoaW5zdGVhZCBvZiB1c2luZ1xuICAgICAgLy8gdGhlIHByb3ZpZGVycykgdG8gYXZvaWQgcnVubmluZyBpbnRvIGEgY2lyY3VsYXIgaW1wb3J0LlxuICAgICAgdGhpcy5uZ0NvbnRyb2wudmFsdWVBY2Nlc3NvciA9IHRoaXM7XG4gICAgfVxuXG4gICAgZm0ubW9uaXRvcihlbFJlZi5uYXRpdmVFbGVtZW50LCB0cnVlKS5zdWJzY3JpYmUob3JpZ2luID0+IHtcbiAgICAgIHRoaXMuZm9jdXNlZCA9ICEhb3JpZ2luO1xuICAgICAgdGhpcy5fb25Ub3VjaGVkKCk7XG4gICAgICB0aGlzLnRvdWNoZWQgPSB0cnVlO1xuICAgICAgdGhpcy5zdGF0ZUNoYW5nZXMubmV4dCgpO1xuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIG5nRG9DaGVjaygpOiB2b2lkIHtcbiAgICAvLyBzeW5jIGNvbnRyb2wgdG91Y2hlZCB3aXRoIGxvY2FsIHRvdWNoZWRcbiAgICBpZiAodGhpcy5uZ0NvbnRyb2wgIT0gbnVsbCAmJiB0aGlzLnRvdWNoZWQgIT09IHRoaXMubmdDb250cm9sLnRvdWNoZWQpIHtcbiAgICAgIHRoaXMudG91Y2hlZCA9IHRoaXMubmdDb250cm9sLnRvdWNoZWQgPT09IHRydWU7XG4gICAgICB0aGlzLnN0YXRlQ2hhbmdlcy5uZXh0KCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuc3RhdGVDaGFuZ2VzLmNvbXBsZXRlKCk7XG4gICAgdGhpcy5mbS5zdG9wTW9uaXRvcmluZyh0aGlzLmVsUmVmLm5hdGl2ZUVsZW1lbnQpO1xuICB9XG5cbiAgLy8gRnJvbSBDb250cm9sVmFsdWVBY2Nlc3NvciBpbnRlcmZhY2VcbiAgcHVibGljIHdyaXRlVmFsdWUodmFsdWU6IHN0cmluZ1tdKTogdm9pZCB7XG4gICAgdGhpcy5fdmFsdWUgPSB2YWx1ZTtcbiAgfVxuXG4gIC8vIEZyb20gQ29udHJvbFZhbHVlQWNjZXNzb3IgaW50ZXJmYWNlXG4gIHB1YmxpYyByZWdpc3Rlck9uQ2hhbmdlKGZuOiAodGFnczogVGFncyB8IG51bGwpID0+IHZvaWQpOiB2b2lkIHtcbiAgICB0aGlzLl9vbkNoYW5nZSA9IGZuO1xuICB9XG5cbiAgLy8gRnJvbSBDb250cm9sVmFsdWVBY2Nlc3NvciBpbnRlcmZhY2VcbiAgcHVibGljIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiAoKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgdGhpcy5fb25Ub3VjaGVkID0gZm47XG4gIH1cblxuICAvLyBGcm9tIENvbnRyb2xWYWx1ZUFjY2Vzc29yIGludGVyZmFjZVxuICBASG9zdEJpbmRpbmcoJ2F0dHIuYXJpYS1kZXNjcmliZWRieScpXG4gIHB1YmxpYyBkZXNjcmliZWRCeSA9ICcnO1xuXG4gIHB1YmxpYyBzZXREZXNjcmliZWRCeUlkcyhpZHM6IHN0cmluZ1tdKTogdm9pZCB7XG4gICAgdGhpcy5kZXNjcmliZWRCeSA9IGlkcy5qb2luKCcgJyk7XG4gIH1cblxuICAvLyBGcm9tIENvbnRyb2xWYWx1ZUFjY2Vzc29yIGludGVyZmFjZVxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzLCBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZW1wdHktZnVuY3Rpb25cbiAgcHVibGljIG9uQ29udGFpbmVyQ2xpY2soX2V2ZW50OiBNb3VzZUV2ZW50KTogdm9pZCB7fVxuXG4gIHB1YmxpYyBhZGRDaGlwVG9Gb3JtQ29udHJvbChldmVudDogeyB2YWx1ZTogc3RyaW5nIH0pOiB2b2lkIHtcbiAgICBjb25zdCBpbnB1dCA9IHRoaXMuX3RhZ0lucHV0Py5uYXRpdmVFbGVtZW50O1xuICAgIGNvbnN0IHRhZ1RvQWRkID0gKGV2ZW50LnZhbHVlID8/ICcnKS50cmltKCk7XG5cbiAgICBpZiAoaXNFbXB0eSh0YWdUb0FkZCkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyBBZGQgdGhlIHRhZyBvbmx5IGlmIHNob3VsZEFkZFRhZyBpbiB2YWxpZGF0aW9uQ2IgcmV0dXJuIHRydWVcbiAgICAvLyBTZXQgZGVmYXVsdCBjYWxsYmFjayBpZiBub3QgZGVmaW5lZFxuICAgIGNvbnN0IHRhZ1ZhbGlkYXRpb25Ib29rID0gdGhpcy50YWdWYWxpZGF0aW9uSG9vayA/PyAoKF8sIHZhbGlkYXRpb25DYikgPT4gdmFsaWRhdGlvbkNiKHRydWUpKTtcblxuICAgIGNvbnN0IHZhbGlkYXRpb25DYiA9IChzaG91bGRBZGRUYWc6IGJvb2xlYW4pID0+IHtcbiAgICAgIC8vIEFkZCBuZXcgVGFnIGluIGZvcm0gY29udHJvbFxuICAgICAgaWYgKHNob3VsZEFkZFRhZykge1xuICAgICAgICAvLyBEZWxldGUgVGFnIGlmIGFscmVhZHkgZXhpc3RpbmdcbiAgICAgICAgY29uc3QgZm9ybUNvbnRyb2xWYWx1ZSA9IFsuLi4odGhpcy52YWx1ZSA/PyBbXSldLmZpbHRlcih2ID0+IHYgIT09IHRhZ1RvQWRkKTtcblxuICAgICAgICB0aGlzLnZhbHVlID0gWy4uLmZvcm1Db250cm9sVmFsdWUsIHRhZ1RvQWRkXTtcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgLy8gUmVzZXQgdGhlIGlucHV0IHZhbHVlXG4gICAgaWYgKGlucHV0KSB7XG4gICAgICBpbnB1dC52YWx1ZSA9ICcnO1xuICAgIH1cblxuICAgIHRhZ1ZhbGlkYXRpb25Ib29rKHRhZ1RvQWRkLCB2YWxpZGF0aW9uQ2IpO1xuICB9XG5cbiAgcHVibGljIHJlbW92ZUNoaXBUb0Zvcm1Db250cm9sKHRhZzogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy52YWx1ZSA9IFsuLi4odGhpcy52YWx1ZSA/PyBbXSldLmZpbHRlcih2ID0+IHYgIT09IHRhZyk7XG4gICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gIH1cblxuICBwdWJsaWMgb25BdXRvY29tcGxldGVTZWxlY3QoZXZlbnQ6IE1hdEF1dG9jb21wbGV0ZVNlbGVjdGVkRXZlbnQpOiB2b2lkIHtcbiAgICB0aGlzLmFkZENoaXBUb0Zvcm1Db250cm9sKHsgdmFsdWU6IGV2ZW50Lm9wdGlvbi52YWx1ZSB9KTtcbiAgfVxuXG4gIHB1YmxpYyBvbk1hdENoaXBUb2tlbkVuZCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy51c2VBdXRvY29tcGxldGVPcHRpb25WYWx1ZU9ubHkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgLy8gR2l2ZSBwcmlvcml0eSB0byB0aGUgYG9uQXV0b2NvbXBsZXRlU2VsZWN0YCB3aGVuIHZhbGlkYXRpbmcgd2l0aCB0aGUgYmx1ciBldmVudFxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5hZGRDaGlwVG9Gb3JtQ29udHJvbCh7IHZhbHVlOiB0aGlzLl90YWdJbnB1dD8ubmF0aXZlRWxlbWVudC52YWx1ZSA/PyAnJyB9KTtcbiAgICB9LCAxMDApO1xuICB9XG5cbiAgcHJpdmF0ZSBpbml0QXV0b2NvbXBsZXRlKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLl9hdXRvY29tcGxldGVPcHRpb25zICYmIHRoaXMuX3RhZ0lucHV0Py5uYXRpdmVFbGVtZW50KSB7XG4gICAgICB0aGlzLmF1dG9jb21wbGV0ZUZpbHRlcmVkT3B0aW9ucyQgPSBmcm9tRXZlbnQodGhpcy5fdGFnSW5wdXQubmF0aXZlRWxlbWVudCwgJ2tleXVwJykucGlwZShcbiAgICAgICAgc3RhcnRXaXRoKFtdIGFzIHN0cmluZ1tdKSxcbiAgICAgICAgc3dpdGNoTWFwKCgpID0+IHtcbiAgICAgICAgICBpZiAodHlwZW9mIHRoaXMuX2F1dG9jb21wbGV0ZU9wdGlvbnMgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9hdXRvY29tcGxldGVPcHRpb25zKHRoaXMuX3RhZ0lucHV0Py5uYXRpdmVFbGVtZW50LnZhbHVlID8/ICcnKS5waXBlKFxuICAgICAgICAgICAgICBtYXAob3B0aW9ucyA9PiBzYW5pdGl6ZUF1dG9jb21wbGV0ZU9wdGlvbnMob3B0aW9ucykpLFxuICAgICAgICAgICAgICAvLyBBZGQgb3B0aW9ucyB0byBkaXNwbGF5VmFsdWVDYWNoZSB0byBhdm9pZCBjYWxsIG9uIHNlbGVjdFxuICAgICAgICAgICAgICB0YXAob3B0aW9ucyA9PiB7XG4gICAgICAgICAgICAgICAgb3B0aW9ucy5mb3JFYWNoKG9wdGlvbiA9PiB7XG4gICAgICAgICAgICAgICAgICB0aGlzLmRpc3BsYXlWYWx1ZUNhY2hlW29wdGlvbi52YWx1ZV0gPSBvcHRpb24ubGFiZWw7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIG9mKGRlZmF1bHRBdXRvY29tcGxldGVGaWx0ZXIodGhpcy5fYXV0b2NvbXBsZXRlT3B0aW9ucyA/PyBbXSwgdGhpcy5fdGFnSW5wdXQ/Lm5hdGl2ZUVsZW1lbnQudmFsdWUgPz8gJycpKTtcbiAgICAgICAgfSksXG5cbiAgICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICAgICk7XG4gICAgICB0aGlzLmNoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcbiAgICB9XG4gIH1cbn1cblxuY29uc3QgZGVmYXVsdEF1dG9jb21wbGV0ZUZpbHRlciA9IChcbiAgb3B0aW9uczogQXV0b2NvbXBsZXRlT3B0aW9ucyxcbiAgc2VhcmNoOiBzdHJpbmcsXG4pOiB7XG4gIHZhbHVlOiBzdHJpbmc7XG4gIGxhYmVsOiBzdHJpbmc7XG59W10gPT4ge1xuICByZXR1cm4gc2FuaXRpemVBdXRvY29tcGxldGVPcHRpb25zKG9wdGlvbnMpLmZpbHRlcihcbiAgICBkZWZhdWx0SGVhZGVyID0+XG4gICAgICBkZWZhdWx0SGVhZGVyLmxhYmVsLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoKHNlYXJjaCA/PyAnJykudG9Mb3dlckNhc2UoKSkgfHxcbiAgICAgIGRlZmF1bHRIZWFkZXIudmFsdWUudG9Mb3dlckNhc2UoKS5pbmNsdWRlcygoc2VhcmNoID8/ICcnKS50b0xvd2VyQ2FzZSgpKSxcbiAgKTtcbn07XG5cbmNvbnN0IHNhbml0aXplQXV0b2NvbXBsZXRlT3B0aW9ucyA9IChcbiAgb3B0aW9uczogQXV0b2NvbXBsZXRlT3B0aW9ucyxcbik6IHtcbiAgdmFsdWU6IHN0cmluZztcbiAgbGFiZWw6IHN0cmluZztcbn1bXSA9PiB7XG4gIHJldHVybiBvcHRpb25zLm1hcChvcHRpb24gPT4ge1xuICAgIGlmIChvcHRpb24gJiYgdHlwZW9mIG9wdGlvbiAhPT0gJ3N0cmluZycgJiYgJ3ZhbHVlJyBpbiBvcHRpb24gJiYgJ2xhYmVsJyBpbiBvcHRpb24pIHtcbiAgICAgIHJldHVybiBvcHRpb247XG4gICAgfVxuICAgIHJldHVybiB7IHZhbHVlOiBvcHRpb24sIGxhYmVsOiBvcHRpb24gfTtcbiAgfSk7XG59O1xuIiwiPCEtLVxuXG4gICAgQ29weXJpZ2h0IChDKSAyMDE1IFRoZSBHcmF2aXRlZSB0ZWFtIChodHRwOi8vZ3Jhdml0ZWUuaW8pXG5cbiAgICBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICAgIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAgICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcblxuICAgICAgICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG5cbiAgICBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gICAgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICAgIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICAgIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAgICBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cblxuLS0+XG48bWF0LWNoaXAtbGlzdCAjdGFnQ2hpcExpc3QgW2F0dHIuYXJpYS1sYWJlbF09XCJhcmlhTGFiZWxcIiBtdWx0aXBsZSBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIj5cbiAgPG1hdC1jaGlwICpuZ0Zvcj1cImxldCB0YWcgb2YgdmFsdWVcIiBbc2VsZWN0YWJsZV09XCJmYWxzZVwiIFtyZW1vdmFibGVdPVwiIWRpc2FibGVkXCIgKHJlbW92ZWQpPVwicmVtb3ZlQ2hpcFRvRm9ybUNvbnRyb2wodGFnKVwiPlxuICAgIHt7IF9kaXNwbGF5VmFsdWVXaXRoID8gKF9kaXNwbGF5VmFsdWVXaXRoKHRhZykgfCBhc3luYykgOiB0YWcgfX1cbiAgICA8bWF0LWljb24gbWF0Q2hpcFJlbW92ZT5jYW5jZWw8L21hdC1pY29uPlxuICA8L21hdC1jaGlwPlxuICA8aW5wdXRcbiAgICAqbmdJZj1cIiFkaXNhYmxlZFwiXG4gICAgI3RhZ0lucHV0XG4gICAgW21hdEF1dG9jb21wbGV0ZURpc2FibGVkXT1cIiFfYXV0b2NvbXBsZXRlT3B0aW9uc1wiXG4gICAgW21hdEF1dG9jb21wbGV0ZV09XCJhdXRvXCJcbiAgICBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIlxuICAgIFttYXRDaGlwSW5wdXRGb3JdPVwidGFnQ2hpcExpc3RcIlxuICAgIFttYXRDaGlwSW5wdXRBZGRPbkJsdXJdPVwiYWRkT25CbHVyXCJcbiAgICAobWF0Q2hpcElucHV0VG9rZW5FbmQpPVwib25NYXRDaGlwVG9rZW5FbmQoKVwiXG4gIC8+XG4gIDxtYXQtYXV0b2NvbXBsZXRlICNhdXRvPVwibWF0QXV0b2NvbXBsZXRlXCIgKG9wdGlvblNlbGVjdGVkKT1cIm9uQXV0b2NvbXBsZXRlU2VsZWN0KCRldmVudClcIj5cbiAgICA8bWF0LW9wdGlvbiAqbmdGb3I9XCJsZXQgb3B0aW9uIG9mIGF1dG9jb21wbGV0ZUZpbHRlcmVkT3B0aW9ucyQgfCBhc3luY1wiIFt2YWx1ZV09XCJvcHRpb24udmFsdWVcIj5cbiAgICAgIHt7IG9wdGlvbi5sYWJlbCB9fVxuICAgIDwvbWF0LW9wdGlvbj5cbiAgPC9tYXQtYXV0b2NvbXBsZXRlPlxuPC9tYXQtY2hpcC1saXN0PlxuIl19
@@ -540,6 +540,10 @@ class GioFormTagsInputComponent {
540
540
  * called with `true` it will add the tag, otherwise it will just ignore it
541
541
  */
542
542
  this.tagValidationHook = undefined;
543
+ /**
544
+ * Set to true to force the chip to be part of the autocomplete options.
545
+ */
546
+ this.useAutocompleteOptionValueOnly = false;
543
547
  this._tagInput = null;
544
548
  this._value = null;
545
549
  // From ControlValueAccessor interface
@@ -703,6 +707,9 @@ class GioFormTagsInputComponent {
703
707
  this.addChipToFormControl({ value: event.option.value });
704
708
  }
705
709
  onMatChipTokenEnd() {
710
+ if (this.useAutocompleteOptionValueOnly) {
711
+ return;
712
+ }
706
713
  // Give priority to the `onAutocompleteSelect` when validating with the blur event
707
714
  setTimeout(() => {
708
715
  var _a, _b;
@@ -731,7 +738,7 @@ class GioFormTagsInputComponent {
731
738
  }
732
739
  GioFormTagsInputComponent.nextId = 0;
733
740
  GioFormTagsInputComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GioFormTagsInputComponent, deps: [{ token: i7.NgControl, optional: true, self: true }, { token: i0.ElementRef }, { token: i2$2.FocusMonitor }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
734
- GioFormTagsInputComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: GioFormTagsInputComponent, selector: "gio-form-tags-input", inputs: { ariaLabel: ["aria-label", "ariaLabel"], addOnBlur: "addOnBlur", tagValidationHook: "tagValidationHook", autocompleteOptions: "autocompleteOptions", displayValueWith: "displayValueWith", placeholder: "placeholder", required: "required", disabled: "disabled" }, host: { properties: { "id": "this.id", "class.floating": "this.shouldLabelFloat", "attr.aria-describedby": "this.describedBy" } }, providers: [
741
+ GioFormTagsInputComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: GioFormTagsInputComponent, selector: "gio-form-tags-input", inputs: { ariaLabel: ["aria-label", "ariaLabel"], addOnBlur: "addOnBlur", tagValidationHook: "tagValidationHook", autocompleteOptions: "autocompleteOptions", displayValueWith: "displayValueWith", useAutocompleteOptionValueOnly: "useAutocompleteOptionValueOnly", placeholder: "placeholder", required: "required", disabled: "disabled" }, host: { properties: { "id": "this.id", "class.floating": "this.shouldLabelFloat", "attr.aria-describedby": "this.describedBy" } }, providers: [
735
742
  {
736
743
  provide: MatFormFieldControl,
737
744
  useExisting: GioFormTagsInputComponent,
@@ -762,6 +769,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
762
769
  type: Input
763
770
  }], displayValueWith: [{
764
771
  type: Input
772
+ }], useAutocompleteOptionValueOnly: [{
773
+ type: Input
765
774
  }], tagInput: [{
766
775
  type: ViewChild,
767
776
  args: ['tagInput']