@skyux/lookup 8.7.0 → 9.0.0-alpha.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 (120) hide show
  1. package/esm2022/lib/modules/autocomplete/autocomplete-adapter.service.mjs +61 -0
  2. package/esm2022/lib/modules/autocomplete/autocomplete-input.directive.mjs +237 -0
  3. package/{esm2020 → esm2022}/lib/modules/autocomplete/autocomplete-search-async-disabled.pipe.mjs +4 -4
  4. package/esm2022/lib/modules/autocomplete/autocomplete.component.mjs +817 -0
  5. package/{esm2020 → esm2022}/lib/modules/autocomplete/autocomplete.module.mjs +27 -27
  6. package/esm2022/lib/modules/country-field/country-field.component.mjs +444 -0
  7. package/{esm2020 → esm2022}/lib/modules/country-field/country-field.module.mjs +19 -19
  8. package/{esm2020 → esm2022}/lib/modules/lookup/lookup-adapter.service.mjs +4 -4
  9. package/esm2022/lib/modules/lookup/lookup-autocomplete-adapter.mjs +114 -0
  10. package/esm2022/lib/modules/lookup/lookup-show-more-modal.component.mjs +270 -0
  11. package/{esm2020 → esm2022}/lib/modules/lookup/lookup.component.mjs +299 -280
  12. package/{esm2020 → esm2022}/lib/modules/lookup/lookup.module.mjs +37 -37
  13. package/esm2022/lib/modules/search/search-adapter.service.mjs +46 -0
  14. package/esm2022/lib/modules/search/search.component.mjs +285 -0
  15. package/{esm2020 → esm2022}/lib/modules/search/search.module.mjs +17 -17
  16. package/{esm2020 → esm2022}/lib/modules/selection-modal/selection-modal-item-selected.pipe.mjs +4 -4
  17. package/esm2022/lib/modules/selection-modal/selection-modal.component.mjs +201 -0
  18. package/{esm2020 → esm2022}/lib/modules/selection-modal/selection-modal.module.mjs +27 -27
  19. package/esm2022/lib/modules/selection-modal/selection-modal.service.mjs +89 -0
  20. package/esm2022/lib/modules/selection-modal/types/selection-modal-instance.mjs +45 -0
  21. package/esm2022/lib/modules/shared/sky-lookup-resources.module.mjs +71 -0
  22. package/esm2022/testing/autocomplete/autocomplete-harness.mjs +155 -0
  23. package/esm2022/testing/autocomplete/autocomplete-input-harness.mjs +63 -0
  24. package/esm2022/testing/autocomplete/autocomplete-search-result-harness.mjs +44 -0
  25. package/esm2022/testing/country-field/country-field-fixture.mjs +118 -0
  26. package/{esm2020 → esm2022}/testing/country-field/country-field-testing.module.mjs +5 -5
  27. package/esm2022/testing/lookup/lookup-harness.mjs +76 -0
  28. package/{esm2020 → esm2022}/testing/search/search-fixture.mjs +18 -19
  29. package/esm2022/testing/search/search-harness.mjs +80 -0
  30. package/{esm2020 → esm2022}/testing/search/search-testing.module.mjs +5 -5
  31. package/esm2022/testing/selection-modal/selection-modal-harness.mjs +122 -0
  32. package/{fesm2020 → fesm2022}/skyux-lookup-testing.mjs +171 -187
  33. package/{fesm2020 → fesm2022}/skyux-lookup-testing.mjs.map +1 -1
  34. package/fesm2022/skyux-lookup.mjs +3707 -0
  35. package/{fesm2015 → fesm2022}/skyux-lookup.mjs.map +1 -1
  36. package/lib/modules/autocomplete/autocomplete-input.directive.d.ts +1 -1
  37. package/lib/modules/autocomplete/autocomplete.component.d.ts +1 -1
  38. package/lib/modules/country-field/country-field.component.d.ts +1 -1
  39. package/lib/modules/lookup/lookup-autocomplete-adapter.d.ts +1 -1
  40. package/lib/modules/lookup/lookup.component.d.ts +1 -1
  41. package/lib/modules/search/search.component.d.ts +1 -1
  42. package/package.json +23 -31
  43. package/esm2020/lib/modules/autocomplete/autocomplete-adapter.service.mjs +0 -64
  44. package/esm2020/lib/modules/autocomplete/autocomplete-input.directive.mjs +0 -235
  45. package/esm2020/lib/modules/autocomplete/autocomplete.component.mjs +0 -775
  46. package/esm2020/lib/modules/country-field/country-field.component.mjs +0 -433
  47. package/esm2020/lib/modules/lookup/lookup-autocomplete-adapter.mjs +0 -115
  48. package/esm2020/lib/modules/lookup/lookup-show-more-modal.component.mjs +0 -271
  49. package/esm2020/lib/modules/search/search-adapter.service.mjs +0 -46
  50. package/esm2020/lib/modules/search/search.component.mjs +0 -279
  51. package/esm2020/lib/modules/selection-modal/selection-modal.component.mjs +0 -199
  52. package/esm2020/lib/modules/selection-modal/selection-modal.service.mjs +0 -92
  53. package/esm2020/lib/modules/selection-modal/types/selection-modal-instance.mjs +0 -48
  54. package/esm2020/lib/modules/shared/sky-lookup-resources.module.mjs +0 -71
  55. package/esm2020/testing/autocomplete/autocomplete-harness.mjs +0 -161
  56. package/esm2020/testing/autocomplete/autocomplete-input-harness.mjs +0 -63
  57. package/esm2020/testing/autocomplete/autocomplete-search-result-harness.mjs +0 -44
  58. package/esm2020/testing/country-field/country-field-fixture.mjs +0 -114
  59. package/esm2020/testing/lookup/lookup-harness.mjs +0 -82
  60. package/esm2020/testing/search/search-harness.mjs +0 -86
  61. package/esm2020/testing/selection-modal/selection-modal-harness.mjs +0 -128
  62. package/fesm2015/skyux-lookup-testing.mjs +0 -980
  63. package/fesm2015/skyux-lookup-testing.mjs.map +0 -1
  64. package/fesm2015/skyux-lookup.mjs +0 -3642
  65. package/fesm2020/skyux-lookup.mjs +0 -3625
  66. package/fesm2020/skyux-lookup.mjs.map +0 -1
  67. /package/{esm2020 → esm2022}/index.mjs +0 -0
  68. /package/{esm2020 → esm2022}/lib/modules/autocomplete/autocomplete-default-search-function.mjs +0 -0
  69. /package/{esm2020 → esm2022}/lib/modules/autocomplete/types/autocomplete-default-search-function-options.mjs +0 -0
  70. /package/{esm2020 → esm2022}/lib/modules/autocomplete/types/autocomplete-input-text-change.mjs +0 -0
  71. /package/{esm2020 → esm2022}/lib/modules/autocomplete/types/autocomplete-message-type.mjs +0 -0
  72. /package/{esm2020 → esm2022}/lib/modules/autocomplete/types/autocomplete-message.mjs +0 -0
  73. /package/{esm2020 → esm2022}/lib/modules/autocomplete/types/autocomplete-search-args.mjs +0 -0
  74. /package/{esm2020 → esm2022}/lib/modules/autocomplete/types/autocomplete-search-async-args.mjs +0 -0
  75. /package/{esm2020 → esm2022}/lib/modules/autocomplete/types/autocomplete-search-async-function.mjs +0 -0
  76. /package/{esm2020 → esm2022}/lib/modules/autocomplete/types/autocomplete-search-async-result-display-type.mjs +0 -0
  77. /package/{esm2020 → esm2022}/lib/modules/autocomplete/types/autocomplete-search-async-result.mjs +0 -0
  78. /package/{esm2020 → esm2022}/lib/modules/autocomplete/types/autocomplete-search-context.mjs +0 -0
  79. /package/{esm2020 → esm2022}/lib/modules/autocomplete/types/autocomplete-search-function-filter.mjs +0 -0
  80. /package/{esm2020 → esm2022}/lib/modules/autocomplete/types/autocomplete-search-function-response.mjs +0 -0
  81. /package/{esm2020 → esm2022}/lib/modules/autocomplete/types/autocomplete-search-function.mjs +0 -0
  82. /package/{esm2020 → esm2022}/lib/modules/autocomplete/types/autocomplete-selection-change.mjs +0 -0
  83. /package/{esm2020 → esm2022}/lib/modules/autocomplete/types/autocomplete-show-more-args.mjs +0 -0
  84. /package/{esm2020 → esm2022}/lib/modules/country-field/types/country-field-context-token.mjs +0 -0
  85. /package/{esm2020 → esm2022}/lib/modules/country-field/types/country-field-context.mjs +0 -0
  86. /package/{esm2020 → esm2022}/lib/modules/country-field/types/country.mjs +0 -0
  87. /package/{esm2020 → esm2022}/lib/modules/lookup/types/lookup-add-click-callback-args.mjs +0 -0
  88. /package/{esm2020 → esm2022}/lib/modules/lookup/types/lookup-add-click-event-args.mjs +0 -0
  89. /package/{esm2020 → esm2022}/lib/modules/lookup/types/lookup-select-mode-type.mjs +0 -0
  90. /package/{esm2020 → esm2022}/lib/modules/lookup/types/lookup-select-mode.mjs +0 -0
  91. /package/{esm2020 → esm2022}/lib/modules/lookup/types/lookup-show-more-config.mjs +0 -0
  92. /package/{esm2020 → esm2022}/lib/modules/lookup/types/lookup-show-more-custom-picker-context.mjs +0 -0
  93. /package/{esm2020 → esm2022}/lib/modules/lookup/types/lookup-show-more-custom-picker.mjs +0 -0
  94. /package/{esm2020 → esm2022}/lib/modules/lookup/types/lookup-show-more-native-picker-config.mjs +0 -0
  95. /package/{esm2020 → esm2022}/lib/modules/lookup/types/lookup-show-more-native-picker-context.mjs +0 -0
  96. /package/{esm2020 → esm2022}/lib/modules/selection-modal/types/selection-modal-add-click-callback-args.mjs +0 -0
  97. /package/{esm2020 → esm2022}/lib/modules/selection-modal/types/selection-modal-add-click-event-args.mjs +0 -0
  98. /package/{esm2020 → esm2022}/lib/modules/selection-modal/types/selection-modal-close-args.mjs +0 -0
  99. /package/{esm2020 → esm2022}/lib/modules/selection-modal/types/selection-modal-context.mjs +0 -0
  100. /package/{esm2020 → esm2022}/lib/modules/selection-modal/types/selection-modal-open-args.mjs +0 -0
  101. /package/{esm2020 → esm2022}/lib/modules/selection-modal/types/selection-modal-result.mjs +0 -0
  102. /package/{esm2020 → esm2022}/lib/modules/selection-modal/types/selection-modal-search-args.mjs +0 -0
  103. /package/{esm2020 → esm2022}/lib/modules/selection-modal/types/selection-modal-search-result.mjs +0 -0
  104. /package/{esm2020 → esm2022}/lib/modules/shared/sky-lookup-string-utils.mjs +0 -0
  105. /package/{esm2020 → esm2022}/skyux-lookup.mjs +0 -0
  106. /package/{esm2020 → esm2022}/testing/autocomplete/autocomplete-harness-filters.mjs +0 -0
  107. /package/{esm2020 → esm2022}/testing/autocomplete/autocomplete-search-result-harness-filters.mjs +0 -0
  108. /package/{esm2020 → esm2022}/testing/lookup/lookup-harness-filters.mjs +0 -0
  109. /package/{esm2020 → esm2022}/testing/lookup/lookup-selection-harness-filters.mjs +0 -0
  110. /package/{esm2020 → esm2022}/testing/lookup/lookup-selection-harness.mjs +0 -0
  111. /package/{esm2020 → esm2022}/testing/lookup/lookup-selections-list-harness.mjs +0 -0
  112. /package/{esm2020 → esm2022}/testing/lookup/lookup-show-more-picker-harness-filters.mjs +0 -0
  113. /package/{esm2020 → esm2022}/testing/lookup/lookup-show-more-picker-harness.mjs +0 -0
  114. /package/{esm2020 → esm2022}/testing/lookup/lookup-show-more-picker-search-result-harness-filters.mjs +0 -0
  115. /package/{esm2020 → esm2022}/testing/lookup/lookup-show-more-picker-search-result-harness.mjs +0 -0
  116. /package/{esm2020 → esm2022}/testing/public-api.mjs +0 -0
  117. /package/{esm2020 → esm2022}/testing/search/search-harness-filters.mjs +0 -0
  118. /package/{esm2020 → esm2022}/testing/selection-modal/selection-modal-search-result-harness-filters.mjs +0 -0
  119. /package/{esm2020 → esm2022}/testing/selection-modal/selection-modal-search-result-harness.mjs +0 -0
  120. /package/{esm2020 → esm2022}/testing/skyux-lookup-testing.mjs +0 -0
