@odx/angular 6.0.1 → 6.1.0

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.
Files changed (49) hide show
  1. package/CHANGELOG.md +15 -0
  2. package/cdk/dynamic-view/lib/tokens/dynamic-view-context.d.ts +4 -0
  3. package/cdk/dynamic-view/lib/tokens/dynamic-view-default-host.d.ts +10 -0
  4. package/components/autocomplete/lib/autocomplete.component.d.ts +1 -0
  5. package/components/checkbox/lib/checkbox.component.d.ts +1 -1
  6. package/components/radio-group/lib/components/radio-button/radio-button.component.d.ts +18 -1
  7. package/components/toast/lib/components/toast-item/toast-item.component.d.ts +5 -4
  8. package/components/toast/lib/models/toast.d.ts +4 -2
  9. package/components/tooltip/lib/helpers/resolve-tooltip-trigger-events.d.ts +7 -0
  10. package/esm2022/cdk/autocomplete-control/lib/autocomplete-control.mjs +2 -2
  11. package/esm2022/cdk/dynamic-view/lib/tokens/dynamic-view-context.mjs +5 -1
  12. package/esm2022/cdk/dynamic-view/lib/tokens/dynamic-view-default-host.mjs +11 -1
  13. package/esm2022/components/autocomplete/lib/autocomplete.component.mjs +12 -5
  14. package/esm2022/components/checkbox/lib/checkbox.component.mjs +2 -2
  15. package/esm2022/components/radio-group/lib/components/radio-button/radio-button.component.mjs +20 -3
  16. package/esm2022/components/select/lib/components/select-option/select-option.component.mjs +4 -3
  17. package/esm2022/components/select/lib/select.component.mjs +4 -4
  18. package/esm2022/components/tab-bar/lib/tab-bar.component.mjs +2 -1
  19. package/esm2022/components/toast/lib/components/toast-container/toast-container.component.mjs +3 -3
  20. package/esm2022/components/toast/lib/components/toast-item/toast-item.component.mjs +5 -3
  21. package/esm2022/components/toast/lib/models/toast.mjs +1 -1
  22. package/esm2022/components/tooltip/lib/helpers/resolve-tooltip-trigger-events.mjs +8 -1
  23. package/esm2022/internal/lib/helpers/decorator-property-name.mjs +9 -1
  24. package/esm2022/localization/lib/models/localization-feature.mjs +8 -1
  25. package/fesm2022/odx-angular-cdk-autocomplete-control.mjs +1 -1
  26. package/fesm2022/odx-angular-cdk-autocomplete-control.mjs.map +1 -1
  27. package/fesm2022/odx-angular-cdk-dynamic-view.mjs +14 -0
  28. package/fesm2022/odx-angular-cdk-dynamic-view.mjs.map +1 -1
  29. package/fesm2022/odx-angular-components-autocomplete.mjs +11 -4
  30. package/fesm2022/odx-angular-components-autocomplete.mjs.map +1 -1
  31. package/fesm2022/odx-angular-components-checkbox.mjs +1 -1
  32. package/fesm2022/odx-angular-components-checkbox.mjs.map +1 -1
  33. package/fesm2022/odx-angular-components-radio-group.mjs +19 -2
  34. package/fesm2022/odx-angular-components-radio-group.mjs.map +1 -1
  35. package/fesm2022/odx-angular-components-select.mjs +5 -5
  36. package/fesm2022/odx-angular-components-select.mjs.map +1 -1
  37. package/fesm2022/odx-angular-components-tab-bar.mjs +1 -0
  38. package/fesm2022/odx-angular-components-tab-bar.mjs.map +1 -1
  39. package/fesm2022/odx-angular-components-toast.mjs +6 -4
  40. package/fesm2022/odx-angular-components-toast.mjs.map +1 -1
  41. package/fesm2022/odx-angular-components-tooltip.mjs +7 -0
  42. package/fesm2022/odx-angular-components-tooltip.mjs.map +1 -1
  43. package/fesm2022/odx-angular-internal.mjs +8 -0
  44. package/fesm2022/odx-angular-internal.mjs.map +1 -1
  45. package/fesm2022/odx-angular-localization.mjs +7 -0
  46. package/fesm2022/odx-angular-localization.mjs.map +1 -1
  47. package/internal/lib/helpers/decorator-property-name.d.ts +8 -0
  48. package/localization/lib/models/localization-feature.d.ts +7 -0
  49. package/package.json +1 -1
@@ -100,7 +100,7 @@ export let SelectComponent = class SelectComponent extends AutocompleteControl {
100
100
  const value = this.multiple ? this.multipleSelectValueResolver(option) : option.value;
101
101
  this.updateValue(value ?? null);
102
102
  }
103
- !this.multiple && this.closeDropdown();
103
+ !this.multiple && !option?.disabled && this.closeDropdown();
104
104
  }
