@skyux/lookup 8.7.2 → 9.0.0-alpha.1

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 (121) hide show
  1. package/documentation.json +244 -244
  2. package/esm2022/lib/modules/autocomplete/autocomplete-adapter.service.mjs +61 -0
  3. package/esm2022/lib/modules/autocomplete/autocomplete-input.directive.mjs +237 -0
  4. package/{esm2020 → esm2022}/lib/modules/autocomplete/autocomplete-search-async-disabled.pipe.mjs +4 -4
  5. package/esm2022/lib/modules/autocomplete/autocomplete.component.mjs +817 -0
  6. package/{esm2020 → esm2022}/lib/modules/autocomplete/autocomplete.module.mjs +27 -27
  7. package/esm2022/lib/modules/country-field/country-field.component.mjs +444 -0
  8. package/{esm2020 → esm2022}/lib/modules/country-field/country-field.module.mjs +19 -19
  9. package/{esm2020 → esm2022}/lib/modules/lookup/lookup-adapter.service.mjs +4 -4
  10. package/esm2022/lib/modules/lookup/lookup-autocomplete-adapter.mjs +114 -0
  11. package/esm2022/lib/modules/lookup/lookup-show-more-modal.component.mjs +270 -0
  12. package/{esm2020 → esm2022}/lib/modules/lookup/lookup.component.mjs +299 -280
  13. package/{esm2020 → esm2022}/lib/modules/lookup/lookup.module.mjs +37 -37
  14. package/esm2022/lib/modules/search/search-adapter.service.mjs +46 -0
  15. package/esm2022/lib/modules/search/search.component.mjs +285 -0
  16. package/{esm2020 → esm2022}/lib/modules/search/search.module.mjs +17 -17
  17. package/{esm2020 → esm2022}/lib/modules/selection-modal/selection-modal-item-selected.pipe.mjs +4 -4
  18. package/esm2022/lib/modules/selection-modal/selection-modal.component.mjs +201 -0
  19. package/{esm2020 → esm2022}/lib/modules/selection-modal/selection-modal.module.mjs +27 -27
  20. package/esm2022/lib/modules/selection-modal/selection-modal.service.mjs +89 -0
  21. package/esm2022/lib/modules/selection-modal/types/selection-modal-instance.mjs +45 -0
  22. package/esm2022/lib/modules/shared/sky-lookup-resources.module.mjs +71 -0
  23. package/esm2022/testing/autocomplete/autocomplete-harness.mjs +155 -0
  24. package/esm2022/testing/autocomplete/autocomplete-input-harness.mjs +63 -0
  25. package/esm2022/testing/autocomplete/autocomplete-search-result-harness.mjs +44 -0
  26. package/esm2022/testing/country-field/country-field-fixture.mjs +118 -0
  27. package/{esm2020 → esm2022}/testing/country-field/country-field-testing.module.mjs +5 -5
  28. package/esm2022/testing/lookup/lookup-harness.mjs +76 -0
  29. package/{esm2020 → esm2022}/testing/search/search-fixture.mjs +18 -19
  30. package/esm2022/testing/search/search-harness.mjs +80 -0
  31. package/{esm2020 → esm2022}/testing/search/search-testing.module.mjs +5 -5
  32. package/esm2022/testing/selection-modal/selection-modal-harness.mjs +122 -0
  33. package/{fesm2020 → fesm2022}/skyux-lookup-testing.mjs +171 -187
  34. package/{fesm2020 → fesm2022}/skyux-lookup-testing.mjs.map +1 -1
  35. package/fesm2022/skyux-lookup.mjs +3707 -0
  36. package/{fesm2015 → fesm2022}/skyux-lookup.mjs.map +1 -1
  37. package/lib/modules/autocomplete/autocomplete-input.directive.d.ts +1 -1
  38. package/lib/modules/autocomplete/autocomplete.component.d.ts +1 -1
  39. package/lib/modules/country-field/country-field.component.d.ts +1 -1
  40. package/lib/modules/lookup/lookup-autocomplete-adapter.d.ts +1 -1
  41. package/lib/modules/lookup/lookup.component.d.ts +1 -1
  42. package/lib/modules/search/search.component.d.ts +1 -1
  43. package/package.json +23 -31
  44. package/esm2020/lib/modules/autocomplete/autocomplete-adapter.service.mjs +0 -64
  45. package/esm2020/lib/modules/autocomplete/autocomplete-input.directive.mjs +0 -235
  46. package/esm2020/lib/modules/autocomplete/autocomplete.component.mjs +0 -775
  47. package/esm2020/lib/modules/country-field/country-field.component.mjs +0 -433
  48. package/esm2020/lib/modules/lookup/lookup-autocomplete-adapter.mjs +0 -115
  49. package/esm2020/lib/modules/lookup/lookup-show-more-modal.component.mjs +0 -271
  50. package/esm2020/lib/modules/search/search-adapter.service.mjs +0 -46
  51. package/esm2020/lib/modules/search/search.component.mjs +0 -279
  52. package/esm2020/lib/modules/selection-modal/selection-modal.component.mjs +0 -199
  53. package/esm2020/lib/modules/selection-modal/selection-modal.service.mjs +0 -92
  54. package/esm2020/lib/modules/selection-modal/types/selection-modal-instance.mjs +0 -48
  55. package/esm2020/lib/modules/shared/sky-lookup-resources.module.mjs +0 -71
  56. package/esm2020/testing/autocomplete/autocomplete-harness.mjs +0 -161
  57. package/esm2020/testing/autocomplete/autocomplete-input-harness.mjs +0 -63
  58. package/esm2020/testing/autocomplete/autocomplete-search-result-harness.mjs +0 -44
  59. package/esm2020/testing/country-field/country-field-fixture.mjs +0 -114
  60. package/esm2020/testing/lookup/lookup-harness.mjs +0 -82
  61. package/esm2020/testing/search/search-harness.mjs +0 -86
  62. package/esm2020/testing/selection-modal/selection-modal-harness.mjs +0 -128
  63. package/fesm2015/skyux-lookup-testing.mjs +0 -980
  64. package/fesm2015/skyux-lookup-testing.mjs.map +0 -1
  65. package/fesm2015/skyux-lookup.mjs +0 -3642
  66. package/fesm2020/skyux-lookup.mjs +0 -3625
  67. package/fesm2020/skyux-lookup.mjs.map +0 -1
  68. /package/{esm2020 → esm2022}/index.mjs +0 -0
  69. /package/{esm2020 → esm2022}/lib/modules/autocomplete/autocomplete-default-search-function.mjs +0 -0
  70. /package/{esm2020 → esm2022}/lib/modules/autocomplete/types/autocomplete-default-search-function-options.mjs +0 -0
  71. /package/{esm2020 → esm2022}/lib/modules/autocomplete/types/autocomplete-input-text-change.mjs +0 -0
  72. /package/{esm2020 → esm2022}/lib/modules/autocomplete/types/autocomplete-message-type.mjs +0 -0
  73. /package/{esm2020 → esm2022}/lib/modules/autocomplete/types/autocomplete-message.mjs +0 -0
  74. /package/{esm2020 → esm2022}/lib/modules/autocomplete/types/autocomplete-search-args.mjs +0 -0
  75. /package/{esm2020 → esm2022}/lib/modules/autocomplete/types/autocomplete-search-async-args.mjs +0 -0
  76. /package/{esm2020 → esm2022}/lib/modules/autocomplete/types/autocomplete-search-async-function.mjs +0 -0
  77. /package/{esm2020 → esm2022}/lib/modules/autocomplete/types/autocomplete-search-async-result-display-type.mjs +0 -0
  78. /package/{esm2020 → esm2022}/lib/modules/autocomplete/types/autocomplete-search-async-result.mjs +0 -0
  79. /package/{esm2020 → esm2022}/lib/modules/autocomplete/types/autocomplete-search-context.mjs +0 -0
  80. /package/{esm2020 → esm2022}/lib/modules/autocomplete/types/autocomplete-search-function-filter.mjs +0 -0
  81. /package/{esm2020 → esm2022}/lib/modules/autocomplete/types/autocomplete-search-function-response.mjs +0 -0
  82. /package/{esm2020 → esm2022}/lib/modules/autocomplete/types/autocomplete-search-function.mjs +0 -0
  83. /package/{esm2020 → esm2022}/lib/modules/autocomplete/types/autocomplete-selection-change.mjs +0 -0
  84. /package/{esm2020 → esm2022}/lib/modules/autocomplete/types/autocomplete-show-more-args.mjs +0 -0
  85. /package/{esm2020 → esm2022}/lib/modules/country-field/types/country-field-context-token.mjs +0 -0
  86. /package/{esm2020 → esm2022}/lib/modules/country-field/types/country-field-context.mjs +0 -0
  87. /package/{esm2020 → esm2022}/lib/modules/country-field/types/country.mjs +0 -0
  88. /package/{esm2020 → esm2022}/lib/modules/lookup/types/lookup-add-click-callback-args.mjs +0 -0
  89. /package/{esm2020 → esm2022}/lib/modules/lookup/types/lookup-add-click-event-args.mjs +0 -0
  90. /package/{esm2020 → esm2022}/lib/modules/lookup/types/lookup-select-mode-type.mjs +0 -0
  91. /package/{esm2020 → esm2022}/lib/modules/lookup/types/lookup-select-mode.mjs +0 -0
  92. /package/{esm2020 → esm2022}/lib/modules/lookup/types/lookup-show-more-config.mjs +0 -0
  93. /package/{esm2020 → esm2022}/lib/modules/lookup/types/lookup-show-more-custom-picker-context.mjs +0 -0
  94. /package/{esm2020 → esm2022}/lib/modules/lookup/types/lookup-show-more-custom-picker.mjs +0 -0
  95. /package/{esm2020 → esm2022}/lib/modules/lookup/types/lookup-show-more-native-picker-config.mjs +0 -0
  96. /package/{esm2020 → esm2022}/lib/modules/lookup/types/lookup-show-more-native-picker-context.mjs +0 -0
  97. /package/{esm2020 → esm2022}/lib/modules/selection-modal/types/selection-modal-add-click-callback-args.mjs +0 -0
  98. /package/{esm2020 → esm2022}/lib/modules/selection-modal/types/selection-modal-add-click-event-args.mjs +0 -0
  99. /package/{esm2020 → esm2022}/lib/modules/selection-modal/types/selection-modal-close-args.mjs +0 -0
  100. /package/{esm2020 → esm2022}/lib/modules/selection-modal/types/selection-modal-context.mjs +0 -0
  101. /package/{esm2020 → esm2022}/lib/modules/selection-modal/types/selection-modal-open-args.mjs +0 -0
  102. /package/{esm2020 → esm2022}/lib/modules/selection-modal/types/selection-modal-result.mjs +0 -0
  103. /package/{esm2020 → esm2022}/lib/modules/selection-modal/types/selection-modal-search-args.mjs +0 -0
  104. /package/{esm2020 → esm2022}/lib/modules/selection-modal/types/selection-modal-search-result.mjs +0 -0
  105. /package/{esm2020 → esm2022}/lib/modules/shared/sky-lookup-string-utils.mjs +0 -0
  106. /package/{esm2020 → esm2022}/skyux-lookup.mjs +0 -0
  107. /package/{esm2020 → esm2022}/testing/autocomplete/autocomplete-harness-filters.mjs +0 -0
  108. /package/{esm2020 → esm2022}/testing/autocomplete/autocomplete-search-result-harness-filters.mjs +0 -0
  109. /package/{esm2020 → esm2022}/testing/lookup/lookup-harness-filters.mjs +0 -0
  110. /package/{esm2020 → esm2022}/testing/lookup/lookup-selection-harness-filters.mjs +0 -0
  111. /package/{esm2020 → esm2022}/testing/lookup/lookup-selection-harness.mjs +0 -0
  112. /package/{esm2020 → esm2022}/testing/lookup/lookup-selections-list-harness.mjs +0 -0
  113. /package/{esm2020 → esm2022}/testing/lookup/lookup-show-more-picker-harness-filters.mjs +0 -0
  114. /package/{esm2020 → esm2022}/testing/lookup/lookup-show-more-picker-harness.mjs +0 -0
  115. /package/{esm2020 → esm2022}/testing/lookup/lookup-show-more-picker-search-result-harness-filters.mjs +0 -0
  116. /package/{esm2020 → esm2022}/testing/lookup/lookup-show-more-picker-search-result-harness.mjs +0 -0
  117. /package/{esm2020 → esm2022}/testing/public-api.mjs +0 -0
  118. /package/{esm2020 → esm2022}/testing/search/search-harness-filters.mjs +0 -0
  119. /package/{esm2020 → esm2022}/testing/selection-modal/selection-modal-search-result-harness-filters.mjs +0 -0
  120. /package/{esm2020 → esm2022}/testing/selection-modal/selection-modal-search-result-harness.mjs +0 -0
  121. /package/{esm2020 → esm2022}/testing/skyux-lookup-testing.mjs +0 -0