@@ -0,0 +1,61 @@
1
+ import { Injectable, } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "@skyux/core";
4
+ /**
5
+ * @internal
6
+ */
7
+ export class SkyAutocompleteAdapterService {
8
+ #coreAdapterService;
9
+ #renderer;
10
+ constructor(coreAdapterService, rendererFactory) {
11
+ this.#coreAdapterService = coreAdapterService;
12
+ this.#renderer = rendererFactory.createRenderer(undefined, null);
13
+ }
14
+ /**
15
+ * Adds the className for the provided element.
16
+ */
17
+ addCSSClass(element, className) {
18
+ /* Sanity check */
19
+ /* istanbul ignore else */
20
+ if (element) {
21
+ this.#renderer.addClass(element, className);
22
+ }
23
+ }
24
+ getOverlayFocusableElements(overlay) {
25
+ return this.#coreAdapterService.getFocusableChildren(
26
+ /* Sanity check - calling function also has null check */
27
+ /* istanbul ignore next */
28
+ overlay?.componentRef.location.nativeElement, { ignoreTabIndex: true });
29
+ }
30
+ /**
31
+ * Removes the className for the provided element.
32
+ */
33
+ removeCSSClass(element, className) {
34
+ /* Sanity check */
35
+ /* istanbul ignore else */
36
+ if (element) {
37
+ this.#renderer.removeClass(element, className);
38
+ }
39
+ }
40
+ setDropdownWidth(elementRef, dropdownRef, isInputBox) {
41
+ const parentElement = isInputBox
42
+ ? elementRef.nativeElement.closest('.sky-input-box')
43
+ : elementRef.nativeElement;
44
+ if (parentElement) {
45
+ const width = parentElement.getBoundingClientRect().width;
46
+ this.#renderer.setStyle(dropdownRef.nativeElement, 'width', `${width}px`);
47
+ }
48
+ }
49
+ /**
50
+ * Sets the `tabIndex` of the `element` to the provided `tabIndex`.
51
+ */
52
+ setTabIndex(element, tabIndex) {
53
+ element.tabIndex = tabIndex;
54
+ }
55
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: SkyAutocompleteAdapterService, deps: [{ token: i1.SkyCoreAdapterService }, { token: i0.RendererFactory2 }], target: i0.ɵɵFactoryTarget.Injectable }); }
56
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: SkyAutocompleteAdapterService }); }
57
+ }
58
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: SkyAutocompleteAdapterService, decorators: [{
59
+ type: Injectable
60
+ }], ctorParameters: function () { return [{ type: i1.SkyCoreAdapterService }, { type: i0.RendererFactory2 }]; } });
61
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0b2NvbXBsZXRlLWFkYXB0ZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9sb29rdXAvc3JjL2xpYi9tb2R1bGVzL2F1dG9jb21wbGV0ZS9hdXRvY29tcGxldGUtYWRhcHRlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCxVQUFVLEdBR1gsTUFBTSxlQUFlLENBQUM7OztBQUd2Qjs7R0FFRztBQUVILE1BQU0sT0FBTyw2QkFBNkI7SUFDeEMsbUJBQW1CLENBQXdCO0lBRTNDLFNBQVMsQ0FBWTtJQUVyQixZQUNFLGtCQUF5QyxFQUN6QyxlQUFpQztRQUVqQyxJQUFJLENBQUMsbUJBQW1CLEdBQUcsa0JBQWtCLENBQUM7UUFDOUMsSUFBSSxDQUFDLFNBQVMsR0FBRyxlQUFlLENBQUMsY0FBYyxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUNuRSxDQUFDO0lBRUQ7O09BRUc7SUFDSSxXQUFXLENBQUMsT0FBb0IsRUFBRSxTQUFpQjtRQUN4RCxrQkFBa0I7UUFDbEIsMEJBQTBCO1FBQzFCLElBQUksT0FBTyxFQUFFO1lBQ1gsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLFNBQVMsQ0FBQyxDQUFDO1NBQzdDO0lBQ0gsQ0FBQztJQUVNLDJCQUEyQixDQUNoQyxPQUEyQjtRQUUzQixPQUFPLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxvQkFBb0I7UUFDbEQseURBQXlEO1FBQ3pELDBCQUEwQjtRQUMxQixPQUFPLEVBQUUsWUFBWSxDQUFDLFFBQVEsQ0FBQyxhQUFhLEVBQzVDLEVBQUUsY0FBYyxFQUFFLElBQUksRUFBRSxDQUN6QixDQUFDO0lBQ0osQ0FBQztJQUVEOztPQUVHO0lBQ0ksY0FBYyxDQUFDLE9BQW9CLEVBQUUsU0FBaUI7UUFDM0Qsa0JBQWtCO1FBQ2xCLDBCQUEwQjtRQUMxQixJQUFJLE9BQU8sRUFBRTtZQUNYLElBQUksQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLE9BQU8sRUFBRSxTQUFTLENBQUMsQ0FBQztTQUNoRDtJQUNILENBQUM7SUFFTSxnQkFBZ0IsQ0FDckIsVUFBc0IsRUFDdEIsV0FBdUIsRUFDdkIsVUFBbUI7UUFFbkIsTUFBTSxhQUFhLEdBQUcsVUFBVTtZQUM5QixDQUFDLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLENBQUM7WUFDcEQsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUM7UUFDN0IsSUFBSSxhQUFhLEVBQUU7WUFDakIsTUFBTSxLQUFLLEdBQUcsYUFBYSxDQUFDLHFCQUFxQixFQUFFLENBQUMsS0FBSyxDQUFDO1lBQzFELElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxhQUFhLEVBQUUsT0FBTyxFQUFFLEdBQUcsS0FBSyxJQUFJLENBQUMsQ0FBQztTQUMzRTtJQUNILENBQUM7SUFFRDs7T0FFRztJQUNJLFdBQVcsQ0FBQyxPQUFvQixFQUFFLFFBQWdCO1FBQ3ZELE9BQU8sQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO0lBQzlCLENBQUM7OEdBakVVLDZCQUE2QjtrSEFBN0IsNkJBQTZCOzsyRkFBN0IsNkJBQTZCO2tCQUR6QyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgRWxlbWVudFJlZixcbiAgSW5qZWN0YWJsZSxcbiAgUmVuZGVyZXIyLFxuICBSZW5kZXJlckZhY3RvcnkyLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFNreUNvcmVBZGFwdGVyU2VydmljZSwgU2t5T3ZlcmxheUluc3RhbmNlIH0gZnJvbSAnQHNreXV4L2NvcmUnO1xuXG4vKipcbiAqIEBpbnRlcm5hbFxuICovXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgU2t5QXV0b2NvbXBsZXRlQWRhcHRlclNlcnZpY2Uge1xuICAjY29yZUFkYXB0ZXJTZXJ2aWNlOiBTa3lDb3JlQWRhcHRlclNlcnZpY2U7XG5cbiAgI3JlbmRlcmVyOiBSZW5kZXJlcjI7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgY29yZUFkYXB0ZXJTZXJ2aWNlOiBTa3lDb3JlQWRhcHRlclNlcnZpY2UsXG4gICAgcmVuZGVyZXJGYWN0b3J5OiBSZW5kZXJlckZhY3RvcnkyXG4gICkge1xuICAgIHRoaXMuI2NvcmVBZGFwdGVyU2VydmljZSA9IGNvcmVBZGFwdGVyU2VydmljZTtcbiAgICB0aGlzLiNyZW5kZXJlciA9IHJlbmRlcmVyRmFjdG9yeS5jcmVhdGVSZW5kZXJlcih1bmRlZmluZWQsIG51bGwpO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZHMgdGhlIGNsYXNzTmFtZSBmb3IgdGhlIHByb3ZpZGVkIGVsZW1lbnQuXG4gICAqL1xuICBwdWJsaWMgYWRkQ1NTQ2xhc3MoZWxlbWVudDogSFRNTEVsZW1lbnQsIGNsYXNzTmFtZTogc3RyaW5nKTogdm9pZCB7XG4gICAgLyogU2FuaXR5IGNoZWNrICovXG4gICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICBpZiAoZWxlbWVudCkge1xuICAgICAgdGhpcy4jcmVuZGVyZXIuYWRkQ2xhc3MoZWxlbWVudCwgY2xhc3NOYW1lKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZ2V0T3ZlcmxheUZvY3VzYWJsZUVsZW1lbnRzKFxuICAgIG92ZXJsYXk6IFNreU92ZXJsYXlJbnN0YW5jZVxuICApOiBIVE1MRWxlbWVudFtdIHtcbiAgICByZXR1cm4gdGhpcy4jY29yZUFkYXB0ZXJTZXJ2aWNlLmdldEZvY3VzYWJsZUNoaWxkcmVuKFxuICAgICAgLyogU2FuaXR5IGNoZWNrIC0gY2FsbGluZyBmdW5jdGlvbiBhbHNvIGhhcyBudWxsIGNoZWNrICovXG4gICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuICAgICAgb3ZlcmxheT8uY29tcG9uZW50UmVmLmxvY2F0aW9uLm5hdGl2ZUVsZW1lbnQsXG4gICAgICB7IGlnbm9yZVRhYkluZGV4OiB0cnVlIH1cbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlbW92ZXMgdGhlIGNsYXNzTmFtZSBmb3IgdGhlIHByb3ZpZGVkIGVsZW1lbnQuXG4gICAqL1xuICBwdWJsaWMgcmVtb3ZlQ1NTQ2xhc3MoZWxlbWVudDogSFRNTEVsZW1lbnQsIGNsYXNzTmFtZTogc3RyaW5nKTogdm9pZCB7XG4gICAgLyogU2FuaXR5IGNoZWNrICovXG4gICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICBpZiAoZWxlbWVudCkge1xuICAgICAgdGhpcy4jcmVuZGVyZXIucmVtb3ZlQ2xhc3MoZWxlbWVudCwgY2xhc3NOYW1lKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgc2V0RHJvcGRvd25XaWR0aChcbiAgICBlbGVtZW50UmVmOiBFbGVtZW50UmVmLFxuICAgIGRyb3Bkb3duUmVmOiBFbGVtZW50UmVmLFxuICAgIGlzSW5wdXRCb3g6IGJvb2xlYW5cbiAgKTogdm9pZCB7XG4gICAgY29uc3QgcGFyZW50RWxlbWVudCA9IGlzSW5wdXRCb3hcbiAgICAgID8gZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmNsb3Nlc3QoJy5za3ktaW5wdXQtYm94JylcbiAgICAgIDogZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O1xuICAgIGlmIChwYXJlbnRFbGVtZW50KSB7XG4gICAgICBjb25zdCB3aWR0aCA9IHBhcmVudEVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGg7XG4gICAgICB0aGlzLiNyZW5kZXJlci5zZXRTdHlsZShkcm9wZG93blJlZi5uYXRpdmVFbGVtZW50LCAnd2lkdGgnLCBgJHt3aWR0aH1weGApO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBgdGFiSW5kZXhgIG9mIHRoZSBgZWxlbWVudGAgdG8gdGhlIHByb3ZpZGVkIGB0YWJJbmRleGAuXG4gICAqL1xuICBwdWJsaWMgc2V0VGFiSW5kZXgoZWxlbWVudDogSFRNTEVsZW1lbnQsIHRhYkluZGV4OiBudW1iZXIpOiB2b2lkIHtcbiAgICBlbGVtZW50LnRhYkluZGV4ID0gdGFiSW5kZXg7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,237 @@
1
+ import { Directive, Input, forwardRef, } from '@angular/core';
2
+ import { NG_VALIDATORS, NG_VALUE_ACCESSOR, } from '@angular/forms';
3
+ import { Subject, fromEvent as observableFromEvent } from 'rxjs';
4
+ import { takeUntil } from 'rxjs/operators';
5
+ import * as i0 from "@angular/core";
6
+ const SKY_AUTOCOMPLETE_VALUE_ACCESSOR = {
7
+ provide: NG_VALUE_ACCESSOR,
8
+ useExisting: forwardRef(() => SkyAutocompleteInputDirective),
9
+ multi: true,
10
+ };
11
+ const SKY_AUTOCOMPLETE_VALIDATOR = {
12
+ provide: NG_VALIDATORS,
13
+ useExisting: forwardRef(() => SkyAutocompleteInputDirective),
14
+ multi: true,
15
+ };
16
+ export class SkyAutocompleteInputDirective {
17
+ /**
18
+ * The value for the `autocomplete` attribute on the form input.
19
+ * @default "off"
20
+ */
21
+ set autocompleteAttribute(value) {
22
+ if (!value) {
23
+ this.#_autocompleteAttribute = 'off';
24
+ }
25
+ else {
26
+ this.#_autocompleteAttribute = value;
27
+ }
28
+ this.#renderer.setAttribute(this.#elementRef.nativeElement, 'autocomplete', this.#_autocompleteAttribute);
29
+ }
30
+ get autocompleteAttribute() {
31
+ return this.#_autocompleteAttribute || 'off';
32
+ }
33
+ /**
34
+ * Whether to disable the autocomplete field on template-driven forms. Don't use this input on reactive forms because they may overwrite the input or leave the control out of sync.
35
+ * To set the disabled state on reactive forms, use the `FormControl` instead.
36
+ * @default false
37
+ */
38
+ set disabled(value) {
39
+ this.#_disabled = value ?? false;
40
+ this.#renderer.setProperty(this.#elementRef.nativeElement, 'disabled', value);
41
+ }
42
+ get disabled() {
43
+ return this.#_disabled;
44
+ }
45
+ get blur() {
46
+ return this.#blurObs;
47
+ }
48
+ get displayWith() {
49
+ return this.#_displayWith;
50
+ }
51
+ set displayWith(value) {
52
+ this.#_displayWith = value;
53
+ this.inputTextValue = this.#getValueByKey();
54
+ }
55
+ get focus() {
56
+ return this.#focusObs;
57
+ }
58
+ get inputTextValue() {
59
+ return this.#elementRef.nativeElement.value;
60
+ }
61
+ set inputTextValue(value) {
62
+ this.#elementRef.nativeElement.value = value || '';
63
+ }
64
+ get textChanges() {
65
+ return this.#textChangesObs;
66
+ }
67
+ get value() {
68
+ return this.#_value;
69
+ }
70
+ set value(value) {
71
+ const isNewValue = value !== this.#_value;
72
+ /* istanbul ignore else */
73
+ if (isNewValue) {
74
+ this.#_value = value;
75
+ this.inputTextValue = this.#getValueByKey();
76
+ this.onChange(this.#_value);
77
+ // Do not mark the field as "dirty"
78
+ // if the field has been initialized with a value.
79
+ if (this.#isFirstChange && this.#control) {
80
+ this.#control.markAsPristine();
81
+ }
82
+ if (this.#isFirstChange && this.#_value) {
83
+ this.#isFirstChange = false;
84
+ }
85
+ }
86
+ }
87
+ #blur;
88
+ #blurObs;
89
+ #control;
90
+ #elementRef;
91
+ #focus;
92
+ #focusObs;
93
+ #isFirstChange;
94
+ #ngUnsubscribe;
95
+ #renderer;
96
+ #textChanges;
97
+ #textChangesObs;
98
+ #_autocompleteAttribute;
99
+ #_disabled;
100
+ #_displayWith;
101
+ #_value;
102
+ constructor(elementRef, renderer) {
103
+ this.#isFirstChange = true;
104
+ this.#ngUnsubscribe = new Subject();
105
+ this.#_disabled = false;
106
+ this.#_displayWith = '';
107
+ // istanbul ignore next
108
+ // eslint-disable-next-line @typescript-eslint/no-empty-function
109
+ this.onValidatorChange = () => { };
110
+ this.#elementRef = elementRef;
111
+ this.#renderer = renderer;
112
+ this.#blur = new Subject();
113
+ this.#focus = new Subject();
114
+ this.#textChanges = new Subject();
115
+ this.#blurObs = this.#blur.asObservable();
116
+ this.#focusObs = this.#focus.asObservable();
117
+ this.#textChangesObs = this.#textChanges.asObservable();
118
+ }
119
+ ngOnInit() {
120
+ const element = this.#elementRef.nativeElement;
121
+ this.#setAttributes(this.#elementRef);
122
+ observableFromEvent(element, 'input')
123
+ .pipe(takeUntil(this.#ngUnsubscribe))
124
+ .subscribe(() => {
125
+ if (!this.disabled) {
126
+ this.#textChanges.next({
127
+ value: this.#elementRef.nativeElement.value,
128
+ });
129
+ }
130
+ });
131
+ observableFromEvent(element, 'blur')
132
+ .pipe(takeUntil(this.#ngUnsubscribe))
133
+ .subscribe(() => {
134
+ if (!this.disabled) {
135
+ this.#blur.next();
136
+ }
137
+ });
138
+ observableFromEvent(element, 'focus')
139
+ .pipe(takeUntil(this.#ngUnsubscribe))
140
+ .subscribe(() => {
141
+ if (!this.disabled) {
142
+ this.#focus.next();
143
+ }
144
+ });
145
+ observableFromEvent(element, 'change')
146
+ .pipe(takeUntil(this.#ngUnsubscribe))
147
+ .subscribe(() => {
148
+ /* istanbul ignore else */
149
+ if (!this.disabled) {
150
+ this.#isFirstChange = false;
151
+ }
152
+ });
153
+ }
154
+ ngOnDestroy() {
155
+ this.#blur.complete();
156
+ this.#textChanges.complete();
157
+ this.#ngUnsubscribe.next();
158
+ this.#ngUnsubscribe.complete();
159
+ }
160
+ writeValue(value) {
161
+ this.value = value;
162
+ }
163
+ registerOnChange(fn) {
164
+ this.onChange = fn;
165
+ }
166
+ registerOnTouched(fn) {
167
+ this.onTouched = fn;
168
+ }
169
+ registerOnValidatorChange(fn) {
170
+ this.onValidatorChange = fn;
171
+ }
172
+ restoreInputTextValueToPreviousState() {
173
+ const modelValue = this.#getValueByKey();
174
+ // If the search field contains text, make sure that the value
175
+ // matches the selected descriptor key.
176
+ if (this.inputTextValue !== modelValue) {
177
+ this.inputTextValue = modelValue;
178
+ }
179
+ this.onTouched();
180
+ }
181
+ setDisabledState(disabled) {
182
+ this.disabled = disabled;
183
+ }
184
+ validate(control) {
185
+ if (!this.#control) {
186
+ this.#control = control;
187
+ }
188
+ return null;
189
+ }
190
+ // See: https://www.w3.org/TR/wai-aria-practices/#kbd_focus_activedescendant
191
+ setActiveDescendant(descendantId) {
192
+ if (descendantId) {
193
+ this.#renderer.setAttribute(this.#elementRef.nativeElement, 'aria-activedescendant', descendantId);
194
+ }
195
+ else {
196
+ this.#renderer.removeAttribute(this.#elementRef.nativeElement, 'aria-activedescendant');
197
+ }
198
+ }
199
+ setAriaOwns(overlayId) {
200
+ if (overlayId) {
201
+ this.#renderer.setAttribute(this.#elementRef.nativeElement, 'aria-owns', overlayId);
202
+ }
203
+ else {
204
+ this.#renderer.removeAttribute(this.#elementRef.nativeElement, 'aria-owns');
205
+ }
206
+ }
207
+ // Angular automatically constructs these methods.
208
+ // eslint-disable-next-line @typescript-eslint/no-empty-function
209
+ onChange(value) { }
210
+ // eslint-disable-next-line @typescript-eslint/no-empty-function
211
+ onTouched() { }
212
+ #setAttributes(elementRef) {
213
+ const element = elementRef.nativeElement;
214
+ this.#renderer.setAttribute(element, 'autocomplete', this.autocompleteAttribute);
215
+ this.#renderer.setAttribute(element, 'autocapitalize', 'none');
216
+ this.#renderer.setAttribute(element, 'autocorrect', 'off');
217
+ this.#renderer.setAttribute(element, 'spellcheck', 'false');
218
+ this.#renderer.addClass(element, 'sky-form-control');
219
+ }
220
+ #getValueByKey() {
221
+ return this.value ? this.value[this.displayWith] : undefined;
222
+ }
223
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: SkyAutocompleteInputDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive }); }
224
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.1.7", type: SkyAutocompleteInputDirective, selector: "input[skyAutocomplete], textarea[skyAutocomplete]", inputs: { autocompleteAttribute: "autocompleteAttribute", disabled: "disabled" }, providers: [SKY_AUTOCOMPLETE_VALUE_ACCESSOR, SKY_AUTOCOMPLETE_VALIDATOR], ngImport: i0 }); }
225
+ }
226
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: SkyAutocompleteInputDirective, decorators: [{
227
+ type: Directive,
228
+ args: [{
229
+ selector: 'input[skyAutocomplete], textarea[skyAutocomplete]',
230
+ providers: [SKY_AUTOCOMPLETE_VALUE_ACCESSOR, SKY_AUTOCOMPLETE_VALIDATOR],
231
+ }]
232
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.Renderer2 }]; }, propDecorators: { autocompleteAttribute: [{
233
+ type: Input
234
+ }], disabled: [{
235
+ type: Input
236
+ }] } });
237
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0b2NvbXBsZXRlLWlucHV0LmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9sb29rdXAvc3JjL2xpYi9tb2R1bGVzL2F1dG9jb21wbGV0ZS9hdXRvY29tcGxldGUtaW5wdXQuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBRVQsS0FBSyxFQUlMLFVBQVUsR0FDWCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBR0wsYUFBYSxFQUNiLGlCQUFpQixHQUdsQixNQUFNLGdCQUFnQixDQUFDO0FBRXhCLE9BQU8sRUFBYyxPQUFPLEVBQUUsU0FBUyxJQUFJLG1CQUFtQixFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzdFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7QUFJM0MsTUFBTSwrQkFBK0IsR0FBRztJQUN0QyxPQUFPLEVBQUUsaUJBQWlCO0lBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsNkJBQTZCLENBQUM7SUFDNUQsS0FBSyxFQUFFLElBQUk7Q0FDWixDQUFDO0FBRUYsTUFBTSwwQkFBMEIsR0FBRztJQUNqQyxPQUFPLEVBQUUsYUFBYTtJQUN0QixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLDZCQUE2QixDQUFDO0lBQzVELEtBQUssRUFBRSxJQUFJO0NBQ1osQ0FBQztBQU1GLE1BQU0sT0FBTyw2QkFBNkI7SUFHeEM7OztPQUdHO0lBQ0gsSUFDVyxxQkFBcUIsQ0FBQyxLQUF5QjtRQUN4RCxJQUFJLENBQUMsS0FBSyxFQUFFO1lBQ1YsSUFBSSxDQUFDLHVCQUF1QixHQUFHLEtBQUssQ0FBQztTQUN0QzthQUFNO1lBQ0wsSUFBSSxDQUFDLHVCQUF1QixHQUFHLEtBQUssQ0FBQztTQUN0QztRQUVELElBQUksQ0FBQyxTQUFTLENBQUMs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LENBQUMsU0FBUyxDQUFDO0lBQy9ELENBQUM7OEdBOVJVLDZCQUE2QjtrR0FBN0IsNkJBQTZCLDhKQUY3QixDQUFDLCtCQUErQixFQUFFLDBCQUEwQixDQUFDOzsyRkFFN0QsNkJBQTZCO2tCQUp6QyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxtREFBbUQ7b0JBQzdELFNBQVMsRUFBRSxDQUFDLCtCQUErQixFQUFFLDBCQUEwQixDQUFDO2lCQUN6RTt5SEFTWSxxQkFBcUI7c0JBRC9CLEtBQUs7Z0JBeUJLLFFBQVE7c0JBRGxCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBEaXJlY3RpdmUsXG4gIEVsZW1lbnRSZWYsXG4gIElucHV0LFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgUmVuZGVyZXIyLFxuICBmb3J3YXJkUmVmLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIEFic3RyYWN0Q29udHJvbCxcbiAgQ29udHJvbFZhbHVlQWNjZXNzb3IsXG4gIE5HX1ZBTElEQVRPUlMsXG4gIE5HX1ZBTFVFX0FDQ0VTU09SLFxuICBWYWxpZGF0aW9uRXJyb3JzLFxuICBWYWxpZGF0b3IsXG59IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3ViamVjdCwgZnJvbUV2ZW50IGFzIG9ic2VydmFibGVGcm9tRXZlbnQgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgU2t5QXV0b2NvbXBsZXRlSW5wdXRUZXh0Q2hhbmdlIH0gZnJvbSAnLi90eXBlcy9hdXRvY29tcGxldGUtaW5wdXQtdGV4dC1jaGFuZ2UnO1xuXG5jb25zdCBTS1lfQVVUT0NPTVBMRVRFX1ZBTFVFX0FDQ0VTU09SID0ge1xuICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gU2t5QXV0b2NvbXBsZXRlSW5wdXREaXJlY3RpdmUpLFxuICBtdWx0aTogdHJ1ZSxcbn07XG5cbmNvbnN0IFNLWV9BVVRPQ09NUExFVEVfVkFMSURBVE9SID0ge1xuICBwcm92aWRlOiBOR19WQUxJREFUT1JTLFxuICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBTa3lBdXRvY29tcGxldGVJbnB1dERpcmVjdGl2ZSksXG4gIG11bHRpOiB0cnVlLFxufTtcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnaW5wdXRbc2t5QXV0b2NvbXBsZXRlXSwgdGV4dGFyZWFbc2t5QXV0b2NvbXBsZXRlXScsXG4gIHByb3ZpZGVyczogW1NLWV9BVVRPQ09NUExFVEVfVkFMVUVfQUNDRVNTT1IsIFNLWV9BVVRPQ09NUExFVEVfVkFMSURBVE9SXSxcbn0pXG5leHBvcnQgY2xhc3MgU2t5QXV0b2NvbXBsZXRlSW5wdXREaXJlY3RpdmVcbiAgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSwgQ29udHJvbFZhbHVlQWNjZXNzb3IsIFZhbGlkYXRvclxue1xuICAvKipcbiAgICogVGhlIHZhbHVlIGZvciB0aGUgYGF1dG9jb21wbGV0ZWAgYXR0cmlidXRlIG9uIHRoZSBmb3JtIGlucHV0LlxuICAgKiBAZGVmYXVsdCBcIm9mZlwiXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IGF1dG9jb21wbGV0ZUF0dHJpYnV0ZSh2YWx1ZTogc3RyaW5nIHwgdW5kZWZpbmVkKSB7XG4gICAgaWYgKCF2YWx1ZSkge1xuICAgICAgdGhpcy4jX2F1dG9jb21wbGV0ZUF0dHJpYnV0ZSA9ICdvZmYnO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLiNfYXV0b2NvbXBsZXRlQXR0cmlidXRlID0gdmFsdWU7XG4gICAgfVxuXG4gICAgdGhpcy4jcmVuZGVyZXIuc2V0QXR0cmlidXRlKFxuICAgICAgdGhpcy4jZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LFxuICAgICAgJ2F1dG9jb21wbGV0ZScsXG4gICAgICB0aGlzLiNfYXV0b2NvbXBsZXRlQXR0cmlidXRlXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgYXV0b2NvbXBsZXRlQXR0cmlidXRlKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuI19hdXRvY29tcGxldGVBdHRyaWJ1dGUgfHwgJ29mZic7XG4gIH1cblxuICAvKipcbiAgICogV2hldGhlciB0byBkaXNhYmxlIHRoZSBhdXRvY29tcGxldGUgZmllbGQgb24gdGVtcGxhdGUtZHJpdmVuIGZvcm1zLiBEb24ndCB1c2UgdGhpcyBpbnB1dCBvbiByZWFjdGl2ZSBmb3JtcyBiZWNhdXNlIHRoZXkgbWF5IG92ZXJ3cml0ZSB0aGUgaW5wdXQgb3IgbGVhdmUgdGhlIGNvbnRyb2wgb3V0IG9mIHN5bmMuXG4gICAqIFRvIHNldCB0aGUgZGlzYWJsZWQgc3RhdGUgb24gcmVhY3RpdmUgZm9ybXMsIHVzZSB0aGUgYEZvcm1Db250cm9sYCBpbnN0ZWFkLlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBkaXNhYmxlZCh2YWx1ZTogYm9vbGVhbiB8IHVuZGVmaW5lZCkge1xuICAgIHRoaXMuI19kaXNhYmxlZCA9IHZhbHVlID8/IGZhbHNlO1xuICAgIHRoaXMuI3JlbmRlcmVyLnNldFByb3BlcnR5KFxuICAgICAgdGhpcy4jZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LFxuICAgICAgJ2Rpc2FibGVkJyxcbiAgICAgIHZhbHVlXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgZGlzYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuI19kaXNhYmxlZDtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgYmx1cigpOiBPYnNlcnZhYmxlPHZvaWQ+IHtcbiAgICByZXR1cm4gdGhpcy4jYmx1ck9icztcbiAgfVxuXG4gIHB1YmxpYyBnZXQgZGlzcGxheVdpdGgoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy4jX2Rpc3BsYXlXaXRoO1xuICB9XG5cbiAgcHVibGljIHNldCBkaXNwbGF5V2l0aCh2YWx1ZTogc3RyaW5nKSB7XG4gICAgdGhpcy4jX2Rpc3BsYXlXaXRoID0gdmFsdWU7XG4gICAgdGhpcy5pbnB1dFRleHRWYWx1ZSA9IHRoaXMuI2dldFZhbHVlQnlLZXkoKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgZm9jdXMoKTogT2JzZXJ2YWJsZTx2b2lkPiB7XG4gICAgcmV0dXJuIHRoaXMuI2ZvY3VzT2JzO1xuICB9XG5cbiAgcHVibGljIGdldCBpbnB1dFRleHRWYWx1ZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLiNlbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQudmFsdWU7XG4gIH1cblxuICBwdWJsaWMgc2V0IGlucHV0VGV4dFZhbHVlKHZhbHVlOiBzdHJpbmcpIHtcbiAgICB0aGlzLiNlbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQudmFsdWUgPSB2YWx1ZSB8fCAnJztcbiAgfVxuXG4gIHB1YmxpYyBnZXQgdGV4dENoYW5nZXMoKTogT2JzZXJ2YWJsZTxTa3lBdXRvY29tcGxldGVJbnB1dFRleHRDaGFuZ2U+IHtcbiAgICByZXR1cm4gdGhpcy4jdGV4dENoYW5nZXNPYnM7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHZhbHVlKCk6IGFueSB7XG4gICAgcmV0dXJuIHRoaXMuI192YWx1ZTtcbiAgfVxuXG4gIHB1YmxpYyBzZXQgdmFsdWUodmFsdWU6IGFueSkge1xuICAgIGNvbnN0IGlzTmV3VmFsdWUgPSB2YWx1ZSAhPT0gdGhpcy4jX3ZhbHVlO1xuXG4gICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICBpZiAoaXNOZXdWYWx1ZSkge1xuICAgICAgdGhpcy4jX3ZhbHVlID0gdmFsdWU7XG4gICAgICB0aGlzLmlucHV0VGV4dFZhbHVlID0gdGhpcy4jZ2V0VmFsdWVCeUtleSgpO1xuICAgICAgdGhpcy5vbkNoYW5nZSh0aGlzLiNfdmFsdWUpO1xuXG4gICAgICAvLyBEbyBub3QgbWFyayB0aGUgZmllbGQgYXMgXCJkaXJ0eVwiXG4gICAgICAvLyBpZiB0aGUgZmllbGQgaGFzIGJlZW4gaW5pdGlhbGl6ZWQgd2l0aCBhIHZhbHVlLlxuICAgICAgaWYgKHRoaXMuI2lzRmlyc3RDaGFuZ2UgJiYgdGhpcy4jY29udHJvbCkge1xuICAgICAgICB0aGlzLiNjb250cm9sLm1hcmtBc1ByaXN0aW5lKCk7XG4gICAgICB9XG5cbiAgICAgIGlmICh0aGlzLiNpc0ZpcnN0Q2hhbmdlICYmIHRoaXMuI192YWx1ZSkge1xuICAgICAgICB0aGlzLiNpc0ZpcnN0Q2hhbmdlID0gZmFsc2U7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgI2JsdXI6IFN1YmplY3Q8dm9pZD47XG5cbiAgI2JsdXJPYnM6IE9ic2VydmFibGU8dm9pZD47XG5cbiAgI2NvbnRyb2w6IEFic3RyYWN0Q29udHJvbCB8IHVuZGVmaW5lZDtcblxuICAjZWxlbWVudFJlZjogRWxlbWVudFJlZjtcblxuICAjZm9jdXM6IFN1YmplY3Q8dm9pZD47XG5cbiAgI2ZvY3VzT2JzOiBPYnNlcnZhYmxlPHZvaWQ+O1xuXG4gICNpc0ZpcnN0Q2hhbmdlID0gdHJ1ZTtcblxuICAjbmdVbnN1YnNjcmliZSA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgI3JlbmRlcmVyOiBSZW5kZXJlcjI7XG5cbiAgI3RleHRDaGFuZ2VzOiBTdWJqZWN0PFNreUF1dG9jb21wbGV0ZUlucHV0VGV4dENoYW5nZT47XG5cbiAgI3RleHRDaGFuZ2VzT2JzOiBPYnNlcnZhYmxlPFNreUF1dG9jb21wbGV0ZUlucHV0VGV4dENoYW5nZT47XG5cbiAgI19hdXRvY29tcGxldGVBdHRyaWJ1dGU6IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICAjX2Rpc2FibGVkID0gZmFsc2U7XG5cbiAgI19kaXNwbGF5V2l0aCA9ICcnO1xuXG4gICNfdmFsdWU6IGFueTtcblxuICBjb25zdHJ1Y3RvcihlbGVtZW50UmVmOiBFbGVtZW50UmVmLCByZW5kZXJlcjogUmVuZGVyZXIyKSB7XG4gICAgdGhpcy4jZWxlbWVudFJlZiA9IGVsZW1lbnRSZWY7XG4gICAgdGhpcy4jcmVuZGVyZXIgPSByZW5kZXJlcjtcblxuICAgIHRoaXMuI2JsdXIgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuICAgIHRoaXMuI2ZvY3VzID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcbiAgICB0aGlzLiN0ZXh0Q2hhbmdlcyA9IG5ldyBTdWJqZWN0PFNreUF1dG9jb21wbGV0ZUlucHV0VGV4dENoYW5nZT4oKTtcblxuICAgIHRoaXMuI2JsdXJPYnMgPSB0aGlzLiNibHVyLmFzT2JzZXJ2YWJsZSgpO1xuICAgIHRoaXMuI2ZvY3VzT2JzID0gdGhpcy4jZm9jdXMuYXNPYnNlcnZhYmxlKCk7XG4gICAgdGhpcy4jdGV4dENoYW5nZXNPYnMgPSB0aGlzLiN0ZXh0Q2hhbmdlcy5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpIHtcbiAgICBjb25zdCBlbGVtZW50ID0gdGhpcy4jZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O1xuXG4gICAgdGhpcy4jc2V0QXR0cmlidXRlcyh0aGlzLiNlbGVtZW50UmVmKTtcblxuICAgIG9ic2VydmFibGVGcm9tRXZlbnQoZWxlbWVudCwgJ2lucHV0JylcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLiNuZ1Vuc3Vic2NyaWJlKSlcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICBpZiAoIXRoaXMuZGlzYWJsZWQpIHtcbiAgICAgICAgICB0aGlzLiN0ZXh0Q2hhbmdlcy5uZXh0KHtcbiAgICAgICAgICAgIHZhbHVlOiB0aGlzLiNlbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQudmFsdWUsXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuXG4gICAgb2JzZXJ2YWJsZUZyb21FdmVudChlbGVtZW50LCAnYmx1cicpXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy4jbmdVbnN1YnNjcmliZSkpXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgaWYgKCF0aGlzLmRpc2FibGVkKSB7XG4gICAgICAgICAgdGhpcy4jYmx1ci5uZXh0KCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuXG4gICAgb2JzZXJ2YWJsZUZyb21FdmVudChlbGVtZW50LCAnZm9jdXMnKVxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuI25nVW5zdWJzY3JpYmUpKVxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIGlmICghdGhpcy5kaXNhYmxlZCkge1xuICAgICAgICAgIHRoaXMuI2ZvY3VzLm5leHQoKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG5cbiAgICBvYnNlcnZhYmxlRnJvbUV2ZW50KGVsZW1lbnQsICdjaGFuZ2UnKVxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuI25nVW5zdWJzY3JpYmUpKVxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgICAgIGlmICghdGhpcy5kaXNhYmxlZCkge1xuICAgICAgICAgIHRoaXMuI2lzRmlyc3RDaGFuZ2UgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy4jYmx1ci5jb21wbGV0ZSgpO1xuICAgIHRoaXMuI3RleHRDaGFuZ2VzLmNvbXBsZXRlKCk7XG5cbiAgICB0aGlzLiNuZ1Vuc3Vic2NyaWJlLm5leHQoKTtcbiAgICB0aGlzLiNuZ1Vuc3Vic2NyaWJlLmNvbXBsZXRlKCk7XG4gIH1cblxuICBwdWJsaWMgd3JpdGVWYWx1ZSh2YWx1ZTogYW55KTogdm9pZCB7XG4gICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xuICB9XG5cbiAgcHVibGljIHJlZ2lzdGVyT25DaGFuZ2UoZm46ICh2YWx1ZTogYW55KSA9PiB2b2lkKTogdm9pZCB7XG4gICAgdGhpcy5vbkNoYW5nZSA9IGZuO1xuICB9XG5cbiAgcHVibGljIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiAoKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgdGhpcy5vblRvdWNoZWQgPSBmbjtcbiAgfVxuXG4gIHB1YmxpYyByZWdpc3Rlck9uVmFsaWRhdG9yQ2hhbmdlKGZuOiAoKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgdGhpcy5vblZhbGlkYXRvckNoYW5nZSA9IGZuO1xuICB9XG5cbiAgcHVibGljIHJlc3RvcmVJbnB1dFRleHRWYWx1ZVRvUHJldmlvdXNTdGF0ZSgpOiB2b2lkIHtcbiAgICBjb25zdCBtb2RlbFZhbHVlID0gdGhpcy4jZ2V0VmFsdWVCeUtleSgpO1xuXG4gICAgLy8gSWYgdGhlIHNlYXJjaCBmaWVsZCBjb250YWlucyB0ZXh0LCBtYWtlIHN1cmUgdGhhdCB0aGUgdmFsdWVcbiAgICAvLyBtYXRjaGVzIHRoZSBzZWxlY3RlZCBkZXNjcmlwdG9yIGtleS5cbiAgICBpZiAodGhpcy5pbnB1dFRleHRWYWx1ZSAhPT0gbW9kZWxWYWx1ZSkge1xuICAgICAgdGhpcy5pbnB1dFRleHRWYWx1ZSA9IG1vZGVsVmFsdWU7XG4gICAgfVxuXG4gICAgdGhpcy5vblRvdWNoZWQoKTtcbiAgfVxuXG4gIHB1YmxpYyBzZXREaXNhYmxlZFN0YXRlKGRpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy5kaXNhYmxlZCA9IGRpc2FibGVkO1xuICB9XG5cbiAgcHVibGljIHZhbGlkYXRlKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsIHtcbiAgICBpZiAoIXRoaXMuI2NvbnRyb2wpIHtcbiAgICAgIHRoaXMuI2NvbnRyb2wgPSBjb250cm9sO1xuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIC8vIFNlZTogaHR0cHM6Ly93d3cudzMub3JnL1RSL3dhaS1hcmlhLXByYWN0aWNlcy8ja2JkX2ZvY3VzX2FjdGl2ZWRlc2NlbmRhbnRcbiAgcHVibGljIHNldEFjdGl2ZURlc2NlbmRhbnQoZGVzY2VuZGFudElkOiBzdHJpbmcgfCBudWxsKTogdm9pZCB7XG4gICAgaWYgKGRlc2NlbmRhbnRJZCkge1xuICAgICAgdGhpcy4jcmVuZGVyZXIuc2V0QXR0cmlidXRlKFxuICAgICAgICB0aGlzLiNlbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsXG4gICAgICAgICdhcmlhLWFjdGl2ZWRlc2NlbmRhbnQnLFxuICAgICAgICBkZXNjZW5kYW50SWRcbiAgICAgICk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuI3JlbmRlcmVyLnJlbW92ZUF0dHJpYnV0ZShcbiAgICAgICAgdGhpcy4jZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LFxuICAgICAgICAnYXJpYS1hY3RpdmVkZXNjZW5kYW50J1xuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgc2V0QXJpYU93bnMob3ZlcmxheUlkOiBzdHJpbmcgfCBudWxsKTogdm9pZCB7XG4gICAgaWYgKG92ZXJsYXlJZCkge1xuICAgICAgdGhpcy4jcmVuZGVyZXIuc2V0QXR0cmlidXRlKFxuICAgICAgICB0aGlzLiNlbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsXG4gICAgICAgICdhcmlhLW93bnMnLFxuICAgICAgICBvdmVybGF5SWRcbiAgICAgICk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuI3JlbmRlcmVyLnJlbW92ZUF0dHJpYnV0ZShcbiAgICAgICAgdGhpcy4jZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LFxuICAgICAgICAnYXJpYS1vd25zJ1xuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICAvLyBBbmd1bGFyIGF1dG9tYXRpY2FsbHkgY29uc3RydWN0cyB0aGVzZSBtZXRob2RzLlxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWVtcHR5LWZ1bmN0aW9uXG4gIHB1YmxpYyBvbkNoYW5nZSh2YWx1ZTogYW55KTogdm9pZCB7fVxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWVtcHR5LWZ1bmN0aW9uXG4gIHB1YmxpYyBvblRvdWNoZWQoKTogdm9pZCB7fVxuICAvLyBpc3RhbmJ1bCBpZ25vcmUgbmV4dFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWVtcHR5LWZ1bmN0aW9uXG4gIHB1YmxpYyBvblZhbGlkYXRvckNoYW5nZSA9ICgpID0+IHt9O1xuXG4gICNzZXRBdHRyaWJ1dGVzKGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYpOiB2b2lkIHtcbiAgICBjb25zdCBlbGVtZW50ID0gZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O1xuXG4gICAgdGhpcy4jcmVuZGVyZXIuc2V0QXR0cmlidXRlKFxuICAgICAgZWxlbWVudCxcbiAgICAgICdhdXRvY29tcGxldGUnLFxuICAgICAgdGhpcy5hdXRvY29tcGxldGVBdHRyaWJ1dGVcbiAgICApO1xuICAgIHRoaXMuI3JlbmRlcmVyLnNldEF0dHJpYnV0ZShlbGVtZW50LCAnYXV0b2NhcGl0YWxpemUnLCAnbm9uZScpO1xuICAgIHRoaXMuI3JlbmRlcmVyLnNldEF0dHJpYnV0ZShlbGVtZW50LCAnYXV0b2NvcnJlY3QnLCAnb2ZmJyk7XG4gICAgdGhpcy4jcmVuZGVyZXIuc2V0QXR0cmlidXRlKGVsZW1lbnQsICdzcGVsbGNoZWNrJywgJ2ZhbHNlJyk7XG4gICAgdGhpcy4jcmVuZGVyZXIuYWRkQ2xhc3MoZWxlbWVudCwgJ3NreS1mb3JtLWNvbnRyb2wnKTtcbiAgfVxuXG4gICNnZXRWYWx1ZUJ5S2V5KCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMudmFsdWUgPyB0aGlzLnZhbHVlW3RoaXMuZGlzcGxheVdpdGhdIDogdW5kZWZpbmVkO1xuICB9XG59XG4iXX0=
@@ -7,13 +7,13 @@ export class SkyAutocompleteSearchAsyncDisabledPipe {
7
7
  transform(searchAsync, searchAsyncDisabled) {
8
8
  return searchAsyncDisabled || searchAsync.observers.length === 0;
9
9
  }
10
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: SkyAutocompleteSearchAsyncDisabledPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
11
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "16.1.7", ngImport: i0, type: SkyAutocompleteSearchAsyncDisabledPipe, name: "skyAutocompleteSearchAsyncDisabled" }); }
10
12
  }