105
105
  /**
106
106
  * Checks whether a given option is selected.
@@ -134,9 +134,9 @@ export let SelectComponent = class SelectComponent extends AutocompleteControl {
134
134
  this.searchField?.valueChange$.pipe(this.takeUntilDestroyed()).subscribe(() => this.triggerControllerChange());
135
135
  }
136
136
  handleControllerEvent(event) {
137
- if (this.isLoading || this.readonlyController?.readonly)
137
+ if (this.isLoading || this.readonlyController?.readonly || !this.isOpen)
138
138
  return;
139
- if (this.isOpen && this.hasOptions) {
139
+ if (this.hasOptions) {
140
140
  if (event.key === 'Enter' || event.key === 'Tab') {
141
141
  event.preventDefault();
142
142
  event.stopImmediatePropagation();
@@ -257,4 +257,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
257
257
  type: HostListener,
258
258
  args: ['keydown', ['$event']]
259
259
  }] } });
260
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci9jb21wb25lbnRzL3NlbGVjdC9zcmMvbGliL3NlbGVjdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvY29tcG9uZW50cy9zZWxlY3Qvc3JjL2xpYi9zZWxlY3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUMvRCxPQUFPLEVBRUwsZ0JBQWdCLEVBQ2hCLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsWUFBWSxFQUNaLGVBQWUsRUFDZixVQUFVLEVBQ1YsWUFBWSxFQUNaLE1BQU0sRUFDTixLQUFLLEVBQ0wsU0FBUyxFQUVULGlCQUFpQixHQUNsQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsVUFBVSxFQUFtQixvQkFBb0IsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUNqRixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUNwRyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNyRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUNyRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDN0QsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDL0UsT0FBTyxFQUFFLFlBQVksRUFBRSxXQUFXLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDbEQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxx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Y3RpdmVEZXNjZW5kYW50S2V5TWFuYWdlciB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9hMTF5JztcbmltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIGJvb2xlYW5BdHRyaWJ1dGUsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIENvbnRlbnRDaGlsZCxcbiAgQ29udGVudENoaWxkcmVuLFxuICBmb3J3YXJkUmVmLFxuICBIb3N0TGlzdGVuZXIsXG4gIGluamVjdCxcbiAgSW5wdXQsXG4gIFF1ZXJ5TGlzdCxcbiAgVGVtcGxhdGVSZWYsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvcmVNb2R1bGUsIElkZW50aXR5TWF0Y2hlciwgT0RYX0lERU5USVRZX01BVENIRVIgfSBmcm9tICdAb2R4L2FuZ3VsYXInO1xuaW1wb3J0IHsgQXV0b2NvbXBsZXRlQ29udHJvbCwgT0RYX1NFQVJDSF9GSUxURVJfSE9TVCB9IGZyb20gJ0BvZHgvYW5ndWxhci9jZGsvYXV0b2NvbXBsZXRlLWNvbnRyb2wnO1xuaW1wb3J0IHsgRHluYW1pY1ZpZXdEaXJlY3RpdmUgfSBmcm9tICdAb2R4L2FuZ3VsYXIvY2RrL2R5bmFtaWMtdmlldyc7XG5pbXBvcnQgeyBEcm9wZG93bkRpcmVjdGl2ZSB9IGZyb20gJ0BvZHgvYW5ndWxhci9jb21wb25lbnRzL2Ryb3Bkb3duJztcbmltcG9ydCB7IEljb25Db21wb25lbnQgfSBmcm9tICdAb2R4L2FuZ3VsYXIvY29tcG9uZW50cy9pY29uJztcbmltcG9ydCB7IExvYWRpbmdTcGlubmVyTW9kdWxlIH0gZnJvbSAnQG9keC9hbmd1bGFyL2NvbXBvbmVudHMvbG9hZGluZy1zcGlubmVyJztcbmltcG9ydCB7IENTU0NvbXBvbmVudCwgQ1NTTW9kaWZpZXIgfSBmcm9tICdAb2R4L2FuZ3VsYXIvaW50ZXJuYWwnO1xuaW1wb3J0IHsgZnJvbVF1ZXJ5TGlzdCB9IGZyb20gJ0BvZHgvYW5ndWxhci9yeGpzJztcbmltcG9ydCB7IGRlZmVyRm4gfSBmcm9tICdAb2R4L2FuZ3VsYXIvdXRpbHMnO1xuaW1wb3J0IHsgU2VsZWN0T3B0aW9uQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzJztcbmltcG9ydCB7IFNlbGVjdElucHV0Q29udHJvbERpcmVjdGl2ZSB9IGZyb20gJy4vZGlyZWN0aXZlcyc7XG5pbXBvcnQgeyBTRUxFQ1RfQ09OVFJPTCB9IGZyb20gJy4vc2VsZWN0LnRva2Vucyc7XG5cbi8qKlxuICogU2VsZWN0Q29tcG9uZW50IHByb3ZpZGVzIGFuIGFkdmFuY2VkIGRyb3Bkb3duIGxpc3QgdGhhdCBzdXBwb3J0cyBhdXRvY29tcGxldGUsIG11bHRpcGxlIHNlbGVjdGlvbixcbiAqIGFuZCBhY2Nlc3NpYmlsaXR5IGZlYXR1cmVzLiBJdCBleHRlbmRzIEF1dG9jb21wbGV0ZUNvbnRyb2wgZm9yIHNlYW1sZXNzIGludGVncmF0aW9uIHdpdGggQW5ndWxhciBmb3Jtcy5cbiAqXG4gKiBAc2VlIHtBdXRvY29tcGxldGVDb250cm9sfVxuICovXG5AQ1NTQ29tcG9uZW50KCdzZWxlY3QnKVxuQENvbXBvbmVudCh7XG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIHNlbGVjdG9yOiAnb2R4LXNlbGVjdCcsXG4gIGltcG9ydHM6IFtDb3JlTW9kdWxlLCBEcm9wZG93bkRpcmVjdGl2ZSwgSWNvbkNvbXBvbmVudCwgRHluYW1pY1ZpZXdEaXJlY3RpdmUsIFNlbGVjdE9wdGlvbkNvbXBvbmVudCwgTG9hZGluZ1NwaW5uZXJNb2R1bGVdLFxuICB0ZW1wbGF0ZVVybDogJy4vc2VsZWN0LmNvbXBvbmVudC5odG1sJyxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IFNFTEVDVF9DT05UUk9MLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gU2VsZWN0Q29tcG9uZW50KSxcbiAgICB9LFxuICAgIHtcbiAgICAgIHByb3ZpZGU6IE9EWF9TRUFSQ0hfRklMVEVSX0hPU1QsXG4gICAgICB1c2VFeGlzdGluZzogU0VMRUNUX0NPTlRST0wsXG4gICAgfSxcbiAgXSxcbiAgaG9zdDoge1xuICAgICdbdGFiaW5kZXhdJzogJ3NlYXJjaEZpZWxkRW5hYmxlZCB8fCBpc0Rpc2FibGVkID8gLTEgOiAwJyxcbiAgICAnW2F0dHIuYXJpYS1tdWx0aXNlbGVjdGFibGVdJzogJ211bHRpcGxlJyxcbiAgfSxcbn0pXG5leHBvcnQgY2xhc3MgU2VsZWN0Q29tcG9uZW50PFQgPSB1bmtub3duPiBleHRlbmRzIEF1dG9jb21wbGV0ZUNvbnRyb2w8VCB8IG51bGw+IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCB7XG4gIHByb3RlY3RlZCBzZWFyY2hGaWVsZEVuYWJsZWQgPSBmYWxzZTtcbiAgcHJvdGVjdGVkIHNlbGVjdGVkT3B0aW9uOiBTZWxlY3RPcHRpb25Db21wb25lbnQ8VD4gfCBudWxsID0gbnVsbDtcbiAgcHJvdGVjdGVkIHNlbGVjdGVkT3B0aW9uVGV4dDogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG5cbiAgQENvbnRlbnRDaGlsZHJlbihTZWxlY3RPcHRpb25Db21wb25lbnQsIHsgZGVzY2VuZGFudHM6IHRydWUsIGVtaXREaXN0aW5jdENoYW5nZXNPbmx5OiB0cnVlIH0pXG4gIHByb3RlY3RlZCBvcHRpb25zPzogUXVlcnlMaXN0PFNlbGVjdE9wdGlvbkNvbXBvbmVudDxUPj47XG5cbiAgLyoqXG4gICAqIERpcmVjdGl2ZSBtYW5hZ2luZyB0aGUgc2VhcmNoIGlucHV0IGZpZWxkIHdpdGhpbiB0aGUgc2VsZWN0LlxuICAgKlxuICAgKiBAdHlwZSB7U2VsZWN0SW5wdXRDb250cm9sRGlyZWN0aXZlfVxuICAgKi9cbiAgQENvbnRlbnRDaGlsZChTZWxlY3RJbnB1dENvbnRyb2xEaXJlY3RpdmUpXG4gIHB1YmxpYyBzZWFyY2hGaWVsZD86IFNlbGVjdElucHV0Q29udHJvbERpcmVjdGl2ZTtcblxuICAvKipcbiAgICogUmV0dXJucyB0aGUgY29udGVudCBvZiB0aGUgc2VsZWN0ZWQgb3B0aW9uIGZvciBkaXNwbGF5LiBUaGlzIGNhbiBiZSBhIHRlbXBsYXRlIG9yIHBsYWluIHRleHQuXG4gICAqXG4gICAqIEB0eXBlIHtUZW1wbGF0ZVJlZjx7ICRpbXBsaWNpdDogVCB8IG51bGwgfT4gfCBzdHJpbmcgfCBudWxsfVxuICAgKi9cbiAgcHVibGljIGdldCBzZWxlY3RlZE9wdGlvbkNvbnRlbnQoKTogVGVtcGxhdGVSZWY8eyAkaW1wbGljaXQ6IFQgfCBudWxsIH0+IHwgc3RyaW5nIHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMuc2VsZWN0ZWRPcHRpb24gPyB0aGlzLnNlbGVjdGVkT3B0aW9uVGVtcGxhdGUgPz8gdGhpcy5zZWxlY3RlZE9wdGlvblRleHQgOiBudWxsO1xuICB9XG5cbiAgLyoqXG4gICAqIFBsYWNlaG9sZGVyIHRleHQgZm9yIHRoZSBzZWxlY3QgaW5wdXQgd2hlbiBubyBvcHRpb24gaXMgc2VsZWN0ZWQuXG4gICAqXG4gICAqIEB0eXBlIHtzdHJpbmd9XG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgcGxhY2Vob2xkZXIgPSAnJztcblxuICAvKipcbiAgICogU2V0cyB3aGV0aGVyIG11bHRpcGxlIG9wdGlvbnMgY2FuIGJlIHNlbGVjdGVkLlxuICAgKlxuICAgKiBAdHlwZSB7Ym9vbGVhbn1cbiAgICovXG4gIEBDU1NNb2RpZmllcigpXG4gIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KVxuICBwdWJsaWMgbXVsdGlwbGUgPSBmYWxzZTtcblxuICAvKipcbiAgICogQ3VzdG9tIHRlbXBsYXRlIGZvciBkaXNwbGF5aW5nIHRoZSBzZWxlY3RlZCBvcHRpb24uXG4gICAqXG4gICAqIEB0eXBlIHtUZW1wbGF0ZVJlZjx7ICRpbXBsaWNpdDogVCB9PiB8IG51bGx9XG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2VsZWN0ZWRPcHRpb25UZW1wbGF0ZT86IFRlbXBsYXRlUmVmPHsgJGltcGxpY2l0OiBUIH0+IHwgbnVsbCA9IG51bGw7XG5cbiAgLyoqXG4gICAqIEZ1bmN0aW9uIHRvIGRldGVybWluZSBpZiB0d28gb3B0aW9ucyBhcmUgaWRlbnRpY2FsLCB1c2VmdWwgZm9yIGRldGVjdGluZyBjaGFuZ2VzIGluIHNlbGVjdGlvbi5cbiAgICpcbiAgICogQHR5cGUge0lkZW50aXR5TWF0Y2hlcjxUIHwgbnVsbD59XG4gICAqXG4gICAqIEBleGFtcGxlXG4gICAqIGBgYHRzXG4gICAqIChpdGVtMSwgaXRlbTIpID0+IGl0ZW0xLmlkID09PSBpdGVtMi5pZFxuICAgKiBgYGBcbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBpZGVudGl0eU1hdGNoZXI6IElkZW50aXR5TWF0Y2hlcjxUIHwgbnVsbD4gPSBpbmplY3QoT0RYX0lERU5USVRZX01BVENIRVIpO1xuXG4gIHB1YmxpYyBvdmVycmlkZSBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLm9wdGlvbnMpIHJldHVybjtcblxuICAgIHRoaXMuaW5pdEtleU1hbmFnZXIodGhpcy5vcHRpb25zKTtcbiAgICB0aGlzLmhhbmRsZVF1ZXJ5TGlzdE9wdGlvbih0aGlzLm9wdGlvbnMpO1xuICAgIHRoaXMuaGFuZGxlU2VhcmNoRmllbGRDaGFuZ2VzKCk7XG4gIH1cblxuICAvKipcbiAgICogUmVnaXN0ZXJzIGEgZnVuY3Rpb24gdG8gYmUgY2FsbGVkIHdoZW4gdGhlIHZhbHVlIG9mIHRoZSBzZWxlY3QgY2hhbmdlcy5cbiAgICpcbiAgICogQHBhcmFtIHtGdW5jdGlvbn0gZm4gVGhlIGZ1bmN0aW9uIHRvIGJlIGNhbGxlZCB3aGVuIHRoZSB2YWx1ZSBjaGFuZ2VzLlxuICAgKiBAcmV0dXJucyB7dm9pZH1cbiAgICovXG4gIHB1YmxpYyBvdmVycmlkZSByZWdpc3Rlck9uQ2hhbmdlKGZuOiAodmFsdWU6IFQgfCBudWxsKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgc3VwZXIucmVnaXN0ZXJPbkNoYW5nZSgodmFsdWUpID0+IHtcbiAgICAgIHRoaXMudXBkYXRlU2VsZWN0ZWRPcHRpb24oKTtcbiAgICAgIGZuKHZhbHVlKTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZWxlY3RzIGEgZ2l2ZW4gb3B0aW9uIGFuZCB1cGRhdGVzIHRoZSBjb21wb25lbnQncyB2YWx1ZSBhY2NvcmRpbmdseS5cbiAgICpcbiAgICogQHBhcmFtIHtTZWxlY3RPcHRpb25Db21wb25lbnQ8VCB8IFRbXT4gfCBudWxsfSBvcHRpb24gVGhlIG9wdGlvbiB0byBzZWxlY3QuXG4gICAqIEByZXR1cm5zIHt2b2lkfVxuICAgKi9cbiAgcHVibGljIHNlbGVjdE9wdGlvbihvcHRpb24/OiBTZWxlY3RPcHRpb25Db21wb25lbnQ8VCB8IFRbXT4gfCBudWxsKTogdm9pZCB7XG4gICAgaWYgKG9wdGlvbiAmJiAhb3B0aW9uLmRpc2FibGVkKSB7XG4gICAgICB0aGlzLm9wdGlvblNlbGVjdGVkLmVtaXQoKTtcbiAgICAgIG9wdGlvbi5zd2l0Y2hDaGVja2JveCgpO1xuICAgICAgY29uc3QgdmFsdWUgPSB0aGlzLm11bHRpcGxlID8gdGhpcy5tdWx0aXBsZVNlbGVjdFZhbHVlUmVzb2x2ZXIob3B0aW9uIGFzIFNlbGVjdE9wdGlvbkNvbXBvbmVudDxUPikgOiBvcHRpb24udmFsdWU7XG4gICAgICB0aGlzLnVwZGF0ZVZhbHVlKCh2YWx1ZSBhcyBUKSA/PyBudWxsKTtcbiAgICB9XG5cbiAgICAhdGhpcy5tdWx0aXBsZSAmJiB0aGlzLmNsb3NlRHJvcGRvd24oKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVja3Mgd2hldGhlciBhIGdpdmVuIG9wdGlvbiBpcyBzZWxlY3RlZC5cbiAgICpcbiAgICogQHBhcmFtIHtTZWxlY3RPcHRpb25Db21wb25lbnQ8VCB8IFRbXT59IG9wdGlvbiBUaGUgb3B0aW9uIHRvIGNoZWNrLlxuICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gV2hldGhlciB0aGUgb3B0aW9uIGlzIHNlbGVjdGVkLlxuICAgKi9cbiAgcHVibGljIGlzT3B0aW9uU2VsZWN0ZWQob3B0aW9uOiBTZWxlY3RPcHRpb25Db21wb25lbnQ8VCB8IFRbXT4pOiBib29sZWFuIHtcbiAgICBpZiAob3B0aW9uICYmICFvcHRpb24uZGlzYWJsZWQpIHtcbiAgICAgIGlmICh0aGlzLm11bHRpcGxlICYmIEFycmF5LmlzQXJyYXkodGhpcy52YWx1ZSkpIHtcbiAgICAgICAgcmV0dXJuICh0aGlzLnZhbHVlIGFzIFRbXSkuc29tZSgodmFsKSA9PiB0aGlzLmlkZW50aXR5TWF0Y2hlcihvcHRpb24udmFsdWUgYXMgVCwgdmFsKSk7XG4gICAgICB9XG4gICAgICByZXR1cm4gdGhpcy5pZGVudGl0eU1hdGNoZXIob3B0aW9uLnZhbHVlIGFzIFQsIHRoaXMudmFsdWUpO1xuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgaW5pdEtleU1hbmFnZXIob3B0aW9uczogUXVlcnlMaXN0PFNlbGVjdE9wdGlvbkNvbXBvbmVudDxUPj4pOiB2b2lkIHtcbiAgICB0aGlzLmtleU1hbmFnZXIgPSBuZXcgQWN0aXZlRGVzY2VuZGFudEtleU1hbmFnZXIob3B0aW9ucykud2l0aEhvbWVBbmRFbmQoKS5za2lwUHJlZGljYXRlKChpdGVtKSA9PiBpdGVtLmRpc2FibGVkKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBoYW5kbGVRdWVyeUxpc3RPcHRpb24ob3B0aW9uczogUXVlcnlMaXN0PFNlbGVjdE9wdGlvbkNvbXBvbmVudDxUPj4pOiB2b2lkIHtcbiAgICBmcm9tUXVlcnlMaXN0KG9wdGlvbnMpXG4gICAgICAucGlwZSh0aGlzLnRha2VVbnRpbERlc3Ryb3llZCgpKVxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIHRoaXMudXBkYXRlU2VsZWN0ZWRPcHRpb24oKTtcbiAgICAgICAgaWYgKHRoaXMuaXNPcGVuKSB7XG4gICAgICAgICAgZGVmZXJGbigoKSA9PiB0aGlzLmFjdGl2YXRlU2VsZWN0ZWRPcHRpb24oKSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICB9XG5cbiAgcHJvdGVjdGVkIGhhbmRsZVNlYXJjaEZpZWxkQ2hhbmdlcygpOiB2b2lkIHtcbiAgICB0aGlzLnNlYXJjaEZpZWxkPy52YWx1ZUNoYW5nZSQucGlwZSh0aGlzLnRha2VVbnRpbERlc3Ryb3llZCgpKS5zdWJzY3JpYmUoKCkgPT4gdGhpcy50cmlnZ2VyQ29udHJvbGxlckNoYW5nZSgpKTtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2NsaWNrJywgWyckZXZlbnQnXSlcbiAgQEhvc3RMaXN0ZW5lcigna2V5ZG93bicsIFsnJGV2ZW50J10pXG4gIHByb3RlY3RlZCBoYW5kbGVDb250cm9sbGVyRXZlbnQoZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcbiAgICBpZiAodGhpcy5pc0xvYWRpbmcgfHwgdGhpcy5yZWFkb25seUNvbnRyb2xsZXI/LnJlYWRvbmx5KSByZXR1cm47XG4gICAgaWYgKHRoaXMuaXNPcGVuICYmIHRoaXMuaGFzT3B0aW9ucykge1xuICAgICAgaWYgKGV2ZW50LmtleSA9PT0gJ0VudGVyJyB8fCBldmVudC5rZXkgPT09ICdUYWInKSB7XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIGV2ZW50LnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpO1xuICAgICAgICB0aGlzLnNlbGVjdE9wdGlvbih0aGlzLmtleU1hbmFnZXI/LmFjdGl2ZUl0ZW0gYXMgU2VsZWN0T3B0aW9uQ29tcG9uZW50PFQ+IHwgdW5kZWZpbmVkKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgIH1cbiAgICB0aGlzLmtleU1hbmFnZXI/Lm9uS2V5ZG93bihldmVudCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgYWN0aXZhdGVTZWxlY3RlZE9wdGlvbigpOiB2b2lkIHtcbiAgICBsZXQgYWN0aXZlSW5kZXggPSB0aGlzLm9wdGlvbnM/LnRvQXJyYXkoKS5maW5kSW5kZXgoKG9wdGlvbikgPT4gb3B0aW9uLmlzU2VsZWN0ZWQgJiYgIW9wdGlvbi5kaXNhYmxlZCk7XG4gICAgaWYgKCFhY3RpdmVJbmRleCB8fCBhY3RpdmVJbmRleCA9PT0gLTEpIHtcbiAgICAgIGFjdGl2ZUluZGV4ID0gdGhpcy5vcHRpb25zPy50b0FycmF5KCkuZmluZEluZGV4KChvcHRpb24pID0+ICFvcHRpb24uZGlzYWJsZWQpID8/IC0xO1xuICAgIH1cbiAgICB0aGlzLmtleU1hbmFnZXI/LnNldEFjdGl2ZUl0ZW0oYWN0aXZlSW5kZXgpO1xuICB9XG5cbiAgcHJvdGVjdGVkIG9uRHJvcGRvd25PcGVuKCk6IHZvaWQge1xuICAgIHRoaXMuYWN0aXZhdGVTZWxlY3RlZE9wdGlvbigpO1xuICAgIGlmICghdGhpcy5zZWFyY2hGaWVsZEVuYWJsZWQpIHtcbiAgICAgIGRlZmVyRm4oKCkgPT4gdGhpcy5mb2N1c1NlbGVjdFNlYXJjaEZpZWxkKCkpO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBvbkRyb3Bkb3duQ2xvc2UoKTogdm9pZCB7XG4gICAgdGhpcy5kaXNhYmxlU21vb3RoU2Nyb2xsKCk7XG4gICAgdGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQuYmx1cigpO1xuICAgIGlmICh0aGlzLnNlYXJjaEZpZWxkRW5hYmxlZCkge1xuICAgICAgdGhpcy5zZWFyY2hGaWVsZEVuYWJsZWQgPSBmYWxzZTtcbiAgICAgIHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50Py5mb2N1cygpO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBvbkRyb3Bkb3duQ2xvc2VkKCk6IHZvaWQge1xuICAgIHRoaXMuc2VhcmNoRmllbGQ/LnJlc2V0KCk7XG4gIH1cblxuICBwcml2YXRlIHVwZGF0ZVNlbGVjdGVkT3B0aW9uKCk6IHZvaWQge1xuICAgIGNvbnN0IG9wdGlvbnMgPSB0aGlzLm9wdGlvbnM/LnRvQXJyYXkoKTtcbiAgICB0aGlzLnNlbGVjdGVkT3B0aW9uID0gb3B0aW9ucz8uZmluZCgob3B0aW9uKSA9PiBvcHRpb24uaXNTZWxlY3RlZCkgPz8gbnVsbDtcblxuICAgIGlmICh0aGlzLm11bHRpcGxlKSB7XG4gICAgICB0aGlzLm9wdGlvbnM/LmZvckVhY2goKG9wdGlvbikgPT4gKG9wdGlvbi5pc1NlbGVjdGVkID0gdGhpcy5pc09wdGlvblNlbGVjdGVkKG9wdGlvbikpKTtcbiAgICAgIHRoaXMuc2VsZWN0ZWRPcHRpb25UZXh0ID1cbiAgICAgICAgb3B0aW9uc1xuICAgICAgICAgID8uZmlsdGVyKCh7IGlzU2VsZWN0ZWQgfSkgPT4gaXNTZWxlY3RlZClcbiAgICAgICAgICAubWFwKChvcHRpb24pID0+IHRoaXMuc3RyaW5naWZ5Py4ob3B0aW9uLnZhbHVlKSA/PyBvcHRpb24uZ2V0TGFiZWwoKSlcbiAgICAgICAgICAuam9pbignLCAnKSA/PyBudWxsO1xuXG4gICAgICB0aGlzLmNoYW5nZURldGVjdG9yLmRldGVjdENoYW5nZXMoKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5zZWxlY3RlZE9wdGlvblRleHQgPSB0aGlzLnNlbGVjdGVkT3B0aW9uID8gdGhpcy5zdHJpbmdpZnk/Lih0aGlzLnNlbGVjdGVkT3B0aW9uPy52YWx1ZSkgPz8gdGhpcy5zZWxlY3RlZE9wdGlvbi5nZXRMYWJlbCgpIDogbnVsbDtcbiAgICB0aGlzLmNoYW5nZURldGVjdG9yLmRldGVjdENoYW5nZXMoKTtcbiAgfVxuXG4gIHByaXZhdGUgZm9jdXNTZWxlY3RTZWFyY2hGaWVsZCgpOiB2b2lkIHtcbiAgICB0aGlzLnNlYXJjaEZpZWxkRW5hYmxlZCA9ICEhdGhpcy5zZWFyY2hGaWVsZDtcbiAgICBkZWZlckZuKCgpID0+IHRoaXMuc2VhcmNoRmllbGQ/LmZvY3VzKCkpO1xuICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3IuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG5cbiAgcHJpdmF0ZSBtdWx0aXBsZVNlbGVjdFZhbHVlUmVzb2x2ZXIob3B0aW9uOiBTZWxlY3RPcHRpb25Db21wb25lbnQ8VD4pOiBUIHtcbiAgICBsZXQgdmFsdWUgPSBBcnJheS5pc0FycmF5KHRoaXMudmFsdWUpID8gKHRoaXMudmFsdWUgYXMgVFtdKSA6IFtdO1xuICAgIGlmIChvcHRpb24uaXNTZWxlY3RlZCkge1xuICAgICAgKHZhbHVlIGFzIFRbXSkucHVzaChvcHRpb24udmFsdWUgYXMgVCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHZhbHVlID0gdmFsdWUuZmlsdGVyKCh2YWwpID0+ICF0aGlzLmlkZW50aXR5TWF0Y2hlcihvcHRpb24udmFsdWUgYXMgVCwgdmFsKSk7XG4gICAgfVxuICAgIHJldHVybiB2YWx1ZSBhcyBUO1xuICB9XG59XG4iLCI8ZGl2XG4gIGFyaWEtaGFzcG9wdXA9XCJsaXN0Ym94XCJcbiAgY2xhc3M9XCJvZHgtc2VsZWN0X190cmlnZ2VyXCJcbiAgW29keERyb3Bkb3duXT1cImRyb3Bkb3duQ29udGVudFwiXG4gIFtvZHhEcm9wZG93bkRpc2FibGVkXT1cImlzRGlzYWJsZWQgfHwgaXNSZWFkb25seVwiXG4gIFtvZHhEcm9wZG93bk9wdGlvbnNdPVwieyBtYXRjaFJlZmVyZW5jZVdpZHRoOiB0cnVlLCBvZmZzZXQ6IDQsIG91dGVyUGFkZGluZzogMTAsIHBvc2l0aW9uOiAnYm90dG9tLXN0YXJ0JyB9XCJcbiAgW29keERyb3Bkb3duUmVmZXJlbmNlRWxlbWVudF09XCJkcm9wZG93blJlZmVyZW5jZUVsZW1lbnRcIlxuICBbb2R4RHJvcGRvd25TaG93TG9hZGVyXT1cImlzTG9hZGluZ1wiXG4gIChvZHhEcm9wZG93bkJlZm9yZU9wZW4pPVwib25Ecm9wZG93bk9wZW4oKVwiXG4gIChvZHhEcm9wZG93bkJlZm9yZUNsb3NlKT1cIm9uRHJvcGRvd25DbG9zZSgpXCJcbiAgKG9keERyb3Bkb3duQWZ0ZXJDbG9zZSk9XCJvbkRyb3Bkb3duQ2xvc2VkKClcIlxuICAob2R4RHJvcGRvd25BZnRlck9wZW4pPVwiZW5hYmxlU21vb3RoU2Nyb2xsKClcIlxuPlxuICA8bmctdGVtcGxhdGUgW25nSWZdPVwiIXNlYXJjaEZpZWxkRW5hYmxlZFwiIFtuZ0lmRWxzZV09XCJzZWFyY2hGaWVsZFRlbXBsYXRlXCI+XG4gICAgPGRpdiBjbGFzcz1cIm9keC1zZWxlY3RfX3ZhbHVlXCIgKm5nSWY9XCJzZWxlY3RlZE9wdGlvbkNvbnRlbnQ7IGVsc2UgcGxhY2Vob2xkZXJUZW1wbGF0ZVwiPlxuICAgICAgPG5nLXRlbXBsYXRlIFtvZHhEeW5hbWljVmlld109XCJzZWxlY3RlZE9wdGlvbkNvbnRlbnRcIiBbb2R4RHluYW1pY1ZpZXdDb250ZXh0XT1cInsgJGltcGxpY2l0OiB2YWx1ZSB9XCI+PC9uZy10ZW1wbGF0ZT5cbiAgICA8L2Rpdj5cbiAgPC9uZy10ZW1wbGF0ZT5cbiAgPG5nLXRlbXBsYXRlICNwbGFjZWhvbGRlclRlbXBsYXRlPlxuICAgIDxkaXYgY2xhc3M9XCJvZHgtc2VsZWN0X19wbGFjZWhvbGRlclwiPlxuICAgICAge3sgcGxhY2Vob2xkZXIgfX1cbiAgICA8L2Rpdj5cbiAgPC9uZy10ZW1wbGF0ZT5cbiAgPG5nLXRlbXBsYXRlICNzZWFyY2hGaWVsZFRlbXBsYXRlPlxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltvZHhTZWxlY3RTZWFyY2hGaWVsZF1cIj48L25nLWNvbnRlbnQ+XG4gIDwvbmctdGVtcGxhdGU+XG4gIDxvZHgtaWNvbiBjbGFzcz1cIm9keC1zZWxlY3RfX2luZGljYXRvclwiIG5hbWU9XCJjaGV2cm9uLWRvd25cIiBpY29uU2V0PVwiY29yZVwiPjwvb2R4LWljb24+XG48L2Rpdj5cbjxuZy10ZW1wbGF0ZSAjZHJvcGRvd25Db250ZW50PlxuICA8ZGl2IGNsYXNzPVwib2R4LWRyb3Bkb3duX19vcHRpb24tbGlzdFwiIHJvbGU9XCJsaXN0Ym94XCI+XG4gICAgPG5nLXRlbXBsYXRlIFtuZ0lmXT1cImhhc09wdGlvbnNcIiBbbmdJZkVsc2VdPVwibm9PcHRpb25zVGVtcGxhdGVcIj5cbiAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICA8L25nLXRlbXBsYXRlPlxuICAgIDxuZy10ZW1wbGF0ZSAjbm9PcHRpb25zVGVtcGxhdGU+XG4gICAgICA8b2R4LXNlbGVjdC1vcHRpb24gZGlzYWJsZWQgbm90Rm91bmRNZXNzYWdlPlxuICAgICAgICA8bmctdGVtcGxhdGUgW29keER5bmFtaWNWaWV3XT1cInNlYXJjaEZpZWxkPy5ub3RGb3VuZENvbnRlbnRcIj48L25nLXRlbXBsYXRlPlxuICAgICAgPC9vZHgtc2VsZWN0LW9wdGlvbj5cbiAgICA8L25nLXRlbXBsYXRlPlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
260
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci9jb21wb25lbnRzL3NlbGVjdC9zcmMvbGliL3NlbGVjdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvY29tcG9uZW50cy9zZWxlY3Qvc3JjL2xpYi9zZWxlY3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUMvRCxPQUFPLEVBRUwsZ0JBQWdCLEVBQ2hCLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsWUFBWSxFQUNaLGVBQWUsRUFDZixVQUFVLEVBQ1YsWUFBWSxFQUNaLE1BQU0sRUFDTixLQUFLLEVBQ0wsU0FBUyxFQUVULGlCQUFpQixHQUNsQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsVUFBVSxFQUFtQixvQkFBb0IsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUNqRixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUNwRyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNyRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUNyRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDN0QsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDL0UsT0FBTyxFQUFFLFlBQVksRUFBRSxXQUFXLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDbEQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxx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LCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBY3RpdmVEZXNjZW5kYW50S2V5TWFuYWdlciB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9hMTF5JztcbmltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIGJvb2xlYW5BdHRyaWJ1dGUsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIENvbnRlbnRDaGlsZCxcbiAgQ29udGVudENoaWxkcmVuLFxuICBmb3J3YXJkUmVmLFxuICBIb3N0TGlzdGVuZXIsXG4gIGluamVjdCxcbiAgSW5wdXQsXG4gIFF1ZXJ5TGlzdCxcbiAgVGVtcGxhdGVSZWYsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvcmVNb2R1bGUsIElkZW50aXR5TWF0Y2hlciwgT0RYX0lERU5USVRZX01BVENIRVIgfSBmcm9tICdAb2R4L2FuZ3VsYXInO1xuaW1wb3J0IHsgQXV0b2NvbXBsZXRlQ29udHJvbCwgT0RYX1NFQVJDSF9GSUxURVJfSE9TVCB9IGZyb20gJ0BvZHgvYW5ndWxhci9jZGsvYXV0b2NvbXBsZXRlLWNvbnRyb2wnO1xuaW1wb3J0IHsgRHluYW1pY1ZpZXdEaXJlY3RpdmUgfSBmcm9tICdAb2R4L2FuZ3VsYXIvY2RrL2R5bmFtaWMtdmlldyc7XG5pbXBvcnQgeyBEcm9wZG93bkRpcmVjdGl2ZSB9IGZyb20gJ0BvZHgvYW5ndWxhci9jb21wb25lbnRzL2Ryb3Bkb3duJztcbmltcG9ydCB7IEljb25Db21wb25lbnQgfSBmcm9tICdAb2R4L2FuZ3VsYXIvY29tcG9uZW50cy9pY29uJztcbmltcG9ydCB7IExvYWRpbmdTcGlubmVyTW9kdWxlIH0gZnJvbSAnQG9keC9hbmd1bGFyL2NvbXBvbmVudHMvbG9hZGluZy1zcGlubmVyJztcbmltcG9ydCB7IENTU0NvbXBvbmVudCwgQ1NTTW9kaWZpZXIgfSBmcm9tICdAb2R4L2FuZ3VsYXIvaW50ZXJuYWwnO1xuaW1wb3J0IHsgZnJvbVF1ZXJ5TGlzdCB9IGZyb20gJ0BvZHgvYW5ndWxhci9yeGpzJztcbmltcG9ydCB7IGRlZmVyRm4gfSBmcm9tICdAb2R4L2FuZ3VsYXIvdXRpbHMnO1xuaW1wb3J0IHsgU2VsZWN0T3B0aW9uQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzJztcbmltcG9ydCB7IFNlbGVjdElucHV0Q29udHJvbERpcmVjdGl2ZSB9IGZyb20gJy4vZGlyZWN0aXZlcyc7XG5pbXBvcnQgeyBTRUxFQ1RfQ09OVFJPTCB9IGZyb20gJy4vc2VsZWN0LnRva2Vucyc7XG5cbi8qKlxuICogU2VsZWN0Q29tcG9uZW50IHByb3ZpZGVzIGFuIGFkdmFuY2VkIGRyb3Bkb3duIGxpc3QgdGhhdCBzdXBwb3J0cyBhdXRvY29tcGxldGUsIG11bHRpcGxlIHNlbGVjdGlvbixcbiAqIGFuZCBhY2Nlc3NpYmlsaXR5IGZlYXR1cmVzLiBJdCBleHRlbmRzIEF1dG9jb21wbGV0ZUNvbnRyb2wgZm9yIHNlYW1sZXNzIGludGVncmF0aW9uIHdpdGggQW5ndWxhciBmb3Jtcy5cbiAqXG4gKiBAc2VlIHtBdXRvY29tcGxldGVDb250cm9sfVxuICovXG5AQ1NTQ29tcG9uZW50KCdzZWxlY3QnKVxuQENvbXBvbmVudCh7XG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIHNlbGVjdG9yOiAnb2R4LXNlbGVjdCcsXG4gIGltcG9ydHM6IFtDb3JlTW9kdWxlLCBEcm9wZG93bkRpcmVjdGl2ZSwgSWNvbkNvbXBvbmVudCwgRHluYW1pY1ZpZXdEaXJlY3RpdmUsIFNlbGVjdE9wdGlvbkNvbXBvbmVudCwgTG9hZGluZ1NwaW5uZXJNb2R1bGVdLFxuICB0ZW1wbGF0ZVVybDogJy4vc2VsZWN0LmNvbXBvbmVudC5odG1sJyxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IFNFTEVDVF9DT05UUk9MLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gU2VsZWN0Q29tcG9uZW50KSxcbiAgICB9LFxuICAgIHtcbiAgICAgIHByb3ZpZGU6IE9EWF9TRUFSQ0hfRklMVEVSX0hPU1QsXG4gICAgICB1c2VFeGlzdGluZzogU0VMRUNUX0NPTlRST0wsXG4gICAgfSxcbiAgXSxcbiAgaG9zdDoge1xuICAgICdbdGFiaW5kZXhdJzogJ3NlYXJjaEZpZWxkRW5hYmxlZCB8fCBpc0Rpc2FibGVkID8gLTEgOiAwJyxcbiAgICAnW2F0dHIuYXJpYS1tdWx0aXNlbGVjdGFibGVdJzogJ211bHRpcGxlJyxcbiAgfSxcbn0pXG5leHBvcnQgY2xhc3MgU2VsZWN0Q29tcG9uZW50PFQgPSB1bmtub3duPiBleHRlbmRzIEF1dG9jb21wbGV0ZUNvbnRyb2w8VCB8IG51bGw+IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCB7XG4gIHByb3RlY3RlZCBzZWFyY2hGaWVsZEVuYWJsZWQgPSBmYWxzZTtcbiAgcHJvdGVjdGVkIHNlbGVjdGVkT3B0aW9uOiBTZWxlY3RPcHRpb25Db21wb25lbnQ8VD4gfCBudWxsID0gbnVsbDtcbiAgcHJvdGVjdGVkIHNlbGVjdGVkT3B0aW9uVGV4dDogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG5cbiAgQENvbnRlbnRDaGlsZHJlbihTZWxlY3RPcHRpb25Db21wb25lbnQsIHsgZGVzY2VuZGFudHM6IHRydWUsIGVtaXREaXN0aW5jdENoYW5nZXNPbmx5OiB0cnVlIH0pXG4gIHByb3RlY3RlZCBvcHRpb25zPzogUXVlcnlMaXN0PFNlbGVjdE9wdGlvbkNvbXBvbmVudDxUPj47XG5cbiAgLyoqXG4gICAqIERpcmVjdGl2ZSBtYW5hZ2luZyB0aGUgc2VhcmNoIGlucHV0IGZpZWxkIHdpdGhpbiB0aGUgc2VsZWN0LlxuICAgKlxuICAgKiBAdHlwZSB7U2VsZWN0SW5wdXRDb250cm9sRGlyZWN0aXZlfVxuICAgKi9cbiAgQENvbnRlbnRDaGlsZChTZWxlY3RJbnB1dENvbnRyb2xEaXJlY3RpdmUpXG4gIHB1YmxpYyBzZWFyY2hGaWVsZD86IFNlbGVjdElucHV0Q29udHJvbERpcmVjdGl2ZTtcblxuICAvKipcbiAgICogUmV0dXJucyB0aGUgY29udGVudCBvZiB0aGUgc2VsZWN0ZWQgb3B0aW9uIGZvciBkaXNwbGF5LiBUaGlzIGNhbiBiZSBhIHRlbXBsYXRlIG9yIHBsYWluIHRleHQuXG4gICAqXG4gICAqIEB0eXBlIHtUZW1wbGF0ZVJlZjx7ICRpbXBsaWNpdDogVCB8IG51bGwgfT4gfCBzdHJpbmcgfCBudWxsfVxuICAgKi9cbiAgcHVibGljIGdldCBzZWxlY3RlZE9wdGlvbkNvbnRlbnQoKTogVGVtcGxhdGVSZWY8eyAkaW1wbGljaXQ6IFQgfCBudWxsIH0+IHwgc3RyaW5nIHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMuc2VsZWN0ZWRPcHRpb24gPyB0aGlzLnNlbGVjdGVkT3B0aW9uVGVtcGxhdGUgPz8gdGhpcy5zZWxlY3RlZE9wdGlvblRleHQgOiBudWxsO1xuICB9XG5cbiAgLyoqXG4gICAqIFBsYWNlaG9sZGVyIHRleHQgZm9yIHRoZSBzZWxlY3QgaW5wdXQgd2hlbiBubyBvcHRpb24gaXMgc2VsZWN0ZWQuXG4gICAqXG4gICAqIEB0eXBlIHtzdHJpbmd9XG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgcGxhY2Vob2xkZXIgPSAnJztcblxuICAvKipcbiAgICogU2V0cyB3aGV0aGVyIG11bHRpcGxlIG9wdGlvbnMgY2FuIGJlIHNlbGVjdGVkLlxuICAgKlxuICAgKiBAdHlwZSB7Ym9vbGVhbn1cbiAgICovXG4gIEBDU1NNb2RpZmllcigpXG4gIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KVxuICBwdWJsaWMgbXVsdGlwbGUgPSBmYWxzZTtcblxuICAvKipcbiAgICogQ3VzdG9tIHRlbXBsYXRlIGZvciBkaXNwbGF5aW5nIHRoZSBzZWxlY3RlZCBvcHRpb24uXG4gICAqXG4gICAqIEB0eXBlIHtUZW1wbGF0ZVJlZjx7ICRpbXBsaWNpdDogVCB9PiB8IG51bGx9XG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2VsZWN0ZWRPcHRpb25UZW1wbGF0ZT86IFRlbXBsYXRlUmVmPHsgJGltcGxpY2l0OiBUIH0+IHwgbnVsbCA9IG51bGw7XG5cbiAgLyoqXG4gICAqIEZ1bmN0aW9uIHRvIGRldGVybWluZSBpZiB0d28gb3B0aW9ucyBhcmUgaWRlbnRpY2FsLCB1c2VmdWwgZm9yIGRldGVjdGluZyBjaGFuZ2VzIGluIHNlbGVjdGlvbi5cbiAgICpcbiAgICogQHR5cGUge0lkZW50aXR5TWF0Y2hlcjxUIHwgbnVsbD59XG4gICAqXG4gICAqIEBleGFtcGxlXG4gICAqIGBgYHRzXG4gICAqIChpdGVtMSwgaXRlbTIpID0+IGl0ZW0xLmlkID09PSBpdGVtMi5pZFxuICAgKiBgYGBcbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBpZGVudGl0eU1hdGNoZXI6IElkZW50aXR5TWF0Y2hlcjxUIHwgbnVsbD4gPSBpbmplY3QoT0RYX0lERU5USVRZX01BVENIRVIpO1xuXG4gIHB1YmxpYyBvdmVycmlkZSBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLm9wdGlvbnMpIHJldHVybjtcblxuICAgIHRoaXMuaW5pdEtleU1hbmFnZXIodGhpcy5vcHRpb25zKTtcbiAgICB0aGlzLmhhbmRsZVF1ZXJ5TGlzdE9wdGlvbih0aGlzLm9wdGlvbnMpO1xuICAgIHRoaXMuaGFuZGxlU2VhcmNoRmllbGRDaGFuZ2VzKCk7XG4gIH1cblxuICAvKipcbiAgICogUmVnaXN0ZXJzIGEgZnVuY3Rpb24gdG8gYmUgY2FsbGVkIHdoZW4gdGhlIHZhbHVlIG9mIHRoZSBzZWxlY3QgY2hhbmdlcy5cbiAgICpcbiAgICogQHBhcmFtIHtGdW5jdGlvbn0gZm4gVGhlIGZ1bmN0aW9uIHRvIGJlIGNhbGxlZCB3aGVuIHRoZSB2YWx1ZSBjaGFuZ2VzLlxuICAgKiBAcmV0dXJucyB7dm9pZH1cbiAgICovXG4gIHB1YmxpYyBvdmVycmlkZSByZWdpc3Rlck9uQ2hhbmdlKGZuOiAodmFsdWU6IFQgfCBudWxsKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgc3VwZXIucmVnaXN0ZXJPbkNoYW5nZSgodmFsdWUpID0+IHtcbiAgICAgIHRoaXMudXBkYXRlU2VsZWN0ZWRPcHRpb24oKTtcbiAgICAgIGZuKHZhbHVlKTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZWxlY3RzIGEgZ2l2ZW4gb3B0aW9uIGFuZCB1cGRhdGVzIHRoZSBjb21wb25lbnQncyB2YWx1ZSBhY2NvcmRpbmdseS5cbiAgICpcbiAgICogQHBhcmFtIHtTZWxlY3RPcHRpb25Db21wb25lbnQ8VCB8IFRbXT4gfCBudWxsfSBvcHRpb24gVGhlIG9wdGlvbiB0byBzZWxlY3QuXG4gICAqIEByZXR1cm5zIHt2b2lkfVxuICAgKi9cbiAgcHVibGljIHNlbGVjdE9wdGlvbihvcHRpb24/OiBTZWxlY3RPcHRpb25Db21wb25lbnQ8VCB8IFRbXT4gfCBudWxsKTogdm9pZCB7XG4gICAgaWYgKG9wdGlvbiAmJiAhb3B0aW9uLmRpc2FibGVkKSB7XG4gICAgICB0aGlzLm9wdGlvblNlbGVjdGVkLmVtaXQoKTtcbiAgICAgIG9wdGlvbi5zd2l0Y2hDaGVja2JveCgpO1xuICAgICAgY29uc3QgdmFsdWUgPSB0aGlzLm11bHRpcGxlID8gdGhpcy5tdWx0aXBsZVNlbGVjdFZhbHVlUmVzb2x2ZXIob3B0aW9uIGFzIFNlbGVjdE9wdGlvbkNvbXBvbmVudDxUPikgOiBvcHRpb24udmFsdWU7XG4gICAgICB0aGlzLnVwZGF0ZVZhbHVlKCh2YWx1ZSBhcyBUKSA/PyBudWxsKTtcbiAgICB9XG5cbiAgICAhdGhpcy5tdWx0aXBsZSAmJiAhb3B0aW9uPy5kaXNhYmxlZCAmJiB0aGlzLmNsb3NlRHJvcGRvd24oKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVja3Mgd2hldGhlciBhIGdpdmVuIG9wdGlvbiBpcyBzZWxlY3RlZC5cbiAgICpcbiAgICogQHBhcmFtIHtTZWxlY3RPcHRpb25Db21wb25lbnQ8VCB8IFRbXT59IG9wdGlvbiBUaGUgb3B0aW9uIHRvIGNoZWNrLlxuICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gV2hldGhlciB0aGUgb3B0aW9uIGlzIHNlbGVjdGVkLlxuICAgKi9cbiAgcHVibGljIGlzT3B0aW9uU2VsZWN0ZWQob3B0aW9uOiBTZWxlY3RPcHRpb25Db21wb25lbnQ8VCB8IFRbXT4pOiBib29sZWFuIHtcbiAgICBpZiAob3B0aW9uICYmICFvcHRpb24uZGlzYWJsZWQpIHtcbiAgICAgIGlmICh0aGlzLm11bHRpcGxlICYmIEFycmF5LmlzQXJyYXkodGhpcy52YWx1ZSkpIHtcbiAgICAgICAgcmV0dXJuICh0aGlzLnZhbHVlIGFzIFRbXSkuc29tZSgodmFsKSA9PiB0aGlzLmlkZW50aXR5TWF0Y2hlcihvcHRpb24udmFsdWUgYXMgVCwgdmFsKSk7XG4gICAgICB9XG4gICAgICByZXR1cm4gdGhpcy5pZGVudGl0eU1hdGNoZXIob3B0aW9uLnZhbHVlIGFzIFQsIHRoaXMudmFsdWUpO1xuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgaW5pdEtleU1hbmFnZXIob3B0aW9uczogUXVlcnlMaXN0PFNlbGVjdE9wdGlvbkNvbXBvbmVudDxUPj4pOiB2b2lkIHtcbiAgICB0aGlzLmtleU1hbmFnZXIgPSBuZXcgQWN0aXZlRGVzY2VuZGFudEtleU1hbmFnZXIob3B0aW9ucykud2l0aEhvbWVBbmRFbmQoKS5za2lwUHJlZGljYXRlKChpdGVtKSA9PiBpdGVtLmRpc2FibGVkKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBoYW5kbGVRdWVyeUxpc3RPcHRpb24ob3B0aW9uczogUXVlcnlMaXN0PFNlbGVjdE9wdGlvbkNvbXBvbmVudDxUPj4pOiB2b2lkIHtcbiAgICBmcm9tUXVlcnlMaXN0KG9wdGlvbnMpXG4gICAgICAucGlwZSh0aGlzLnRha2VVbnRpbERlc3Ryb3llZCgpKVxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIHRoaXMudXBkYXRlU2VsZWN0ZWRPcHRpb24oKTtcbiAgICAgICAgaWYgKHRoaXMuaXNPcGVuKSB7XG4gICAgICAgICAgZGVmZXJGbigoKSA9PiB0aGlzLmFjdGl2YXRlU2VsZWN0ZWRPcHRpb24oKSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICB9XG5cbiAgcHJvdGVjdGVkIGhhbmRsZVNlYXJjaEZpZWxkQ2hhbmdlcygpOiB2b2lkIHtcbiAgICB0aGlzLnNlYXJjaEZpZWxkPy52YWx1ZUNoYW5nZSQucGlwZSh0aGlzLnRha2VVbnRpbERlc3Ryb3llZCgpKS5zdWJzY3JpYmUoKCkgPT4gdGhpcy50cmlnZ2VyQ29udHJvbGxlckNoYW5nZSgpKTtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2NsaWNrJywgWyckZXZlbnQnXSlcbiAgQEhvc3RMaXN0ZW5lcigna2V5ZG93bicsIFsnJGV2ZW50J10pXG4gIHByb3RlY3RlZCBoYW5kbGVDb250cm9sbGVyRXZlbnQoZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcbiAgICBpZiAodGhpcy5pc0xvYWRpbmcgfHwgdGhpcy5yZWFkb25seUNvbnRyb2xsZXI/LnJlYWRvbmx5IHx8ICF0aGlzLmlzT3BlbikgcmV0dXJuO1xuICAgIGlmICh0aGlzLmhhc09wdGlvbnMpIHtcbiAgICAgIGlmIChldmVudC5rZXkgPT09ICdFbnRlcicgfHwgZXZlbnQua2V5ID09PSAnVGFiJykge1xuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICBldmVudC5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKTtcbiAgICAgICAgdGhpcy5zZWxlY3RPcHRpb24odGhpcy5rZXlNYW5hZ2VyPy5hY3RpdmVJdGVtIGFzIFNlbGVjdE9wdGlvbkNvbXBvbmVudDxUPiB8IHVuZGVmaW5lZCk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICB9XG4gICAgdGhpcy5rZXlNYW5hZ2VyPy5vbktleWRvd24oZXZlbnQpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGFjdGl2YXRlU2VsZWN0ZWRPcHRpb24oKTogdm9pZCB7XG4gICAgbGV0IGFjdGl2ZUluZGV4ID0gdGhpcy5vcHRpb25zPy50b0FycmF5KCkuZmluZEluZGV4KChvcHRpb24pID0+IG9wdGlvbi5pc1NlbGVjdGVkICYmICFvcHRpb24uZGlzYWJsZWQpO1xuICAgIGlmICghYWN0aXZlSW5kZXggfHwgYWN0aXZlSW5kZXggPT09IC0xKSB7XG4gICAgICBhY3RpdmVJbmRleCA9IHRoaXMub3B0aW9ucz8udG9BcnJheSgpLmZpbmRJbmRleCgob3B0aW9uKSA9PiAhb3B0aW9uLmRpc2FibGVkKSA/PyAtMTtcbiAgICB9XG4gICAgdGhpcy5rZXlNYW5hZ2VyPy5zZXRBY3RpdmVJdGVtKGFjdGl2ZUluZGV4KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvbkRyb3Bkb3duT3BlbigpOiB2b2lkIHtcbiAgICB0aGlzLmFjdGl2YXRlU2VsZWN0ZWRPcHRpb24oKTtcbiAgICBpZiAoIXRoaXMuc2VhcmNoRmllbGRFbmFibGVkKSB7XG4gICAgICBkZWZlckZuKCgpID0+IHRoaXMuZm9jdXNTZWxlY3RTZWFyY2hGaWVsZCgpKTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgb25Ecm9wZG93bkNsb3NlKCk6IHZvaWQge1xuICAgIHRoaXMuZGlzYWJsZVNtb290aFNjcm9sbCgpO1xuICAgIHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50LmJsdXIoKTtcbiAgICBpZiAodGhpcy5zZWFyY2hGaWVsZEVuYWJsZWQpIHtcbiAgICAgIHRoaXMuc2VhcmNoRmllbGRFbmFibGVkID0gZmFsc2U7XG4gICAgICB0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudD8uZm9jdXMoKTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgb25Ecm9wZG93bkNsb3NlZCgpOiB2b2lkIHtcbiAgICB0aGlzLnNlYXJjaEZpZWxkPy5yZXNldCgpO1xuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVTZWxlY3RlZE9wdGlvbigpOiB2b2lkIHtcbiAgICBjb25zdCBvcHRpb25zID0gdGhpcy5vcHRpb25zPy50b0FycmF5KCk7XG4gICAgdGhpcy5zZWxlY3RlZE9wdGlvbiA9IG9wdGlvbnM/LmZpbmQoKG9wdGlvbikgPT4gb3B0aW9uLmlzU2VsZWN0ZWQpID8/IG51bGw7XG5cbiAgICBpZiAodGhpcy5tdWx0aXBsZSkge1xuICAgICAgdGhpcy5vcHRpb25zPy5mb3JFYWNoKChvcHRpb24pID0+IChvcHRpb24uaXNTZWxlY3RlZCA9IHRoaXMuaXNPcHRpb25TZWxlY3RlZChvcHRpb24pKSk7XG4gICAgICB0aGlzLnNlbGVjdGVkT3B0aW9uVGV4dCA9XG4gICAgICAgIG9wdGlvbnNcbiAgICAgICAgICA/LmZpbHRlcigoeyBpc1NlbGVjdGVkIH0pID0+IGlzU2VsZWN0ZWQpXG4gICAgICAgICAgLm1hcCgob3B0aW9uKSA9PiB0aGlzLnN0cmluZ2lmeT8uKG9wdGlvbi52YWx1ZSkgPz8gb3B0aW9uLmdldExhYmVsKCkpXG4gICAgICAgICAgLmpvaW4oJywgJykgPz8gbnVsbDtcblxuICAgICAgdGhpcy5jaGFuZ2VEZXRlY3Rvci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuc2VsZWN0ZWRPcHRpb25UZXh0ID0gdGhpcy5zZWxlY3RlZE9wdGlvbiA/IHRoaXMuc3RyaW5naWZ5Py4odGhpcy5zZWxlY3RlZE9wdGlvbj8udmFsdWUpID8/IHRoaXMuc2VsZWN0ZWRPcHRpb24uZ2V0TGFiZWwoKSA6IG51bGw7XG4gICAgdGhpcy5jaGFuZ2VEZXRlY3Rvci5kZXRlY3RDaGFuZ2VzKCk7XG4gIH1cblxuICBwcml2YXRlIGZvY3VzU2VsZWN0U2VhcmNoRmllbGQoKTogdm9pZCB7XG4gICAgdGhpcy5zZWFyY2hGaWVsZEVuYWJsZWQgPSAhIXRoaXMuc2VhcmNoRmllbGQ7XG4gICAgZGVmZXJGbigoKSA9PiB0aGlzLnNlYXJjaEZpZWxkPy5mb2N1cygpKTtcbiAgICB0aGlzLmNoYW5nZURldGVjdG9yLmRldGVjdENoYW5nZXMoKTtcbiAgfVxuXG4gIHByaXZhdGUgbXVsdGlwbGVTZWxlY3RWYWx1ZVJlc29sdmVyKG9wdGlvbjogU2VsZWN0T3B0aW9uQ29tcG9uZW50PFQ+KTogVCB7XG4gICAgbGV0IHZhbHVlID0gQXJyYXkuaXNBcnJheSh0aGlzLnZhbHVlKSA/ICh0aGlzLnZhbHVlIGFzIFRbXSkgOiBbXTtcbiAgICBpZiAob3B0aW9uLmlzU2VsZWN0ZWQpIHtcbiAgICAgICh2YWx1ZSBhcyBUW10pLnB1c2gob3B0aW9uLnZhbHVlIGFzIFQpO1xuICAgIH0gZWxzZSB7XG4gICAgICB2YWx1ZSA9IHZhbHVlLmZpbHRlcigodmFsKSA9PiAhdGhpcy5pZGVudGl0eU1hdGNoZXIob3B0aW9uLnZhbHVlIGFzIFQsIHZhbCkpO1xuICAgIH1cbiAgICByZXR1cm4gdmFsdWUgYXMgVDtcbiAgfVxufVxuIiwiPGRpdlxuICBhcmlhLWhhc3BvcHVwPVwibGlzdGJveFwiXG4gIGNsYXNzPVwib2R4LXNlbGVjdF9fdHJpZ2dlclwiXG4gIFtvZHhEcm9wZG93bl09XCJkcm9wZG93bkNvbnRlbnRcIlxuICBbb2R4RHJvcGRvd25EaXNhYmxlZF09XCJpc0Rpc2FibGVkIHx8IGlzUmVhZG9ubHlcIlxuICBbb2R4RHJvcGRvd25PcHRpb25zXT1cInsgbWF0Y2hSZWZlcmVuY2VXaWR0aDogdHJ1ZSwgb2Zmc2V0OiA0LCBvdXRlclBhZGRpbmc6IDEwLCBwb3NpdGlvbjogJ2JvdHRvbS1zdGFydCcgfVwiXG4gIFtvZHhEcm9wZG93blJlZmVyZW5jZUVsZW1lbnRdPVwiZHJvcGRvd25SZWZlcmVuY2VFbGVtZW50XCJcbiAgW29keERyb3Bkb3duU2hvd0xvYWRlcl09XCJpc0xvYWRpbmdcIlxuICAob2R4RHJvcGRvd25CZWZvcmVPcGVuKT1cIm9uRHJvcGRvd25PcGVuKClcIlxuICAob2R4RHJvcGRvd25CZWZvcmVDbG9zZSk9XCJvbkRyb3Bkb3duQ2xvc2UoKVwiXG4gIChvZHhEcm9wZG93bkFmdGVyQ2xvc2UpPVwib25Ecm9wZG93bkNsb3NlZCgpXCJcbiAgKG9keERyb3Bkb3duQWZ0ZXJPcGVuKT1cImVuYWJsZVNtb290aFNjcm9sbCgpXCJcbj5cbiAgPG5nLXRlbXBsYXRlIFtuZ0lmXT1cIiFzZWFyY2hGaWVsZEVuYWJsZWRcIiBbbmdJZkVsc2VdPVwic2VhcmNoRmllbGRUZW1wbGF0ZVwiPlxuICAgIDxkaXYgY2xhc3M9XCJvZHgtc2VsZWN0X192YWx1ZVwiICpuZ0lmPVwic2VsZWN0ZWRPcHRpb25Db250ZW50OyBlbHNlIHBsYWNlaG9sZGVyVGVtcGxhdGVcIj5cbiAgICAgIDxuZy10ZW1wbGF0ZSBbb2R4RHluYW1pY1ZpZXddPVwic2VsZWN0ZWRPcHRpb25Db250ZW50XCIgW29keER5bmFtaWNWaWV3Q29udGV4dF09XCJ7ICRpbXBsaWNpdDogdmFsdWUgfVwiPjwvbmctdGVtcGxhdGU+XG4gICAgPC9kaXY+XG4gIDwvbmctdGVtcGxhdGU+XG4gIDxuZy10ZW1wbGF0ZSAjcGxhY2Vob2xkZXJUZW1wbGF0ZT5cbiAgICA8ZGl2IGNsYXNzPVwib2R4LXNlbGVjdF9fcGxhY2Vob2xkZXJcIj5cbiAgICAgIHt7IHBsYWNlaG9sZGVyIH19XG4gICAgPC9kaXY+XG4gIDwvbmctdGVtcGxhdGU+XG4gIDxuZy10ZW1wbGF0ZSAjc2VhcmNoRmllbGRUZW1wbGF0ZT5cbiAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbb2R4U2VsZWN0U2VhcmNoRmllbGRdXCI+PC9uZy1jb250ZW50PlxuICA8L25nLXRlbXBsYXRlPlxuICA8b2R4LWljb24gY2xhc3M9XCJvZHgtc2VsZWN0X19pbmRpY2F0b3JcIiBuYW1lPVwiY2hldnJvbi1kb3duXCIgaWNvblNldD1cImNvcmVcIj48L29keC1pY29uPlxuPC9kaXY+XG48bmctdGVtcGxhdGUgI2Ryb3Bkb3duQ29udGVudD5cbiAgPGRpdiBjbGFzcz1cIm9keC1kcm9wZG93bl9fb3B0aW9uLWxpc3RcIiByb2xlPVwibGlzdGJveFwiPlxuICAgIDxuZy10ZW1wbGF0ZSBbbmdJZl09XCJoYXNPcHRpb25zXCIgW25nSWZFbHNlXT1cIm5vT3B0aW9uc1RlbXBsYXRlXCI+XG4gICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8bmctdGVtcGxhdGUgI25vT3B0aW9uc1RlbXBsYXRlPlxuICAgICAgPG9keC1zZWxlY3Qtb3B0aW9uIGRpc2FibGVkIG5vdEZvdW5kTWVzc2FnZT5cbiAgICAgICAgPG5nLXRlbXBsYXRlIFtvZHhEeW5hbWljVmlld109XCJzZWFyY2hGaWVsZD8ubm90Rm91bmRDb250ZW50XCI+PC9uZy10ZW1wbGF0ZT5cbiAgICAgIDwvb2R4LXNlbGVjdC1vcHRpb24+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuIl19
@@ -82,6 +82,7 @@ export let TabBarComponent = class TabBarComponent {
82
82
  const updateActionVisibility$ = fromEvent(this.tabBarPanelElement.nativeElement, 'transitionend').pipe(tap(({ target }) => target === this.tabBarPanelElement.nativeElement && this.updateActionVisbility()));
83
83
  const activeItemChange$ = merge(this.keyManager.change.pipe(tap(() => this.activeItemChange())), this.selectedIndex$$.pipe(tap((index) => this.keyManager?.setActiveItem(index))));
84
84
  merge(activeItemChange$, updatePanelPosition$, updateActionVisibility$).pipe(this.takeUntilDestroyed()).subscribe();
85
+ this.tabs.changes.pipe(this.takeUntilDestroyed()).subscribe(() => this.selectedIndex$$.next(this.selectedIndex$$.value));
85
86
  }
86
87
  /**
87
88
  * Activates the specified tab item.
@@ -181,4 +182,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
181
182
  type: HostListener,
182
183
  args: ['keydown', ['$event']]
183
184
  }] } });
184
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFiLWJhci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvY29tcG9uZW50cy90YWItYmFyL3NyYy9saWIvdGFiLWJhci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvY29tcG9uZW50cy90YWItYmFyL3NyYy9saWIvdGFiLWJhci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQy9ELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBRUwsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsZUFBZSxFQUNmLFVBQVUsRUFDVixZQUFZLEVBQ1osVUFBVSxFQUNWLFlBQVksRUFDWixNQUFNLEVBQ04sS0FBSyxFQUNMLGVBQWUsRUFDZixNQUFNLEVBQ04sU0FBUyxFQUNULFNBQVMsRUFDVCxZQUFZLEVBQ1osaUJBQWlCLEdBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQzdFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxhQUFhLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUN0RSxPQUFPLEVBQUUsV0FBVyxFQUFFLFlBQVksRUFBRSxPQUFPLEVBQUUsYUFBYSxFQUFFLEVBQUUsRUFBRSxjQUFjLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUMzRyxPQUFPLEVBQUUsZUFBZSxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLEdB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dEV0QyxnNEJBd0JBLDJDRHFCWSxZQUFZLCtCQUFFLGFBQWEsa0hBQUUsd0JBQXdCOztBQW9DeEQ7SUFETixXQUFXLEVBQUU7O3FEQUNjO0FBUXJCO0lBRE4sV0FBVyxFQUFFOztzREFDZTtBQWxDbEIsZUFBZTtJQWQzQixZQUFZLENBQUMsU0FBUyxDQUFDO0dBY1gsZUFBZSxDQXdKM0I7NEZBeEpZLGVBQWU7a0JBYjNCLFNBQVM7K0JBQ0UsYUFBYSxjQUNYLElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSxhQUFhLEVBQUUsd0JBQXdCLENBQUMsaUJBRWpELGlCQUFpQixDQUFDLElBQUksbUJBQ3BCLHVCQUF1QixDQUFDLE1BQU0sYUFDcEMsQ0FBQyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsZ0JBQWdCLENBQUMsRUFBRSxDQUFDLFFBQzNFO3dCQUNKLElBQUksRUFBRSxVQUFVO3dCQUNoQixRQUFRLEVBQUUsR0FBRztxQkFDZDs4QkFZUyxrQkFBa0I7c0JBRDNCLFNBQVM7dUJBQUMsYUFBYTtnQkFJZCxpQkFBaUI7c0JBRDFCLFlBQVk7dUJBQUMsV0FBVztnQkFJZixJQUFJO3NCQURiLGVBQWU7dUJBQUMsbUJBQW1CO2dCQVc3QixZQUFZLE1BUVosYUFBYSxNQWVULGFBQWE7c0JBRHZCLEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsZUFBZSxFQUFFO2dCQXVCOUIsa0JBQWtCO3NCQUR4QixNQUFNO2dCQW1ERyxTQUFTO3NCQURsQixZQUFZO3VCQUFDLFNBQVMsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFjdGl2ZURlc2NlbmRhbnRLZXlNYW5hZ2VyIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2ExMXknO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBDb250ZW50Q2hpbGRyZW4sXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgZm9yd2FyZFJlZixcbiAgSG9zdExpc3RlbmVyLFxuICBpbmplY3QsXG4gIElucHV0LFxuICBudW1iZXJBdHRyaWJ1dGUsXG4gIE91dHB1dCxcbiAgUXVlcnlMaXN0LFxuICBWaWV3Q2hpbGQsXG4gIFZpZXdDaGlsZHJlbixcbiAgVmlld0VuY2Fwc3VsYXRpb24sXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWN0aXZlSW5kaWNhdG9yRGlyZWN0aXZlIH0gZnJvbSAnQG9keC9hbmd1bGFyL2Nkay9hY3RpdmUtaW5kaWNhdG9yJztcbmltcG9ydCB7IEljb25Db21wb25lbnQgfSBmcm9tICdAb2R4L2FuZ3VsYXIvY29tcG9uZW50cy9pY29uJztcbmltcG9ydCB7IENTU0NvbXBvbmVudCwgQ1NTTW9kaWZpZXIgfSBmcm9tICdAb2R4L2FuZ3VsYXIvaW50ZXJuYWwnO1xuaW1wb3J0IHsgZnJvbUVsZW1lbnRSZXNpemUkLCBmcm9tUXVlcnlMaXN0IH0gZnJvbSAnQG9keC9hbmd1bGFyL3J4anMnO1xuaW1wb3J0IHsgYXBwbHlTdHlsZXMsIGNzc1RyYW5zbGF0ZSwgZGVmZXJGbiwgaW5qZWN0RWxlbWVudCwgcHgsIHVudGlsRGVzdHJveWVkIH0gZnJvbSAnQG9keC9hbmd1bGFyL3V0aWxzJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgZGVib3VuY2VUaW1lLCBmcm9tRXZlbnQsIG1lcmdlLCB0YXAgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFRhYkJhckl0ZW1Db21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMnO1xuaW1wb3J0IHsgVGFiQ2hhbmdlRXZlbnQgfSBmcm9tICcuL21vZGVscyc7XG5pbXBvcnQgeyBUQUJfQkFSIH0gZnJvbSAnLi90YWItYmFyLmNvbmZpZyc7XG5cbi8qKlxuICogYFRhYkJhckNvbXBvbmVudGAgY3JlYXRlcyBhIGR5bmFtaWMgYW5kIGFjY2Vzc2libGUgdGFiIGJhciBpbnRlcmZhY2UsXG4gKiBmYWNpbGl0YXRpbmcgdGhlIG1hbmFnZW1lbnQgYW5kIGludGVyYWN0aW9uIHdpdGggYSBjb2xsZWN0aW9uIG9mIHRhYnMuXG4gKiBJdCBzdXBwb3J0cyBrZXlib2FyZCBuYXZpZ2F0aW9uLCBkeW5hbWljIHRhYiBtYW5hZ2VtZW50LCBhbmQgcmVzcG9uc2l2ZSBvdmVyZmxvdyBhY3Rpb25zLlxuICpcbiAqIFRoZSBjb21wb25lbnQgaW50ZWdyYXRlcyB3aXRoIEFuZ3VsYXIncyBDb250ZW50Q2hpbGRyZW4gdG8gZHluYW1pY2FsbHkgbWFuYWdlIHRoZSB0YWJzIGJhc2VkIG9uIHRoZWlyIGNvbnRlbnQuXG4gKiBJdCB1c2VzIEFjdGl2ZURlc2NlbmRhbnRLZXlNYW5hZ2VyIGZyb20gQW5ndWxhciBDREsgZm9yIG1hbmFnaW5nIGZvY3VzIGFuZCBrZXlib2FyZCBuYXZpZ2F0aW9uLFxuICogbWFraW5nIGl0IGFjY2Vzc2libGUgYW5kIHVzZXItZnJpZW5kbHkuIEFkZGl0aW9uYWxseSwgaXQgaGFuZGxlcyBvdmVyZmxvdyB3aXRoIG5hdmlnYXRpb25hbCBhcnJvd3MsXG4gKiBhbGxvd2luZyBmb3IgYSBzbW9vdGggdXNlciBleHBlcmllbmNlIGV2ZW4gd2l0aCBhIGxhcmdlIG51bWJlciBvZiB0YWJzLlxuICovXG5AQ1NTQ29tcG9uZW50KCd0YWItYmFyJylcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ29keC10YWItYmFyJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgSWNvbkNvbXBvbmVudCwgQWN0aXZlSW5kaWNhdG9yRGlyZWN0aXZlXSxcbiAgdGVtcGxhdGVVcmw6ICcuL3RhYi1iYXIuY29tcG9uZW50Lmh0bWwnLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgcHJvdmlkZXJzOiBbeyBwcm92aWRlOiBUQUJfQkFSLCB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBUYWJCYXJDb21wb25lbnQpIH1dLFxuICBob3N0OiB7XG4gICAgcm9sZTogJ3RhYnBhbmVsJyxcbiAgICB0YWJpbmRleDogJzAnLFxuICB9LFxufSlcbmV4cG9ydCBjbGFzcyBUYWJCYXJDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0IHtcbiAgcHJpdmF0ZSByZWFkb25seSBjaGFuZ2VEZXRlY3RvciA9IGluamVjdChDaGFuZ2VEZXRlY3RvclJlZik7XG4gIHByaXZhdGUgcmVhZG9ubHkgdGFrZVVudGlsRGVzdHJveWVkID0gdW50aWxEZXN0cm95ZWQoKTtcbiAgcHJpdmF0ZSByZWFkb25seSBzZWxlY3RlZEluZGV4JCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0KDApO1xuXG4gIHByb3RlY3RlZCBhY3RpdmVJdGVtOiBUYWJCYXJJdGVtQ29tcG9uZW50IHwgbnVsbCA9IG51bGw7XG5cbiAgcHJvdGVjdGVkIGtleU1hbmFnZXI/OiBBY3RpdmVEZXNjZW5kYW50S2V5TWFuYWdlcjxUYWJCYXJJdGVtQ29tcG9uZW50PjtcblxuICBAVmlld0NoaWxkKCd0YWJCYXJQYW5lbCcpXG4gIHByb3RlY3RlZCB0YWJCYXJQYW5lbEVsZW1lbnQhOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PjtcblxuICBAVmlld0NoaWxkcmVuKCd0YWJBY3Rpb24nKVxuICBwcm90ZWN0ZWQgdGFiQWN0aW9uRWxlbWVudHMhOiBRdWVyeUxpc3Q8RWxlbWVudFJlZjxIVE1MRWxlbWVudD4+O1xuXG4gIEBDb250ZW50Q2hpbGRyZW4oVGFiQmFySXRlbUNvbXBvbmVudClcbiAgcHJvdGVjdGVkIHRhYnMhOiBRdWVyeUxpc3Q8VGFiQmFySXRlbUNvbXBvbmVudD47XG5cbiAgcHVibGljIHJlYWRvbmx5IGVsZW1lbnQgPSBpbmplY3RFbGVtZW50KCk7XG5cbiAgLyoqXG4gICAqIEluZGljYXRlcyB3aGV0aGVyIHRoZSB0YWIgYmFyIGhhcyBvdmVyZmxvd2VkIHRvIHRoZSBsZWZ0LlxuICAgKlxuICAgKiBAdHlwZSB7Ym9vbGVhbn1cbiAgICovXG4gIEBDU1NNb2RpZmllcigpXG4gIHB1YmxpYyBvdmVyZmxvd0xlZnQgPSBmYWxzZTtcblxuICAvKipcbiAgICogSW5kaWNhdGVzIHdoZXRoZXIgdGhlIHRhYiBiYXIgaGFzIG92ZXJmbG93ZWQgdG8gdGhlIHJpZ2h0LlxuICAgKlxuICAgKiBAdHlwZSB7Ym9vbGVhbn1cbiAgICovXG4gIEBDU1NNb2RpZmllcigpXG4gIHB1YmxpYyBvdmVyZmxvd1JpZ2h0ID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIEdldHMgb3Igc2V0cyB0aGUgaW5kZXggb2YgdGhlIGN1cnJlbnRseSBzZWxlY3RlZCB0YWIuIFVzZSB0aGlzIHByb3BlcnR5IHRvIHByb2dyYW1tYXRpY2FsbHlcbiAgICogY2hhbmdlIHRoZSBhY3RpdmUgdGFiLiBJdCByZXNwb25kcyB0byBjaGFuZ2VzIGJ5IHVwZGF0aW5nIHRoZSBhY3RpdmUgc3RhdGUgb2YgdGhlIGNvcnJlc3BvbmRpbmdcbiAgICogdGFiIGl0ZW0gYW5kIGFkanVzdGluZyB0aGUgdmlldyBpZiBuZWNlc3NhcnkuXG4gICAqXG4gICAqIEB0eXBlIHtudW1iZXJ9XG4gICAqIEBleGFtcGxlXG4gICAqIFByb2dyYW1tYXRpY2FsbHkgc2VsZWN0IHRoZSBzZWNvbmQgdGFiIChpbmRleCBzdGFydHMgZnJvbSAwKTpcbiAgICogYGBgaHRtbFxuICAgKiA8b2R4LXRhYi1iYXIgW3NlbGVjdGVkSW5kZXhdPVwiMVwiPjwvb2R4LXRhYi1iYXI+XG4gICAqIGBgYFxuICAgKi9cbiAgQElucHV0KHsgdHJhbnNmb3JtOiBudW1iZXJBdHRyaWJ1dGUgfSlcbiAgcHVibGljIHNldCBzZWxlY3RlZEluZGV4KHZhbHVlOiBudW1iZXIpIHtcbiAgICB0aGlzLnNlbGVjdGVkSW5kZXgkJC5uZXh0KHZhbHVlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBbiBFdmVudEVtaXR0ZXIgdGhhdCBlbWl0cyB3aGVuZXZlciBhIG5ldyB0YWIgaXMgc2VsZWN0ZWQuIEl0IHByb3ZpZGVzIHRoZSBgVGFiQ2hhbmdlRXZlbnRgXG4gICAqIHdoaWNoIGNvbnRhaW5zIHRoZSBpbmRleCBvZiB0aGUgbmV3bHkgc2VsZWN0ZWQgdGFiIGFuZCB0aGUgaW5zdGFuY2Ugb2YgdGhlIGNvcnJlc3BvbmRpbmdcbiAgICogYFRhYkJhckl0ZW1Db21wb25lbnRgLiBTdWJzY3JpYmUgdG8gdGhpcyBvdXRwdXQgdG8gcGVyZm9ybSBhY3Rpb25zIHdoZW4gdGhlIGFjdGl2ZSB0YWIgY2hhbmdlcy5cbiAgICpcbiAgICogQGVtaXRzIHtUYWJDaGFuZ2VFdmVudH1cbiAgICogQGV4YW1wbGVcbiAgICogYGBgaHRtbFxuICAgKiA8b2R4LXRhYi1iYXIgKHNlbGVjdGVkVGFiQ2hhbmdlZCk9XCJvblRhYkNoYW5nZSgkZXZlbnQpXCI+PC9vZHgtdGFiLWJhcj5cbiAgICogYGBgXG4gICAqXG4gICAqIGBgYHRzXG4gICAqIG9uVGFiQ2hhbmdlKGV2ZW50OiBUYWJDaGFuZ2VFdmVudCk6IHZvaWQge1xuICAgKiAgIGNvbnNvbGUubG9nKGBOZXcgYWN0aXZlIHRhYiBpbmRleDogJHtldmVudC5zZWxlY3RlZEluZGV4fWApO1xuICAgKiB9XG4gICAqIGBgYFxuICAgKi9cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyBzZWxlY3RlZFRhYkNoYW5nZWQgPSBuZXcgRXZlbnRFbWl0dGVyPFRhYkNoYW5nZUV2ZW50PigpO1xuXG4gIHB1YmxpYyBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgdGhpcy5rZXlNYW5hZ2VyID0gbmV3IEFjdGl2ZURlc2NlbmRhbnRLZXlNYW5hZ2VyKHRoaXMudGFicykud2l0aFdyYXAoKS53aXRoSG9tZUFuZEVuZCgpLndpdGhIb3Jpem9udGFsT3JpZW50YXRpb24oJ2x0cicpLndpdGhWZXJ0aWNhbE9yaWVudGF0aW9uKGZhbHNlKTtcbiAgICBjb25zdCB1cGRhdGVQYW5lbFBvc2l0aW9uJCA9IG1lcmdlKHRoaXMuc2VsZWN0ZWRUYWJDaGFuZ2VkLCBmcm9tUXVlcnlMaXN0KHRoaXMudGFicyksIGZyb21FbGVtZW50UmVzaXplJCh0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudCkpLnBpcGUoXG4gICAgICBkZWJvdW5jZVRpbWUoMCksXG4gICAgICB0YXAoKCkgPT4gdGhpcy51cGRhdGVQYW5lbFBvc2l0aW9uKCkpLFxuICAgICk7XG4gICAgY29uc3QgdXBkYXRlQWN0aW9uVmlzaWJpbGl0eSQgPSBmcm9tRXZlbnQodGhpcy50YWJCYXJQYW5lbEVsZW1lbnQubmF0aXZlRWxlbWVudCwgJ3RyYW5zaXRpb25lbmQnKS5waXBlKFxuICAgICAgdGFwKCh7IHRhcmdldCB9KSA9PiB0YXJnZXQgPT09IHRoaXMudGFiQmFyUGFuZWxFbGVtZW50Lm5hdGl2ZUVsZW1lbnQgJiYgdGhpcy51cGRhdGVBY3Rpb25WaXNiaWxpdHkoKSksXG4gICAgKTtcbiAgICBjb25zdCBhY3RpdmVJdGVtQ2hhbmdlJCA9IG1lcmdlKFxuICAgICAgdGhpcy5rZXlNYW5hZ2VyLmNoYW5nZS5waXBlKHRhcCgoKSA9PiB0aGlzLmFjdGl2ZUl0ZW1DaGFuZ2UoKSkpLFxuICAgICAgdGhpcy5zZWxlY3RlZEluZGV4JCQucGlwZSh0YXAoKGluZGV4KSA9PiB0aGlzLmtleU1hbmFnZXI/LnNldEFjdGl2ZUl0ZW0oaW5kZXgpKSksXG4gICAgKTtcbiAgICBtZXJnZShhY3RpdmVJdGVtQ2hhbmdlJCwgdXBkYXRlUGFuZWxQb3NpdGlvbiQsIHVwZGF0ZUFjdGlvblZpc2liaWxpdHkkKS5waXBlKHRoaXMudGFrZVVudGlsRGVzdHJveWVkKCkpLnN1YnNjcmliZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIEFjdGl2YXRlcyB0aGUgc3BlY2lmaWVkIHRhYiBpdGVtLlxuICAgKlxuICAgKiBAcGFyYW0ge1RhYkJhckl0ZW1Db21wb25lbnQgfCBudWxsfSBpdGVtIC0gVGhlIHRhYiBpdGVtIHRvIGFjdGl2YXRlLiBJZiBub3QgcHJvdmlkZWQgb3IgbnVsbCwgdGhlIGFjdGl2ZSBpdGVtIHdpbGwgYmUgY2xlYXJlZC5cbiAgICpcbiAgICogQGV4YW1wbGVcbiAgICogYGBgdHNcbiAgICogLy8gQWN0aXZhdGUgdGhlIGZpcnN0IHRhYiBpdGVtXG4gICAqIHRhYkJhci5hY3RpdmF0ZUl0ZW0odGFiSXRlbXNbMF0pO1xuICAgKlxuICAgKiAvLyBDbGVhciB0aGUgYWN0aXZlIGl0ZW1cbiAgICogdGFiQmFyLmFjdGl2YXRlSXRlbShudWxsKTtcbiAgICogYGBgXG4gICAqL1xuICBwdWJsaWMgYWN0aXZhdGVJdGVtKGl0ZW0/OiBUYWJCYXJJdGVtQ29tcG9uZW50IHwgbnVsbCk6IHZvaWQge1xuICAgIGlmIChpdGVtID09PSB0aGlzLmFjdGl2ZUl0ZW0pIHJldHVybjtcbiAgICBjb25zdCBzZWxlY3RlZEluZGV4ID0gaXRlbSA/IHRoaXMudGFicy50b0FycmF5KCkuaW5kZXhPZihpdGVtKSA6IC0xO1xuICAgIHRoaXMua2V5TWFuYWdlcj8uc2V0QWN0aXZlSXRlbShzZWxlY3RlZEluZGV4KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZW1vdmVzIHRoZSBzcGVjaWZpZWQgaXRlbSBmcm9tIHRoZSB0YWIgYmFyLlxuICAgKiBJZiB0aGUgcmVtb3ZlZCBpdGVtIGlzIHRoZSBhY3RpdmUgaXRlbSwgaXQgc2V0cyB0aGUgcHJldmlvdXMgaXRlbSBhcyB0aGUgbmV3IGFjdGl2ZSBpdGVtLlxuICAgKlxuICAgKiBAcGFyYW0ge1RhYkJhckl0ZW1Db21wb25lbnR9IGl0ZW0gLSBUaGUgaXRlbSB0byBiZSByZW1vdmVkIGZyb20gdGhlIHRhYiBiYXIuXG4gICAqL1xuICBwdWJsaWMgcmVtb3ZlSXRlbShpdGVtOiBUYWJCYXJJdGVtQ29tcG9uZW50KTogdm9pZCB7XG4gICAgaWYgKHRoaXMuYWN0aXZlSXRlbSAhPT0gaXRlbSkgcmV0dXJuO1xuICAgIGRlZmVyRm4oKCkgPT4gdGhpcy5rZXlNYW5hZ2VyPy5zZXRQcmV2aW91c0l0ZW1BY3RpdmUoKSk7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdrZXlkb3duJywgWyckZXZlbnQnXSlcbiAgcHJvdGVjdGVkIG9uS2V5ZG93bihldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgIHRoaXMua2V5TWFuYWdlcj8ub25LZXlkb3duKGV2ZW50KTtcbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlUGFuZWxQb3NpdGlvbigpOiB2b2lkIHtcbiAgICBjb25zdCBhY3RpdmVFbGVtZW50ID0gdGhpcy5hY3RpdmVJdGVtPy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQ7XG4gICAgaWYgKCFhY3RpdmVFbGVtZW50KSByZXR1cm47XG4gICAgY29uc3QgcGFuZWxSZWN0ID0gdGhpcy50YWJCYXJQYW5lbEVsZW1lbnQubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICBjb25zdCB0YWJCYXJSZWN0ID0gdGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgY29uc3QgbWF4UGFuZWxQb3NpdGlvblggPSBNYXRoLmZsb29yKHRhYkJhclJlY3Qud2lkdGggLSBwYW5lbFJlY3Qud2lkdGgpO1xuICAgIGNvbnN0IHBhbmVsUG9zaXRpb25YID0gdGFiQmFyUmVjdC53aWR0aCAvIDIgLSBhY3RpdmVFbGVtZW50Lm9mZnNldExlZnQgLSBhY3RpdmVFbGVtZW50Lm9mZnNldFdpZHRoIC8gMjtcbiAgICBjb25zdCBwb3NpdGlvblggPSBNYXRoLm1pbigwLCBNYXRoLm1heChwYW5lbFBvc2l0aW9uWCwgbWF4UGFuZWxQb3NpdGlvblgpKTtcbiAgICBhcHBseVN0eWxlcyh0aGlzLnRhYkJhclBhbmVsRWxlbWVudC5uYXRpdmVFbGVtZW50LCB7XG4gICAgICB0cmFuc2Zvcm06IGNzc1RyYW5zbGF0ZShweChwb3NpdGlvblgpLCAwKSxcbiAgICB9KTtcbiAgICB0aGlzLnVwZGF0ZUFjdGlvblZpc2JpbGl0eSgpO1xuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVBY3Rpb25WaXNiaWxpdHkoKTogdm9pZCB7XG4gICAgY29uc3QgcGFuZWxSZWN0ID0gdGhpcy50YWJCYXJQYW5lbEVsZW1lbnQubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICBjb25zdCB0YWJCYXJSZWN0ID0gdGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgdGhpcy5vdmVyZmxvd0xlZnQgPSBwYW5lbFJlY3QubGVmdCA8IHRhYkJhclJlY3QubGVmdDtcbiAgICB0aGlzLm92ZXJmbG93UmlnaHQgPSBwYW5lbFJlY3QucmlnaHQgPiB0YWJCYXJSZWN0LnJpZ2h0O1xuICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3IuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG5cbiAgcHJpdmF0ZSBhY3RpdmVJdGVtQ2hhbmdlKCk6IHZvaWQge1xuICAgIGNvbnN0IHsgYWN0aXZlSXRlbUluZGV4LCBhY3RpdmVJdGVtIH0gPSB0aGlzLmtleU1hbmFnZXIgPz8ge307XG4gICAgdGhpcy5hY3RpdmVJdGVtID0gYWN0aXZlSXRlbSA/PyBudWxsO1xuICAgIHRoaXMuc2VsZWN0ZWRUYWJDaGFuZ2VkLmVtaXQoeyBzZWxlY3RlZEluZGV4OiBhY3RpdmVJdGVtSW5kZXggPz8gLTEsIHNlbGVjdGVkVGFiOiB0aGlzLmtleU1hbmFnZXI/LmFjdGl2ZUl0ZW0gPz8gbnVsbCB9KTtcbiAgfVxufVxuIiwiPGJ1dHRvblxuICAjdGFiQWN0aW9uXG4gIGNsYXNzPVwib2R4LXRhYi1iYXJfX2FjdGlvbiBvZHgtdGFiLWJhcl9fYWN0aW9uLS1wcmV2XCJcbiAgW2NsYXNzLmlzLWFjdGl2ZV09XCJvdmVyZmxvd0xlZnRcIlxuICAoY2xpY2spPVwia2V5TWFuYWdlcj8uc2V0UHJldmlvdXNJdGVtQWN0aXZlKClcIlxuICB0YWJpbmRleD1cIi0xXCJcbj5cbiAgPG9keC1pY29uIGNsYXNzPVwidGFiLWJhci1hY3Rpb24taWNvblwiIG5hbWU9XCJjaGV2cm9uLWxlZnRcIiBpY29uU2V0PVwiY29yZVwiPjwvb2R4LWljb24+XG48L2J1dHRvbj5cbjxkaXYgY2xhc3M9XCJvZHgtdGFiLWJhcl9faW5uZXJcIj5cbiAgPGRpdiBjbGFzcz1cIm9keC10YWItYmFyX19wYW5lbFwiIHJvbGU9XCJ0YWJsaXN0XCIgI3RhYkJhclBhbmVsPlxuICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICA8ZGl2IGNsYXNzPVwib2R4LXRhYi1iYXJfX2luZGljYXRvclwiIFtvZHhBY3RpdmVJbmRpY2F0b3JdPVwiYWN0aXZlSXRlbT8uZWxlbWVudD8ubmF0aXZlRWxlbWVudFwiIG9keEFjdGl2ZUluZGljYXRvclBvc2l0aW9uPVwic3RhcnRcIj48L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj5cbjxidXR0b25cbiAgI3RhYkFjdGlvblxuICBjbGFzcz1cIm9keC10YWItYmFyX19hY3Rpb24gb2R4LXRhYi1iYXJfX2FjdGlvbi0tbmV4dFwiXG4gIFtjbGFzcy5pcy1hY3RpdmVdPVwib3ZlcmZsb3dSaWdodFwiXG4gIChjbGljayk9XCJrZXlNYW5hZ2VyPy5zZXROZXh0SXRlbUFjdGl2ZSgpXCJcbiAgdGFiaW5kZXg9XCItMVwiXG4+XG4gIDxvZHgtaWNvbiBjbGFzcz1cInRhYi1iYXItYWN0aW9uLWljb25cIiBuYW1lPVwiY2hldnJvbi1yaWdodFwiIGljb25TZXQ9XCJjb3JlXCI+PC9vZHgtaWNvbj5cbjwvYnV0dG9uPlxuIl19
185
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFiLWJhci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvY29tcG9uZW50cy90YWItYmFyL3NyYy9saWIvdGFiLWJhci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvY29tcG9uZW50cy90YWItYmFyL3NyYy9saWIvdGFiLWJhci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQy9ELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBRUwsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsZUFBZSxFQUNmLFVBQVUsRUFDVixZQUFZLEVBQ1osVUFBVSxFQUNWLFlBQVksRUFDWixNQUFNLEVBQ04sS0FBSyxFQUNMLGVBQWUsRUFDZixNQUFNLEVBQ04sU0FBUyxFQUNULFNBQVMsRUFDVCxZQUFZLEVBQ1osaUJBQWlCLEdBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQzdFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxhQUFhLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUN0RSxPQUFPLEVBQUUsV0FBVyxFQUFFLFlBQVksRUFBRSxPQUFPLEVBQUUsYUFBYSxFQUFFLEVBQUUsRUFBRSxjQUFjLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUMzRyxPQUFPLEVBQUUsZUFBZSxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLEdB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b3J0IHsgQWN0aXZlRGVzY2VuZGFudEtleU1hbmFnZXIgfSBmcm9tICdAYW5ndWxhci9jZGsvYTExeSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIENvbnRlbnRDaGlsZHJlbixcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBmb3J3YXJkUmVmLFxuICBIb3N0TGlzdGVuZXIsXG4gIGluamVjdCxcbiAgSW5wdXQsXG4gIG51bWJlckF0dHJpYnV0ZSxcbiAgT3V0cHV0LFxuICBRdWVyeUxpc3QsXG4gIFZpZXdDaGlsZCxcbiAgVmlld0NoaWxkcmVuLFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBY3RpdmVJbmRpY2F0b3JEaXJlY3RpdmUgfSBmcm9tICdAb2R4L2FuZ3VsYXIvY2RrL2FjdGl2ZS1pbmRpY2F0b3InO1xuaW1wb3J0IHsgSWNvbkNvbXBvbmVudCB9IGZyb20gJ0BvZHgvYW5ndWxhci9jb21wb25lbnRzL2ljb24nO1xuaW1wb3J0IHsgQ1NTQ29tcG9uZW50LCBDU1NNb2RpZmllciB9IGZyb20gJ0BvZHgvYW5ndWxhci9pbnRlcm5hbCc7XG5pbXBvcnQgeyBmcm9tRWxlbWVudFJlc2l6ZSQsIGZyb21RdWVyeUxpc3QgfSBmcm9tICdAb2R4L2FuZ3VsYXIvcnhqcyc7XG5pbXBvcnQgeyBhcHBseVN0eWxlcywgY3NzVHJhbnNsYXRlLCBkZWZlckZuLCBpbmplY3RFbGVtZW50LCBweCwgdW50aWxEZXN0cm95ZWQgfSBmcm9tICdAb2R4L2FuZ3VsYXIvdXRpbHMnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBkZWJvdW5jZVRpbWUsIGZyb21FdmVudCwgbWVyZ2UsIHRhcCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgVGFiQmFySXRlbUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cyc7XG5pbXBvcnQgeyBUYWJDaGFuZ2VFdmVudCB9IGZyb20gJy4vbW9kZWxzJztcbmltcG9ydCB7IFRBQl9CQVIgfSBmcm9tICcuL3RhYi1iYXIuY29uZmlnJztcblxuLyoqXG4gKiBgVGFiQmFyQ29tcG9uZW50YCBjcmVhdGVzIGEgZHluYW1pYyBhbmQgYWNjZXNzaWJsZSB0YWIgYmFyIGludGVyZmFjZSxcbiAqIGZhY2lsaXRhdGluZyB0aGUgbWFuYWdlbWVudCBhbmQgaW50ZXJhY3Rpb24gd2l0aCBhIGNvbGxlY3Rpb24gb2YgdGFicy5cbiAqIEl0IHN1cHBvcnRzIGtleWJvYXJkIG5hdmlnYXRpb24sIGR5bmFtaWMgdGFiIG1hbmFnZW1lbnQsIGFuZCByZXNwb25zaXZlIG92ZXJmbG93IGFjdGlvbnMuXG4gKlxuICogVGhlIGNvbXBvbmVudCBpbnRlZ3JhdGVzIHdpdGggQW5ndWxhcidzIENvbnRlbnRDaGlsZHJlbiB0byBkeW5hbWljYWxseSBtYW5hZ2UgdGhlIHRhYnMgYmFzZWQgb24gdGhlaXIgY29udGVudC5cbiAqIEl0IHVzZXMgQWN0aXZlRGVzY2VuZGFudEtleU1hbmFnZXIgZnJvbSBBbmd1bGFyIENESyBmb3IgbWFuYWdpbmcgZm9jdXMgYW5kIGtleWJvYXJkIG5hdmlnYXRpb24sXG4gKiBtYWtpbmcgaXQgYWNjZXNzaWJsZSBhbmQgdXNlci1mcmllbmRseS4gQWRkaXRpb25hbGx5LCBpdCBoYW5kbGVzIG92ZXJmbG93IHdpdGggbmF2aWdhdGlvbmFsIGFycm93cyxcbiAqIGFsbG93aW5nIGZvciBhIHNtb290aCB1c2VyIGV4cGVyaWVuY2UgZXZlbiB3aXRoIGEgbGFyZ2UgbnVtYmVyIG9mIHRhYnMuXG4gKi9cbkBDU1NDb21wb25lbnQoJ3RhYi1iYXInKVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnb2R4LXRhYi1iYXInLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBJY29uQ29tcG9uZW50LCBBY3RpdmVJbmRpY2F0b3JEaXJlY3RpdmVdLFxuICB0ZW1wbGF0ZVVybDogJy4vdGFiLWJhci5jb21wb25lbnQuaHRtbCcsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBwcm92aWRlcnM6IFt7IHByb3ZpZGU6IFRBQl9CQVIsIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFRhYkJhckNvbXBvbmVudCkgfV0sXG4gIGhvc3Q6IHtcbiAgICByb2xlOiAndGFicGFuZWwnLFxuICAgIHRhYmluZGV4OiAnMCcsXG4gIH0sXG59KVxuZXhwb3J0IGNsYXNzIFRhYkJhckNvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQge1xuICBwcml2YXRlIHJlYWRvbmx5IGNoYW5nZURldGVjdG9yID0gaW5qZWN0KENoYW5nZURldGVjdG9yUmVmKTtcbiAgcHJpdmF0ZSByZWFkb25seSB0YWtlVW50aWxEZXN0cm95ZWQgPSB1bnRpbERlc3Ryb3llZCgpO1xuICBwcml2YXRlIHJlYWRvbmx5IHNlbGVjdGVkSW5kZXgkJCA9IG5ldyBCZWhhdmlvclN1YmplY3QoMCk7XG5cbiAgcHJvdGVjdGVkIGFjdGl2ZUl0ZW06IFRhYkJhckl0ZW1Db21wb25lbnQgfCBudWxsID0gbnVsbDtcblxuICBwcm90ZWN0ZWQga2V5TWFuYWdlcj86IEFjdGl2ZURlc2NlbmRhbnRLZXlNYW5hZ2VyPFRhYkJhckl0ZW1Db21wb25lbnQ+O1xuXG4gIEBWaWV3Q2hpbGQoJ3RhYkJhclBhbmVsJylcbiAgcHJvdGVjdGVkIHRhYkJhclBhbmVsRWxlbWVudCE6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xuXG4gIEBWaWV3Q2hpbGRyZW4oJ3RhYkFjdGlvbicpXG4gIHByb3RlY3RlZCB0YWJBY3Rpb25FbGVtZW50cyE6IFF1ZXJ5TGlzdDxFbGVtZW50UmVmPEhUTUxFbGVtZW50Pj47XG5cbiAgQENvbnRlbnRDaGlsZHJlbihUYWJCYXJJdGVtQ29tcG9uZW50KVxuICBwcm90ZWN0ZWQgdGFicyE6IFF1ZXJ5TGlzdDxUYWJCYXJJdGVtQ29tcG9uZW50PjtcblxuICBwdWJsaWMgcmVhZG9ubHkgZWxlbWVudCA9IGluamVjdEVsZW1lbnQoKTtcblxuICAvKipcbiAgICogSW5kaWNhdGVzIHdoZXRoZXIgdGhlIHRhYiBiYXIgaGFzIG92ZXJmbG93ZWQgdG8gdGhlIGxlZnQuXG4gICAqXG4gICAqIEB0eXBlIHtib29sZWFufVxuICAgKi9cbiAgQENTU01vZGlmaWVyKClcbiAgcHVibGljIG92ZXJmbG93TGVmdCA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBJbmRpY2F0ZXMgd2hldGhlciB0aGUgdGFiIGJhciBoYXMgb3ZlcmZsb3dlZCB0byB0aGUgcmlnaHQuXG4gICAqXG4gICAqIEB0eXBlIHtib29sZWFufVxuICAgKi9cbiAgQENTU01vZGlmaWVyKClcbiAgcHVibGljIG92ZXJmbG93UmlnaHQgPSBmYWxzZTtcblxuICAvKipcbiAgICogR2V0cyBvciBzZXRzIHRoZSBpbmRleCBvZiB0aGUgY3VycmVudGx5IHNlbGVjdGVkIHRhYi4gVXNlIHRoaXMgcHJvcGVydHkgdG8gcHJvZ3JhbW1hdGljYWxseVxuICAgKiBjaGFuZ2UgdGhlIGFjdGl2ZSB0YWIuIEl0IHJlc3BvbmRzIHRvIGNoYW5nZXMgYnkgdXBkYXRpbmcgdGhlIGFjdGl2ZSBzdGF0ZSBvZiB0aGUgY29ycmVzcG9uZGluZ1xuICAgKiB0YWIgaXRlbSBhbmQgYWRqdXN0aW5nIHRoZSB2aWV3IGlmIG5lY2Vzc2FyeS5cbiAgICpcbiAgICogQHR5cGUge251bWJlcn1cbiAgICogQGV4YW1wbGVcbiAgICogUHJvZ3JhbW1hdGljYWxseSBzZWxlY3QgdGhlIHNlY29uZCB0YWIgKGluZGV4IHN0YXJ0cyBmcm9tIDApOlxuICAgKiBgYGBodG1sXG4gICAqIDxvZHgtdGFiLWJhciBbc2VsZWN0ZWRJbmRleF09XCIxXCI+PC9vZHgtdGFiLWJhcj5cbiAgICogYGBgXG4gICAqL1xuICBASW5wdXQoeyB0cmFuc2Zvcm06IG51bWJlckF0dHJpYnV0ZSB9KVxuICBwdWJsaWMgc2V0IHNlbGVjdGVkSW5kZXgodmFsdWU6IG51bWJlcikge1xuICAgIHRoaXMuc2VsZWN0ZWRJbmRleCQkLm5leHQodmFsdWUpO1xuICB9XG5cbiAgLyoqXG4gICAqIEFuIEV2ZW50RW1pdHRlciB0aGF0IGVtaXRzIHdoZW5ldmVyIGEgbmV3IHRhYiBpcyBzZWxlY3RlZC4gSXQgcHJvdmlkZXMgdGhlIGBUYWJDaGFuZ2VFdmVudGBcbiAgICogd2hpY2ggY29udGFpbnMgdGhlIGluZGV4IG9mIHRoZSBuZXdseSBzZWxlY3RlZCB0YWIgYW5kIHRoZSBpbnN0YW5jZSBvZiB0aGUgY29ycmVzcG9uZGluZ1xuICAgKiBgVGFiQmFySXRlbUNvbXBvbmVudGAuIFN1YnNjcmliZSB0byB0aGlzIG91dHB1dCB0byBwZXJmb3JtIGFjdGlvbnMgd2hlbiB0aGUgYWN0aXZlIHRhYiBjaGFuZ2VzLlxuICAgKlxuICAgKiBAZW1pdHMge1RhYkNoYW5nZUV2ZW50fVxuICAgKiBAZXhhbXBsZVxuICAgKiBgYGBodG1sXG4gICAqIDxvZHgtdGFiLWJhciAoc2VsZWN0ZWRUYWJDaGFuZ2VkKT1cIm9uVGFiQ2hhbmdlKCRldmVudClcIj48L29keC10YWItYmFyPlxuICAgKiBgYGBcbiAgICpcbiAgICogYGBgdHNcbiAgICogb25UYWJDaGFuZ2UoZXZlbnQ6IFRhYkNoYW5nZUV2ZW50KTogdm9pZCB7XG4gICAqICAgY29uc29sZS5sb2coYE5ldyBhY3RpdmUgdGFiIGluZGV4OiAke2V2ZW50LnNlbGVjdGVkSW5kZXh9YCk7XG4gICAqIH1cbiAgICogYGBgXG4gICAqL1xuICBAT3V0cHV0KClcbiAgcHVibGljIHNlbGVjdGVkVGFiQ2hhbmdlZCA9IG5ldyBFdmVudEVtaXR0ZXI8VGFiQ2hhbmdlRXZlbnQ+KCk7XG5cbiAgcHVibGljIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmtleU1hbmFnZXIgPSBuZXcgQWN0aXZlRGVzY2VuZGFudEtleU1hbmFnZXIodGhpcy50YWJzKS53aXRoV3JhcCgpLndpdGhIb21lQW5kRW5kKCkud2l0aEhvcml6b250YWxPcmllbnRhdGlvbignbHRyJykud2l0aFZlcnRpY2FsT3JpZW50YXRpb24oZmFsc2UpO1xuICAgIGNvbnN0IHVwZGF0ZVBhbmVsUG9zaXRpb24kID0gbWVyZ2UodGhpcy5zZWxlY3RlZFRhYkNoYW5nZWQsIGZyb21RdWVyeUxpc3QodGhpcy50YWJzKSwgZnJvbUVsZW1lbnRSZXNpemUkKHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50KSkucGlwZShcbiAgICAgIGRlYm91bmNlVGltZSgwKSxcbiAgICAgIHRhcCgoKSA9PiB0aGlzLnVwZGF0ZVBhbmVsUG9zaXRpb24oKSksXG4gICAgKTtcbiAgICBjb25zdCB1cGRhdGVBY3Rpb25WaXNpYmlsaXR5JCA9IGZyb21FdmVudCh0aGlzLnRhYkJhclBhbmVsRWxlbWVudC5uYXRpdmVFbGVtZW50LCAndHJhbnNpdGlvbmVuZCcpLnBpcGUoXG4gICAgICB0YXAoKHsgdGFyZ2V0IH0pID0+IHRhcmdldCA9PT0gdGhpcy50YWJCYXJQYW5lbEVsZW1lbnQubmF0aXZlRWxlbWVudCAmJiB0aGlzLnVwZGF0ZUFjdGlvblZpc2JpbGl0eSgpKSxcbiAgICApO1xuICAgIGNvbnN0IGFjdGl2ZUl0ZW1DaGFuZ2UkID0gbWVyZ2UoXG4gICAgICB0aGlzLmtleU1hbmFnZXIuY2hhbmdlLnBpcGUodGFwKCgpID0+IHRoaXMuYWN0aXZlSXRlbUNoYW5nZSgpKSksXG4gICAgICB0aGlzLnNlbGVjdGVkSW5kZXgkJC5waXBlKHRhcCgoaW5kZXgpID0+IHRoaXMua2V5TWFuYWdlcj8uc2V0QWN0aXZlSXRlbShpbmRleCkpKSxcbiAgICApO1xuICAgIG1lcmdlKGFjdGl2ZUl0ZW1DaGFuZ2UkLCB1cGRhdGVQYW5lbFBvc2l0aW9uJCwgdXBkYXRlQWN0aW9uVmlzaWJpbGl0eSQpLnBpcGUodGhpcy50YWtlVW50aWxEZXN0cm95ZWQoKSkuc3Vic2NyaWJlKCk7XG4gICAgdGhpcy50YWJzLmNoYW5nZXMucGlwZSh0aGlzLnRha2VVbnRpbERlc3Ryb3llZCgpKS5zdWJzY3JpYmUoKCkgPT4gdGhpcy5zZWxlY3RlZEluZGV4JCQubmV4dCh0aGlzLnNlbGVjdGVkSW5kZXgkJC52YWx1ZSkpO1xuICB9XG5cbiAgLyoqXG4gICAqIEFjdGl2YXRlcyB0aGUgc3BlY2lmaWVkIHRhYiBpdGVtLlxuICAgKlxuICAgKiBAcGFyYW0ge1RhYkJhckl0ZW1Db21wb25lbnQgfCBudWxsfSBpdGVtIC0gVGhlIHRhYiBpdGVtIHRvIGFjdGl2YXRlLiBJZiBub3QgcHJvdmlkZWQgb3IgbnVsbCwgdGhlIGFjdGl2ZSBpdGVtIHdpbGwgYmUgY2xlYXJlZC5cbiAgICpcbiAgICogQGV4YW1wbGVcbiAgICogYGBgdHNcbiAgICogLy8gQWN0aXZhdGUgdGhlIGZpcnN0IHRhYiBpdGVtXG4gICAqIHRhYkJhci5hY3RpdmF0ZUl0ZW0odGFiSXRlbXNbMF0pO1xuICAgKlxuICAgKiAvLyBDbGVhciB0aGUgYWN0aXZlIGl0ZW1cbiAgICogdGFiQmFyLmFjdGl2YXRlSXRlbShudWxsKTtcbiAgICogYGBgXG4gICAqL1xuICBwdWJsaWMgYWN0aXZhdGVJdGVtKGl0ZW0/OiBUYWJCYXJJdGVtQ29tcG9uZW50IHwgbnVsbCk6IHZvaWQge1xuICAgIGlmIChpdGVtID09PSB0aGlzLmFjdGl2ZUl0ZW0pIHJldHVybjtcbiAgICBjb25zdCBzZWxlY3RlZEluZGV4ID0gaXRlbSA/IHRoaXMudGFicy50b0FycmF5KCkuaW5kZXhPZihpdGVtKSA6IC0xO1xuICAgIHRoaXMua2V5TWFuYWdlcj8uc2V0QWN0aXZlSXRlbShzZWxlY3RlZEluZGV4KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZW1vdmVzIHRoZSBzcGVjaWZpZWQgaXRlbSBmcm9tIHRoZSB0YWIgYmFyLlxuICAgKiBJZiB0aGUgcmVtb3ZlZCBpdGVtIGlzIHRoZSBhY3RpdmUgaXRlbSwgaXQgc2V0cyB0aGUgcHJldmlvdXMgaXRlbSBhcyB0aGUgbmV3IGFjdGl2ZSBpdGVtLlxuICAgKlxuICAgKiBAcGFyYW0ge1RhYkJhckl0ZW1Db21wb25lbnR9IGl0ZW0gLSBUaGUgaXRlbSB0byBiZSByZW1vdmVkIGZyb20gdGhlIHRhYiBiYXIuXG4gICAqL1xuICBwdWJsaWMgcmVtb3ZlSXRlbShpdGVtOiBUYWJCYXJJdGVtQ29tcG9uZW50KTogdm9pZCB7XG4gICAgaWYgKHRoaXMuYWN0aXZlSXRlbSAhPT0gaXRlbSkgcmV0dXJuO1xuICAgIGRlZmVyRm4oKCkgPT4gdGhpcy5rZXlNYW5hZ2VyPy5zZXRQcmV2aW91c0l0ZW1BY3RpdmUoKSk7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdrZXlkb3duJywgWyckZXZlbnQnXSlcbiAgcHJvdGVjdGVkIG9uS2V5ZG93bihldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgIHRoaXMua2V5TWFuYWdlcj8ub25LZXlkb3duKGV2ZW50KTtcbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlUGFuZWxQb3NpdGlvbigpOiB2b2lkIHtcbiAgICBjb25zdCBhY3RpdmVFbGVtZW50ID0gdGhpcy5hY3RpdmVJdGVtPy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQ7XG4gICAgaWYgKCFhY3RpdmVFbGVtZW50KSByZXR1cm47XG4gICAgY29uc3QgcGFuZWxSZWN0ID0gdGhpcy50YWJCYXJQYW5lbEVsZW1lbnQubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICBjb25zdCB0YWJCYXJSZWN0ID0gdGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgY29uc3QgbWF4UGFuZWxQb3NpdGlvblggPSBNYXRoLmZsb29yKHRhYkJhclJlY3Qud2lkdGggLSBwYW5lbFJlY3Qud2lkdGgpO1xuICAgIGNvbnN0IHBhbmVsUG9zaXRpb25YID0gdGFiQmFyUmVjdC53aWR0aCAvIDIgLSBhY3RpdmVFbGVtZW50Lm9mZnNldExlZnQgLSBhY3RpdmVFbGVtZW50Lm9mZnNldFdpZHRoIC8gMjtcbiAgICBjb25zdCBwb3NpdGlvblggPSBNYXRoLm1pbigwLCBNYXRoLm1heChwYW5lbFBvc2l0aW9uWCwgbWF4UGFuZWxQb3NpdGlvblgpKTtcbiAgICBhcHBseVN0eWxlcyh0aGlzLnRhYkJhclBhbmVsRWxlbWVudC5uYXRpdmVFbGVtZW50LCB7XG4gICAgICB0cmFuc2Zvcm06IGNzc1RyYW5zbGF0ZShweChwb3NpdGlvblgpLCAwKSxcbiAgICB9KTtcbiAgICB0aGlzLnVwZGF0ZUFjdGlvblZpc2JpbGl0eSgpO1xuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVBY3Rpb25WaXNiaWxpdHkoKTogdm9pZCB7XG4gICAgY29uc3QgcGFuZWxSZWN0ID0gdGhpcy50YWJCYXJQYW5lbEVsZW1lbnQubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICBjb25zdCB0YWJCYXJSZWN0ID0gdGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgdGhpcy5vdmVyZmxvd0xlZnQgPSBwYW5lbFJlY3QubGVmdCA8IHRhYkJhclJlY3QubGVmdDtcbiAgICB0aGlzLm92ZXJmbG93UmlnaHQgPSBwYW5lbFJlY3QucmlnaHQgPiB0YWJCYXJSZWN0LnJpZ2h0O1xuICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3IuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG5cbiAgcHJpdmF0ZSBhY3RpdmVJdGVtQ2hhbmdlKCk6IHZvaWQge1xuICAgIGNvbnN0IHsgYWN0aXZlSXRlbUluZGV4LCBhY3RpdmVJdGVtIH0gPSB0aGlzLmtleU1hbmFnZXIgPz8ge307XG4gICAgdGhpcy5hY3RpdmVJdGVtID0gYWN0aXZlSXRlbSA/PyBudWxsO1xuICAgIHRoaXMuc2VsZWN0ZWRUYWJDaGFuZ2VkLmVtaXQoeyBzZWxlY3RlZEluZGV4OiBhY3RpdmVJdGVtSW5kZXggPz8gLTEsIHNlbGVjdGVkVGFiOiB0aGlzLmtleU1hbmFnZXI/LmFjdGl2ZUl0ZW0gPz8gbnVsbCB9KTtcbiAgfVxufVxuIiwiPGJ1dHRvblxuICAjdGFiQWN0aW9uXG4gIGNsYXNzPVwib2R4LXRhYi1iYXJfX2FjdGlvbiBvZHgtdGFiLWJhcl9fYWN0aW9uLS1wcmV2XCJcbiAgW2NsYXNzLmlzLWFjdGl2ZV09XCJvdmVyZmxvd0xlZnRcIlxuICAoY2xpY2spPVwia2V5TWFuYWdlcj8uc2V0UHJldmlvdXNJdGVtQWN0aXZlKClcIlxuICB0YWJpbmRleD1cIi0xXCJcbj5cbiAgPG9keC1pY29uIGNsYXNzPVwidGFiLWJhci1hY3Rpb24taWNvblwiIG5hbWU9XCJjaGV2cm9uLWxlZnRcIiBpY29uU2V0PVwiY29yZVwiPjwvb2R4LWljb24+XG48L2J1dHRvbj5cbjxkaXYgY2xhc3M9XCJvZHgtdGFiLWJhcl9faW5uZXJcIj5cbiAgPGRpdiBjbGFzcz1cIm9keC10YWItYmFyX19wYW5lbFwiIHJvbGU9XCJ0YWJsaXN0XCIgI3RhYkJhclBhbmVsPlxuICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICA8ZGl2IGNsYXNzPVwib2R4LXRhYi1iYXJfX2luZGljYXRvclwiIFtvZHhBY3RpdmVJbmRpY2F0b3JdPVwiYWN0aXZlSXRlbT8uZWxlbWVudD8ubmF0aXZlRWxlbWVudFwiIG9keEFjdGl2ZUluZGljYXRvclBvc2l0aW9uPVwic3RhcnRcIj48L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj5cbjxidXR0b25cbiAgI3RhYkFjdGlvblxuICBjbGFzcz1cIm9keC10YWItYmFyX19hY3Rpb24gb2R4LXRhYi1iYXJfX2FjdGlvbi0tbmV4dFwiXG4gIFtjbGFzcy5pcy1hY3RpdmVdPVwib3ZlcmZsb3dSaWdodFwiXG4gIChjbGljayk9XCJrZXlNYW5hZ2VyPy5zZXROZXh0SXRlbUFjdGl2ZSgpXCJcbiAgdGFiaW5kZXg9XCItMVwiXG4+XG4gIDxvZHgtaWNvbiBjbGFzcz1cInRhYi1iYXItYWN0aW9uLWljb25cIiBuYW1lPVwiY2hldnJvbi1yaWdodFwiIGljb25TZXQ9XCJjb3JlXCI+PC9vZHgtaWNvbj5cbjwvYnV0dG9uPlxuIl19
@@ -46,7 +46,7 @@ export let ToastContainerComponent = class ToastContainerComponent {
46
46
  this.toastService.dismiss(itemRef);
47
47
  }
48
48
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ToastContainerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
49
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "16.2.12", type: ToastContainerComponent, isStandalone: true, selector: "odx-toast-container", inputs: { maxItems: ["maxItems", "maxItems", numberAttribute] }, outputs: { dismiss: "dismiss" }, ngImport: i0, template: "<odx-toast\n @slide\n [id]=\"toastRef.id\"\n [title]=\"toastRef.item.title\"\n [description]=\"toastRef.item.description\"\n [actions]=\"toastRef.item.actions ?? []\"\n [variant]=\"toastRef.item.variant\"\n [options]=\"toastRef.options\"\n (dismiss)=\"onDismiss(toastRef)\"\n *ngFor=\"let toastRef of items$ | async; trackBy: trackById\"\n></odx-toast>\n<odx-chip class=\"odx-toast-container__counter\" *ngIf=\"hiddenToasts$ | async as more\">{{ more }} more Notifications</odx-chip>\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "component", type: ChipComponent, selector: "odx-chip", inputs: ["removable", "size", "variant"], outputs: ["remove"] }, { kind: "component", type: ToastItemComponent, selector: "odx-toast", inputs: ["id", "title", "description", "variant", "actions", "options"], outputs: ["dismiss"] }], animations: [
49
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "16.2.12", type: ToastContainerComponent, isStandalone: true, selector: "odx-toast-container", inputs: { maxItems: ["maxItems", "maxItems", numberAttribute] }, outputs: { dismiss: "dismiss" }, ngImport: i0, template: "<odx-toast\n @slide\n [id]=\"toastRef.id\"\n [title]=\"toastRef.item.title\"\n [description]=\"toastRef.item.description\"\n [descriptionContext]=\"toastRef.item.descriptionContext\"\n [actions]=\"toastRef.item.actions ?? []\"\n [variant]=\"toastRef.item.variant\"\n [options]=\"toastRef.options\"\n (dismiss)=\"onDismiss(toastRef)\"\n *ngFor=\"let toastRef of items$ | async; trackBy: trackById\"\n></odx-toast>\n<odx-chip class=\"odx-toast-container__counter\" *ngIf=\"hiddenToasts$ | async as more\">{{ more }} more Notifications</odx-chip>\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "component", type: ChipComponent, selector: "odx-chip", inputs: ["removable", "size", "variant"], outputs: ["remove"] }, { kind: "component", type: ToastItemComponent, selector: "odx-toast", inputs: ["id", "title", "description", "descriptionContext", "variant", "actions", "options"], outputs: ["dismiss"] }], animations: [
50
50
  trigger('slide', [
51
51
  transition(':enter', group([
52
52
  useAnimation(expand),
@@ -71,11 +71,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
71
71
  ])),
72
72
  transition(':leave', group([useAnimation(collapse)])),
73
73
  ]),
74
- ], template: "<odx-toast\n @slide\n [id]=\"toastRef.id\"\n [title]=\"toastRef.item.title\"\n [description]=\"toastRef.item.description\"\n [actions]=\"toastRef.item.actions ?? []\"\n [variant]=\"toastRef.item.variant\"\n [options]=\"toastRef.options\"\n (dismiss)=\"onDismiss(toastRef)\"\n *ngFor=\"let toastRef of items$ | async; trackBy: trackById\"\n></odx-toast>\n<odx-chip class=\"odx-toast-container__counter\" *ngIf=\"hiddenToasts$ | async as more\">{{ more }} more Notifications</odx-chip>\n" }]
74
+ ], template: "<odx-toast\n @slide\n [id]=\"toastRef.id\"\n [title]=\"toastRef.item.title\"\n [description]=\"toastRef.item.description\"\n [descriptionContext]=\"toastRef.item.descriptionContext\"\n [actions]=\"toastRef.item.actions ?? []\"\n [variant]=\"toastRef.item.variant\"\n [options]=\"toastRef.options\"\n (dismiss)=\"onDismiss(toastRef)\"\n *ngFor=\"let toastRef of items$ | async; trackBy: trackById\"\n></odx-toast>\n<odx-chip class=\"odx-toast-container__counter\" *ngIf=\"hiddenToasts$ | async as more\">{{ more }} more Notifications</odx-chip>\n" }]
75
75
  }], propDecorators: { maxItems: [{
76
76
  type: Input,
77
77
  args: [{ transform: numberAttribute }]
78
78
  }], dismiss: [{
79
79
  type: Output
80
80
  }] } });
81
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9hc3QtY29udGFpbmVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci9jb21wb25lbnRzL3RvYXN0L3NyYy9saWIvY29tcG9uZW50cy90b2FzdC1jb250YWluZXIvdG9hc3QtY29udGFpbmVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci9jb21wb25lbnRzL3RvYXN0L3NyYy9saWIvY29tcG9uZW50cy90b2FzdC1jb250YWluZXIvdG9hc3QtY29udGFpbmVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsT0FBTyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQy9FLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBRUwsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxLQUFLLEVBRUwsTUFBTSxFQUNOLFNBQVMsRUFDVCxpQkFBaUIsRUFDakIsTUFBTSxFQUNOLGVBQWUsR0FDaEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUN6QyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDakYsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQzdELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNqRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDckQsT0FBTyxFQUFFLGFBQWEsRUFBRSxFQUFFLEVBQUUsU0FBUyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDbEUsT0FBTyxFQUFjLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUV2QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDbkQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7OztBQUV4RSxNQUFNLHFCQUFxQixHQUFHLE9BQU8sQ0FBQztBQXVCL0IsV0FBTSx1QkFBdUIsR0FBN0IsTUFBTSx1QkFBdUI7SUFBN0I7UUFHWSxjQUFTLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQzlCLGFBQVEsR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDN0IsaUJBQVksR0FBRyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUM7UUFFbEMsY0FBUyxHQUFHLFNBQVMsQ0FBQztRQUV6QixZQUFPLEdBQUcsYUFBYSxFQUFFLENBQUM7UUFDMUIsV0FBTSxHQUEyQixJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzdHLGtCQUFhLEdBQXVCLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUdySSxhQUFRLEdBQUcsQ0FBQyxDQUFDO1FBR0osWUFBTyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsY0FBYyxDQUFDO0tBb0I1RDs7YUFwQ2dCLGdCQUFXLEdBQUcsS0FBSyxBQUFSLENBQVM7SUFrQjVCLGVBQWU7UUFDcEIsSUFBSSx5QkFBdUIsQ0FBQyxXQUFXLEVBQUU7WUFDdkMsTUFBTSxJQUFJLEtBQUssQ0FBQyxrREFBa0QsQ0FBQyxDQUFDO1NBQ3JFO1FBQ0QseUJBQXVCLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQztRQUMzQyxNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLGdCQUFnQixDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQ3ZFLElBQUksYUFBYSxFQUFFO1lBQ2pCLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUMsYUFBYSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUM7U0FDM0Y7SUFDSCxDQUFDO0lBRU0sV0FBVztRQUNoQix5QkFBdUIsQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDO0lBQzlDLENBQUM7SUFFUyxTQUFTLENBQUMsT0FBaUI7UUFDbkMsSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDckMsQ0FBQzsrR0FwQ1UsdUJBQXVCO21HQUF2Qix1QkFBdUIsb0dBYWQsZUFBZSw4REM3RHJDLGdmQVlBLDJDRHFCWSxZQUFZLHFUQUFFLGFBQWEsb0hBQUUsa0JBQWtCLHVJQUM3QztZQUNWLE9BQU8sQ0FBQyxPQUFPLEVBQUU7Z0JBQ2YsVUFBVSxDQUNSLFFBQVEsRUFDUixLQUFLLENBQUM7b0JBQ0osWUFBWSxDQUFDLE1BQU0sQ0FBQztvQkFDcEIsWUFBWSxDQUFDLE1BQU0sRUFBRSxFQUFFLEVBQUUsTUFBTSxFQUFFLEVBQUUsS0FBSyxFQUFFLHFCQUFxQixFQUFFLEVBQUUsQ0FBQztvQkFDcEUsWUFBWSxDQUFDLFlBQVksRUFBRSxFQUFFLE1BQU0sRUFBRSxFQUFFLEtBQUssRUFBRSxxQkFBcUIsRUFBRSxFQUFFLENBQUM7aUJBQ3pFLENBQUMsQ0FDSDtnQkFDRCxVQUFVLENBQUMsUUFBUSxFQUFFLEtBQUssQ0FBQyxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFDdEQsQ0FBQztTQUNIOztBQUVVLHVCQUF1QjtJQXRCbkMsWUFBWSxDQUFDLGlCQUFpQixDQUFDO0dBc0JuQix1QkFBdUIsQ0FxQ25DOzRGQXJDWSx1QkFBdUI7a0JBckJuQyxTQUFTOytCQUNFLHFCQUFxQixjQUVuQixJQUFJLG1CQUNDLHVCQUF1QixDQUFDLE1BQU0saUJBQ2hDLGlCQUFpQixDQUFDLElBQUksV0FDNUIsQ0FBQyxZQUFZLEVBQUUsYUFBYSxFQUFFLGtCQUFrQixDQUFDLGNBQzlDO3dCQUNWLE9BQU8sQ0FBQyxPQUFPLEVBQUU7NEJBQ2YsVUFBVSxDQUNSLFFBQVEsRUFDUixLQUFLLENBQUM7Z0NBQ0osWUFBWSxDQUFDLE1BQU0sQ0FBQztnQ0FDcEIsWUFBWSxDQUFDLE1BQU0sRUFBRSxFQUFFLEVBQUUsTUFBTSxFQUFFLEVBQUUsS0FBSyxFQUFFLHFCQUFxQixFQUFFLEVBQUUsQ0FBQztnQ0FDcEUsWUFBWSxDQUFDLFlBQVksRUFBRSxFQUFFLE1BQU0sRUFBRSxFQUFFLEtBQUssRUFBRSxxQkFBcUIsRUFBRSxFQUFFLENBQUM7NkJBQ3pFLENBQUMsQ0FDSDs0QkFDRCxVQUFVLENBQUMsUUFBUSxFQUFFLEtBQUssQ0FBQyxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUM7eUJBQ3RELENBQUM7cUJBQ0g7OEJBZ0JNLFFBQVE7c0JBRGQsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxlQUFlLEVBQUU7Z0JBSXJCLE9BQU87c0JBRHRCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBncm91cCwgdHJhbnNpdGlvbiwgdHJpZ2dlciwgdXNlQW5pbWF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvYW5pbWF0aW9ucyc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgT3V0cHV0LFxuICBSZW5kZXJlcjIsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxuICBpbmplY3QsXG4gIG51bWJlckF0dHJpYnV0ZSxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBXaW5kb3dSZWYgfSBmcm9tICdAb2R4L2FuZ3VsYXInO1xuaW1wb3J0IHsgY29sbGFwc2UsIGV4cGFuZCwgZmFkZUluLCBzbGlkZUluUmlnaHQgfSBmcm9tICdAb2R4L2FuZ3VsYXIvYW5pbWF0aW9ucyc7XG5pbXBvcnQgeyBDaGlwQ29tcG9uZW50IH0gZnJvbSAnQG9keC9hbmd1bGFyL2NvbXBvbmVudHMvY2hpcCc7XG5pbXBvcnQgeyBIZWFkZXJDb21wb25lbnQgfSBmcm9tICdAb2R4L2FuZ3VsYXIvY29tcG9uZW50cy9oZWFkZXInO1xuaW1wb3J0IHsgQ1NTQ29tcG9uZW50IH0gZnJvbSAnQG9keC9hbmd1bGFyL2ludGVybmFsJztcbmltcG9ydCB7IGluamVjdEVsZW1lbnQsIHB4LCB0cmFja0J5SWQgfSBmcm9tICdAb2R4L2FuZ3VsYXIvdXRpbHMnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgbWFwIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBUb2FzdFJlZiB9IGZyb20gJy4uLy4uL21vZGVscyc7XG5pbXBvcnQgeyBUb2FzdFNlcnZpY2UgfSBmcm9tICcuLi8uLi90b2FzdC5zZXJ2aWNlJztcbmltcG9ydCB7IFRvYXN0SXRlbUNvbXBvbmVudCB9IGZyb20gJy4uL3RvYXN0LWl0ZW0vdG9hc3QtaXRlbS5jb21wb25lbnQnO1xuXG5jb25zdCBUT0FTVF9BTklNQVRJT05fREVMQVkgPSAnMTI1bXMnO1xuQENTU0NvbXBvbmVudCgndG9hc3QtY29udGFpbmVyJylcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ29keC10b2FzdC1jb250YWluZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vdG9hc3QtY29udGFpbmVyLmNvbXBvbmVudC5odG1sJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIENoaXBDb21wb25lbnQsIFRvYXN0SXRlbUNvbXBvbmVudF0sXG4gIGFuaW1hdGlvbnM6IFtcbiAgICB0cmlnZ2VyKCdzbGlkZScsIFtcbiAgICAgIHRyYW5zaXRpb24oXG4gICAgICAgICc6ZW50ZXInLFxuICAgICAgICBncm91cChbXG4gICAgICAgICAgdXNlQW5pbWF0aW9uKGV4cGFuZCksXG4gICAgICAgICAgdXNlQW5pbWF0aW9uKGZhZGVJbigpLCB7IHBhcmFtczogeyBkZWxheTogVE9BU1RfQU5JTUFUSU9OX0RFTEFZIH0gfSksXG4gICAgICAgICAgdXNlQW5pbWF0aW9uKHNsaWRlSW5SaWdodCwgeyBwYXJhbXM6IHsgZGVsYXk6IFRPQVNUX0FOSU1BVElPTl9ERUxBWSB9IH0pLFxuICAgICAgICBdKSxcbiAgICAgICksXG4gICAgICB0cmFuc2l0aW9uKCc6bGVhdmUnLCBncm91cChbdXNlQW5pbWF0aW9uKGNvbGxhcHNlKV0pKSxcbiAgICBdKSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgVG9hc3RDb250YWluZXJDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xuICBwcml2YXRlIHN0YXRpYyBJTklUSUFMSVpFRCA9IGZhbHNlO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgd2luZG93UmVmID0gaW5qZWN0KFdpbmRvd1JlZik7XG4gIHByaXZhdGUgcmVhZG9ubHkgcmVuZGVyZXIgPSBpbmplY3QoUmVuZGVyZXIyKTtcbiAgcHJpdmF0ZSByZWFkb25seSB0b2FzdFNlcnZpY2UgPSBpbmplY3QoVG9hc3RTZXJ2aWNlKTtcblxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgdHJhY2tCeUlkID0gdHJhY2tCeUlkO1xuXG4gIHB1YmxpYyByZWFkb25seSBlbGVtZW50ID0gaW5qZWN0RWxlbWVudCgpO1xuICBwdWJsaWMgcmVhZG9ubHkgaXRlbXMkOiBPYnNlcnZhYmxlPFRvYXN0UmVmW10+ID0gdGhpcy50b2FzdFNlcnZpY2UudG9hc3RzJC5waXBlKG1hcCgocmVmcykgPT4gcmVmcy5zbGljZSgwLCB0aGlzLm1heEl0ZW1zKSkpO1xuICBwdWJsaWMgcmVhZG9ubHkgaGlkZGVuVG9hc3RzJDogT2JzZXJ2YWJsZTxudW1iZXI+ID0gdGhpcy50b2FzdFNlcnZpY2UudG9hc3RzJC5waXBlKG1hcCgocmVmcykgPT4gTWF0aC5tYXgoMCwgcmVmcy5sZW5ndGggLSB0aGlzLm1heEl0ZW1zKSkpO1xuXG4gIEBJbnB1dCh7IHRyYW5zZm9ybTogbnVtYmVyQXR0cmlidXRlIH0pXG4gIHB1YmxpYyBtYXhJdGVtcyA9IDM7XG5cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyByZWFkb25seSBkaXNtaXNzID0gdGhpcy50b2FzdFNlcnZpY2Uub25Ub2FzdFJlbW92ZSQ7XG5cbiAgcHVibGljIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICBpZiAoVG9hc3RDb250YWluZXJDb21wb25lbnQuSU5JVElBTElaRUQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignT25seSBvbmUgdG9hc3QgY29udGFpbmVyIHBlciBhcHBsaWNhdGlvbiBhbGxvd2VkJyk7XG4gICAgfVxuICAgIFRvYXN0Q29udGFpbmVyQ29tcG9uZW50LklOSVRJQUxJWkVEID0gdHJ1ZTtcbiAgICBjb25zdCBoZWFkZXJFbGVtZW50ID0gdGhpcy53aW5kb3dSZWYucXVlcnlCeUNvbXBvbmVudChIZWFkZXJDb21wb25lbnQpO1xuICAgIGlmIChoZWFkZXJFbGVtZW50KSB7XG4gICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50LCAndG9wJywgcHgoaGVhZGVyRWxlbWVudC5vZmZzZXRIZWlnaHQpKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgVG9hc3RDb250YWluZXJDb21wb25lbnQuSU5JVElBTElaRUQgPSBmYWxzZTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvbkRpc21pc3MoaXRlbVJlZjogVG9hc3RSZWYpOiB2b2lkIHtcbiAgICB0aGlzLnRvYXN0U2VydmljZS5kaXNtaXNzKGl0ZW1SZWYpO1xuICB9XG59XG4iLCI8b2R4LXRvYXN0XG4gIEBzbGlkZVxuICBbaWRdPVwidG9hc3RSZWYuaWRcIlxuICBbdGl0bGVdPVwidG9hc3RSZWYuaXRlbS50aXRsZVwiXG4gIFtkZXNjcmlwdGlvbl09XCJ0b2FzdFJlZi5pdGVtLmRlc2NyaXB0aW9uXCJcbiAgW2FjdGlvbnNdPVwidG9hc3RSZWYuaXRlbS5hY3Rpb25zID8/IFtdXCJcbiAgW3ZhcmlhbnRdPVwidG9hc3RSZWYuaXRlbS52YXJpYW50XCJcbiAgW29wdGlvbnNdPVwidG9hc3RSZWYub3B0aW9uc1wiXG4gIChkaXNtaXNzKT1cIm9uRGlzbWlzcyh0b2FzdFJlZilcIlxuICAqbmdGb3I9XCJsZXQgdG9hc3RSZWYgb2YgaXRlbXMkIHwgYXN5bmM7IHRyYWNrQnk6IHRyYWNrQnlJZFwiXG4+PC9vZHgtdG9hc3Q+XG48b2R4LWNoaXAgY2xhc3M9XCJvZHgtdG9hc3QtY29udGFpbmVyX19jb3VudGVyXCIgKm5nSWY9XCJoaWRkZW5Ub2FzdHMkIHwgYXN5bmMgYXMgbW9yZVwiPnt7IG1vcmUgfX0gbW9yZSBOb3RpZmljYXRpb25zPC9vZHgtY2hpcD5cbiJdfQ==
81
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9hc3QtY29udGFpbmVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci9jb21wb25lbnRzL3RvYXN0L3NyYy9saWIvY29tcG9uZW50cy90b2FzdC1jb250YWluZXIvdG9hc3QtY29udGFpbmVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci9jb21wb25lbnRzL3RvYXN0L3NyYy9saWIvY29tcG9uZW50cy90b2FzdC1jb250YWluZXIvdG9hc3QtY29udGFpbmVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsT0FBTyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQy9FLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBRUwsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxLQUFLLEVBRUwsTUFBTSxFQUNOLFNBQVMsRUFDVCxpQkFBaUIsRUFDakIsTUFBTSxFQUNOLGVBQWUsR0FDaEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUN6QyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDakYsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQzdELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNqRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDckQsT0FBTyxFQUFFLGFBQWEsRUFBRSxFQUFFLEVBQUUsU0FBUyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDbEUsT0FB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Q0FBQyxpQkFBaUIsQ0FBQztHQXNCbkIsdUJBQXVCLENBcUNuQzs0RkFyQ1ksdUJBQXVCO2tCQXJCbkMsU0FBUzsrQkFDRSxxQkFBcUIsY0FFbkIsSUFBSSxtQkFDQyx1QkFBdUIsQ0FBQyxNQUFNLGlCQUNoQyxpQkFBaUIsQ0FBQyxJQUFJLFdBQzVCLENBQUMsWUFBWSxFQUFFLGFBQWEsRUFBRSxrQkFBa0IsQ0FBQyxjQUM5Qzt3QkFDVixPQUFPLENBQUMsT0FBTyxFQUFFOzRCQUNmLFVBQVUsQ0FDUixRQUFRLEVBQ1IsS0FBSyxDQUFDO2dDQUNKLFlBQVksQ0FBQyxNQUFNLENBQUM7Z0NBQ3BCLFlBQVksQ0FBQyxNQUFNLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxFQUFFLEtBQUssRUFBRSxxQkFBcUIsRUFBRSxFQUFFLENBQUM7Z0NBQ3BFLFlBQVksQ0FBQyxZQUFZLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRSxLQUFLLEVBQUUscUJBQXFCLEVBQUUsRUFBRSxDQUFDOzZCQUN6RSxDQUFDLENBQ0g7NEJBQ0QsVUFBVSxDQUFDLFFBQVEsRUFBRSxLQUFLLENBQUMsQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDO3lCQUN0RCxDQUFDO3FCQUNIOzhCQWdCTSxRQUFRO3NCQURkLEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsZUFBZSxFQUFFO2dCQUlyQixPQUFPO3NCQUR0QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZ3JvdXAsIHRyYW5zaXRpb24sIHRyaWdnZXIsIHVzZUFuaW1hdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2FuaW1hdGlvbnMnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIElucHV0LFxuICBPbkRlc3Ryb3ksXG4gIE91dHB1dCxcbiAgUmVuZGVyZXIyLFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbiAgaW5qZWN0LFxuICBudW1iZXJBdHRyaWJ1dGUsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgV2luZG93UmVmIH0gZnJvbSAnQG9keC9hbmd1bGFyJztcbmltcG9ydCB7IGNvbGxhcHNlLCBleHBhbmQsIGZhZGVJbiwgc2xpZGVJblJpZ2h0IH0gZnJvbSAnQG9keC9hbmd1bGFyL2FuaW1hdGlvbnMnO1xuaW1wb3J0IHsgQ2hpcENvbXBvbmVudCB9IGZyb20gJ0BvZHgvYW5ndWxhci9jb21wb25lbnRzL2NoaXAnO1xuaW1wb3J0IHsgSGVhZGVyQ29tcG9uZW50IH0gZnJvbSAnQG9keC9hbmd1bGFyL2NvbXBvbmVudHMvaGVhZGVyJztcbmltcG9ydCB7IENTU0NvbXBvbmVudCB9IGZyb20gJ0BvZHgvYW5ndWxhci9pbnRlcm5hbCc7XG5pbXBvcnQgeyBpbmplY3RFbGVtZW50LCBweCwgdHJhY2tCeUlkIH0gZnJvbSAnQG9keC9hbmd1bGFyL3V0aWxzJztcbmltcG9ydCB7IE9ic2VydmFibGUsIG1hcCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgVG9hc3RSZWYgfSBmcm9tICcuLi8uLi9tb2RlbHMnO1xuaW1wb3J0IHsgVG9hc3RTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vdG9hc3Quc2VydmljZSc7XG5pbXBvcnQgeyBUb2FzdEl0ZW1Db21wb25lbnQgfSBmcm9tICcuLi90b2FzdC1pdGVtL3RvYXN0LWl0ZW0uY29tcG9uZW50JztcblxuY29uc3QgVE9BU1RfQU5JTUFUSU9OX0RFTEFZID0gJzEyNW1zJztcbkBDU1NDb21wb25lbnQoJ3RvYXN0LWNvbnRhaW5lcicpXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdvZHgtdG9hc3QtY29udGFpbmVyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3RvYXN0LWNvbnRhaW5lci5jb21wb25lbnQuaHRtbCcsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBDaGlwQ29tcG9uZW50LCBUb2FzdEl0ZW1Db21wb25lbnRdLFxuICBhbmltYXRpb25zOiBbXG4gICAgdHJpZ2dlcignc2xpZGUnLCBbXG4gICAgICB0cmFuc2l0aW9uKFxuICAgICAgICAnOmVudGVyJyxcbiAgICAgICAgZ3JvdXAoW1xuICAgICAgICAgIHVzZUFuaW1hdGlvbihleHBhbmQpLFxuICAgICAgICAgIHVzZUFuaW1hdGlvbihmYWRlSW4oKSwgeyBwYXJhbXM6IHsgZGVsYXk6IFRPQVNUX0FOSU1BVElPTl9ERUxBWSB9IH0pLFxuICAgICAgICAgIHVzZUFuaW1hdGlvbihzbGlkZUluUmlnaHQsIHsgcGFyYW1zOiB7IGRlbGF5OiBUT0FTVF9BTklNQVRJT05fREVMQVkgfSB9KSxcbiAgICAgICAgXSksXG4gICAgICApLFxuICAgICAgdHJhbnNpdGlvbignOmxlYXZlJywgZ3JvdXAoW3VzZUFuaW1hdGlvbihjb2xsYXBzZSldKSksXG4gICAgXSksXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIFRvYXN0Q29udGFpbmVyQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcbiAgcHJpdmF0ZSBzdGF0aWMgSU5JVElBTElaRUQgPSBmYWxzZTtcblxuICBwcml2YXRlIHJlYWRvbmx5IHdpbmRvd1JlZiA9IGluamVjdChXaW5kb3dSZWYpO1xuICBwcml2YXRlIHJlYWRvbmx5IHJlbmRlcmVyID0gaW5qZWN0KFJlbmRlcmVyMik7XG4gIHByaXZhdGUgcmVhZG9ubHkgdG9hc3RTZXJ2aWNlID0gaW5qZWN0KFRvYXN0U2VydmljZSk7XG5cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHRyYWNrQnlJZCA9IHRyYWNrQnlJZDtcblxuICBwdWJsaWMgcmVhZG9ubHkgZWxlbWVudCA9IGluamVjdEVsZW1lbnQoKTtcbiAgcHVibGljIHJlYWRvbmx5IGl0ZW1zJDogT2JzZXJ2YWJsZTxUb2FzdFJlZltdPiA9IHRoaXMudG9hc3RTZXJ2aWNlLnRvYXN0cyQucGlwZShtYXAoKHJlZnMpID0+IHJlZnMuc2xpY2UoMCwgdGhpcy5tYXhJdGVtcykpKTtcbiAgcHVibGljIHJlYWRvbmx5IGhpZGRlblRvYXN0cyQ6IE9ic2VydmFibGU8bnVtYmVyPiA9IHRoaXMudG9hc3RTZXJ2aWNlLnRvYXN0cyQucGlwZShtYXAoKHJlZnMpID0+IE1hdGgubWF4KDAsIHJlZnMubGVuZ3RoIC0gdGhpcy5tYXhJdGVtcykpKTtcblxuICBASW5wdXQoeyB0cmFuc2Zvcm06IG51bWJlckF0dHJpYnV0ZSB9KVxuICBwdWJsaWMgbWF4SXRlbXMgPSAzO1xuXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgcmVhZG9ubHkgZGlzbWlzcyA9IHRoaXMudG9hc3RTZXJ2aWNlLm9uVG9hc3RSZW1vdmUkO1xuXG4gIHB1YmxpYyBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgaWYgKFRvYXN0Q29udGFpbmVyQ29tcG9uZW50LklOSVRJQUxJWkVEKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ09ubHkgb25lIHRvYXN0IGNvbnRhaW5lciBwZXIgYXBwbGljYXRpb24gYWxsb3dlZCcpO1xuICAgIH1cbiAgICBUb2FzdENvbnRhaW5lckNvbXBvbmVudC5JTklUSUFMSVpFRCA9IHRydWU7XG4gICAgY29uc3QgaGVhZGVyRWxlbWVudCA9IHRoaXMud2luZG93UmVmLnF1ZXJ5QnlDb21wb25lbnQoSGVhZGVyQ29tcG9uZW50KTtcbiAgICBpZiAoaGVhZGVyRWxlbWVudCkge1xuICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudCwgJ3RvcCcsIHB4KGhlYWRlckVsZW1lbnQub2Zmc2V0SGVpZ2h0KSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIFRvYXN0Q29udGFpbmVyQ29tcG9uZW50LklOSVRJQUxJWkVEID0gZmFsc2U7XG4gIH1cblxuICBwcm90ZWN0ZWQgb25EaXNtaXNzKGl0ZW1SZWY6IFRvYXN0UmVmKTogdm9pZCB7XG4gICAgdGhpcy50b2FzdFNlcnZpY2UuZGlzbWlzcyhpdGVtUmVmKTtcbiAgfVxufVxuIiwiPG9keC10b2FzdFxuICBAc2xpZGVcbiAgW2lkXT1cInRvYXN0UmVmLmlkXCJcbiAgW3RpdGxlXT1cInRvYXN0UmVmLml0ZW0udGl0bGVcIlxuICBbZGVzY3JpcHRpb25dPVwidG9hc3RSZWYuaXRlbS5kZXNjcmlwdGlvblwiXG4gIFtkZXNjcmlwdGlvbkNvbnRleHRdPVwidG9hc3RSZWYuaXRlbS5kZXNjcmlwdGlvbkNvbnRleHRcIlxuICBbYWN0aW9uc109XCJ0b2FzdFJlZi5pdGVtLmFjdGlvbnMgPz8gW11cIlxuICBbdmFyaWFudF09XCJ0b2FzdFJlZi5pdGVtLnZhcmlhbnRcIlxuICBbb3B0aW9uc109XCJ0b2FzdFJlZi5vcHRpb25zXCJcbiAgKGRpc21pc3MpPVwib25EaXNtaXNzKHRvYXN0UmVmKVwiXG4gICpuZ0Zvcj1cImxldCB0b2FzdFJlZiBvZiBpdGVtcyQgfCBhc3luYzsgdHJhY2tCeTogdHJhY2tCeUlkXCJcbj48L29keC10b2FzdD5cbjxvZHgtY2hpcCBjbGFzcz1cIm9keC10b2FzdC1jb250YWluZXJfX2NvdW50ZXJcIiAqbmdJZj1cImhpZGRlblRvYXN0cyQgfCBhc3luYyBhcyBtb3JlXCI+e3sgbW9yZSB9fSBtb3JlIE5vdGlmaWNhdGlvbnM8L29keC1jaGlwPlxuIl19
@@ -42,7 +42,7 @@ export let ToastItemComponent = class ToastItemComponent {
42
42
  this.dismiss.next();
43
43
  }
44
44
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ToastItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
45
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: ToastItemComponent, isStandalone: true, selector: "odx-toast", inputs: { id: "id", title: "title", description: "description", variant: "variant", actions: "actions", options: "options" }, outputs: { dismiss: "dismiss" }, host: { properties: { "attr.id": "id" } }, ngImport: i0, template: "<div class=\"odx-toast-item__content\">\n <odx-icon [name]=\"icon\" iconSet=\"core\"></odx-icon>\n <div class=\"odx-toast-item__text-content\">\n <p class=\"odx-toast-item__title\">\n <ng-template [odxDynamicView]=\"title\"> </ng-template>\n </p>\n <p class=\"odx-toast-item__description\" *ngIf=\"description\">\n <ng-template [odxDynamicView]=\"description\"> </ng-template>\n </p>\n </div>\n <button odxButton class=\"odx-toast-item__close\" (click)=\"onDismiss()\" *ngIf=\"options?.dismissable\">\n <odx-icon name=\"close\" iconSet=\"core\"></odx-icon>\n </button>\n</div>\n<odx-action-group class=\"odx-toast-item__buttons\" *ngIf=\"!!actions?.length\">\n <button odxButton (click)=\"action.action()\" *ngFor=\"let action of actions\">\n <odx-icon [name]=\"action.leftIcon\" iconSet=\"core\" alignLeft *ngIf=\"action.leftIcon\"></odx-icon>\n <ng-template [odxDynamicView]=\"action.label\"> </ng-template>\n <odx-icon [name]=\"action.rightIcon\" iconSet=\"core\" alignRight *ngIf=\"action.rightIcon\"></odx-icon>\n </button>\n</odx-action-group>\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: IconComponent, selector: "odx-icon", inputs: ["inline", "size", "name", "iconSet", "identifier"] }, { kind: "component", type: ButtonComponent, selector: "button[odxButton], a[odxButton]", inputs: ["variant", "size"] }, { kind: "directive", type: DynamicViewDirective, selector: "ng-template[odxDynamicView]", inputs: ["odxDynamicView", "odxDynamicViewInjector", "odxDynamicViewContext"] }, { kind: "component", type: ActionGroupComponent, selector: "odx-action-group", inputs: ["reverse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
45
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: ToastItemComponent, isStandalone: true, selector: "odx-toast", inputs: { id: "id", title: "title", description: "description", descriptionContext: "descriptionContext", variant: "variant", actions: "actions", options: "options" }, outputs: { dismiss: "dismiss" }, host: { properties: { "attr.id": "id" } }, ngImport: i0, template: "<div class=\"odx-toast-item__content\">\n <odx-icon [name]=\"icon\" iconSet=\"core\"></odx-icon>\n <div class=\"odx-toast-item__text-content\">\n <p class=\"odx-toast-item__title\">\n <ng-template [odxDynamicView]=\"title\"> </ng-template>\n </p>\n <p class=\"odx-toast-item__description\" *ngIf=\"description\">\n <ng-template [odxDynamicView]=\"description\" [odxDynamicViewContext]=\"descriptionContext\"> </ng-template>\n </p>\n </div>\n <button odxButton class=\"odx-toast-item__close\" (click)=\"onDismiss()\" *ngIf=\"options?.dismissable\">\n <odx-icon name=\"close\" iconSet=\"core\"></odx-icon>\n </button>\n</div>\n<odx-action-group class=\"odx-toast-item__buttons\" *ngIf=\"!!actions?.length\">\n <button odxButton (click)=\"action.action()\" *ngFor=\"let action of actions\">\n <odx-icon [name]=\"action.leftIcon\" iconSet=\"core\" alignLeft *ngIf=\"action.leftIcon\"></odx-icon>\n <ng-template [odxDynamicView]=\"action.label\"> </ng-template>\n <odx-icon [name]=\"action.rightIcon\" iconSet=\"core\" alignRight *ngIf=\"action.rightIcon\"></odx-icon>\n </button>\n</odx-action-group>\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: IconComponent, selector: "odx-icon", inputs: ["inline", "size", "name", "iconSet", "identifier"] }, { kind: "component", type: ButtonComponent, selector: "button[odxButton], a[odxButton]", inputs: ["variant", "size"] }, { kind: "directive", type: DynamicViewDirective, selector: "ng-template[odxDynamicView]", inputs: ["odxDynamicView", "odxDynamicViewInjector", "odxDynamicViewContext"] }, { kind: "component", type: ActionGroupComponent, selector: "odx-action-group", inputs: ["reverse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
46
46
  };
47
47
  __decorate([
48
48
  CSSModifier(),
@@ -55,13 +55,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
55
55
  type: Component,
56
56
  args: [{ selector: 'odx-toast', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, imports: [CommonModule, IconComponent, ButtonComponent, DynamicViewDirective, ActionGroupComponent], host: {
57
57
  '[attr.id]': 'id',
58
- }, template: "<div class=\"odx-toast-item__content\">\n <odx-icon [name]=\"icon\" iconSet=\"core\"></odx-icon>\n <div class=\"odx-toast-item__text-content\">\n <p class=\"odx-toast-item__title\">\n <ng-template [odxDynamicView]=\"title\"> </ng-template>\n </p>\n <p class=\"odx-toast-item__description\" *ngIf=\"description\">\n <ng-template [odxDynamicView]=\"description\"> </ng-template>\n </p>\n </div>\n <button odxButton class=\"odx-toast-item__close\" (click)=\"onDismiss()\" *ngIf=\"options?.dismissable\">\n <odx-icon name=\"close\" iconSet=\"core\"></odx-icon>\n </button>\n</div>\n<odx-action-group class=\"odx-toast-item__buttons\" *ngIf=\"!!actions?.length\">\n <button odxButton (click)=\"action.action()\" *ngFor=\"let action of actions\">\n <odx-icon [name]=\"action.leftIcon\" iconSet=\"core\" alignLeft *ngIf=\"action.leftIcon\"></odx-icon>\n <ng-template [odxDynamicView]=\"action.label\"> </ng-template>\n <odx-icon [name]=\"action.rightIcon\" iconSet=\"core\" alignRight *ngIf=\"action.rightIcon\"></odx-icon>\n </button>\n</odx-action-group>\n" }]
58
+ }, template: "<div class=\"odx-toast-item__content\">\n <odx-icon [name]=\"icon\" iconSet=\"core\"></odx-icon>\n <div class=\"odx-toast-item__text-content\">\n <p class=\"odx-toast-item__title\">\n <ng-template [odxDynamicView]=\"title\"> </ng-template>\n </p>\n <p class=\"odx-toast-item__description\" *ngIf=\"description\">\n <ng-template [odxDynamicView]=\"description\" [odxDynamicViewContext]=\"descriptionContext\"> </ng-template>\n </p>\n </div>\n <button odxButton class=\"odx-toast-item__close\" (click)=\"onDismiss()\" *ngIf=\"options?.dismissable\">\n <odx-icon name=\"close\" iconSet=\"core\"></odx-icon>\n </button>\n</div>\n<odx-action-group class=\"odx-toast-item__buttons\" *ngIf=\"!!actions?.length\">\n <button odxButton (click)=\"action.action()\" *ngFor=\"let action of actions\">\n <odx-icon [name]=\"action.leftIcon\" iconSet=\"core\" alignLeft *ngIf=\"action.leftIcon\"></odx-icon>\n <ng-template [odxDynamicView]=\"action.label\"> </ng-template>\n <odx-icon [name]=\"action.rightIcon\" iconSet=\"core\" alignRight *ngIf=\"action.rightIcon\"></odx-icon>\n </button>\n</odx-action-group>\n" }]
59
59
  }], propDecorators: { id: [{
60
60
  type: Input
61
61
  }], title: [{
62
62
  type: Input
63
63
  }], description: [{
64
64
  type: Input
65
+ }], descriptionContext: [{
66
+ type: Input
65
67
  }], variant: [{
66
68
  type: Input
67
69
  }], actions: [{
@@ -71,4 +73,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
71
73
  }], dismiss: [{
72
74
  type: Output
73
75
  }] } });
74
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9hc3QtaXRlbS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvY29tcG9uZW50cy90b2FzdC9zcmMvbGliL2NvbXBvbmVudHMvdG9hc3QtaXRlbS90b2FzdC1pdGVtLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci9jb21wb25lbnRzL3RvYXN0L3NyYy9saWIvY29tcG9uZW50cy90b2FzdC1pdGVtL3RvYXN0LWl0ZW0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNILE9BQU8sRUFBc0Isb0JBQW9CLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUN6RixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUM1RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDakUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQzdELE9BQU8sRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGFBQWEsRUFBRSxjQUFjLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNuRSxPQUFPLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNsQyxPQUFPLEVBQTZCLFlBQVksRUFBRSxNQUFNLGNBQWMsQ0FBQzs7O0FBY2hFLFdBQU0sa0JBQWtCLEdBQXhCLE1BQU0sa0JBQWtCO0lBQXhCO1FBQ1ksdUJBQWtCLEdBQUcsY0FBYyxFQUFFLENBQUM7UUFFdkMsWUFBTyxHQUFHLGFBQWEsRUFBRSxDQUFDO1FBMEJuQyxZQUFPLEdBQXlCLFlBQVksQ0FBQyxPQUFPLENBQUM7UUFTNUMsWUFBTyxHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7S0FpQnBEO0lBbERDLElBQVcsSUFBSTtRQUNiLFFBQVEsSUFBSSxDQUFDLE9BQU8sRUFBRTtZQUNwQixLQUFLLFlBQVksQ0FBQyxPQUFPO2dCQUN2QixPQUFPLFNBQVMsQ0FBQztZQUNuQixLQUFLLFlBQVksQ0FBQyxNQUFNO2dCQUN0QixPQUFPLE9BQU8sQ0FBQztZQUNqQixLQUFLLFlBQVksQ0FBQyxPQUFPO2dCQUN2QixPQUFPLE9BQU8sQ0FBQztZQUNqQjtnQkFDRSxPQUFPLE1BQU0sQ0FBQztTQUNqQjtJQUNILENBQUM7SUF3Qk0sUUFBUTtRQUNiLE1BQU0sRUFBRSxRQUFRLEVBQUUsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDO1FBQ2xDLElBQUksUUFBUSxHQUFHLENBQUMsRUFBRTtZQUNoQixLQUFLLENBQUMsUUFBUSxDQUFDO2lCQUNaLElBQUksQ0FDSCxJQUFJLENBQUMsa0JBQWtCLEVBQUUsRUFDekIsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUM1QjtpQkFDQSxTQUFTLEVBQUUsQ0FBQztTQUNoQjtJQUNILENBQUM7SUFFTSxTQUFTO1FBQ2QsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUN0QixDQUFDOytHQXREVSxrQkFBa0I7bUdBQWxCLGtCQUFrQiwrUUN2Qi9CLHNrQ0FxQkEsMkNESFksWUFBWSxnUUFBRSxhQUFhLGtIQUFFLGVBQWUseUdBQUUsb0JBQW9CLHVKQUFFLG9CQUFvQjs7QUFrQzNGO0lBRk4sV0FBVyxFQUFFOzttREFFOEM7QUE3QmpELGtCQUFrQjtJQVo5QixZQUFZLENBQUMsWUFBWSxDQUFDO0dBWWQsa0JBQWtCLENBdUQ5Qjs0RkF2RFksa0JBQWtCO2tCQVg5QixTQUFTOytCQUNFLFdBQVcsY0FFVCxJQUFJLG1CQUNDLHVCQUF1QixDQUFDLE1BQU0saUJBQ2hDLGlCQUFpQixDQUFDLElBQUksV0FDNUIsQ0FBQyxZQUFZLEVBQUUsYUFBYSxFQUFFLGVBQWUsRUFBRSxvQkFBb0IsRUFBRSxvQkFBb0IsQ0FBQyxRQUM3Rjt3QkFDSixXQUFXLEVBQUUsSUFBSTtxQkFDbEI7OEJBcUJNLEVBQUU7c0JBRFIsS0FBSztnQkFJQyxLQUFLO3NCQURYLEtBQUs7Z0JBSUMsV0FBVztzQkFEakIsS0FBSztnQkFLQyxPQUFPO3NCQURiLEtBQUs7Z0JBSUMsT0FBTztzQkFEYixLQUFLO2dCQUlDLE9BQU87c0JBRGIsS0FBSztnQkFJVSxPQUFPO3NCQUR0QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0LCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRHluYW1pY1RleHRDb250ZW50LCBEeW5hbWljVmlld0RpcmVjdGl2ZSB9IGZyb20gJ0BvZHgvYW5ndWxhci9jZGsvZHluYW1pYy12aWV3JztcbmltcG9ydCB7IEFjdGlvbkdyb3VwQ29tcG9uZW50IH0gZnJvbSAnQG9keC9hbmd1bGFyL2NvbXBvbmVudHMvYWN0aW9uLWdyb3VwJztcbmltcG9ydCB7IEJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJ0BvZHgvYW5ndWxhci9jb21wb25lbnRzL2J1dHRvbic7XG5pbXBvcnQgeyBJY29uQ29tcG9uZW50IH0gZnJvbSAnQG9keC9hbmd1bGFyL2NvbXBvbmVudHMvaWNvbic7XG5pbXBvcnQgeyBDU1NDb21wb25lbnQsIENTU01vZGlmaWVyIH0gZnJvbSAnQG9keC9hbmd1bGFyL2ludGVybmFsJztcbmltcG9ydCB7IGluamVjdEVsZW1lbnQsIHVudGlsRGVzdHJveWVkIH0gZnJvbSAnQG9keC9hbmd1bGFyL3V0aWxzJztcbmltcG9ydCB7IHRhcCwgdGltZXIgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFRvYXN0QWN0aW9uLCBUb2FzdE9wdGlvbnMsIFRvYXN0VmFyaWFudCB9IGZyb20gJy4uLy4uL21vZGVscyc7XG5cbkBDU1NDb21wb25lbnQoJ3RvYXN0LWl0ZW0nKVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnb2R4LXRvYXN0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL3RvYXN0LWl0ZW0uY29tcG9uZW50Lmh0bWwnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgSWNvbkNvbXBvbmVudCwgQnV0dG9uQ29tcG9uZW50LCBEeW5hbWljVmlld0RpcmVjdGl2ZSwgQWN0aW9uR3JvdXBDb21wb25lbnRdLFxuICBob3N0OiB7XG4gICAgJ1thdHRyLmlkXSc6ICdpZCcsXG4gIH0sXG59KVxuZXhwb3J0IGNsYXNzIFRvYXN0SXRlbUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIHByaXZhdGUgcmVhZG9ubHkgdGFrZVVudGlsRGVzdHJveWVkID0gdW50aWxEZXN0cm95ZWQoKTtcblxuICBwdWJsaWMgcmVhZG9ubHkgZWxlbWVudCA9IGluamVjdEVsZW1lbnQoKTtcblxuICBwdWJsaWMgZ2V0IGljb24oKTogc3RyaW5nIHtcbiAgICBzd2l0Y2ggKHRoaXMudmFyaWFudCkge1xuICAgICAgY2FzZSBUb2FzdFZhcmlhbnQuV0FSTklORzpcbiAgICAgICAgcmV0dXJuICd3YXJuaW5nJztcbiAgICAgIGNhc2UgVG9hc3RWYXJpYW50LkRBTkdFUjpcbiAgICAgICAgcmV0dXJuICdlcnJvcic7XG4gICAgICBjYXNlIFRvYXN0VmFyaWFudC5TVUNDRVNTOlxuICAgICAgICByZXR1cm4gJ2NoZWNrJztcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybiAnaW5mbyc7XG4gICAgfVxuICB9XG5cbiAgQElucHV0KClcbiAgcHVibGljIGlkITogc3RyaW5nO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyB0aXRsZSE6IER5bmFtaWNUZXh0Q29udGVudDtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgZGVzY3JpcHRpb24/OiBEeW5hbWljVGV4dENvbnRlbnQgfCBudWxsO1xuXG4gIEBDU1NNb2RpZmllcigpXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyB2YXJpYW50PzogVG9hc3RWYXJpYW50IHwgbnVsbCA9IFRvYXN0VmFyaWFudC5ERUZBVUxUO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBhY3Rpb25zPzogVG9hc3RBY3Rpb25bXTtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgb3B0aW9ucyE6IFRvYXN0T3B0aW9ucztcblxuICBAT3V0cHV0KClcbiAgcHVibGljIHJlYWRvbmx5IGRpc21pc3MgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIGNvbnN0IHsgZHVyYXRpb24gfSA9IHRoaXMub3B0aW9ucztcbiAgICBpZiAoZHVyYXRpb24gPiAwKSB7XG4gICAgICB0aW1lcihkdXJhdGlvbilcbiAgICAgICAgLnBpcGUoXG4gICAgICAgICAgdGhpcy50YWtlVW50aWxEZXN0cm95ZWQoKSxcbiAgICAgICAgICB0YXAoKCkgPT4gdGhpcy5vbkRpc21pc3MoKSksXG4gICAgICAgIClcbiAgICAgICAgLnN1YnNjcmliZSgpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBvbkRpc21pc3MoKTogdm9pZCB7XG4gICAgdGhpcy5kaXNtaXNzLm5leHQoKTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cIm9keC10b2FzdC1pdGVtX19jb250ZW50XCI+XG4gIDxvZHgtaWNvbiBbbmFtZV09XCJpY29uXCIgaWNvblNldD1cImNvcmVcIj48L29keC1pY29uPlxuICA8ZGl2IGNsYXNzPVwib2R4LXRvYXN0LWl0ZW1fX3RleHQtY29udGVudFwiPlxuICAgIDxwIGNsYXNzPVwib2R4LXRvYXN0LWl0ZW1fX3RpdGxlXCI+XG4gICAgICA8bmctdGVtcGxhdGUgW29keER5bmFtaWNWaWV3XT1cInRpdGxlXCI+IDwvbmctdGVtcGxhdGU+XG4gICAgPC9wPlxuICAgIDxwIGNsYXNzPVwib2R4LXRvYXN0LWl0ZW1fX2Rlc2NyaXB0aW9uXCIgKm5nSWY9XCJkZXNjcmlwdGlvblwiPlxuICAgICAgPG5nLXRlbXBsYXRlIFtvZHhEeW5hbWljVmlld109XCJkZXNjcmlwdGlvblwiPiA8L25nLXRlbXBsYXRlPlxuICAgIDwvcD5cbiAgPC9kaXY+XG4gIDxidXR0b24gb2R4QnV0dG9uIGNsYXNzPVwib2R4LXRvYXN0LWl0ZW1fX2Nsb3NlXCIgKGNsaWNrKT1cIm9uRGlzbWlzcygpXCIgKm5nSWY9XCJvcHRpb25zPy5kaXNtaXNzYWJsZVwiPlxuICAgIDxvZHgtaWNvbiBuYW1lPVwiY2xvc2VcIiBpY29uU2V0PVwiY29yZVwiPjwvb2R4LWljb24+XG4gIDwvYnV0dG9uPlxuPC9kaXY+XG48b2R4LWFjdGlvbi1ncm91cCBjbGFzcz1cIm9keC10b2FzdC1pdGVtX19idXR0b25zXCIgKm5nSWY9XCIhIWFjdGlvbnM/Lmxlbmd0aFwiPlxuICA8YnV0dG9uIG9keEJ1dHRvbiAoY2xpY2spPVwiYWN0aW9uLmFjdGlvbigpXCIgKm5nRm9yPVwibGV0IGFjdGlvbiBvZiBhY3Rpb25zXCI+XG4gICAgPG9keC1pY29uIFtuYW1lXT1cImFjdGlvbi5sZWZ0SWNvblwiIGljb25TZXQ9XCJjb3JlXCIgYWxpZ25MZWZ0ICpuZ0lmPVwiYWN0aW9uLmxlZnRJY29uXCI+PC9vZHgtaWNvbj5cbiAgICA8bmctdGVtcGxhdGUgW29keER5bmFtaWNWaWV3XT1cImFjdGlvbi5sYWJlbFwiPiA8L25nLXRlbXBsYXRlPlxuICAgIDxvZHgtaWNvbiBbbmFtZV09XCJhY3Rpb24ucmlnaHRJY29uXCIgaWNvblNldD1cImNvcmVcIiBhbGlnblJpZ2h0ICpuZ0lmPVwiYWN0aW9uLnJpZ2h0SWNvblwiPjwvb2R4LWljb24+XG4gIDwvYnV0dG9uPlxuPC9vZHgtYWN0aW9uLWdyb3VwPlxuIl19
76
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9hc3QtaXRlbS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvY29tcG9uZW50cy90b2FzdC9zcmMvbGliL2NvbXBvbmVudHMvdG9hc3QtaXRlbS90b2FzdC1pdGVtLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci9jb21wb25lbnRzL3RvYXN0L3NyYy9saWIvY29tcG9uZW50cy90b2FzdC1pdGVtL3RvYXN0LWl0ZW0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFRLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2pJLE9BQU8sRUFBc0Msb0JBQW9CLEVBQXlCLE1BQU0sK0JBQStCLENBQUM7QUFDaEksT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDNUUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ2pFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxhQUFhLEVBQUUsY0FBYyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDbkUsT0FBTyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDbEMsT0FBTyxFQUE2QixZQUFZLEVBQUUsTUFBTSxjQUFjLENBQUM7OztBQWNoRSxXQUFNLGtCQUFrQixHQUF4QixNQUFNLGtCQUFrQjtJQUF4QjtRQUNZLHVCQUFrQixHQUFHLGNBQWMsRUFBRSxDQUFDO1FBRXZDLFlBQU8sR0FBRyxhQUFhLEVBQUUsQ0FBQztRQTZCbkMsWUFBTyxHQUF5QixZQUFZLENBQUMsT0FBTyxDQUFDO1FBUzVDLFlBQU8sR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO0tBaUJwRDtJQXJEQyxJQUFXLElBQUk7UUFDYixRQUFRLElBQUksQ0FBQyxPQUFPLEVBQUU7WUFDcEIsS0FBSyxZQUFZLENBQUMsT0FBTztnQkFDdkIsT0FBTyxTQUFTLENBQUM7WUFDbkIsS0FBSyxZQUFZLENBQUMsTUFBTTtnQkFDdEIsT0FBTyxPQUFPLENBQUM7WUFDakIsS0FBSyxZQUFZLENBQUMsT0FBTztnQkFDdkIsT0FBTyxPQUFPLENBQUM7WUFDakI7Z0JBQ0UsT0FBTyxNQUFNLENBQUM7U0FDakI7SUFDSCxDQUFDO0lBMkJNLFFBQVE7UUFDYixNQUFNLEVBQUUsUUFBUSxFQUFFLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQztRQUNsQyxJQUFJLFFBQVEsR0FBRyxDQUFDLEVBQUU7WUFDaEIsS0FBSyxDQUFDLFFBQVEsQ0FBQztpQkFDWixJQUFJLENBQ0gsSUFBSSxDQUFDLGtCQUFrQixFQUFFLEVBQ3pCLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FDNUI7aUJBQ0EsU0FBUyxFQUFFLENBQUM7U0FDaEI7SUFDSCxDQUFDO0lBRU0sU0FBUztRQUNkLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDdEIsQ0FBQzsrR0F6RFUsa0JBQWtCO21HQUFsQixrQkFBa0IseVRDdkIvQixxbkNBcUJBLDJDREhZLFlBQVksZ1FBQUUsYUFBYSxrSEFBRSxlQUFlLHlHQUFFLG9CQUFvQix1SkFBRSxvQkFBb0I7O0FBcUMzRjtJQUZOLFdBQVcsRUFBRTs7bURBRThDO0FBaENqRCxrQkFBa0I7SUFaOUIsWUFBWSxDQUFDLFlBQVksQ0FBQztHQVlkLGtCQUFrQixDQTBEOUI7NEZBMURZLGtCQUFrQjtrQkFYOUIsU0FBUzsrQkFDRSxXQUFXLGNBRVQsSUFBSSxtQkFDQyx1QkFBdUIsQ0FBQyxNQUFNLGlCQUNoQyxpQkFBaUIsQ0FBQyxJQUFJLFdBQzVCLENBQUMsWUFBWSxFQUFFLGFBQWEsRUFBRSxlQUFlLEVBQUUsb0JBQW9CLEVBQUUsb0JBQW9CLENBQUMsUUFDN0Y7d0JBQ0osV0FBVyxFQUFFLElBQUk7cUJBQ2xCOzhCQXFCTSxFQUFFO3NCQURSLEtBQUs7Z0JBSUMsS0FBSztzQkFEWCxLQUFLO2dCQUlDLFdBQVc7c0JBRGpCLEtBQUs7Z0JBSUMsa0JBQWtCO3NCQUR4QixLQUFLO2dCQUtDLE9BQU87c0JBRGIsS0FBSztnQkFJQyxPQUFPO3NCQURiLEtBQUs7Z0JBSUMsT0FBTztzQkFEYixLQUFLO2dCQUlVLE9BQU87c0JBRHRCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQsIFR5cGUsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEeW5hbWljQ29udGVudCwgRHluYW1pY1RleHRDb250ZW50LCBEeW5hbWljVmlld0RpcmVjdGl2ZSwgR2V0RHluYW1pY1ZpZXdDb250ZXh0IH0gZnJvbSAnQG9keC9hbmd1bGFyL2Nkay9keW5hbWljLXZpZXcnO1xuaW1wb3J0IHsgQWN0aW9uR3JvdXBDb21wb25lbnQgfSBmcm9tICdAb2R4L2FuZ3VsYXIvY29tcG9uZW50cy9hY3Rpb24tZ3JvdXAnO1xuaW1wb3J0IHsgQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnQG9keC9hbmd1bGFyL2NvbXBvbmVudHMvYnV0dG9uJztcbmltcG9ydCB7IEljb25Db21wb25lbnQgfSBmcm9tICdAb2R4L2FuZ3VsYXIvY29tcG9uZW50cy9pY29uJztcbmltcG9ydCB7IENTU0NvbXBvbmVudCwgQ1NTTW9kaWZpZXIgfSBmcm9tICdAb2R4L2FuZ3VsYXIvaW50ZXJuYWwnO1xuaW1wb3J0IHsgaW5qZWN0RWxlbWVudCwgdW50aWxEZXN0cm95ZWQgfSBmcm9tICdAb2R4L2FuZ3VsYXIvdXRpbHMnO1xuaW1wb3J0IHsgdGFwLCB0aW1lciB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgVG9hc3RBY3Rpb24sIFRvYXN0T3B0aW9ucywgVG9hc3RWYXJpYW50IH0gZnJvbSAnLi4vLi4vbW9kZWxzJztcblxuQENTU0NvbXBvbmVudCgndG9hc3QtaXRlbScpXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdvZHgtdG9hc3QnLFxuICB0ZW1wbGF0ZVVybDogJy4vdG9hc3QtaXRlbS5jb21wb25lbnQuaHRtbCcsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBJY29uQ29tcG9uZW50LCBCdXR0b25Db21wb25lbnQsIER5bmFtaWNWaWV3RGlyZWN0aXZlLCBBY3Rpb25Hcm91cENvbXBvbmVudF0sXG4gIGhvc3Q6IHtcbiAgICAnW2F0dHIuaWRdJzogJ2lkJyxcbiAgfSxcbn0pXG5leHBvcnQgY2xhc3MgVG9hc3RJdGVtQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgcHJpdmF0ZSByZWFkb25seSB0YWtlVW50aWxEZXN0cm95ZWQgPSB1bnRpbERlc3Ryb3llZCgpO1xuXG4gIHB1YmxpYyByZWFkb25seSBlbGVtZW50ID0gaW5qZWN0RWxlbWVudCgpO1xuXG4gIHB1YmxpYyBnZXQgaWNvbigpOiBzdHJpbmcge1xuICAgIHN3aXRjaCAodGhpcy52YXJpYW50KSB7XG4gICAgICBjYXNlIFRvYXN0VmFyaWFudC5XQVJOSU5HOlxuICAgICAgICByZXR1cm4gJ3dhcm5pbmcnO1xuICAgICAgY2FzZSBUb2FzdFZhcmlhbnQuREFOR0VSOlxuICAgICAgICByZXR1cm4gJ2Vycm9yJztcbiAgICAgIGNhc2UgVG9hc3RWYXJpYW50LlNVQ0NFU1M6XG4gICAgICAgIHJldHVybiAnY2hlY2snO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuICdpbmZvJztcbiAgICB9XG4gIH1cblxuICBASW5wdXQoKVxuICBwdWJsaWMgaWQhOiBzdHJpbmc7XG5cbiAgQElucHV0KClcbiAgcHVibGljIHRpdGxlITogRHluYW1pY1RleHRDb250ZW50O1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBkZXNjcmlwdGlvbj86IER5bmFtaWNDb250ZW50IHwgbnVsbDtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgZGVzY3JpcHRpb25Db250ZXh0PzogR2V0RHluYW1pY1ZpZXdDb250ZXh0PFR5cGU8dW5rbm93bj4+O1xuXG4gIEBDU1NNb2RpZmllcigpXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyB2YXJpYW50PzogVG9hc3RWYXJpYW50IHwgbnVsbCA9IFRvYXN0VmFyaWFudC5ERUZBVUxUO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBhY3Rpb25zPzogVG9hc3RBY3Rpb25bXTtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgb3B0aW9ucyE6IFRvYXN0T3B0aW9ucztcblxuICBAT3V0cHV0KClcbiAgcHVibGljIHJlYWRvbmx5IGRpc21pc3MgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIGNvbnN0IHsgZHVyYXRpb24gfSA9IHRoaXMub3B0aW9ucztcbiAgICBpZiAoZHVyYXRpb24gPiAwKSB7XG4gICAgICB0aW1lcihkdXJhdGlvbilcbiAgICAgICAgLnBpcGUoXG4gICAgICAgICAgdGhpcy50YWtlVW50aWxEZXN0cm95ZWQoKSxcbiAgICAgICAgICB0YXAoKCkgPT4gdGhpcy5vbkRpc21pc3MoKSksXG4gICAgICAgIClcbiAgICAgICAgLnN1YnNjcmliZSgpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBvbkRpc21pc3MoKTogdm9pZCB7XG4gICAgdGhpcy5kaXNtaXNzLm5leHQoKTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cIm9keC10b2FzdC1pdGVtX19jb250ZW50XCI+XG4gIDxvZHgtaWNvbiBbbmFtZV09XCJpY29uXCIgaWNvblNldD1cImNvcmVcIj48L29keC1pY29uPlxuICA8ZGl2IGNsYXNzPVwib2R4LXRvYXN0LWl0ZW1fX3RleHQtY29udGVudFwiPlxuICAgIDxwIGNsYXNzPVwib2R4LXRvYXN0LWl0ZW1fX3RpdGxlXCI+XG4gICAgICA8bmctdGVtcGxhdGUgW29keER5bmFtaWNWaWV3XT1cInRpdGxlXCI+IDwvbmctdGVtcGxhdGU+XG4gICAgPC9wPlxuICAgIDxwIGNsYXNzPVwib2R4LXRvYXN0LWl0ZW1fX2Rlc2NyaXB0aW9uXCIgKm5nSWY9XCJkZXNjcmlwdGlvblwiPlxuICAgICAgPG5nLXRlbXBsYXRlIFtvZHhEeW5hbWljVmlld109XCJkZXNjcmlwdGlvblwiIFtvZHhEeW5hbWljVmlld0NvbnRleHRdPVwiZGVzY3JpcHRpb25Db250ZXh0XCI+IDwvbmctdGVtcGxhdGU+XG4gICAgPC9wPlxuICA8L2Rpdj5cbiAgPGJ1dHRvbiBvZHhCdXR0b24gY2xhc3M9XCJvZHgtdG9hc3QtaXRlbV9fY2xvc2VcIiAoY2xpY2spPVwib25EaXNtaXNzKClcIiAqbmdJZj1cIm9wdGlvbnM/LmRpc21pc3NhYmxlXCI+XG4gICAgPG9keC1pY29uIG5hbWU9XCJjbG9zZVwiIGljb25TZXQ9XCJjb3JlXCI+PC9vZHgtaWNvbj5cbiAgPC9idXR0b24+XG48L2Rpdj5cbjxvZHgtYWN0aW9uLWdyb3VwIGNsYXNzPVwib2R4LXRvYXN0LWl0ZW1fX2J1dHRvbnNcIiAqbmdJZj1cIiEhYWN0aW9ucz8ubGVuZ3RoXCI+XG4gIDxidXR0b24gb2R4QnV0dG9uIChjbGljayk9XCJhY3Rpb24uYWN0aW9uKClcIiAqbmdGb3I9XCJsZXQgYWN0aW9uIG9mIGFjdGlvbnNcIj5cbiAgICA8b2R4LWljb24gW25hbWVdPVwiYWN0aW9uLmxlZnRJY29uXCIgaWNvblNldD1cImNvcmVcIiBhbGlnbkxlZnQgKm5nSWY9XCJhY3Rpb24ubGVmdEljb25cIj48L29keC1pY29uPlxuICAgIDxuZy10ZW1wbGF0ZSBbb2R4RHluYW1pY1ZpZXddPVwiYWN0aW9uLmxhYmVsXCI+IDwvbmctdGVtcGxhdGU+XG4gICAgPG9keC1pY29uIFtuYW1lXT1cImFjdGlvbi5yaWdodEljb25cIiBpY29uU2V0PVwiY29yZVwiIGFsaWduUmlnaHQgKm5nSWY9XCJhY3Rpb24ucmlnaHRJY29uXCI+PC9vZHgtaWNvbj5cbiAgPC9idXR0b24+XG48L29keC1hY3Rpb24tZ3JvdXA+XG4iXX0=
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9hc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvY29tcG9uZW50cy90b2FzdC9zcmMvbGliL21vZGVscy90b2FzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRHluYW1pY1RleHRDb250ZW50IH0gZnJvbSAnQG9keC9hbmd1bGFyL2Nkay9keW5hbWljLXZpZXcnO1xuaW1wb3J0IHsgVG9hc3RBY3Rpb24gfSBmcm9tICcuL3RvYXN0LWFjdGlvbic7XG5pbXBvcnQgeyBUb2FzdFZhcmlhbnQgfSBmcm9tICcuL3RvYXN0LXZhcmlhbnQnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFRvYXN0IHtcbiAgaWQ/OiBzdHJpbmc7XG4gIHRpdGxlOiBEeW5hbWljVGV4dENvbnRlbnQ7XG4gIGRlc2NyaXB0aW9uPzogRHluYW1pY1RleHRDb250ZW50O1xuICBhY3Rpb25zPzogVG9hc3RBY3Rpb25bXTtcbiAgdmFyaWFudD86IFRvYXN0VmFyaWFudDtcbn1cbiJdfQ==
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9hc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvY29tcG9uZW50cy90b2FzdC9zcmMvbGliL21vZGVscy90b2FzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVHlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRHluYW1pY0NvbnRlbnQsIER5bmFtaWNUZXh0Q29udGVudCwgR2V0RHluYW1pY1ZpZXdDb250ZXh0IH0gZnJvbSAnQG9keC9hbmd1bGFyL2Nkay9keW5hbWljLXZpZXcnO1xuaW1wb3J0IHsgVG9hc3RBY3Rpb24gfSBmcm9tICcuL3RvYXN0LWFjdGlvbic7XG5pbXBvcnQgeyBUb2FzdFZhcmlhbnQgfSBmcm9tICcuL3RvYXN0LXZhcmlhbnQnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFRvYXN0IHtcbiAgaWQ/OiBzdHJpbmc7XG4gIHRpdGxlOiBEeW5hbWljVGV4dENvbnRlbnQ7XG4gIGRlc2NyaXB0aW9uPzogRHluYW1pY0NvbnRlbnQ7XG4gIGRlc2NyaXB0aW9uQ29udGV4dD86IEdldER5bmFtaWNWaWV3Q29udGV4dDxUeXBlPHVua25vd24+PjtcbiAgYWN0aW9ucz86IFRvYXN0QWN0aW9uW107XG4gIHZhcmlhbnQ/OiBUb2FzdFZhcmlhbnQ7XG59XG4iXX0=
@@ -1,3 +1,10 @@
1
+ /**
2
+ * @internal
3
+ * Resolves the appropriate event names for the provided tooltip trigger.
4
+ *
5
+ * @param {TooltipTrigger} trigger - The trigger to resolve.
6
+ * @returns {[string, string | null]} - The event names for the trigger.
7
+ */
1
8
  export function resolveTooltipTriggerEvents(trigger) {
2
9
  if (trigger === 'click') {
3
10
  return ['click', null];
@@ -6,4 +13,4 @@ export function resolveTooltipTriggerEvents(trigger) {
6
13
  return ['mouseenter', 'mouseleave'];
7
14
  }
8
15
  }
9
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzb2x2ZS10b29sdGlwLXRyaWdnZXItZXZlbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyL2NvbXBvbmVudHMvdG9vbHRpcC9zcmMvbGliL2hlbHBlcnMvcmVzb2x2ZS10b29sdGlwLXRyaWdnZXItZXZlbnRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE1BQU0sVUFBVSwyQkFBMkIsQ0FBQyxPQUF1QjtJQUNqRSxJQUFJLE9BQU8sS0FBSyxPQUFPLEVBQUU7UUFDdkIsT0FBTyxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsQ0FBQztLQUN4QjtTQUFNO1FBQ0wsT0FBTyxDQUFDLFlBQVksRUFBRSxZQUFZLENBQUMsQ0FBQztLQUNyQztBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUb29sdGlwVHJpZ2dlciB9IGZyb20gJy4uL21vZGVscyc7XG5cbmV4cG9ydCBmdW5jdGlvbiByZXNvbHZlVG9vbHRpcFRyaWdnZXJFdmVudHModHJpZ2dlcjogVG9vbHRpcFRyaWdnZXIpOiBbc3RyaW5nLCBzdHJpbmcgfCBudWxsXSB7XG4gIGlmICh0cmlnZ2VyID09PSAnY2xpY2snKSB7XG4gICAgcmV0dXJuIFsnY2xpY2snLCBudWxsXTtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gWydtb3VzZWVudGVyJywgJ21vdXNlbGVhdmUnXTtcbiAgfVxufVxuIl19
16
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzb2x2ZS10b29sdGlwLXRyaWdnZXItZXZlbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyL2NvbXBvbmVudHMvdG9vbHRpcC9zcmMvbGliL2hlbHBlcnMvcmVzb2x2ZS10b29sdGlwLXRyaWdnZXItZXZlbnRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBOzs7Ozs7R0FNRztBQUNILE1BQU0sVUFBVSwyQkFBMkIsQ0FBQyxPQUF1QjtJQUNqRSxJQUFJLE9BQU8sS0FBSyxPQUFPLEVBQUU7UUFDdkIsT0FBTyxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsQ0FBQztLQUN4QjtTQUFNO1FBQ0wsT0FBTyxDQUFDLFlBQVksRUFBRSxZQUFZLENBQUMsQ0FBQztLQUNyQztBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUb29sdGlwVHJpZ2dlciB9IGZyb20gJy4uL21vZGVscyc7XG5cbi8qKlxuICogQGludGVybmFsXG4gKiBSZXNvbHZlcyB0aGUgYXBwcm9wcmlhdGUgZXZlbnQgbmFtZXMgZm9yIHRoZSBwcm92aWRlZCB0b29sdGlwIHRyaWdnZXIuXG4gKlxuICogQHBhcmFtIHtUb29sdGlwVHJpZ2dlcn0gdHJpZ2dlciAtIFRoZSB0cmlnZ2VyIHRvIHJlc29sdmUuXG4gKiBAcmV0dXJucyB7W3N0cmluZywgc3RyaW5nIHwgbnVsbF19IC0gVGhlIGV2ZW50IG5hbWVzIGZvciB0aGUgdHJpZ2dlci5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlc29sdmVUb29sdGlwVHJpZ2dlckV2ZW50cyh0cmlnZ2VyOiBUb29sdGlwVHJpZ2dlcik6IFtzdHJpbmcsIHN0cmluZyB8IG51bGxdIHtcbiAgaWYgKHRyaWdnZXIgPT09ICdjbGljaycpIHtcbiAgICByZXR1cm4gWydjbGljaycsIG51bGxdO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiBbJ21vdXNlZW50ZXInLCAnbW91c2VsZWF2ZSddO1xuICB9XG59XG4iXX0=
@@ -1,4 +1,12 @@
1
+ /**
2
+ * @internal
3
+ * Generates a unique property name for a decorator.
4
+ *
5
+ * @param {string} decoratorName - The name of the decorator.
6
+ * @param {string} propertyName - The name of the property.
7
+ * @returns {string} - The unique property name.
8
+ */
1
9
  export function decoratorPropertyName(decoratorName, propertyName) {
2
10
  return `__ODX_${decoratorName}_${propertyName}__`;
3
11
  }
4
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVjb3JhdG9yLXByb3BlcnR5LW5hbWUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvaW50ZXJuYWwvc3JjL2xpYi9oZWxwZXJzL2RlY29yYXRvci1wcm9wZXJ0eS1uYW1lLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sVUFBVSxxQkFBcUIsQ0FBcUMsYUFBZ0IsRUFBRSxZQUFlO0lBQ3pHLE9BQU8sU0FBUyxhQUFhLElBQUksWUFBWSxJQUFJLENBQUM7QUFDcEQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBmdW5jdGlvbiBkZWNvcmF0b3JQcm9wZXJ0eU5hbWU8RCBleHRlbmRzIHN0cmluZywgVCBleHRlbmRzIHN0cmluZz4oZGVjb3JhdG9yTmFtZTogRCwgcHJvcGVydHlOYW1lOiBUKTogYF9fT0RYXyR7RH1fJHtUfV9fYCB7XG4gIHJldHVybiBgX19PRFhfJHtkZWNvcmF0b3JOYW1lfV8ke3Byb3BlcnR5TmFtZX1fX2A7XG59XG4iXX0=
12
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVjb3JhdG9yLXByb3BlcnR5LW5hbWUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvaW50ZXJuYWwvc3JjL2xpYi9oZWxwZXJzL2RlY29yYXRvci1wcm9wZXJ0eS1uYW1lLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7O0dBT0c7QUFDSCxNQUFNLFVBQVUscUJBQXFCLENBQXFDLGFBQWdCLEVBQUUsWUFBZTtJQUN6RyxPQUFPLFNBQVMsYUFBYSxJQUFJLFlBQVksSUFBSSxDQUFDO0FBQ3BELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBpbnRlcm5hbFxuICogR2VuZXJhdGVzIGEgdW5pcXVlIHByb3BlcnR5IG5hbWUgZm9yIGEgZGVjb3JhdG9yLlxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBkZWNvcmF0b3JOYW1lIC0gVGhlIG5hbWUgb2YgdGhlIGRlY29yYXRvci5cbiAqIEBwYXJhbSB7c3RyaW5nfSBwcm9wZXJ0eU5hbWUgLSBUaGUgbmFtZSBvZiB0aGUgcHJvcGVydHkuXG4gKiBAcmV0dXJucyB7c3RyaW5nfSAtIFRoZSB1bmlxdWUgcHJvcGVydHkgbmFtZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGRlY29yYXRvclByb3BlcnR5TmFtZTxEIGV4dGVuZHMgc3RyaW5nLCBUIGV4dGVuZHMgc3RyaW5nPihkZWNvcmF0b3JOYW1lOiBELCBwcm9wZXJ0eU5hbWU6IFQpOiBgX19PRFhfJHtEfV8ke1R9X19gIHtcbiAgcmV0dXJuIGBfX09EWF8ke2RlY29yYXRvck5hbWV9XyR7cHJvcGVydHlOYW1lfV9fYDtcbn1cbiJdfQ==
@@ -1,4 +1,11 @@
1
+ /**
2
+ * @internal
3
+ * Creates a feature provider for the localization module.
4
+ *
5
+ * @param {Provider[] | EnvironmentProviders} provider - The providers to be used for the localization feature.
6
+ * @returns {LocalizationFeature} The localization feature provider.
7
+ */
1
8
  export function makeLocalizationFeature(provider) {
2
9
  return provider;
3
10
  }
4
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWxpemF0aW9uLWZlYXR1cmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvbG9jYWxpemF0aW9uL3NyYy9saWIvbW9kZWxzL2xvY2FsaXphdGlvbi1mZWF0dXJlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUlBLE1BQU0sVUFBVSx1QkFBdUIsQ0FBQyxRQUEyQztJQUNqRixPQUFPLFFBQXdDLENBQUM7QUFDbEQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVudmlyb25tZW50UHJvdmlkZXJzLCBQcm92aWRlciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5leHBvcnQgdHlwZSBMb2NhbGl6YXRpb25GZWF0dXJlID0gRW52aXJvbm1lbnRQcm92aWRlcnMgJiB7IMm1b2R4QnJhbmQ6ICdAb2R4L2FuZ3VsYXIvbG9jYWxpemF0aW9uOjpMb2NhbGl6YXRpb25GZWF0dXJlJyB9O1xuXG5leHBvcnQgZnVuY3Rpb24gbWFrZUxvY2FsaXphdGlvbkZlYXR1cmUocHJvdmlkZXI6IFByb3ZpZGVyW10gfCBFbnZpcm9ubWVudFByb3ZpZGVycyk6IExvY2FsaXphdGlvbkZlYXR1cmUge1xuICByZXR1cm4gcHJvdmlkZXIgYXMgbmV2ZXIgYXMgTG9jYWxpemF0aW9uRmVhdHVyZTtcbn1cbiJdfQ==
11
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWxpemF0aW9uLWZlYXR1cmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvbG9jYWxpemF0aW9uL3NyYy9saWIvbW9kZWxzL2xvY2FsaXphdGlvbi1mZWF0dXJlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUlBOzs7Ozs7R0FNRztBQUNILE1BQU0sVUFBVSx1QkFBdUIsQ0FBQyxRQUEyQztJQUNqRixPQUFPLFFBQXdDLENBQUM7QUFDbEQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVudmlyb25tZW50UHJvdmlkZXJzLCBQcm92aWRlciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5leHBvcnQgdHlwZSBMb2NhbGl6YXRpb25GZWF0dXJlID0gRW52aXJvbm1lbnRQcm92aWRlcnMgJiB7IMm1b2R4QnJhbmQ6ICdAb2R4L2FuZ3VsYXIvbG9jYWxpemF0aW9uOjpMb2NhbGl6YXRpb25GZWF0dXJlJyB9O1xuXG4vKipcbiAqIEBpbnRlcm5hbFxuICogQ3JlYXRlcyBhIGZlYXR1cmUgcHJvdmlkZXIgZm9yIHRoZSBsb2NhbGl6YXRpb24gbW9kdWxlLlxuICpcbiAqIEBwYXJhbSB7UHJvdmlkZXJbXSB8IEVudmlyb25tZW50UHJvdmlkZXJzfSBwcm92aWRlciAtIFRoZSBwcm92aWRlcnMgdG8gYmUgdXNlZCBmb3IgdGhlIGxvY2FsaXphdGlvbiBmZWF0dXJlLlxuICogQHJldHVybnMge0xvY2FsaXphdGlvbkZlYXR1cmV9IFRoZSBsb2NhbGl6YXRpb24gZmVhdHVyZSBwcm92aWRlci5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG1ha2VMb2NhbGl6YXRpb25GZWF0dXJlKHByb3ZpZGVyOiBQcm92aWRlcltdIHwgRW52aXJvbm1lbnRQcm92aWRlcnMpOiBMb2NhbGl6YXRpb25GZWF0dXJlIHtcbiAgcmV0dXJuIHByb3ZpZGVyIGFzIG5ldmVyIGFzIExvY2FsaXphdGlvbkZlYXR1cmU7XG59XG4iXX0=
@@ -25,7 +25,7 @@ import { __decorate, __metadata } from 'tslib';
25
25
  */
26
26
  class AutocompleteControl extends CustomFormControl {
27
27
  get dropdownReferenceElement() {
28
- return this.formField?.controlElement.nativeElement ?? this.element.nativeElement;
28
+ return this.formField?.controlElement?.nativeElement ?? this.element?.nativeElement;
29
29
  }
30
30
  get hasOptions() {
31
31
  return !!this.options?.length;
@@ -1 +1 @@
1
- {"version":3,"file":"odx-angular-cdk-autocomplete-control.mjs","sources":["../../../../libs/angular/cdk/autocomplete-control/src/lib/autocomplete-control.ts","../../../../libs/angular/cdk/autocomplete-control/src/lib/pipes/base-search-filter-pipe.ts","../../../../libs/angular/cdk/autocomplete-control/src/odx-angular-cdk-autocomplete-control.ts"],"sourcesContent":["import { ActiveDescendantKeyManager } from '@angular/cdk/a11y';\nimport {\n AfterViewInit,\n booleanAttribute,\n ChangeDetectorRef,\n Directive,\n EventEmitter,\n HostListener,\n inject,\n Input,\n Output,\n QueryList,\n ViewChild,\n} from '@angular/core';\nimport { detectControllerChanges, StringifyFn } from '@odx/angular';\nimport { CustomFormControl, InputControlDirective } from '@odx/angular/cdk/custom-form-control';\nimport { OptionControl } from '@odx/angular/cdk/option-control';\nimport { DropdownDirective } from '@odx/angular/components/dropdown';\nimport { FormFieldComponent } from '@odx/angular/components/form-field';\nimport { injectElement, isFunction, untilDestroyed } from '@odx/angular/utils';\n\n/**\n * `AutocompleteControl` is a base directive to enhance an input field with autocomplete functionality,\n * providing keyboard navigation and selection for options displayed in a dropdown. It's designed to be extended\n * for specific implementations.\n * Extends `CustomFormControl` to provide form control behavior and state management.\n *\n * @see {CustomFormControl}\n *\n * This directive manages the open/close state of the dropdown, the loading state indication, and the interaction between\n * the autocomplete input and the dropdown options. It utilizes `ActiveDescendantKeyManager` for keyboard navigation among options.\n *\n * Extend this directive to create a fully functional autocomplete control tailored to your data type and UI requirements.\n *\n * @template T - The type of the items displayed in the autocomplete dropdown.\n */\n@Directive({\n standalone: true,\n host: {\n '[class.is-open]': 'isOpen',\n '[attr.aria-disabled]': 'isDisabled || null',\n },\n})\nexport abstract class AutocompleteControl<T> extends CustomFormControl<T | null> implements AfterViewInit {\n protected abstract readonly options?: QueryList<OptionControl<T>>;\n\n protected readonly changeDetector = inject(ChangeDetectorRef);\n protected readonly formField = inject(FormFieldComponent, { optional: true });\n protected readonly takeUntilDestroyed = untilDestroyed();\n\n protected keyManager?: ActiveDescendantKeyManager<OptionControl<T>>;\n protected smoothScrollEnabled = false;\n\n @ViewChild(DropdownDirective)\n protected readonly dropdown?: DropdownDirective;\n\n public abstract searchField?: InputControlDirective;\n\n public readonly element = injectElement();\n\n public get dropdownReferenceElement(): HTMLElement {\n return this.formField?.controlElement.nativeElement ?? this.element.nativeElement;\n }\n\n public get hasOptions(): boolean {\n return !!this.options?.length;\n }\n\n public get isOpen(): boolean {\n return !!this.dropdown?.isOpen;\n }\n\n @Input({ transform: booleanAttribute })\n public isLoading = false;\n\n /**\n * A function that converts an item of type T to a string representation.\n * Used by the AutocompleteControl component to display the selected item.\n *\n * @type {StringifyFn<T>}\n *\n * @example\n * ```ts\n * // Define a stringify function for a custom type Person\n * const stringifyPerson: StringifyFn<Person> = (person) => `${person.firstName} ${person.lastName}`;\n *\n * // Assign the stringify function to the AutocompleteControl\n * autocompleteControl.stringify = stringifyPerson;\n * ```\n */\n @Input()\n public stringify?: StringifyFn<T>;\n\n /**\n * Emits the selected option when an option is selected from the dropdown.\n *\n * @emits {T} - The selected option.\n *\n * @example\n * ```ts\n * autocompleteControl.optionSelected.subscribe((selectedOption) => {\n * console.log('Selected option:', selectedOption);\n * });\n * ```\n */\n @Output()\n public optionSelected = new EventEmitter<T>();\n\n constructor() {\n super(null);\n detectControllerChanges(this).subscribe();\n }\n\n public ngAfterViewInit(): void {\n if (!this.options) return;\n\n this.initKeyManager(this.options);\n this.handleQueryListOption(this.options);\n this.handleSearchFieldChanges();\n }\n\n /**\n * Scrolls the specified option element into view.\n * @param {OptionControl<T>} option - The option control containing the element to scroll into view.\n * @returns {void}\n *\n * @example\n * ```ts\n * const optionControl: OptionControl<string> = { element: myOptionElement };\n * scrollOptionIntoView(optionControl);\n * ```\n */\n public scrollOptionIntoView({ element }: OptionControl<T>): void {\n const behavior = this.smoothScrollEnabled ? 'smooth' : undefined;\n if (isFunction(element.nativeElement.scrollIntoView)) {\n element.nativeElement.scrollIntoView({ block: 'center', behavior });\n }\n }\n\n protected abstract handleQueryListOption(options: QueryList<OptionControl<T>>): void;\n\n protected abstract handleSearchFieldChanges(): void;\n\n protected abstract activateSelectedOption(): void;\n\n protected initKeyManager(options: QueryList<OptionControl<T>>): void {\n this.keyManager = new ActiveDescendantKeyManager(options).withHomeAndEnd();\n }\n\n protected disableSmoothScroll(): void {\n this.smoothScrollEnabled = false;\n }\n\n protected enableSmoothScroll(): void {\n this.smoothScrollEnabled = true;\n }\n\n protected openDropdown(): void {\n this.dropdown?.open();\n }\n\n protected closeDropdown(): void {\n this.dropdown?.close();\n }\n\n @HostListener('focusout', ['$event'])\n protected handleFocusOut(event: FocusEvent): void {\n if (this.isOpen) {\n event.stopImmediatePropagation();\n }\n this.onTouched();\n }\n}\n","import { inject, InjectionToken, PipeTransform } from '@angular/core';\nimport { ODX_STRINGIFY, ODX_STRING_SEARCH_HANDLER, StringifyFn, StringSearchHandler } from '@odx/angular';\nimport { InputControlDirective } from '@odx/angular/cdk/custom-form-control';\nimport { isFunction, Pure } from '@odx/angular/utils';\n\ninterface HostController {\n searchField?: InputControlDirective;\n stringify?: StringifyFn<unknown>;\n}\n\ninterface SearchFilterPipeOptions<T> {\n searchHandler?: StringSearchHandler;\n stringify?: StringifyFn<T>;\n}\n\nexport const ODX_SEARCH_FILTER_HOST = new InjectionToken<HostController>('@odx/angular/cdk/autocomplete-control::SearchFilterHost');\n\nexport abstract class BaseSearchFilterPipe implements PipeTransform {\n private readonly stringSearchHandler = inject(ODX_STRING_SEARCH_HANDLER);\n private readonly defaultStringify = inject(ODX_STRINGIFY);\n protected readonly hostController = inject(ODX_SEARCH_FILTER_HOST, { optional: true });\n\n protected get searchField(): InputControlDirective | undefined {\n return this.hostController?.searchField;\n }\n\n protected get stringify(): StringifyFn<unknown> {\n return this.hostController?.stringify ?? this.defaultStringify;\n }\n\n public transform<T>(items: T[] | null, optionsOrHandler?: SearchFilterPipeOptions<T> | StringSearchHandler): T[] | null {\n const searchHandler = this.isStringSearchHandler(optionsOrHandler) ? optionsOrHandler : optionsOrHandler?.searchHandler;\n const stringify = this.isStringSearchHandler(optionsOrHandler) ? null : optionsOrHandler?.stringify;\n if (this.searchField) {\n return this.filter(items, this.searchField.nativeElementValue, stringify ?? (this.stringify as never), searchHandler ?? this.stringSearchHandler);\n }\n return items;\n }\n\n protected queryHandler(query: string): string {\n return query?.trim() || '';\n }\n\n @Pure\n private filter<T>(items: T[] | null, query: string, stringify: StringifyFn<T>, searchHandler: StringSearchHandler): T[] | null {\n if (!items) return null;\n\n query = this.queryHandler(query);\n\n if (query === '') return items;\n\n return items.filter((item) => searchHandler(stringify(item), query));\n }\n\n private isStringSearchHandler<T>(optionsOrHandler?: SearchFilterPipeOptions<T> | StringSearchHandler): optionsOrHandler is StringSearchHandler {\n return isFunction(optionsOrHandler);\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"odx-angular-cdk-autocomplete-control.mjs","sources":["../../../../libs/angular/cdk/autocomplete-control/src/lib/autocomplete-control.ts","../../../../libs/angular/cdk/autocomplete-control/src/lib/pipes/base-search-filter-pipe.ts","../../../../libs/angular/cdk/autocomplete-control/src/odx-angular-cdk-autocomplete-control.ts"],"sourcesContent":["import { ActiveDescendantKeyManager } from '@angular/cdk/a11y';\nimport {\n AfterViewInit,\n booleanAttribute,\n ChangeDetectorRef,\n Directive,\n EventEmitter,\n HostListener,\n inject,\n Input,\n Output,\n QueryList,\n ViewChild,\n} from '@angular/core';\nimport { detectControllerChanges, StringifyFn } from '@odx/angular';\nimport { CustomFormControl, InputControlDirective } from '@odx/angular/cdk/custom-form-control';\nimport { OptionControl } from '@odx/angular/cdk/option-control';\nimport { DropdownDirective } from '@odx/angular/components/dropdown';\nimport { FormFieldComponent } from '@odx/angular/components/form-field';\nimport { injectElement, isFunction, untilDestroyed } from '@odx/angular/utils';\n\n/**\n * `AutocompleteControl` is a base directive to enhance an input field with autocomplete functionality,\n * providing keyboard navigation and selection for options displayed in a dropdown. It's designed to be extended\n * for specific implementations.\n * Extends `CustomFormControl` to provide form control behavior and state management.\n *\n * @see {CustomFormControl}\n *\n * This directive manages the open/close state of the dropdown, the loading state indication, and the interaction between\n * the autocomplete input and the dropdown options. It utilizes `ActiveDescendantKeyManager` for keyboard navigation among options.\n *\n * Extend this directive to create a fully functional autocomplete control tailored to your data type and UI requirements.\n *\n * @template T - The type of the items displayed in the autocomplete dropdown.\n */\n@Directive({\n standalone: true,\n host: {\n '[class.is-open]': 'isOpen',\n '[attr.aria-disabled]': 'isDisabled || null',\n },\n})\nexport abstract class AutocompleteControl<T> extends CustomFormControl<T | null> implements AfterViewInit {\n protected abstract readonly options?: QueryList<OptionControl<T>>;\n\n protected readonly changeDetector = inject(ChangeDetectorRef);\n protected readonly formField = inject(FormFieldComponent, { optional: true });\n protected readonly takeUntilDestroyed = untilDestroyed();\n\n protected keyManager?: ActiveDescendantKeyManager<OptionControl<T>>;\n protected smoothScrollEnabled = false;\n\n @ViewChild(DropdownDirective)\n protected readonly dropdown?: DropdownDirective;\n\n public abstract searchField?: InputControlDirective;\n\n public readonly element = injectElement();\n\n public get dropdownReferenceElement(): HTMLElement {\n return this.formField?.controlElement?.nativeElement ?? this.element?.nativeElement;\n }\n\n public get hasOptions(): boolean {\n return !!this.options?.length;\n }\n\n public get isOpen(): boolean {\n return !!this.dropdown?.isOpen;\n }\n\n @Input({ transform: booleanAttribute })\n public isLoading = false;\n\n /**\n * A function that converts an item of type T to a string representation.\n * Used by the AutocompleteControl component to display the selected item.\n *\n * @type {StringifyFn<T>}\n *\n * @example\n * ```ts\n * // Define a stringify function for a custom type Person\n * const stringifyPerson: StringifyFn<Person> = (person) => `${person.firstName} ${person.lastName}`;\n *\n * // Assign the stringify function to the AutocompleteControl\n * autocompleteControl.stringify = stringifyPerson;\n * ```\n */\n @Input()\n public stringify?: StringifyFn<T>;\n\n /**\n * Emits the selected option when an option is selected from the dropdown.\n *\n * @emits {T} - The selected option.\n *\n * @example\n * ```ts\n * autocompleteControl.optionSelected.subscribe((selectedOption) => {\n * console.log('Selected option:', selectedOption);\n * });\n * ```\n */\n @Output()\n public optionSelected = new EventEmitter<T>();\n\n constructor() {\n super(null);\n detectControllerChanges(this).subscribe();\n }\n\n public ngAfterViewInit(): void {\n if (!this.options) return;\n\n this.initKeyManager(this.options);\n this.handleQueryListOption(this.options);\n this.handleSearchFieldChanges();\n }\n\n /**\n * Scrolls the specified option element into view.\n * @param {OptionControl<T>} option - The option control containing the element to scroll into view.\n * @returns {void}\n *\n * @example\n * ```ts\n * const optionControl: OptionControl<string> = { element: myOptionElement };\n * scrollOptionIntoView(optionControl);\n * ```\n */\n public scrollOptionIntoView({ element }: OptionControl<T>): void {\n const behavior = this.smoothScrollEnabled ? 'smooth' : undefined;\n if (isFunction(element.nativeElement.scrollIntoView)) {\n element.nativeElement.scrollIntoView({ block: 'center', behavior });\n }\n }\n\n protected abstract handleQueryListOption(options: QueryList<OptionControl<T>>): void;\n\n protected abstract handleSearchFieldChanges(): void;\n\n protected abstract activateSelectedOption(): void;\n\n protected initKeyManager(options: QueryList<OptionControl<T>>): void {\n this.keyManager = new ActiveDescendantKeyManager(options).withHomeAndEnd();\n }\n\n protected disableSmoothScroll(): void {\n this.smoothScrollEnabled = false;\n }\n\n protected enableSmoothScroll(): void {\n this.smoothScrollEnabled = true;\n }\n\n protected openDropdown(): void {\n this.dropdown?.open();\n }\n\n protected closeDropdown(): void {\n this.dropdown?.close();\n }\n\n @HostListener('focusout', ['$event'])\n protected handleFocusOut(event: FocusEvent): void {\n if (this.isOpen) {\n event.stopImmediatePropagation();\n }\n this.onTouched();\n }\n}\n","import { inject, InjectionToken, PipeTransform } from '@angular/core';\nimport { ODX_STRINGIFY, ODX_STRING_SEARCH_HANDLER, StringifyFn, StringSearchHandler } from '@odx/angular';\nimport { InputControlDirective } from '@odx/angular/cdk/custom-form-control';\nimport { isFunction, Pure } from '@odx/angular/utils';\n\ninterface HostController {\n searchField?: InputControlDirective;\n stringify?: StringifyFn<unknown>;\n}\n\ninterface SearchFilterPipeOptions<T> {\n searchHandler?: StringSearchHandler;\n stringify?: StringifyFn<T>;\n}\n\nexport const ODX_SEARCH_FILTER_HOST = new InjectionToken<HostController>('@odx/angular/cdk/autocomplete-control::SearchFilterHost');\n\nexport abstract class BaseSearchFilterPipe implements PipeTransform {\n private readonly stringSearchHandler = inject(ODX_STRING_SEARCH_HANDLER);\n private readonly defaultStringify = inject(ODX_STRINGIFY);\n protected readonly hostController = inject(ODX_SEARCH_FILTER_HOST, { optional: true });\n\n protected get searchField(): InputControlDirective | undefined {\n return this.hostController?.searchField;\n }\n\n protected get stringify(): StringifyFn<unknown> {\n return this.hostController?.stringify ?? this.defaultStringify;\n }\n\n public transform<T>(items: T[] | null, optionsOrHandler?: SearchFilterPipeOptions<T> | StringSearchHandler): T[] | null {\n const searchHandler = this.isStringSearchHandler(optionsOrHandler) ? optionsOrHandler : optionsOrHandler?.searchHandler;\n const stringify = this.isStringSearchHandler(optionsOrHandler) ? null : optionsOrHandler?.stringify;\n if (this.searchField) {\n return this.filter(items, this.searchField.nativeElementValue, stringify ?? (this.stringify as never), searchHandler ?? this.stringSearchHandler);\n }\n return items;\n }\n\n protected queryHandler(query: string): string {\n return query?.trim() || '';\n }\n\n @Pure\n private filter<T>(items: T[] | null, query: string, stringify: StringifyFn<T>, searchHandler: StringSearchHandler): T[] | null {\n if (!items) return null;\n\n query = this.queryHandler(query);\n\n if (query === '') return items;\n\n return items.filter((item) => searchHandler(stringify(item), query));\n }\n\n private isStringSearchHandler<T>(optionsOrHandler?: SearchFilterPipeOptions<T> | StringSearchHandler): optionsOrHandler is StringSearchHandler {\n return isFunction(optionsOrHandler);\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -315,12 +315,26 @@ function isDynamicView(value) {
315
315
  return value instanceof DynamicComponentRef || value instanceof DynamicTemplateRef;
316
316
  }
317
317
 
318
+ /**
319
+ * @internal
320
+ * Injection token for the dynamic view context.
321
+ */
318
322
  const DYNAMIC_VIEW_CONTEXT = new InjectionToken('@odx/angular/cdk/dynamic-view::DynamicViewContext');
319
323
 
324
+ /**
325
+ * @internal
326
+ * Injection token for the default host element for dynamic views.
327
+ */
320
328
  const ODX_DYNAMIC_VIEW_DEFAULT_HOST = new InjectionToken('@odx/angular/cdk/dynamic-view::DynamicViewDefaultHost', {
321
329
  providedIn: 'root',
322
330
  factory: () => inject(DOCUMENT).body,
323
331
  });
332
+ /**
333
+ * @internal
334
+ * Retrieves the default host for dynamic views.
335
+ *
336
+ * @returns {Element} The default host element for dynamic views.
337
+ */
324
338
  function getDynamicViewDefaultHost() {
325
339
  return inject(ODX_DYNAMIC_VIEW_DEFAULT_HOST);
326
340
  }