@@ -43,5 +43,5 @@ export declare class SkyAutocompleteInputDirective implements OnInit, OnDestroy,
43
43
  onTouched(): void;
44
44
  onValidatorChange: () => void;
45
45
  static ɵfac: i0.ɵɵFactoryDeclaration<SkyAutocompleteInputDirective, never>;
46
- static ɵdir: i0.ɵɵDirectiveDeclaration<SkyAutocompleteInputDirective, "input[skyAutocomplete], textarea[skyAutocomplete]", never, { "autocompleteAttribute": "autocompleteAttribute"; "disabled": "disabled"; }, {}, never, never, false, never>;
46
+ static ɵdir: i0.ɵɵDirectiveDeclaration<SkyAutocompleteInputDirective, "input[skyAutocomplete], textarea[skyAutocomplete]", never, { "autocompleteAttribute": { "alias": "autocompleteAttribute"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; }, {}, never, never, false, never>;
47
47
  }
@@ -173,6 +173,6 @@ export declare class SkyAutocompleteComponent implements OnDestroy, AfterViewIni
173
173
  onResultMouseMove(id: number): void;
174
174
  isElementFocused(ref: HTMLElement): boolean;
175
175
  static ɵfac: i0.ɵɵFactoryDeclaration<SkyAutocompleteComponent, [null, null, null, null, null, { optional: true; }, { optional: true; }]>;
176
- static ɵcmp: i0.ɵɵComponentDeclaration<SkyAutocompleteComponent, "sky-autocomplete", never, { "ariaLabelledBy": "ariaLabelledBy"; "data": "data"; "debounceTime": "debounceTime"; "descriptorProperty": "descriptorProperty"; "enableShowMore": "enableShowMore"; "messageStream": "messageStream"; "wrapperClass": "wrapperClass"; "propertiesToSearch": "propertiesToSearch"; "search": "search"; "searchResultTemplate": "searchResultTemplate"; "searchTextMinimumCharacters": "searchTextMinimumCharacters"; "searchFilters": "searchFilters"; "searchResultsLimit": "searchResultsLimit"; "showAddButton": "showAddButton"; "noResultsFoundText": "noResultsFoundText"; "searchAsyncDisabled": "searchAsyncDisabled"; }, { "addClick": "addClick"; "showMoreClick": "showMoreClick"; "selectionChange": "selectionChange"; "searchAsync": "searchAsync"; }, ["inputDirective"], ["*"], false, never>;
176
+ static ɵcmp: i0.ɵɵComponentDeclaration<SkyAutocompleteComponent, "sky-autocomplete", never, { "ariaLabelledBy": { "alias": "ariaLabelledBy"; "required": false; }; "data": { "alias": "data"; "required": false; }; "debounceTime": { "alias": "debounceTime"; "required": false; }; "descriptorProperty": { "alias": "descriptorProperty"; "required": false; }; "enableShowMore": { "alias": "enableShowMore"; "required": false; }; "messageStream": { "alias": "messageStream"; "required": false; }; "wrapperClass": { "alias": "wrapperClass"; "required": false; }; "propertiesToSearch": { "alias": "propertiesToSearch"; "required": false; }; "search": { "alias": "search"; "required": false; }; "searchResultTemplate": { "alias": "searchResultTemplate"; "required": false; }; "searchTextMinimumCharacters": { "alias": "searchTextMinimumCharacters"; "required": false; }; "searchFilters": { "alias": "searchFilters"; "required": false; }; "searchResultsLimit": { "alias": "searchResultsLimit"; "required": false; }; "showAddButton": { "alias": "showAddButton"; "required": false; }; "noResultsFoundText": { "alias": "noResultsFoundText"; "required": false; }; "searchAsyncDisabled": { "alias": "searchAsyncDisabled"; "required": false; }; }, { "addClick": "addClick"; "showMoreClick": "showMoreClick"; "selectionChange": "selectionChange"; "searchAsync": "searchAsync"; }, ["inputDirective"], ["*"], false, never>;
177
177
  }
178
178
  export {};
@@ -98,5 +98,5 @@ export declare class SkyCountryFieldComponent implements AfterViewInit, ControlV
98
98
  validate(control: AbstractControl): ValidationErrors | null;
99
99
  writeValue(value: SkyCountryFieldCountry | undefined): void;
100
100
  static ɵfac: i0.ɵɵFactoryDeclaration<SkyCountryFieldComponent, [null, null, null, null, { optional: true; }, { optional: true; }]>;
101
- static ɵcmp: i0.ɵɵComponentDeclaration<SkyCountryFieldComponent, "sky-country-field", never, { "autocompleteAttribute": "autocompleteAttribute"; "defaultCountry": "defaultCountry"; "disabled": "disabled"; "hideSelectedCountryFlag": "hideSelectedCountryFlag"; "includePhoneInfo": "includePhoneInfo"; "supportedCountryISOs": "supportedCountryISOs"; }, { "selectedCountryChange": "selectedCountryChange"; }, never, never, false, never>;
101
+ static ɵcmp: i0.ɵɵComponentDeclaration<SkyCountryFieldComponent, "sky-country-field", never, { "autocompleteAttribute": { "alias": "autocompleteAttribute"; "required": false; }; "defaultCountry": { "alias": "defaultCountry"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "hideSelectedCountryFlag": { "alias": "hideSelectedCountryFlag"; "required": false; }; "includePhoneInfo": { "alias": "includePhoneInfo"; "required": false; }; "supportedCountryISOs": { "alias": "supportedCountryISOs"; "required": false; }; }, { "selectedCountryChange": "selectedCountryChange"; }, never, never, false, never>;
102
102
  }
@@ -71,5 +71,5 @@ export declare class SkyLookupAutocompleteAdapter {
71
71
  searchAsync: EventEmitter<SkyAutocompleteSearchAsyncArgs>;
72
72
  searchOrDefault: SkyAutocompleteSearchFunction;
73
73
  static ɵfac: i0.ɵɵFactoryDeclaration<SkyLookupAutocompleteAdapter, never>;
74
- static ɵdir: i0.ɵɵDirectiveDeclaration<SkyLookupAutocompleteAdapter, never, never, { "debounceTime": "debounceTime"; "descriptorProperty": "descriptorProperty"; "propertiesToSearch": "propertiesToSearch"; "search": "search"; "searchResultTemplate": "searchResultTemplate"; "searchTextMinimumCharacters": "searchTextMinimumCharacters"; "searchFilters": "searchFilters"; "searchResultsLimit": "searchResultsLimit"; }, { "searchAsync": "searchAsync"; }, never, never, false, never>;
74
+ static ɵdir: i0.ɵɵDirectiveDeclaration<SkyLookupAutocompleteAdapter, never, never, { "debounceTime": { "alias": "debounceTime"; "required": false; }; "descriptorProperty": { "alias": "descriptorProperty"; "required": false; }; "propertiesToSearch": { "alias": "propertiesToSearch"; "required": false; }; "search": { "alias": "search"; "required": false; }; "searchResultTemplate": { "alias": "searchResultTemplate"; "required": false; }; "searchTextMinimumCharacters": { "alias": "searchTextMinimumCharacters"; "required": false; }; "searchFilters": { "alias": "searchFilters"; "required": false; }; "searchResultsLimit": { "alias": "searchResultsLimit"; "required": false; }; }, { "searchAsync": "searchAsync"; }, never, never, false, never>;
75
75
  }