11
- SkyAutocompleteSearchAsyncDisabledPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SkyAutocompleteSearchAsyncDisabledPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
12
- SkyAutocompleteSearchAsyncDisabledPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "15.2.9", ngImport: i0, type: SkyAutocompleteSearchAsyncDisabledPipe, name: "skyAutocompleteSearchAsyncDisabled" });
13
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SkyAutocompleteSearchAsyncDisabledPipe, decorators: [{
13
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: SkyAutocompleteSearchAsyncDisabledPipe, decorators: [{
14
14
  type: Pipe,
15
15
  args: [{
16
16
  name: 'skyAutocompleteSearchAsyncDisabled',
17
17
  }]
18
18
  }] });
19
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0b2NvbXBsZXRlLXNlYXJjaC1hc3luYy1kaXNhYmxlZC5waXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2xvb2t1cC9zcmMvbGliL21vZHVsZXMvYXV0b2NvbXBsZXRlL2F1dG9jb21wbGV0ZS1zZWFyY2gtYXN5bmMtZGlzYWJsZWQucGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWdCLElBQUksRUFBaUIsTUFBTSxlQUFlLENBQUM7O0FBSWxFOztHQUVHO0FBSUgsTUFBTSxPQUFPLHNDQUFzQztJQUMxQyxTQUFTLENBQ2QsV0FBeUQsRUFDekQsbUJBQXdDO1FBRXhDLE9BQU8sbUJBQW1CLElBQUksV0FBVyxDQUFDLFNBQVMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDO0lBQ25FLENBQUM7O21JQU5VLHNDQUFzQztpSUFBdEMsc0NBQXNDOzJGQUF0QyxzQ0FBc0M7a0JBSGxELElBQUk7bUJBQUM7b0JBQ0osSUFBSSxFQUFFLG9DQUFvQztpQkFDM0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFdmVudEVtaXR0ZXIsIFBpcGUsIFBpcGVUcmFuc2Zvcm0gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgU2t5QXV0b2NvbXBsZXRlU2VhcmNoQXN5bmNBcmdzIH0gZnJvbSAnLi90eXBlcy9hdXRvY29tcGxldGUtc2VhcmNoLWFzeW5jLWFyZ3MnO1xuXG4vKipcbiAqIEBpbnRlcm5hbFxuICovXG5AUGlwZSh7XG4gIG5hbWU6ICdza3lBdXRvY29tcGxldGVTZWFyY2hBc3luY0Rpc2FibGVkJyxcbn0pXG5leHBvcnQgY2xhc3MgU2t5QXV0b2NvbXBsZXRlU2VhcmNoQXN5bmNEaXNhYmxlZFBpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcbiAgcHVibGljIHRyYW5zZm9ybShcbiAgICBzZWFyY2hBc3luYzogRXZlbnRFbWl0dGVyPFNreUF1dG9jb21wbGV0ZVNlYXJjaEFzeW5jQXJncz4sXG4gICAgc2VhcmNoQXN5bmNEaXNhYmxlZDogYm9vbGVhbiB8IHVuZGVmaW5lZFxuICApOiBib29sZWFuIHtcbiAgICByZXR1cm4gc2VhcmNoQXN5bmNEaXNhYmxlZCB8fCBzZWFyY2hBc3luYy5vYnNlcnZlcnMubGVuZ3RoID09PSAwO1xuICB9XG59XG4iXX0=
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0b2NvbXBsZXRlLXNlYXJjaC1hc3luYy1kaXNhYmxlZC5waXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2xvb2t1cC9zcmMvbGliL21vZHVsZXMvYXV0b2NvbXBsZXRlL2F1dG9jb21wbGV0ZS1zZWFyY2gtYXN5bmMtZGlzYWJsZWQucGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWdCLElBQUksRUFBaUIsTUFBTSxlQUFlLENBQUM7O0FBSWxFOztHQUVHO0FBSUgsTUFBTSxPQUFPLHNDQUFzQztJQUMxQyxTQUFTLENBQ2QsV0FBeUQsRUFDekQsbUJBQXdDO1FBRXhDLE9BQU8sbUJBQW1CLElBQUksV0FBVyxDQUFDLFNBQVMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDO0lBQ25FLENBQUM7OEdBTlUsc0NBQXNDOzRHQUF0QyxzQ0FBc0M7OzJGQUF0QyxzQ0FBc0M7a0JBSGxELElBQUk7bUJBQUM7b0JBQ0osSUFBSSxFQUFFLG9DQUFvQztpQkFDM0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFdmVudEVtaXR0ZXIsIFBpcGUsIFBpcGVUcmFuc2Zvcm0gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgU2t5QXV0b2NvbXBsZXRlU2VhcmNoQXN5bmNBcmdzIH0gZnJvbSAnLi90eXBlcy9hdXRvY29tcGxldGUtc2VhcmNoLWFzeW5jLWFyZ3MnO1xuXG4vKipcbiAqIEBpbnRlcm5hbFxuICovXG5AUGlwZSh7XG4gIG5hbWU6ICdza3lBdXRvY29tcGxldGVTZWFyY2hBc3luY0Rpc2FibGVkJyxcbn0pXG5leHBvcnQgY2xhc3MgU2t5QXV0b2NvbXBsZXRlU2VhcmNoQXN5bmNEaXNhYmxlZFBpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcbiAgcHVibGljIHRyYW5zZm9ybShcbiAgICBzZWFyY2hBc3luYzogRXZlbnRFbWl0dGVyPFNreUF1dG9jb21wbGV0ZVNlYXJjaEFzeW5jQXJncz4sXG4gICAgc2VhcmNoQXN5bmNEaXNhYmxlZDogYm9vbGVhbiB8IHVuZGVmaW5lZFxuICApOiBib29sZWFuIHtcbiAgICByZXR1cm4gc2VhcmNoQXN5bmNEaXNhYmxlZCB8fCBzZWFyY2hBc3luYy5vYnNlcnZlcnMubGVuZ3RoID09PSAwO1xuICB9XG59XG4iXX0=