@@ -137,5 +137,5 @@ export declare class SkyLookupComponent extends SkyLookupAutocompleteAdapter imp
137
137
  openPicker(initialSearch: string): void;
138
138
  onSearchAsync(args: SkyAutocompleteSearchAsyncArgs): void;
139
139
  static ɵfac: i0.ɵɵFactoryDeclaration<SkyLookupComponent, [null, null, null, null, null, null, null, null, { optional: true; self: true; }, { optional: true; }, { optional: true; }]>;
140
- static ɵcmp: i0.ɵɵComponentDeclaration<SkyLookupComponent, "sky-lookup", never, { "ariaLabel": "ariaLabel"; "ariaLabelledBy": "ariaLabelledBy"; "autocompleteAttribute": "autocompleteAttribute"; "data": "data"; "disabled": "disabled"; "enableShowMore": "enableShowMore"; "placeholderText": "placeholderText"; "idProperty": "idProperty"; "showAddButton": "showAddButton"; "showMoreConfig": "showMoreConfig"; "selectMode": "selectMode"; "wrapperClass": "wrapperClass"; }, { "addClick": "addClick"; }, never, never, false, never>;
140
+ static ɵcmp: i0.ɵɵComponentDeclaration<SkyLookupComponent, "sky-lookup", never, { "ariaLabel": { "alias": "ariaLabel"; "required": false; }; "ariaLabelledBy": { "alias": "ariaLabelledBy"; "required": false; }; "autocompleteAttribute": { "alias": "autocompleteAttribute"; "required": false; }; "data": { "alias": "data"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "enableShowMore": { "alias": "enableShowMore"; "required": false; }; "placeholderText": { "alias": "placeholderText"; "required": false; }; "idProperty": { "alias": "idProperty"; "required": false; }; "showAddButton": { "alias": "showAddButton"; "required": false; }; "showMoreConfig": { "alias": "showMoreConfig"; "required": false; }; "selectMode": { "alias": "selectMode"; "required": false; }; "wrapperClass": { "alias": "wrapperClass"; "required": false; }; }, { "addClick": "addClick"; }, never, never, false, never>;
141
141
  }
@@ -69,5 +69,5 @@ export declare class SkySearchComponent implements OnDestroy, OnInit, OnChanges
69
69
  inputAnimationEnd(event: AnimationEvent): void;
70
70
  ngOnDestroy(): void;
71
71
  static ɵfac: i0.ɵɵFactoryDeclaration<SkySearchComponent, never>;
72
- static ɵcmp: i0.ɵɵComponentDeclaration<SkySearchComponent, "sky-search", never, { "searchText": "searchText"; "expandMode": "expandMode"; "debounceTime": "debounceTime"; "disabled": "disabled"; "placeholderText": "placeholderText"; }, { "searchApply": "searchApply"; "searchChange": "searchChange"; "searchClear": "searchClear"; }, never, never, false, never>;
72
+ static ɵcmp: i0.ɵɵComponentDeclaration<SkySearchComponent, "sky-search", never, { "searchText": { "alias": "searchText"; "required": false; }; "expandMode": { "alias": "expandMode"; "required": false; }; "debounceTime": { "alias": "debounceTime"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "placeholderText": { "alias": "placeholderText"; "required": false; }; }, { "searchApply": "searchApply"; "searchChange": "searchChange"; "searchClear": "searchClear"; }, never, never, false, never>;
73
73
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@skyux/lookup",
3
- "version": "8.7.2",
3
+ "version": "9.0.0-alpha.1",
4
4
  "author": "Blackbaud, Inc.",
5
5
  "keywords": [
6
6
  "blackbaud",
@@ -21,50 +21,42 @@
21
21
  },
22
22
  ".": {
23
23
  "types": "./index.d.ts",
24
- "esm2020": "./esm2020/skyux-lookup.mjs",
25
- "es2020": "./fesm2020/skyux-lookup.mjs",
26
- "es2015": "./fesm2015/skyux-lookup.mjs",
27
- "node": "./fesm2015/skyux-lookup.mjs",
28
- "default": "./fesm2020/skyux-lookup.mjs"
24
+ "esm2022": "./esm2022/skyux-lookup.mjs",
25
+ "esm": "./esm2022/skyux-lookup.mjs",
26
+ "default": "./fesm2022/skyux-lookup.mjs"
29
27
  },
30
28
  "./testing": {
31
29
  "types": "./testing/index.d.ts",
32
- "esm2020": "./esm2020/testing/skyux-lookup-testing.mjs",
33
- "es2020": "./fesm2020/skyux-lookup-testing.mjs",
34
- "es2015": "./fesm2015/skyux-lookup-testing.mjs",
35
- "node": "./fesm2015/skyux-lookup-testing.mjs",
36
- "default": "./fesm2020/skyux-lookup-testing.mjs"
30
+ "esm2022": "./esm2022/testing/skyux-lookup-testing.mjs",
31
+ "esm": "./esm2022/testing/skyux-lookup-testing.mjs",
32
+ "default": "./fesm2022/skyux-lookup-testing.mjs"
37
33
  },
38
34
  "./documentation.json": {
39
35
  "default": "./documentation.json"
40
36
  }
41
37
  },
42
38
  "peerDependencies": {
43
- "@angular/animations": "^15.2.9",
44
- "@angular/cdk": "^15.2.9",
45
- "@angular/common": "^15.2.9",
46
- "@angular/core": "^15.2.9",
47
- "@angular/forms": "^15.2.9",
48
- "@angular/platform-browser": "^15.2.9",
49
- "@skyux-sdk/testing": "8.7.2",
50
- "@skyux/core": "8.7.2",
51
- "@skyux/forms": "8.7.2",
52
- "@skyux/i18n": "8.7.2",
53
- "@skyux/indicators": "8.7.2",
54
- "@skyux/layout": "8.7.2",
55
- "@skyux/lists": "8.7.2",
56
- "@skyux/modals": "8.7.2",
57
- "@skyux/theme": "8.7.2"
39
+ "@angular/animations": "^16.1.7",
40
+ "@angular/cdk": "^16.1.6",
41
+ "@angular/common": "^16.1.7",
42
+ "@angular/core": "^16.1.7",
43
+ "@angular/forms": "^16.1.7",
44
+ "@angular/platform-browser": "^16.1.7",
45
+ "@skyux-sdk/testing": "9.0.0-alpha.1",
46
+ "@skyux/core": "9.0.0-alpha.1",
47
+ "@skyux/forms": "9.0.0-alpha.1",
48
+ "@skyux/i18n": "9.0.0-alpha.1",
49
+ "@skyux/indicators": "9.0.0-alpha.1",
50
+ "@skyux/layout": "9.0.0-alpha.1",
51
+ "@skyux/lists": "9.0.0-alpha.1",
52
+ "@skyux/modals": "9.0.0-alpha.1",
53
+ "@skyux/theme": "9.0.0-alpha.1"
58
54
  },
59
55
  "dependencies": {
60
56
  "intl-tel-input": "17.0.21",
61
57
  "tslib": "^2.5.0"
62
58
  },
63
- "module": "fesm2015/skyux-lookup.mjs",
64
- "es2020": "fesm2020/skyux-lookup.mjs",
65
- "esm2020": "esm2020/skyux-lookup.mjs",
66
- "fesm2020": "fesm2020/skyux-lookup.mjs",
67
- "fesm2015": "fesm2015/skyux-lookup.mjs",
59
+ "module": "fesm2022/skyux-lookup.mjs",
68
60
  "typings": "index.d.ts",
69
61
  "sideEffects": false
70
62
  }
@@ -1,64 +0,0 @@
1
- var _SkyAutocompleteAdapterService_coreAdapterService, _SkyAutocompleteAdapterService_renderer;
2
- import { __classPrivateFieldGet, __classPrivateFieldSet } from "tslib";
3
- import { Injectable, } from '@angular/core';
4
- import * as i0 from "@angular/core";
5
- import * as i1 from "@skyux/core";
6
- /**
7
- * @internal
8
- */
9
- export class SkyAutocompleteAdapterService {
10
- constructor(coreAdapterService, rendererFactory) {
11
- _SkyAutocompleteAdapterService_coreAdapterService.set(this, void 0);
12
- _SkyAutocompleteAdapterService_renderer.set(this, void 0);
13
- __classPrivateFieldSet(this, _SkyAutocompleteAdapterService_coreAdapterService, coreAdapterService, "f");
14
- __classPrivateFieldSet(this, _SkyAutocompleteAdapterService_renderer, rendererFactory.createRenderer(undefined, null), "f");
15
- }
16
- /**
17
- * Adds the className for the provided element.
18
- */
19
- addCSSClass(element, className) {
20
- /* Sanity check */
21
- /* istanbul ignore else */
22
- if (element) {
23
- __classPrivateFieldGet(this, _SkyAutocompleteAdapterService_renderer, "f").addClass(element, className);
24
- }
25
- }
26
- getOverlayFocusableElements(overlay) {
27
- return __classPrivateFieldGet(this, _SkyAutocompleteAdapterService_coreAdapterService, "f").getFocusableChildren(
28
- /* Sanity check - calling function also has null check */
29
- /* istanbul ignore next */
30
- overlay?.componentRef.location.nativeElement, { ignoreTabIndex: true });
31
- }
32
- /**
33
- * Removes the className for the provided element.
34
- */
35
- removeCSSClass(element, className) {
36
- /* Sanity check */
37
- /* istanbul ignore else */
38
- if (element) {
39
- __classPrivateFieldGet(this, _SkyAutocompleteAdapterService_renderer, "f").removeClass(element, className);
40
- }
41
- }
42
- setDropdownWidth(elementRef, dropdownRef, isInputBox) {
43
- const parentElement = isInputBox
44
- ? elementRef.nativeElement.closest('.sky-input-box')
45
- : elementRef.nativeElement;
46
- if (parentElement) {
47
- const width = parentElement.getBoundingClientRect().width;
48
- __classPrivateFieldGet(this, _SkyAutocompleteAdapterService_renderer, "f").setStyle(dropdownRef.nativeElement, 'width', `${width}px`);
49
- }
50
- }
51
- /**
52
- * Sets the `tabIndex` of the `element` to the provided `tabIndex`.
53
- */
54
- setTabIndex(element, tabIndex) {
55
- element.tabIndex = tabIndex;
56
- }
57
- }
58
- _SkyAutocompleteAdapterService_coreAdapterService = new WeakMap(), _SkyAutocompleteAdapterService_renderer = new WeakMap();
59
- SkyAutocompleteAdapterService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SkyAutocompleteAdapterService, deps: [{ token: i1.SkyCoreAdapterService }, { token: i0.RendererFactory2 }], target: i0.ɵɵFactoryTarget.Injectable });
60
- SkyAutocompleteAdapterService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SkyAutocompleteAdapterService });
61
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SkyAutocompleteAdapterService, decorators: [{
62
- type: Injectable
63
- }], ctorParameters: function () { return [{ type: i1.SkyCoreAdapterService }, { type: i0.RendererFactory2 }]; } });
64
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0b2NvbXBsZXRlLWFkYXB0ZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9sb29rdXAvc3JjL2xpYi9tb2R1bGVzL2F1dG9jb21wbGV0ZS9hdXRvY29tcGxldGUtYWRhcHRlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsT0FBTyxFQUVMLFVBQVUsR0FHWCxNQUFNLGVBQWUsQ0FBQzs7O0FBR3ZCOztHQUVHO0FBRUgsTUFBTSxPQUFPLDZCQUE2QjtJQUt4QyxZQUNFLGtCQUF5QyxFQUN6QyxlQUFpQztRQU5uQyxvRUFBMkM7UUFFM0MsMERBQXFCO1FBTW5CLHVCQUFBLElBQUkscURBQXVCLGtCQUFrQixNQUFBLENBQUM7UUFDOUMsdUJBQUEsSUFBSSwyQ0FBYSxlQUFlLENBQUMsY0FBYyxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsTUFBQSxDQUFDO0lBQ25FLENBQUM7SUFFRDs7T0FFRztJQUNJLFdBQVcsQ0FBQyxPQUFvQixFQUFFLFNBQWlCO1FBQ3hELGtCQUFrQjtRQUNsQiwwQkFBMEI7UUFDMUIsSUFBSSxPQUFPLEVBQUU7WUFDWCx1QkFBQSxJQUFJLCtDQUFVLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxTQUFTLENBQUMsQ0FBQztTQUM3QztJQUNILENBQUM7SUFFTSwyQkFBMkIsQ0FDaEMsT0FBMkI7UUFFM0IsT0FBTyx1QkFBQSxJQUFJLHlEQUFvQixDQUFDLG9CQUFvQjtRQUNsRCx5REFBeUQ7UUFDekQsMEJBQTBCO1FBQzFCLE9BQU8sRUFBRSxZQUFZLENBQUMsUUFBUSxDQUFDLGFBQWEsRUFDNUMsRUFBRSxjQUFjLEVBQUUsSUFBSSxFQUFFLENBQ3pCLENBQUM7SUFDSixDQUFDO0lBRUQ7O09BRUc7SUFDSSxjQUFjLENBQUMsT0FBb0IsRUFBRSxTQUFpQjtRQUMzRCxrQkFBa0I7UUFDbEIsMEJBQTBCO1FBQzFCLElBQUksT0FBTyxFQUFFO1lBQ1gsdUJBQUEsSUFBSSwrQ0FBVSxDQUFDLFdBQVcsQ0FBQyxPQUFPLEVBQUUsU0FBUyxDQUFDLENBQUM7U0FDaEQ7SUFDSCxDQUFDO0lBRU0sZ0JBQWdCLENBQ3JCLFVBQXNCLEVBQ3RCLFdBQXVCLEVBQ3ZCLFVBQW1CO1FBRW5CLE1BQU0sYUFBYSxHQUFHLFVBQVU7WUFDOUIsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLGdCQUFnQixDQUFDO1lBQ3BELENBQUMsQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDO1FBQzdCLElBQUksYUFBYSxFQUFFO1lBQ2pCLE1BQU0sS0FBSyxHQUFHLGFBQWEsQ0FBQyxxQkFBcUIsRUFBRSxDQUFDLEtBQUssQ0FBQztZQUMxRCx1QkFBQSxJQUFJLCtDQUFVLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxhQUFhLEVBQUUsT0FBTyxFQUFFLEdBQUcsS0FBSyxJQUFJLENBQUMsQ0FBQztTQUMzRTtJQUNILENBQUM7SUFFRDs7T0FFRztJQUNJLFdBQVcsQ0FBQyxPQUFvQixFQUFFLFFBQWdCO1FBQ3ZELE9BQU8sQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO0lBQzlCLENBQUM7OzswSEFqRVUsNkJBQTZCOzhIQUE3Qiw2QkFBNkI7MkZBQTdCLDZCQUE2QjtrQkFEekMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEVsZW1lbnRSZWYsXG4gIEluamVjdGFibGUsXG4gIFJlbmRlcmVyMixcbiAgUmVuZGVyZXJGYWN0b3J5Mixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTa3lDb3JlQWRhcHRlclNlcnZpY2UsIFNreU92ZXJsYXlJbnN0YW5jZSB9IGZyb20gJ0Bza3l1eC9jb3JlJztcblxuLyoqXG4gKiBAaW50ZXJuYWxcbiAqL1xuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFNreUF1dG9jb21wbGV0ZUFkYXB0ZXJTZXJ2aWNlIHtcbiAgI2NvcmVBZGFwdGVyU2VydmljZTogU2t5Q29yZUFkYXB0ZXJTZXJ2aWNlO1xuXG4gICNyZW5kZXJlcjogUmVuZGVyZXIyO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIGNvcmVBZGFwdGVyU2VydmljZTogU2t5Q29yZUFkYXB0ZXJTZXJ2aWNlLFxuICAgIHJlbmRlcmVyRmFjdG9yeTogUmVuZGVyZXJGYWN0b3J5MlxuICApIHtcbiAgICB0aGlzLiNjb3JlQWRhcHRlclNlcnZpY2UgPSBjb3JlQWRhcHRlclNlcnZpY2U7XG4gICAgdGhpcy4jcmVuZGVyZXIgPSByZW5kZXJlckZhY3RvcnkuY3JlYXRlUmVuZGVyZXIodW5kZWZpbmVkLCBudWxsKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGRzIHRoZSBjbGFzc05hbWUgZm9yIHRoZSBwcm92aWRlZCBlbGVtZW50LlxuICAgKi9cbiAgcHVibGljIGFkZENTU0NsYXNzKGVsZW1lbnQ6IEhUTUxFbGVtZW50LCBjbGFzc05hbWU6IHN0cmluZyk6IHZvaWQge1xuICAgIC8qIFNhbml0eSBjaGVjayAqL1xuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgaWYgKGVsZW1lbnQpIHtcbiAgICAgIHRoaXMuI3JlbmRlcmVyLmFkZENsYXNzKGVsZW1lbnQsIGNsYXNzTmFtZSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGdldE92ZXJsYXlGb2N1c2FibGVFbGVtZW50cyhcbiAgICBvdmVybGF5OiBTa3lPdmVybGF5SW5zdGFuY2VcbiAgKTogSFRNTEVsZW1lbnRbXSB7XG4gICAgcmV0dXJuIHRoaXMuI2NvcmVBZGFwdGVyU2VydmljZS5nZXRGb2N1c2FibGVDaGlsZHJlbihcbiAgICAgIC8qIFNhbml0eSBjaGVjayAtIGNhbGxpbmcgZnVuY3Rpb24gYWxzbyBoYXMgbnVsbCBjaGVjayAqL1xuICAgICAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgICAgIG92ZXJsYXk/LmNvbXBvbmVudFJlZi5sb2NhdGlvbi5uYXRpdmVFbGVtZW50LFxuICAgICAgeyBpZ25vcmVUYWJJbmRleDogdHJ1ZSB9XG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZW1vdmVzIHRoZSBjbGFzc05hbWUgZm9yIHRoZSBwcm92aWRlZCBlbGVtZW50LlxuICAgKi9cbiAgcHVibGljIHJlbW92ZUNTU0NsYXNzKGVsZW1lbnQ6IEhUTUxFbGVtZW50LCBjbGFzc05hbWU6IHN0cmluZyk6IHZvaWQge1xuICAgIC8qIFNhbml0eSBjaGVjayAqL1xuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgaWYgKGVsZW1lbnQpIHtcbiAgICAgIHRoaXMuI3JlbmRlcmVyLnJlbW92ZUNsYXNzKGVsZW1lbnQsIGNsYXNzTmFtZSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHNldERyb3Bkb3duV2lkdGgoXG4gICAgZWxlbWVudFJlZjogRWxlbWVudFJlZixcbiAgICBkcm9wZG93blJlZjogRWxlbWVudFJlZixcbiAgICBpc0lucHV0Qm94OiBib29sZWFuXG4gICk6IHZvaWQge1xuICAgIGNvbnN0IHBhcmVudEVsZW1lbnQgPSBpc0lucHV0Qm94XG4gICAgICA/IGVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5jbG9zZXN0KCcuc2t5LWlucHV0LWJveCcpXG4gICAgICA6IGVsZW1lbnRSZWYubmF0aXZlRWxlbWVudDtcbiAgICBpZiAocGFyZW50RWxlbWVudCkge1xuICAgICAgY29uc3Qgd2lkdGggPSBwYXJlbnRFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLndpZHRoO1xuICAgICAgdGhpcy4jcmVuZGVyZXIuc2V0U3R5bGUoZHJvcGRvd25SZWYubmF0aXZlRWxlbWVudCwgJ3dpZHRoJywgYCR7d2lkdGh9cHhgKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogU2V0cyB0aGUgYHRhYkluZGV4YCBvZiB0aGUgYGVsZW1lbnRgIHRvIHRoZSBwcm92aWRlZCBgdGFiSW5kZXhgLlxuICAgKi9cbiAgcHVibGljIHNldFRhYkluZGV4KGVsZW1lbnQ6IEhUTUxFbGVtZW50LCB0YWJJbmRleDogbnVtYmVyKTogdm9pZCB7XG4gICAgZWxlbWVudC50YWJJbmRleCA9IHRhYkluZGV4O1xuICB9XG59XG4iXX0=
@@ -1,235 +0,0 @@
1
- var _SkyAutocompleteInputDirective_instances, _SkyAutocompleteInputDirective_blur, _SkyAutocompleteInputDirective_blurObs, _SkyAutocompleteInputDirective_control, _SkyAutocompleteInputDirective_elementRef, _SkyAutocompleteInputDirective_focus, _SkyAutocompleteInputDirective_focusObs, _SkyAutocompleteInputDirective_isFirstChange, _SkyAutocompleteInputDirective_ngUnsubscribe, _SkyAutocompleteInputDirective_renderer, _SkyAutocompleteInputDirective_textChanges, _SkyAutocompleteInputDirective_textChangesObs, _SkyAutocompleteInputDirective__autocompleteAttribute, _SkyAutocompleteInputDirective__disabled, _SkyAutocompleteInputDirective__displayWith, _SkyAutocompleteInputDirective__value, _SkyAutocompleteInputDirective_setAttributes, _SkyAutocompleteInputDirective_getValueByKey;
2
- import { __classPrivateFieldGet, __classPrivateFieldSet } from "tslib";
3
- import { Directive, Input, forwardRef, } from '@angular/core';
4
- import { NG_VALIDATORS, NG_VALUE_ACCESSOR, } from '@angular/forms';
5
- import { Subject, fromEvent as observableFromEvent } from 'rxjs';
6
- import { takeUntil } from 'rxjs/operators';
7
- import * as i0 from "@angular/core";
8
- const SKY_AUTOCOMPLETE_VALUE_ACCESSOR = {
9
- provide: NG_VALUE_ACCESSOR,
10
- useExisting: forwardRef(() => SkyAutocompleteInputDirective),
11
- multi: true,
12
- };
13
- const SKY_AUTOCOMPLETE_VALIDATOR = {
14
- provide: NG_VALIDATORS,
15
- useExisting: forwardRef(() => SkyAutocompleteInputDirective),
16
- multi: true,
17
- };
18
- export class SkyAutocompleteInputDirective {
19
- /**
20
- * The value for the `autocomplete` attribute on the form input.
21
- * @default "off"
22
- */
23
- set autocompleteAttribute(value) {
24
- if (!value) {
25
- __classPrivateFieldSet(this, _SkyAutocompleteInputDirective__autocompleteAttribute, 'off', "f");
26
- }
27
- else {
28
- __classPrivateFieldSet(this, _SkyAutocompleteInputDirective__autocompleteAttribute, value, "f");
29
- }
30
- __classPrivateFieldGet(this, _SkyAutocompleteInputDirective_renderer, "f").setAttribute(__classPrivateFieldGet(this, _SkyAutocompleteInputDirective_elementRef, "f").nativeElement, 'autocomplete', __classPrivateFieldGet(this, _SkyAutocompleteInputDirective__autocompleteAttribute, "f"));
31
- }
32
- get autocompleteAttribute() {
33
- return __classPrivateFieldGet(this, _SkyAutocompleteInputDirective__autocompleteAttribute, "f") || 'off';
34
- }
35
- /**
36
- * 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.
37
- * To set the disabled state on reactive forms, use the `FormControl` instead.
38
- * @default false
39
- */
40
- set disabled(value) {
41
- __classPrivateFieldSet(this, _SkyAutocompleteInputDirective__disabled, value ?? false, "f");
42
- __classPrivateFieldGet(this, _SkyAutocompleteInputDirective_renderer, "f").setProperty(__classPrivateFieldGet(this, _SkyAutocompleteInputDirective_elementRef, "f").nativeElement, 'disabled', value);
43
- }
44
- get disabled() {
45
- return __classPrivateFieldGet(this, _SkyAutocompleteInputDirective__disabled, "f");
46
- }
47
- get blur() {
48
- return __classPrivateFieldGet(this, _SkyAutocompleteInputDirective_blurObs, "f");
49
- }
50
- get displayWith() {
51
- return __classPrivateFieldGet(this, _SkyAutocompleteInputDirective__displayWith, "f");
52
- }
53
- set displayWith(value) {
54
- __classPrivateFieldSet(this, _SkyAutocompleteInputDirective__displayWith, value, "f");
55
- this.inputTextValue = __classPrivateFieldGet(this, _SkyAutocompleteInputDirective_instances, "m", _SkyAutocompleteInputDirective_getValueByKey).call(this);
56
- }
57
- get focus() {
58
- return __classPrivateFieldGet(this, _SkyAutocompleteInputDirective_focusObs, "f");
59
- }
60
- get inputTextValue() {
61
- return __classPrivateFieldGet(this, _SkyAutocompleteInputDirective_elementRef, "f").nativeElement.value;
62
- }
63
- set inputTextValue(value) {
64
- __classPrivateFieldGet(this, _SkyAutocompleteInputDirective_elementRef, "f").nativeElement.value = value || '';
65
- }
66
- get textChanges() {
67
- return __classPrivateFieldGet(this, _SkyAutocompleteInputDirective_textChangesObs, "f");
68
- }
69
- get value() {
70
- return __classPrivateFieldGet(this, _SkyAutocompleteInputDirective__value, "f");
71
- }
72
- set value(value) {
73
- const isNewValue = value !== __classPrivateFieldGet(this, _SkyAutocompleteInputDirective__value, "f");
74
- /* istanbul ignore else */
75
- if (isNewValue) {
76
- __classPrivateFieldSet(this, _SkyAutocompleteInputDirective__value, value, "f");
77
- this.inputTextValue = __classPrivateFieldGet(this, _SkyAutocompleteInputDirective_instances, "m", _SkyAutocompleteInputDirective_getValueByKey).call(this);
78
- this.onChange(__classPrivateFieldGet(this, _SkyAutocompleteInputDirective__value, "f"));
79
- // Do not mark the field as "dirty"
80
- // if the field has been initialized with a value.
81
- if (__classPrivateFieldGet(this, _SkyAutocompleteInputDirective_isFirstChange, "f") && __classPrivateFieldGet(this, _SkyAutocompleteInputDirective_control, "f")) {
82
- __classPrivateFieldGet(this, _SkyAutocompleteInputDirective_control, "f").markAsPristine();
83
- }
84
- if (__classPrivateFieldGet(this, _SkyAutocompleteInputDirective_isFirstChange, "f") && __classPrivateFieldGet(this, _SkyAutocompleteInputDirective__value, "f")) {
85
- __classPrivateFieldSet(this, _SkyAutocompleteInputDirective_isFirstChange, false, "f");
86
- }
87
- }
88
- }
89
- constructor(elementRef, renderer) {
90
- _SkyAutocompleteInputDirective_instances.add(this);
91
- _SkyAutocompleteInputDirective_blur.set(this, void 0);
92
- _SkyAutocompleteInputDirective_blurObs.set(this, void 0);
93
- _SkyAutocompleteInputDirective_control.set(this, void 0);
94
- _SkyAutocompleteInputDirective_elementRef.set(this, void 0);
95
- _SkyAutocompleteInputDirective_focus.set(this, void 0);
96
- _SkyAutocompleteInputDirective_focusObs.set(this, void 0);
97
- _SkyAutocompleteInputDirective_isFirstChange.set(this, true);
98
- _SkyAutocompleteInputDirective_ngUnsubscribe.set(this, new Subject());
99
- _SkyAutocompleteInputDirective_renderer.set(this, void 0);
100
- _SkyAutocompleteInputDirective_textChanges.set(this, void 0);
101
- _SkyAutocompleteInputDirective_textChangesObs.set(this, void 0);
102
- _SkyAutocompleteInputDirective__autocompleteAttribute.set(this, void 0);
103
- _SkyAutocompleteInputDirective__disabled.set(this, false);
104
- _SkyAutocompleteInputDirective__displayWith.set(this, '');
105
- _SkyAutocompleteInputDirective__value.set(this, void 0);
106
- // istanbul ignore next
107
- // eslint-disable-next-line @typescript-eslint/no-empty-function
108
- this.onValidatorChange = () => { };
109
- __classPrivateFieldSet(this, _SkyAutocompleteInputDirective_elementRef, elementRef, "f");
110
- __classPrivateFieldSet(this, _SkyAutocompleteInputDirective_renderer, renderer, "f");
111
- __classPrivateFieldSet(this, _SkyAutocompleteInputDirective_blur, new Subject(), "f");
112
- __classPrivateFieldSet(this, _SkyAutocompleteInputDirective_focus, new Subject(), "f");
113
- __classPrivateFieldSet(this, _SkyAutocompleteInputDirective_textChanges, new Subject(), "f");
114
- __classPrivateFieldSet(this, _SkyAutocompleteInputDirective_blurObs, __classPrivateFieldGet(this, _SkyAutocompleteInputDirective_blur, "f").asObservable(), "f");
115
- __classPrivateFieldSet(this, _SkyAutocompleteInputDirective_focusObs, __classPrivateFieldGet(this, _SkyAutocompleteInputDirective_focus, "f").asObservable(), "f");
116
- __classPrivateFieldSet(this, _SkyAutocompleteInputDirective_textChangesObs, __classPrivateFieldGet(this, _SkyAutocompleteInputDirective_textChanges, "f").asObservable(), "f");
117
- }
118
- ngOnInit() {
119
- const element = __classPrivateFieldGet(this, _SkyAutocompleteInputDirective_elementRef, "f").nativeElement;
120
- __classPrivateFieldGet(this, _SkyAutocompleteInputDirective_instances, "m", _SkyAutocompleteInputDirective_setAttributes).call(this, __classPrivateFieldGet(this, _SkyAutocompleteInputDirective_elementRef, "f"));
121
- observableFromEvent(element, 'input')
122
- .pipe(takeUntil(__classPrivateFieldGet(this, _SkyAutocompleteInputDirective_ngUnsubscribe, "f")))
123
- .subscribe(() => {
124
- if (!this.disabled) {
125
- __classPrivateFieldGet(this, _SkyAutocompleteInputDirective_textChanges, "f").next({
126
- value: __classPrivateFieldGet(this, _SkyAutocompleteInputDirective_elementRef, "f").nativeElement.value,
127
- });
128
- }
129
- });
130
- observableFromEvent(element, 'blur')
131
- .pipe(takeUntil(__classPrivateFieldGet(this, _SkyAutocompleteInputDirective_ngUnsubscribe, "f")))
132
- .subscribe(() => {
133
- if (!this.disabled) {
134
- __classPrivateFieldGet(this, _SkyAutocompleteInputDirective_blur, "f").next();
135
- }
136
- });
137
- observableFromEvent(element, 'focus')
138
- .pipe(takeUntil(__classPrivateFieldGet(this, _SkyAutocompleteInputDirective_ngUnsubscribe, "f")))
139
- .subscribe(() => {
140
- if (!this.disabled) {
141
- __classPrivateFieldGet(this, _SkyAutocompleteInputDirective_focus, "f").next();
142
- }
143
- });
144
- observableFromEvent(element, 'change')
145
- .pipe(takeUntil(__classPrivateFieldGet(this, _SkyAutocompleteInputDirective_ngUnsubscribe, "f")))
146
- .subscribe(() => {
147
- /* istanbul ignore else */
148
- if (!this.disabled) {
149
- __classPrivateFieldSet(this, _SkyAutocompleteInputDirective_isFirstChange, false, "f");
150
- }
151
- });
152
- }
153
- ngOnDestroy() {
154
- __classPrivateFieldGet(this, _SkyAutocompleteInputDirective_blur, "f").complete();
155
- __classPrivateFieldGet(this, _SkyAutocompleteInputDirective_textChanges, "f").complete();
156
- __classPrivateFieldGet(this, _SkyAutocompleteInputDirective_ngUnsubscribe, "f").next();
157
- __classPrivateFieldGet(this, _SkyAutocompleteInputDirective_ngUnsubscribe, "f").complete();
158
- }
159
- writeValue(value) {
160
- this.value = value;
161
- }
162
- registerOnChange(fn) {
163
- this.onChange = fn;
164
- }
165
- registerOnTouched(fn) {
166
- this.onTouched = fn;
167
- }
168
- registerOnValidatorChange(fn) {
169
- this.onValidatorChange = fn;
170
- }
171
- restoreInputTextValueToPreviousState() {
172
- const modelValue = __classPrivateFieldGet(this, _SkyAutocompleteInputDirective_instances, "m", _SkyAutocompleteInputDirective_getValueByKey).call(this);
173
- // If the search field contains text, make sure that the value
174
- // matches the selected descriptor key.
175
- if (this.inputTextValue !== modelValue) {
176
- this.inputTextValue = modelValue;
177
- }
178
- this.onTouched();
179
- }
180
- setDisabledState(disabled) {
181
- this.disabled = disabled;
182
- }
183
- validate(control) {
184
- if (!__classPrivateFieldGet(this, _SkyAutocompleteInputDirective_control, "f")) {
185
- __classPrivateFieldSet(this, _SkyAutocompleteInputDirective_control, control, "f");
186
- }
187
- return null;
188
- }
189
- // See: https://www.w3.org/TR/wai-aria-practices/#kbd_focus_activedescendant
190
- setActiveDescendant(descendantId) {
191
- if (descendantId) {
192
- __classPrivateFieldGet(this, _SkyAutocompleteInputDirective_renderer, "f").setAttribute(__classPrivateFieldGet(this, _SkyAutocompleteInputDirective_elementRef, "f").nativeElement, 'aria-activedescendant', descendantId);
193
- }
194
- else {
195
- __classPrivateFieldGet(this, _SkyAutocompleteInputDirective_renderer, "f").removeAttribute(__classPrivateFieldGet(this, _SkyAutocompleteInputDirective_elementRef, "f").nativeElement, 'aria-activedescendant');
196
- }
197
- }
198
- setAriaOwns(overlayId) {
199
- if (overlayId) {
200
- __classPrivateFieldGet(this, _SkyAutocompleteInputDirective_renderer, "f").setAttribute(__classPrivateFieldGet(this, _SkyAutocompleteInputDirective_elementRef, "f").nativeElement, 'aria-owns', overlayId);
201
- }
202
- else {
203
- __classPrivateFieldGet(this, _SkyAutocompleteInputDirective_renderer, "f").removeAttribute(__classPrivateFieldGet(this, _SkyAutocompleteInputDirective_elementRef, "f").nativeElement, 'aria-owns');
204
- }
205
- }
206
- // Angular automatically constructs these methods.
207
- // eslint-disable-next-line @typescript-eslint/no-empty-function
208
- onChange(value) { }
209
- // eslint-disable-next-line @typescript-eslint/no-empty-function
210
- onTouched() { }
211
- }
212
- _SkyAutocompleteInputDirective_blur = new WeakMap(), _SkyAutocompleteInputDirective_blurObs = new WeakMap(), _SkyAutocompleteInputDirective_control = new WeakMap(), _SkyAutocompleteInputDirective_elementRef = new WeakMap(), _SkyAutocompleteInputDirective_focus = new WeakMap(), _SkyAutocompleteInputDirective_focusObs = new WeakMap(), _SkyAutocompleteInputDirective_isFirstChange = new WeakMap(), _SkyAutocompleteInputDirective_ngUnsubscribe = new WeakMap(), _SkyAutocompleteInputDirective_renderer = new WeakMap(), _SkyAutocompleteInputDirective_textChanges = new WeakMap(), _SkyAutocompleteInputDirective_textChangesObs = new WeakMap(), _SkyAutocompleteInputDirective__autocompleteAttribute = new WeakMap(), _SkyAutocompleteInputDirective__disabled = new WeakMap(), _SkyAutocompleteInputDirective__displayWith = new WeakMap(), _SkyAutocompleteInputDirective__value = new WeakMap(), _SkyAutocompleteInputDirective_instances = new WeakSet(), _SkyAutocompleteInputDirective_setAttributes = function _SkyAutocompleteInputDirective_setAttributes(elementRef) {
213
- const element = elementRef.nativeElement;
214
- __classPrivateFieldGet(this, _SkyAutocompleteInputDirective_renderer, "f").setAttribute(element, 'autocomplete', this.autocompleteAttribute);
215
- __classPrivateFieldGet(this, _SkyAutocompleteInputDirective_renderer, "f").setAttribute(element, 'autocapitalize', 'none');
216
- __classPrivateFieldGet(this, _SkyAutocompleteInputDirective_renderer, "f").setAttribute(element, 'autocorrect', 'off');
217
- __classPrivateFieldGet(this, _SkyAutocompleteInputDirective_renderer, "f").setAttribute(element, 'spellcheck', 'false');
218
- __classPrivateFieldGet(this, _SkyAutocompleteInputDirective_renderer, "f").addClass(element, 'sky-form-control');
219
- }, _SkyAutocompleteInputDirective_getValueByKey = function _SkyAutocompleteInputDirective_getValueByKey() {
220
- return this.value ? this.value[this.displayWith] : undefined;
221
- };
222
- SkyAutocompleteInputDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SkyAutocompleteInputDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive });
223
- SkyAutocompleteInputDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.9", type: SkyAutocompleteInputDirective, selector: "input[skyAutocomplete], textarea[skyAutocomplete]", inputs: { autocompleteAttribute: "autocompleteAttribute", disabled: "disabled" }, providers: [SKY_AUTOCOMPLETE_VALUE_ACCESSOR, SKY_AUTOCOMPLETE_VALIDATOR], ngImport: i0 });
224
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SkyAutocompleteInputDirective, decorators: [{
225
- type: Directive,
226
- args: [{
227
- selector: 'input[skyAutocomplete], textarea[skyAutocomplete]',
228
- providers: [SKY_AUTOCOMPLETE_VALUE_ACCESSOR, SKY_AUTOCOMPLETE_VALIDATOR],
229
- }]
230
- }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.Renderer2 }]; }, propDecorators: { autocompleteAttribute: [{
231
- type: Input
232
- }], disabled: [{
233
- type: Input
234
- }] } });
235
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0b2NvbXBsZXRlLWlucHV0LmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9sb29rdXAvc3JjL2xpYi9tb2R1bGVzL2F1dG9jb21wbGV0ZS9hdXRvY29tcGxldGUtaW5wdXQuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsT0FBTyxFQUNMLFNBQVMsRUFFVCxLQUFLLEVBSUwsVUFBVSxHQUNYLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFHTCxhQUFhLEVBQ2IsaUJBQWlCLEdBR2xCLE1BQU0sZ0JBQWdCLENBQUM7QUFFeEIsT0FBTyxFQUFjLE9BQU8sRUFBRSxTQUFTLElBQUksbUJBQW1CLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDN0UsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDOztBQUkzQyxNQUFNLCtCQUErQixHQUFHO0lBQ3RDLE9BQU8sRUFBRSxpQkFBaUI7SUFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyw2QkFBNkIsQ0FBQztJQUM1RCxLQUFLLEVBQUUsSUFBSTtDQUNaLENBQUM7QUFFRixNQUFNLDBCQUEwQixHQUFHO0lBQ2pDLE9BQU8sRUFBRSxhQUFhO0lBQ3RCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsNkJBQTZCLENBQUM7SUFDNUQsS0FBSyxFQUFFLElBQUk7Q0FDWixDQUFDO0FBTUYsTUFBTSxPQUFPLDZCQUE2QjtJQUd4Qzs7O09BR0c7SUFDSCxJQUNXLHFCQUFxQixDQUFDLEtBQXlCO1FBQ3hELElBQUksQ0FBQyxLQUFLLEVBQUU7WUFDVix1QkFBQSxJQUFJLHlEQUEyQixLQUFLLE1BQUEsQ0FBQztTQUN0QzthQUFNO1lBQ0wsdUJBQUEsSUFBSSx5REFBMkIsS0FBSyxNQUFBLENBQUM7U0FDdEM7UUFFRCx1QkFBQSxJQUFJLCtDQUFV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LENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztBQUMvRCxDQUFDOzBIQTlSVSw2QkFBNkI7OEdBQTdCLDZCQUE2Qiw4SkFGN0IsQ0FBQywrQkFBK0IsRUFBRSwwQkFBMEIsQ0FBQzsyRkFFN0QsNkJBQTZCO2tCQUp6QyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxtREFBbUQ7b0JBQzdELFNBQVMsRUFBRSxDQUFDLCtCQUErQixFQUFFLDBCQUEwQixDQUFDO2lCQUN6RTt5SEFTWSxxQkFBcUI7c0JBRC9CLEtBQUs7Z0JBeUJLLFFBQVE7c0JBRGxCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBEaXJlY3RpdmUsXG4gIEVsZW1lbnRSZWYsXG4gIElucHV0LFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgUmVuZGVyZXIyLFxuICBmb3J3YXJkUmVmLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIEFic3RyYWN0Q29udHJvbCxcbiAgQ29udHJvbFZhbHVlQWNjZXNzb3IsXG4gIE5HX1ZBTElEQVRPUlMsXG4gIE5HX1ZBTFVFX0FDQ0VTU09SLFxuICBWYWxpZGF0aW9uRXJyb3JzLFxuICBWYWxpZGF0b3IsXG59IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3ViamVjdCwgZnJvbUV2ZW50IGFzIG9ic2VydmFibGVGcm9tRXZlbnQgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgU2t5QXV0b2NvbXBsZXRlSW5wdXRUZXh0Q2hhbmdlIH0gZnJvbSAnLi90eXBlcy9hdXRvY29tcGxldGUtaW5wdXQtdGV4dC1jaGFuZ2UnO1xuXG5jb25zdCBTS1lfQVVUT0NPTVBMRVRFX1ZBTFVFX0FDQ0VTU09SID0ge1xuICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gU2t5QXV0b2NvbXBsZXRlSW5wdXREaXJlY3RpdmUpLFxuICBtdWx0aTogdHJ1ZSxcbn07XG5cbmNvbnN0IFNLWV9BVVRPQ09NUExFVEVfVkFMSURBVE9SID0ge1xuICBwcm92aWRlOiBOR19WQUxJREFUT1JTLFxuICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBTa3lBdXRvY29tcGxldGVJbnB1dERpcmVjdGl2ZSksXG4gIG11bHRpOiB0cnVlLFxufTtcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnaW5wdXRbc2t5QXV0b2NvbXBsZXRlXSwgdGV4dGFyZWFbc2t5QXV0b2NvbXBsZXRlXScsXG4gIHByb3ZpZGVyczogW1NLWV9BVVRPQ09NUExFVEVfVkFMVUVfQUNDRVNTT1IsIFNLWV9BVVRPQ09NUExFVEVfVkFMSURBVE9SXSxcbn0pXG5leHBvcnQgY2xhc3MgU2t5QXV0b2NvbXBsZXRlSW5wdXREaXJlY3RpdmVcbiAgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSwgQ29udHJvbFZhbHVlQWNjZXNzb3IsIFZhbGlkYXRvclxue1xuICAvKipcbiAgICogVGhlIHZhbHVlIGZvciB0aGUgYGF1dG9jb21wbGV0ZWAgYXR0cmlidXRlIG9uIHRoZSBmb3JtIGlucHV0LlxuICAgKiBAZGVmYXVsdCBcIm9mZlwiXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IGF1dG9jb21wbGV0ZUF0dHJpYnV0ZSh2YWx1ZTogc3RyaW5nIHwgdW5kZWZpbmVkKSB7XG4gICAgaWYgKCF2YWx1ZSkge1xuICAgICAgdGhpcy4jX2F1dG9jb21wbGV0ZUF0dHJpYnV0ZSA9ICdvZmYnO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLiNfYXV0b2NvbXBsZXRlQXR0cmlidXRlID0gdmFsdWU7XG4gICAgfVxuXG4gICAgdGhpcy4jcmVuZGVyZXIuc2V0QXR0cmlidXRlKFxuICAgICAgdGhpcy4jZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LFxuICAgICAgJ2F1dG9jb21wbGV0ZScsXG4gICAgICB0aGlzLiNfYXV0b2NvbXBsZXRlQXR0cmlidXRlXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgYXV0b2NvbXBsZXRlQXR0cmlidXRlKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuI19hdXRvY29tcGxldGVBdHRyaWJ1dGUgfHwgJ29mZic7XG4gIH1cblxuICAvKipcbiAgICogV2hldGhlciB0byBkaXNhYmxlIHRoZSBhdXRvY29tcGxldGUgZmllbGQgb24gdGVtcGxhdGUtZHJpdmVuIGZvcm1zLiBEb24ndCB1c2UgdGhpcyBpbnB1dCBvbiByZWFjdGl2ZSBmb3JtcyBiZWNhdXNlIHRoZXkgbWF5IG92ZXJ3cml0ZSB0aGUgaW5wdXQgb3IgbGVhdmUgdGhlIGNvbnRyb2wgb3V0IG9mIHN5bmMuXG4gICAqIFRvIHNldCB0aGUgZGlzYWJsZWQgc3RhdGUgb24gcmVhY3RpdmUgZm9ybXMsIHVzZSB0aGUgYEZvcm1Db250cm9sYCBpbnN0ZWFkLlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBkaXNhYmxlZCh2YWx1ZTogYm9vbGVhbiB8IHVuZGVmaW5lZCkge1xuICAgIHRoaXMuI19kaXNhYmxlZCA9IHZhbHVlID8/IGZhbHNlO1xuICAgIHRoaXMuI3JlbmRlcmVyLnNldFByb3BlcnR5KFxuICAgICAgdGhpcy4jZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LFxuICAgICAgJ2Rpc2FibGVkJyxcbiAgICAgIHZhbHVlXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgZGlzYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuI19kaXNhYmxlZDtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgYmx1cigpOiBPYnNlcnZhYmxlPHZvaWQ+IHtcbiAgICByZXR1cm4gdGhpcy4jYmx1ck9icztcbiAgfVxuXG4gIHB1YmxpYyBnZXQgZGlzcGxheVdpdGgoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy4jX2Rpc3BsYXlXaXRoO1xuICB9XG5cbiAgcHVibGljIHNldCBkaXNwbGF5V2l0aCh2YWx1ZTogc3RyaW5nKSB7XG4gICAgdGhpcy4jX2Rpc3BsYXlXaXRoID0gdmFsdWU7XG4gICAgdGhpcy5pbnB1dFRleHRWYWx1ZSA9IHRoaXMuI2dldFZhbHVlQnlLZXkoKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgZm9jdXMoKTogT2JzZXJ2YWJsZTx2b2lkPiB7XG4gICAgcmV0dXJuIHRoaXMuI2ZvY3VzT2JzO1xuICB9XG5cbiAgcHVibGljIGdldCBpbnB1dFRleHRWYWx1ZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLiNlbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQudmFsdWU7XG4gIH1cblxuICBwdWJsaWMgc2V0IGlucHV0VGV4dFZhbHVlKHZhbHVlOiBzdHJpbmcpIHtcbiAgICB0aGlzLiNlbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQudmFsdWUgPSB2YWx1ZSB8fCAnJztcbiAgfVxuXG4gIHB1YmxpYyBnZXQgdGV4dENoYW5nZXMoKTogT2JzZXJ2YWJsZTxTa3lBdXRvY29tcGxldGVJbnB1dFRleHRDaGFuZ2U+IHtcbiAgICByZXR1cm4gdGhpcy4jdGV4dENoYW5nZXNPYnM7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHZhbHVlKCk6IGFueSB7XG4gICAgcmV0dXJuIHRoaXMuI192YWx1ZTtcbiAgfVxuXG4gIHB1YmxpYyBzZXQgdmFsdWUodmFsdWU6IGFueSkge1xuICAgIGNvbnN0IGlzTmV3VmFsdWUgPSB2YWx1ZSAhPT0gdGhpcy4jX3ZhbHVlO1xuXG4gICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICBpZiAoaXNOZXdWYWx1ZSkge1xuICAgICAgdGhpcy4jX3ZhbHVlID0gdmFsdWU7XG4gICAgICB0aGlzLmlucHV0VGV4dFZhbHVlID0gdGhpcy4jZ2V0VmFsdWVCeUtleSgpO1xuICAgICAgdGhpcy5vbkNoYW5nZSh0aGlzLiNfdmFsdWUpO1xuXG4gICAgICAvLyBEbyBub3QgbWFyayB0aGUgZmllbGQgYXMgXCJkaXJ0eVwiXG4gICAgICAvLyBpZiB0aGUgZmllbGQgaGFzIGJlZW4gaW5pdGlhbGl6ZWQgd2l0aCBhIHZhbHVlLlxuICAgICAgaWYgKHRoaXMuI2lzRmlyc3RDaGFuZ2UgJiYgdGhpcy4jY29udHJvbCkge1xuICAgICAgICB0aGlzLiNjb250cm9sLm1hcmtBc1ByaXN0aW5lKCk7XG4gICAgICB9XG5cbiAgICAgIGlmICh0aGlzLiNpc0ZpcnN0Q2hhbmdlICYmIHRoaXMuI192YWx1ZSkge1xuICAgICAgICB0aGlzLiNpc0ZpcnN0Q2hhbmdlID0gZmFsc2U7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgI2JsdXI6IFN1YmplY3Q8dm9pZD47XG5cbiAgI2JsdXJPYnM6IE9ic2VydmFibGU8dm9pZD47XG5cbiAgI2NvbnRyb2w6IEFic3RyYWN0Q29udHJvbCB8IHVuZGVmaW5lZDtcblxuICAjZWxlbWVudFJlZjogRWxlbWVudFJlZjtcblxuICAjZm9jdXM6IFN1YmplY3Q8dm9pZD47XG5cbiAgI2ZvY3VzT2JzOiBPYnNlcnZhYmxlPHZvaWQ+O1xuXG4gICNpc0ZpcnN0Q2hhbmdlID0gdHJ1ZTtcblxuICAjbmdVbnN1YnNjcmliZSA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgI3JlbmRlcmVyOiBSZW5kZXJlcjI7XG5cbiAgI3RleHRDaGFuZ2VzOiBTdWJqZWN0PFNreUF1dG9jb21wbGV0ZUlucHV0VGV4dENoYW5nZT47XG5cbiAgI3RleHRDaGFuZ2VzT2JzOiBPYnNlcnZhYmxlPFNreUF1dG9jb21wbGV0ZUlucHV0VGV4dENoYW5nZT47XG5cbiAgI19hdXRvY29tcGxldGVBdHRyaWJ1dGU6IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICAjX2Rpc2FibGVkID0gZmFsc2U7XG5cbiAgI19kaXNwbGF5V2l0aCA9ICcnO1xuXG4gICNfdmFsdWU6IGFueTtcblxuICBjb25zdHJ1Y3RvcihlbGVtZW50UmVmOiBFbGVtZW50UmVmLCByZW5kZXJlcjogUmVuZGVyZXIyKSB7XG4gICAgdGhpcy4jZWxlbWVudFJlZiA9IGVsZW1lbnRSZWY7XG4gICAgdGhpcy4jcmVuZGVyZXIgPSByZW5kZXJlcjtcblxuICAgIHRoaXMuI2JsdXIgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuICAgIHRoaXMuI2ZvY3VzID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcbiAgICB0aGlzLiN0ZXh0Q2hhbmdlcyA9IG5ldyBTdWJqZWN0PFNreUF1dG9jb21wbGV0ZUlucHV0VGV4dENoYW5nZT4oKTtcblxuICAgIHRoaXMuI2JsdXJPYnMgPSB0aGlzLiNibHVyLmFzT2JzZXJ2YWJsZSgpO1xuICAgIHRoaXMuI2ZvY3VzT2JzID0gdGhpcy4jZm9jdXMuYXNPYnNlcnZhYmxlKCk7XG4gICAgdGhpcy4jdGV4dENoYW5nZXNPYnMgPSB0aGlzLiN0ZXh0Q2hhbmdlcy5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpIHtcbiAgICBjb25zdCBlbGVtZW50ID0gdGhpcy4jZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O1xuXG4gICAgdGhpcy4jc2V0QXR0cmlidXRlcyh0aGlzLiNlbGVtZW50UmVmKTtcblxuICAgIG9ic2VydmFibGVGcm9tRXZlbnQoZWxlbWVudCwgJ2lucHV0JylcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLiNuZ1Vuc3Vic2NyaWJlKSlcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICBpZiAoIXRoaXMuZGlzYWJsZWQpIHtcbiAgICAgICAgICB0aGlzLiN0ZXh0Q2hhbmdlcy5uZXh0KHtcbiAgICAgICAgICAgIHZhbHVlOiB0aGlzLiNlbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQudmFsdWUsXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuXG4gICAgb2JzZXJ2YWJsZUZyb21FdmVudChlbGVtZW50LCAnYmx1cicpXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy4jbmdVbnN1YnNjcmliZSkpXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgaWYgKCF0aGlzLmRpc2FibGVkKSB7XG4gICAgICAgICAgdGhpcy4jYmx1ci5uZXh0KCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuXG4gICAgb2JzZXJ2YWJsZUZyb21FdmVudChlbGVtZW50LCAnZm9jdXMnKVxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuI25nVW5zdWJzY3JpYmUpKVxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIGlmICghdGhpcy5kaXNhYmxlZCkge1xuICAgICAgICAgIHRoaXMuI2ZvY3VzLm5leHQoKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG5cbiAgICBvYnNlcnZhYmxlRnJvbUV2ZW50KGVsZW1lbnQsICdjaGFuZ2UnKVxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuI25nVW5zdWJzY3JpYmUpKVxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgICAgIGlmICghdGhpcy5kaXNhYmxlZCkge1xuICAgICAgICAgIHRoaXMuI2lzRmlyc3RDaGFuZ2UgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy4jYmx1ci5jb21wbGV0ZSgpO1xuICAgIHRoaXMuI3RleHRDaGFuZ2VzLmNvbXBsZXRlKCk7XG5cbiAgICB0aGlzLiNuZ1Vuc3Vic2NyaWJlLm5leHQoKTtcbiAgICB0aGlzLiNuZ1Vuc3Vic2NyaWJlLmNvbXBsZXRlKCk7XG4gIH1cblxuICBwdWJsaWMgd3JpdGVWYWx1ZSh2YWx1ZTogYW55KTogdm9pZCB7XG4gICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xuICB9XG5cbiAgcHVibGljIHJlZ2lzdGVyT25DaGFuZ2UoZm46ICh2YWx1ZTogYW55KSA9PiB2b2lkKTogdm9pZCB7XG4gICAgdGhpcy5vbkNoYW5nZSA9IGZuO1xuICB9XG5cbiAgcHVibGljIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiAoKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgdGhpcy5vblRvdWNoZWQgPSBmbjtcbiAgfVxuXG4gIHB1YmxpYyByZWdpc3Rlck9uVmFsaWRhdG9yQ2hhbmdlKGZuOiAoKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgdGhpcy5vblZhbGlkYXRvckNoYW5nZSA9IGZuO1xuICB9XG5cbiAgcHVibGljIHJlc3RvcmVJbnB1dFRleHRWYWx1ZVRvUHJldmlvdXNTdGF0ZSgpOiB2b2lkIHtcbiAgICBjb25zdCBtb2RlbFZhbHVlID0gdGhpcy4jZ2V0VmFsdWVCeUtleSgpO1xuXG4gICAgLy8gSWYgdGhlIHNlYXJjaCBmaWVsZCBjb250YWlucyB0ZXh0LCBtYWtlIHN1cmUgdGhhdCB0aGUgdmFsdWVcbiAgICAvLyBtYXRjaGVzIHRoZSBzZWxlY3RlZCBkZXNjcmlwdG9yIGtleS5cbiAgICBpZiAodGhpcy5pbnB1dFRleHRWYWx1ZSAhPT0gbW9kZWxWYWx1ZSkge1xuICAgICAgdGhpcy5pbnB1dFRleHRWYWx1ZSA9IG1vZGVsVmFsdWU7XG4gICAgfVxuXG4gICAgdGhpcy5vblRvdWNoZWQoKTtcbiAgfVxuXG4gIHB1YmxpYyBzZXREaXNhYmxlZFN0YXRlKGRpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy5kaXNhYmxlZCA9IGRpc2FibGVkO1xuICB9XG5cbiAgcHVibGljIHZhbGlkYXRlKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsIHtcbiAgICBpZiAoIXRoaXMuI2NvbnRyb2wpIHtcbiAgICAgIHRoaXMuI2NvbnRyb2wgPSBjb250cm9sO1xuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIC8vIFNlZTogaHR0cHM6Ly93d3cudzMub3JnL1RSL3dhaS1hcmlhLXByYWN0aWNlcy8ja2JkX2ZvY3VzX2FjdGl2ZWRlc2NlbmRhbnRcbiAgcHVibGljIHNldEFjdGl2ZURlc2NlbmRhbnQoZGVzY2VuZGFudElkOiBzdHJpbmcgfCBudWxsKTogdm9pZCB7XG4gICAgaWYgKGRlc2NlbmRhbnRJZCkge1xuICAgICAgdGhpcy4jcmVuZGVyZXIuc2V0QXR0cmlidXRlKFxuICAgICAgICB0aGlzLiNlbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsXG4gICAgICAgICdhcmlhLWFjdGl2ZWRlc2NlbmRhbnQnLFxuICAgICAgICBkZXNjZW5kYW50SWRcbiAgICAgICk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuI3JlbmRlcmVyLnJlbW92ZUF0dHJpYnV0ZShcbiAgICAgICAgdGhpcy4jZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LFxuICAgICAgICAnYXJpYS1hY3RpdmVkZXNjZW5kYW50J1xuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgc2V0QXJpYU93bnMob3ZlcmxheUlkOiBzdHJpbmcgfCBudWxsKTogdm9pZCB7XG4gICAgaWYgKG92ZXJsYXlJZCkge1xuICAgICAgdGhpcy4jcmVuZGVyZXIuc2V0QXR0cmlidXRlKFxuICAgICAgICB0aGlzLiNlbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsXG4gICAgICAgICdhcmlhLW93bnMnLFxuICAgICAgICBvdmVybGF5SWRcbiAgICAgICk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuI3JlbmRlcmVyLnJlbW92ZUF0dHJpYnV0ZShcbiAgICAgICAgdGhpcy4jZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LFxuICAgICAgICAnYXJpYS1vd25zJ1xuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICAvLyBBbmd1bGFyIGF1dG9tYXRpY2FsbHkgY29uc3RydWN0cyB0aGVzZSBtZXRob2RzLlxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWVtcHR5LWZ1bmN0aW9uXG4gIHB1YmxpYyBvbkNoYW5nZSh2YWx1ZTogYW55KTogdm9pZCB7fVxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWVtcHR5LWZ1bmN0aW9uXG4gIHB1YmxpYyBvblRvdWNoZWQoKTogdm9pZCB7fVxuICAvLyBpc3RhbmJ1bCBpZ25vcmUgbmV4dFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWVtcHR5LWZ1bmN0aW9uXG4gIHB1YmxpYyBvblZhbGlkYXRvckNoYW5nZSA9ICgpID0+IHt9O1xuXG4gICNzZXRBdHRyaWJ1dGVzKGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYpOiB2b2lkIHtcbiAgICBjb25zdCBlbGVtZW50ID0gZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O1xuXG4gICAgdGhpcy4jcmVuZGVyZXIuc2V0QXR0cmlidXRlKFxuICAgICAgZWxlbWVudCxcbiAgICAgICdhdXRvY29tcGxldGUnLFxuICAgICAgdGhpcy5hdXRvY29tcGxldGVBdHRyaWJ1dGVcbiAgICApO1xuICAgIHRoaXMuI3JlbmRlcmVyLnNldEF0dHJpYnV0ZShlbGVtZW50LCAnYXV0b2NhcGl0YWxpemUnLCAnbm9uZScpO1xuICAgIHRoaXMuI3JlbmRlcmVyLnNldEF0dHJpYnV0ZShlbGVtZW50LCAnYXV0b2NvcnJlY3QnLCAnb2ZmJyk7XG4gICAgdGhpcy4jcmVuZGVyZXIuc2V0QXR0cmlidXRlKGVsZW1lbnQsICdzcGVsbGNoZWNrJywgJ2ZhbHNlJyk7XG4gICAgdGhpcy4jcmVuZGVyZXIuYWRkQ2xhc3MoZWxlbWVudCwgJ3NreS1mb3JtLWNvbnRyb2wnKTtcbiAgfVxuXG4gICNnZXRWYWx1ZUJ5S2V5KCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMudmFsdWUgPyB0aGlzLnZhbHVlW3RoaXMuZGlzcGxheVdpdGhdIDogdW5kZWZpbmVkO1xuICB9XG59XG4iXX0=