@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.
- package/documentation.json +244 -244
- package/esm2022/lib/modules/autocomplete/autocomplete-adapter.service.mjs +61 -0
- package/esm2022/lib/modules/autocomplete/autocomplete-input.directive.mjs +237 -0
- package/{esm2020 → esm2022}/lib/modules/autocomplete/autocomplete-search-async-disabled.pipe.mjs +4 -4
- package/esm2022/lib/modules/autocomplete/autocomplete.component.mjs +817 -0
- package/{esm2020 → esm2022}/lib/modules/autocomplete/autocomplete.module.mjs +27 -27
- package/esm2022/lib/modules/country-field/country-field.component.mjs +444 -0
- package/{esm2020 → esm2022}/lib/modules/country-field/country-field.module.mjs +19 -19
- package/{esm2020 → esm2022}/lib/modules/lookup/lookup-adapter.service.mjs +4 -4
- package/esm2022/lib/modules/lookup/lookup-autocomplete-adapter.mjs +114 -0
- package/esm2022/lib/modules/lookup/lookup-show-more-modal.component.mjs +270 -0
- package/{esm2020 → esm2022}/lib/modules/lookup/lookup.component.mjs +299 -280
- package/{esm2020 → esm2022}/lib/modules/lookup/lookup.module.mjs +37 -37
- package/esm2022/lib/modules/search/search-adapter.service.mjs +46 -0
- package/esm2022/lib/modules/search/search.component.mjs +285 -0
- package/{esm2020 → esm2022}/lib/modules/search/search.module.mjs +17 -17
- package/{esm2020 → esm2022}/lib/modules/selection-modal/selection-modal-item-selected.pipe.mjs +4 -4
- package/esm2022/lib/modules/selection-modal/selection-modal.component.mjs +201 -0
- package/{esm2020 → esm2022}/lib/modules/selection-modal/selection-modal.module.mjs +27 -27
- package/esm2022/lib/modules/selection-modal/selection-modal.service.mjs +89 -0
- package/esm2022/lib/modules/selection-modal/types/selection-modal-instance.mjs +45 -0
- package/esm2022/lib/modules/shared/sky-lookup-resources.module.mjs +71 -0
- package/esm2022/testing/autocomplete/autocomplete-harness.mjs +155 -0
- package/esm2022/testing/autocomplete/autocomplete-input-harness.mjs +63 -0
- package/esm2022/testing/autocomplete/autocomplete-search-result-harness.mjs +44 -0
- package/esm2022/testing/country-field/country-field-fixture.mjs +118 -0
- package/{esm2020 → esm2022}/testing/country-field/country-field-testing.module.mjs +5 -5
- package/esm2022/testing/lookup/lookup-harness.mjs +76 -0
- package/{esm2020 → esm2022}/testing/search/search-fixture.mjs +18 -19
- package/esm2022/testing/search/search-harness.mjs +80 -0
- package/{esm2020 → esm2022}/testing/search/search-testing.module.mjs +5 -5
- package/esm2022/testing/selection-modal/selection-modal-harness.mjs +122 -0
- package/{fesm2020 → fesm2022}/skyux-lookup-testing.mjs +171 -187
- package/{fesm2020 → fesm2022}/skyux-lookup-testing.mjs.map +1 -1
- package/fesm2022/skyux-lookup.mjs +3707 -0
- package/{fesm2015 → fesm2022}/skyux-lookup.mjs.map +1 -1
- package/lib/modules/autocomplete/autocomplete-input.directive.d.ts +1 -1
- package/lib/modules/autocomplete/autocomplete.component.d.ts +1 -1
- package/lib/modules/country-field/country-field.component.d.ts +1 -1
- package/lib/modules/lookup/lookup-autocomplete-adapter.d.ts +1 -1
- package/lib/modules/lookup/lookup.component.d.ts +1 -1
- package/lib/modules/search/search.component.d.ts +1 -1
- package/package.json +23 -31
- package/esm2020/lib/modules/autocomplete/autocomplete-adapter.service.mjs +0 -64
- package/esm2020/lib/modules/autocomplete/autocomplete-input.directive.mjs +0 -235
- package/esm2020/lib/modules/autocomplete/autocomplete.component.mjs +0 -775
- package/esm2020/lib/modules/country-field/country-field.component.mjs +0 -433
- package/esm2020/lib/modules/lookup/lookup-autocomplete-adapter.mjs +0 -115
- package/esm2020/lib/modules/lookup/lookup-show-more-modal.component.mjs +0 -271
- package/esm2020/lib/modules/search/search-adapter.service.mjs +0 -46
- package/esm2020/lib/modules/search/search.component.mjs +0 -279
- package/esm2020/lib/modules/selection-modal/selection-modal.component.mjs +0 -199
- package/esm2020/lib/modules/selection-modal/selection-modal.service.mjs +0 -92
- package/esm2020/lib/modules/selection-modal/types/selection-modal-instance.mjs +0 -48
- package/esm2020/lib/modules/shared/sky-lookup-resources.module.mjs +0 -71
- package/esm2020/testing/autocomplete/autocomplete-harness.mjs +0 -161
- package/esm2020/testing/autocomplete/autocomplete-input-harness.mjs +0 -63
- package/esm2020/testing/autocomplete/autocomplete-search-result-harness.mjs +0 -44
- package/esm2020/testing/country-field/country-field-fixture.mjs +0 -114
- package/esm2020/testing/lookup/lookup-harness.mjs +0 -82
- package/esm2020/testing/search/search-harness.mjs +0 -86
- package/esm2020/testing/selection-modal/selection-modal-harness.mjs +0 -128
- package/fesm2015/skyux-lookup-testing.mjs +0 -980
- package/fesm2015/skyux-lookup-testing.mjs.map +0 -1
- package/fesm2015/skyux-lookup.mjs +0 -3642
- package/fesm2020/skyux-lookup.mjs +0 -3625
- package/fesm2020/skyux-lookup.mjs.map +0 -1
- /package/{esm2020 → esm2022}/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/autocomplete/autocomplete-default-search-function.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/autocomplete/types/autocomplete-default-search-function-options.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/autocomplete/types/autocomplete-input-text-change.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/autocomplete/types/autocomplete-message-type.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/autocomplete/types/autocomplete-message.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/autocomplete/types/autocomplete-search-args.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/autocomplete/types/autocomplete-search-async-args.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/autocomplete/types/autocomplete-search-async-function.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/autocomplete/types/autocomplete-search-async-result-display-type.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/autocomplete/types/autocomplete-search-async-result.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/autocomplete/types/autocomplete-search-context.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/autocomplete/types/autocomplete-search-function-filter.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/autocomplete/types/autocomplete-search-function-response.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/autocomplete/types/autocomplete-search-function.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/autocomplete/types/autocomplete-selection-change.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/autocomplete/types/autocomplete-show-more-args.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/country-field/types/country-field-context-token.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/country-field/types/country-field-context.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/country-field/types/country.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/lookup/types/lookup-add-click-callback-args.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/lookup/types/lookup-add-click-event-args.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/lookup/types/lookup-select-mode-type.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/lookup/types/lookup-select-mode.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/lookup/types/lookup-show-more-config.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/lookup/types/lookup-show-more-custom-picker-context.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/lookup/types/lookup-show-more-custom-picker.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/lookup/types/lookup-show-more-native-picker-config.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/lookup/types/lookup-show-more-native-picker-context.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/selection-modal/types/selection-modal-add-click-callback-args.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/selection-modal/types/selection-modal-add-click-event-args.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/selection-modal/types/selection-modal-close-args.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/selection-modal/types/selection-modal-context.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/selection-modal/types/selection-modal-open-args.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/selection-modal/types/selection-modal-result.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/selection-modal/types/selection-modal-search-args.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/selection-modal/types/selection-modal-search-result.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/shared/sky-lookup-string-utils.mjs +0 -0
- /package/{esm2020 → esm2022}/skyux-lookup.mjs +0 -0
- /package/{esm2020 → esm2022}/testing/autocomplete/autocomplete-harness-filters.mjs +0 -0
- /package/{esm2020 → esm2022}/testing/autocomplete/autocomplete-search-result-harness-filters.mjs +0 -0
- /package/{esm2020 → esm2022}/testing/lookup/lookup-harness-filters.mjs +0 -0
- /package/{esm2020 → esm2022}/testing/lookup/lookup-selection-harness-filters.mjs +0 -0
- /package/{esm2020 → esm2022}/testing/lookup/lookup-selection-harness.mjs +0 -0
- /package/{esm2020 → esm2022}/testing/lookup/lookup-selections-list-harness.mjs +0 -0
- /package/{esm2020 → esm2022}/testing/lookup/lookup-show-more-picker-harness-filters.mjs +0 -0
- /package/{esm2020 → esm2022}/testing/lookup/lookup-show-more-picker-harness.mjs +0 -0
- /package/{esm2020 → esm2022}/testing/lookup/lookup-show-more-picker-search-result-harness-filters.mjs +0 -0
- /package/{esm2020 → esm2022}/testing/lookup/lookup-show-more-picker-search-result-harness.mjs +0 -0
- /package/{esm2020 → esm2022}/testing/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/testing/search/search-harness-filters.mjs +0 -0
- /package/{esm2020 → esm2022}/testing/selection-modal/selection-modal-search-result-harness-filters.mjs +0 -0
- /package/{esm2020 → esm2022}/testing/selection-modal/selection-modal-search-result-harness.mjs +0 -0
- /package/{esm2020 → esm2022}/testing/skyux-lookup-testing.mjs +0 -0
|
@@ -1,128 +0,0 @@
|
|
|
1
|
-
var _SkySelectionModalHarness_getCancelButton, _SkySelectionModalHarness_getClearAllButton, _SkySelectionModalHarness_getInfiniteScroll, _SkySelectionModalHarness_getSaveButton, _SkySelectionModalHarness_getSearchHarness, _SkySelectionModalHarness_getSelectAllButton, _SkySelectionModalHarness_getAddButton;
|
|
2
|
-
import { __classPrivateFieldGet } from "tslib";
|
|
3
|
-
import { ComponentHarness } from '@angular/cdk/testing';
|
|
4
|
-
import { SkyInfiniteScrollHarness, SkyRepeaterItemHarness, } from '@skyux/lists/testing';
|
|
5
|
-
import { SkySearchHarness } from '../search/search-harness';
|
|
6
|
-
/**
|
|
7
|
-
* Harness for interacting with a selection modal in tests.
|
|
8
|
-
*/
|
|
9
|
-
export class SkySelectionModalHarness extends ComponentHarness {
|
|
10
|
-
constructor() {
|
|
11
|
-
super(...arguments);
|
|
12
|
-
_SkySelectionModalHarness_getCancelButton.set(this, this.locatorFor('button.sky-lookup-show-more-modal-close'));
|
|
13
|
-
_SkySelectionModalHarness_getClearAllButton.set(this, this.locatorForOptional('button.sky-lookup-show-more-modal-clear-all-btn'));
|
|
14
|
-
_SkySelectionModalHarness_getInfiniteScroll.set(this, this.locatorFor(SkyInfiniteScrollHarness));
|
|
15
|
-
_SkySelectionModalHarness_getSaveButton.set(this, this.locatorFor('button.sky-lookup-show-more-modal-save'));
|
|
16
|
-
_SkySelectionModalHarness_getSearchHarness.set(this, this.locatorFor(SkySearchHarness));
|
|
17
|
-
_SkySelectionModalHarness_getSelectAllButton.set(this, this.locatorForOptional('button.sky-lookup-show-more-modal-select-all-btn'));
|
|
18
|
-
_SkySelectionModalHarness_getAddButton.set(this, this.locatorForOptional('button.sky-lookup-show-more-modal-add'));
|
|
19
|
-
}
|
|
20
|
-
/**
|
|
21
|
-
* Clears the text of the search input.
|
|
22
|
-
*/
|
|
23
|
-
async clearSearchText() {
|
|
24
|
-
return (await __classPrivateFieldGet(this, _SkySelectionModalHarness_getSearchHarness, "f").call(this)).clear();
|
|
25
|
-
}
|
|
26
|
-
/**
|
|
27
|
-
* Enters text into the search input and performs a search.
|
|
28
|
-
*/
|
|
29
|
-
async enterSearchText(value) {
|
|
30
|
-
return (await __classPrivateFieldGet(this, _SkySelectionModalHarness_getSearchHarness, "f").call(this)).enterText(value);
|
|
31
|
-
}
|
|
32
|
-
/**
|
|
33
|
-
* Selects multiple search results based on a set of criteria.
|
|
34
|
-
*/
|
|
35
|
-
async selectSearchResult(filters) {
|
|
36
|
-
const harnesses = await this.getSearchResults(filters);
|
|
37
|
-
if (await this.isMultiselect()) {
|
|
38
|
-
for (const harness of harnesses) {
|
|
39
|
-
await harness.select();
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
else {
|
|
43
|
-
// Click on the item directly because we've added a custom click event in the picker's template.
|
|
44
|
-
await (await harnesses[0].host()).click();
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
/**
|
|
48
|
-
* Saves any selections made and closes the modal.
|
|
49
|
-
*/
|
|
50
|
-
async saveAndClose() {
|
|
51
|
-
return (await __classPrivateFieldGet(this, _SkySelectionModalHarness_getSaveButton, "f").call(this)).click();
|
|
52
|
-
}
|
|
53
|
-
/**
|
|
54
|
-
* Closes the picker without saving any selections made.
|
|
55
|
-
*/
|
|
56
|
-
async cancel() {
|
|
57
|
-
return (await __classPrivateFieldGet(this, _SkySelectionModalHarness_getCancelButton, "f").call(this)).click();
|
|
58
|
-
}
|
|
59
|
-
/**
|
|
60
|
-
* Gets a list of search results.
|
|
61
|
-
*/
|
|
62
|
-
async getSearchResults(filters) {
|
|
63
|
-
const pickerId = (await (await this.host()).getAttribute('id'));
|
|
64
|
-
const harnesses = await this.locatorForAll(SkyRepeaterItemHarness.with({
|
|
65
|
-
...(filters || {}),
|
|
66
|
-
ancestor: `#${pickerId}`,
|
|
67
|
-
}))();
|
|
68
|
-
if (filters && harnesses.length === 0) {
|
|
69
|
-
throw new Error(`Could not find search results in the picker matching filter(s): ${JSON.stringify(filters)}`);
|
|
70
|
-
}
|
|
71
|
-
return harnesses;
|
|
72
|
-
}
|
|
73
|
-
/**
|
|
74
|
-
* Clears all selections made.
|
|
75
|
-
*/
|
|
76
|
-
async clearAll() {
|
|
77
|
-
const button = await __classPrivateFieldGet(this, _SkySelectionModalHarness_getClearAllButton, "f").call(this);
|
|
78
|
-
if (!button) {
|
|
79
|
-
throw new Error('Could not clear all selections because the "Clear all" button could not be found.');
|
|
80
|
-
}
|
|
81
|
-
await button.click();
|
|
82
|
-
}
|
|
83
|
-
/**
|
|
84
|
-
* Whether the selection modal is configured to allow multiple selections.
|
|
85
|
-
*/
|
|
86
|
-
async isMultiselect() {
|
|
87
|
-
return !(await (await this.host()).hasClass('sky-lookup-show-more-modal-single'));
|
|
88
|
-
}
|
|
89
|
-
/**
|
|
90
|
-
* Selects all search results.
|
|
91
|
-
*/
|
|
92
|
-
async selectAll() {
|
|
93
|
-
const button = await __classPrivateFieldGet(this, _SkySelectionModalHarness_getSelectAllButton, "f").call(this);
|
|
94
|
-
if (!button) {
|
|
95
|
-
throw new Error('Could not select all selections because the "Select all" button could not be found.');
|
|
96
|
-
}
|
|
97
|
-
await button.click();
|
|
98
|
-
}
|
|
99
|
-
/**
|
|
100
|
-
* Loads more results in the picker.
|
|
101
|
-
*/
|
|
102
|
-
async loadMore() {
|
|
103
|
-
return (await __classPrivateFieldGet(this, _SkySelectionModalHarness_getInfiniteScroll, "f").call(this)).loadMore();
|
|
104
|
-
}
|
|
105
|
-
/**
|
|
106
|
-
* Whether the selection modal is configured to show the add button.
|
|
107
|
-
*/
|
|
108
|
-
async hasAddButton() {
|
|
109
|
-
const button = await __classPrivateFieldGet(this, _SkySelectionModalHarness_getAddButton, "f").call(this);
|
|
110
|
-
return !!button;
|
|
111
|
-
}
|
|
112
|
-
/**
|
|
113
|
-
* Clicks the add button.
|
|
114
|
-
*/
|
|
115
|
-
async clickAddButton() {
|
|
116
|
-
const button = await __classPrivateFieldGet(this, _SkySelectionModalHarness_getAddButton, "f").call(this);
|
|
117
|
-
if (!button) {
|
|
118
|
-
throw new Error('Could not click the add button because the button could not be found.');
|
|
119
|
-
}
|
|
120
|
-
await button.click();
|
|
121
|
-
}
|
|
122
|
-
}
|
|
123
|
-
_SkySelectionModalHarness_getCancelButton = new WeakMap(), _SkySelectionModalHarness_getClearAllButton = new WeakMap(), _SkySelectionModalHarness_getInfiniteScroll = new WeakMap(), _SkySelectionModalHarness_getSaveButton = new WeakMap(), _SkySelectionModalHarness_getSearchHarness = new WeakMap(), _SkySelectionModalHarness_getSelectAllButton = new WeakMap(), _SkySelectionModalHarness_getAddButton = new WeakMap();
|
|
124
|
-
/**
|
|
125
|
-
* @internal
|
|
126
|
-
*/
|
|
127
|
-
SkySelectionModalHarness.hostSelector = '.sky-lookup-show-more-modal';
|
|
128
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0aW9uLW1vZGFsLWhhcm5lc3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvbG9va3VwL3Rlc3Rpbmcvc3JjL3NlbGVjdGlvbi1tb2RhbC9zZWxlY3Rpb24tbW9kYWwtaGFybmVzcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3hELE9BQU8sRUFDTCx3QkFBd0IsRUFDeEIsc0JBQXNCLEdBQ3ZCLE1BQU0sc0JBQXNCLENBQUM7QUFFOUIsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFLNUQ7O0dBRUc7QUFDSCxNQUFNLE9BQU8sd0JBQXlCLFNBQVEsZ0JBQWdCO0lBQTlEOztRQU1FLG9EQUFtQixJQUFJLENBQUMsVUFBVSxDQUFDLHlDQUF5QyxDQUFDLEVBQUM7UUFFOUUsc0RBQXFCLElBQUksQ0FBQyxrQkFBa0IsQ0FDMUMsaURBQWlELENBQ2xELEVBQUM7UUFFRixzREFBcUIsSUFBSSxDQUFDLFVBQVUsQ0FBQyx3QkFBd0IsQ0FBQyxFQUFDO1FBRS9ELGtEQUFpQixJQUFJLENBQUMsVUFBVSxDQUFDLHdDQUF3QyxDQUFDLEVBQUM7UUFFM0UscURBQW9CLElBQUksQ0FBQyxVQUFVLENBQUMsZ0JBQWdCLENBQUMsRUFBQztRQUV0RCx1REFBc0IsSUFBSSxDQUFDLGtCQUFrQixDQUMzQyxrREFBa0QsQ0FDbkQsRUFBQztRQUVGLGlEQUFnQixJQUFJLENBQUMsa0JBQWtCLENBQ3JDLHVDQUF1QyxDQUN4QyxFQUFDO0lBMklKLENBQUM7SUF6SUM7O09BRUc7SUFDSSxLQUFLLENBQUMsZUFBZTtRQUMxQixPQUFPLENBQUMsTUFBTSx1QkFBQSxJQUFJLGtEQUFrQixNQUF0QixJQUFJLENBQW9CLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUNsRCxDQUFDO0lB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SyxDQUFDLFFBQVE7UUFDbkIsT0FBTyxDQUFDLE1BQU0sdUJBQUEsSUFBSSxtREFBbUIsTUFBdkIsSUFBSSxDQUFxQixDQUFDLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDdEQsQ0FBQztJQUVEOztPQUVHO0lBQ0ksS0FBSyxDQUFDLFlBQVk7UUFDdkIsTUFBTSxNQUFNLEdBQUcsTUFBTSx1QkFBQSxJQUFJLDhDQUFjLE1BQWxCLElBQUksQ0FBZ0IsQ0FBQztRQUMxQyxPQUFPLENBQUMsQ0FBQyxNQUFNLENBQUM7SUFDbEIsQ0FBQztJQUVEOztPQUVHO0lBQ0ksS0FBSyxDQUFDLGNBQWM7UUFDekIsTUFBTSxNQUFNLEdBQUcsTUFBTSx1QkFBQSxJQUFJLDhDQUFjLE1BQWxCLElBQUksQ0FBZ0IsQ0FBQztRQUMxQyxJQUFJLENBQUMsTUFBTSxFQUFFO1lBQ1gsTUFBTSxJQUFJLEtBQUssQ0FDYix1RUFBdUUsQ0FDeEUsQ0FBQztTQUNIO1FBRUQsTUFBTSxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDdkIsQ0FBQzs7O0FBaktEOztHQUVHO0FBQ1cscUNBQVksR0FBRyw2QkFBNkIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudEhhcm5lc3MgfSBmcm9tICdAYW5ndWxhci9jZGsvdGVzdGluZyc7XG5pbXBvcnQge1xuICBTa3lJbmZpbml0ZVNjcm9sbEhhcm5lc3MsXG4gIFNreVJlcGVhdGVySXRlbUhhcm5lc3MsXG59IGZyb20gJ0Bza3l1eC9saXN0cy90ZXN0aW5nJztcblxuaW1wb3J0IHsgU2t5U2VhcmNoSGFybmVzcyB9IGZyb20gJy4uL3NlYXJjaC9zZWFyY2gtaGFybmVzcyc7XG5cbmltcG9ydCB7IFNreVNlbGVjdGlvbk1vZGFsU2VhcmNoUmVzdWx0SGFybmVzcyB9IGZyb20gJy4vc2VsZWN0aW9uLW1vZGFsLXNlYXJjaC1yZXN1bHQtaGFybmVzcyc7XG5pbXBvcnQgeyBTa3lTZWxlY3Rpb25Nb2RhbFNlYXJjaFJlc3VsdEhhcm5lc3NGaWx0ZXJzIH0gZnJvbSAnLi9zZWxlY3Rpb24tbW9kYWwtc2VhcmNoLXJlc3VsdC1oYXJuZXNzLWZpbHRlcnMnO1xuXG4vKipcbiAqIEhhcm5lc3MgZm9yIGludGVyYWN0aW5nIHdpdGggYSBzZWxlY3Rpb24gbW9kYWwgaW4gdGVzdHMuXG4gKi9cbmV4cG9ydCBjbGFzcyBTa3lTZWxlY3Rpb25Nb2RhbEhhcm5lc3MgZXh0ZW5kcyBDb21wb25lbnRIYXJuZXNzIHtcbiAgLyoqXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBob3N0U2VsZWN0b3IgPSAnLnNreS1sb29rdXAtc2hvdy1tb3JlLW1vZGFsJztcblxuICAjZ2V0Q2FuY2VsQnV0dG9uID0gdGhpcy5sb2NhdG9yRm9yKCdidXR0b24uc2t5LWxvb2t1cC1zaG93LW1vcmUtbW9kYWwtY2xvc2UnKTtcblxuICAjZ2V0Q2xlYXJBbGxCdXR0b24gPSB0aGlzLmxvY2F0b3JGb3JPcHRpb25hbChcbiAgICAnYnV0dG9uLnNreS1sb29rdXAtc2hvdy1tb3JlLW1vZGFsLWNsZWFyLWFsbC1idG4nXG4gICk7XG5cbiAgI2dldEluZmluaXRlU2Nyb2xsID0gdGhpcy5sb2NhdG9yRm9yKFNreUluZmluaXRlU2Nyb2xsSGFybmVzcyk7XG5cbiAgI2dldFNhdmVCdXR0b24gPSB0aGlzLmxvY2F0b3JGb3IoJ2J1dHRvbi5za3ktbG9va3VwLXNob3ctbW9yZS1tb2RhbC1zYXZlJyk7XG5cbiAgI2dldFNlYXJjaEhhcm5lc3MgPSB0aGlzLmxvY2F0b3JGb3IoU2t5U2VhcmNoSGFybmVzcyk7XG5cbiAgI2dldFNlbGVjdEFsbEJ1dHRvbiA9IHRoaXMubG9jYXRvckZvck9wdGlvbmFsKFxuICAgICdidXR0b24uc2t5LWxvb2t1cC1zaG93LW1vcmUtbW9kYWwtc2VsZWN0LWFsbC1idG4nXG4gICk7XG5cbiAgI2dldEFkZEJ1dHRvbiA9IHRoaXMubG9jYXRvckZvck9wdGlvbmFsKFxuICAgICdidXR0b24uc2t5LWxvb2t1cC1zaG93LW1vcmUtbW9kYWwtYWRkJ1xuICApO1xuXG4gIC8qKlxuICAgKiBDbGVhcnMgdGhlIHRleHQgb2YgdGhlIHNlYXJjaCBpbnB1dC5cbiAgICovXG4gIHB1YmxpYyBhc3luYyBjbGVhclNlYXJjaFRleHQoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgcmV0dXJuIChhd2FpdCB0aGlzLiNnZXRTZWFyY2hIYXJuZXNzKCkpLmNsZWFyKCk7XG4gIH1cblxuICAvKipcbiAgICogRW50ZXJzIHRleHQgaW50byB0aGUgc2VhcmNoIGlucHV0IGFuZCBwZXJmb3JtcyBhIHNlYXJjaC5cbiAgICovXG4gIHB1YmxpYyBhc3luYyBlbnRlclNlYXJjaFRleHQodmFsdWU6IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xuICAgIHJldHVybiAoYXdhaXQgdGhpcy4jZ2V0U2VhcmNoSGFybmVzcygpKS5lbnRlclRleHQodmFsdWUpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNlbGVjdHMgbXVsdGlwbGUgc2VhcmNoIHJlc3VsdHMgYmFzZWQgb24gYSBzZXQgb2YgY3JpdGVyaWEuXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgc2VsZWN0U2VhcmNoUmVzdWx0KFxuICAgIGZpbHRlcnM/OiBTa3lTZWxlY3Rpb25Nb2RhbFNlYXJjaFJlc3VsdEhhcm5lc3NGaWx0ZXJzXG4gICk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IGhhcm5lc3NlcyA9IGF3YWl0IHRoaXMuZ2V0U2VhcmNoUmVzdWx0cyhmaWx0ZXJzKTtcblxuICAgIGlmIChhd2FpdCB0aGlzLmlzTXVsdGlzZWxlY3QoKSkge1xuICAgICAgZm9yIChjb25zdCBoYXJuZXNzIG9mIGhhcm5lc3Nlcykge1xuICAgICAgICBhd2FpdCBoYXJuZXNzLnNlbGVjdCgpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICAvLyBDbGljayBvbiB0aGUgaXRlbSBkaXJlY3RseSBiZWNhdXNlIHdlJ3ZlIGFkZGVkIGEgY3VzdG9tIGNsaWNrIGV2ZW50IGluIHRoZSBwaWNrZXIncyB0ZW1wbGF0ZS5cbiAgICAgIGF3YWl0IChhd2FpdCBoYXJuZXNzZXNbMF0uaG9zdCgpKS5jbGljaygpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBTYXZlcyBhbnkgc2VsZWN0aW9ucyBtYWRlIGFuZCBjbG9zZXMgdGhlIG1vZGFsLlxuICAgKi9cbiAgcHVibGljIGFzeW5jIHNhdmVBbmRDbG9zZSgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICByZXR1cm4gKGF3YWl0IHRoaXMuI2dldFNhdmVCdXR0b24oKSkuY2xpY2soKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDbG9zZXMgdGhlIHBpY2tlciB3aXRob3V0IHNhdmluZyBhbnkgc2VsZWN0aW9ucyBtYWRlLlxuICAgKi9cbiAgcHVibGljIGFzeW5jIGNhbmNlbCgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICByZXR1cm4gKGF3YWl0IHRoaXMuI2dldENhbmNlbEJ1dHRvbigpKS5jbGljaygpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgYSBsaXN0IG9mIHNlYXJjaCByZXN1bHRzLlxuICAgKi9cbiAgcHVibGljIGFzeW5jIGdldFNlYXJjaFJlc3VsdHMoXG4gICAgZmlsdGVycz86IFNreVNlbGVjdGlvbk1vZGFsU2VhcmNoUmVzdWx0SGFybmVzc0ZpbHRlcnNcbiAgKTogUHJvbWlzZTxTa3lTZWxlY3Rpb25Nb2RhbFNlYXJjaFJlc3VsdEhhcm5lc3NbXT4ge1xuICAgIGNvbnN0IHBpY2tlcklkID0gKGF3YWl0IChhd2FpdCB0aGlzLmhvc3QoKSkuZ2V0QXR0cmlidXRlKCdpZCcpKSBhcyBzdHJpbmc7XG5cbiAgICBjb25zdCBoYXJuZXNzZXMgPSBhd2FpdCB0aGlzLmxvY2F0b3JGb3JBbGwoXG4gICAgICBTa3lSZXBlYXRlckl0ZW1IYXJuZXNzLndpdGgoe1xuICAgICAgICAuLi4oZmlsdGVycyB8fCB7fSksXG4gICAgICAgIGFuY2VzdG9yOiBgIyR7cGlja2VySWR9YCxcbiAgICAgIH0pXG4gICAgKSgpO1xuXG4gICAgaWYgKGZpbHRlcnMgJiYgaGFybmVzc2VzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBgQ291bGQgbm90IGZpbmQgc2VhcmNoIHJlc3VsdHMgaW4gdGhlIHBpY2tlciBtYXRjaGluZyBmaWx0ZXIocyk6ICR7SlNPTi5zdHJpbmdpZnkoXG4gICAgICAgICAgZmlsdGVyc1xuICAgICAgICApfWBcbiAgICAgICk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGhhcm5lc3NlcztcbiAgfVxuXG4gIC8qKlxuICAgKiBDbGVhcnMgYWxsIHNlbGVjdGlvbnMgbWFkZS5cbiAgICovXG4gIHB1YmxpYyBhc3luYyBjbGVhckFsbCgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBidXR0b24gPSBhd2FpdCB0aGlzLiNnZXRDbGVhckFsbEJ1dHRvbigpO1xuICAgIGlmICghYnV0dG9uKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICdDb3VsZCBub3QgY2xlYXIgYWxsIHNlbGVjdGlvbnMgYmVjYXVzZSB0aGUgXCJDbGVhciBhbGxcIiBidXR0b24gY291bGQgbm90IGJlIGZvdW5kLidcbiAgICAgICk7XG4gICAgfVxuXG4gICAgYXdhaXQgYnV0dG9uLmNsaWNrKCk7XG4gIH1cblxuICAvKipcbiAgICogV2hldGhlciB0aGUgc2VsZWN0aW9uIG1vZGFsIGlzIGNvbmZpZ3VyZWQgdG8gYWxsb3cgbXVsdGlwbGUgc2VsZWN0aW9ucy5cbiAgICovXG4gIHB1YmxpYyBhc3luYyBpc011bHRpc2VsZWN0KCk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIHJldHVybiAhKGF3YWl0IChcbiAgICAgIGF3YWl0IHRoaXMuaG9zdCgpXG4gICAgKS5oYXNDbGFzcygnc2t5LWxvb2t1cC1zaG93LW1vcmUtbW9kYWwtc2luZ2xlJykpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNlbGVjdHMgYWxsIHNlYXJjaCByZXN1bHRzLlxuICAgKi9cbiAgcHVibGljIGFzeW5jIHNlbGVjdEFsbCgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBidXR0b24gPSBhd2FpdCB0aGlzLiNnZXRTZWxlY3RBbGxCdXR0b24oKTtcbiAgICBpZiAoIWJ1dHRvbikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAnQ291bGQgbm90IHNlbGVjdCBhbGwgc2VsZWN0aW9ucyBiZWNhdXNlIHRoZSBcIlNlbGVjdCBhbGxcIiBidXR0b24gY291bGQgbm90IGJlIGZvdW5kLidcbiAgICAgICk7XG4gICAgfVxuXG4gICAgYXdhaXQgYnV0dG9uLmNsaWNrKCk7XG4gIH1cblxuICAvKipcbiAgICogTG9hZHMgbW9yZSByZXN1bHRzIGluIHRoZSBwaWNrZXIuXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgbG9hZE1vcmUoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgcmV0dXJuIChhd2FpdCB0aGlzLiNnZXRJbmZpbml0ZVNjcm9sbCgpKS5sb2FkTW9yZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhlIHNlbGVjdGlvbiBtb2RhbCBpcyBjb25maWd1cmVkIHRvIHNob3cgdGhlIGFkZCBidXR0b24uXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgaGFzQWRkQnV0dG9uKCk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIGNvbnN0IGJ1dHRvbiA9IGF3YWl0IHRoaXMuI2dldEFkZEJ1dHRvbigpO1xuICAgIHJldHVybiAhIWJ1dHRvbjtcbiAgfVxuXG4gIC8qKlxuICAgKiBDbGlja3MgdGhlIGFkZCBidXR0b24uXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgY2xpY2tBZGRCdXR0b24oKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgYnV0dG9uID0gYXdhaXQgdGhpcy4jZ2V0QWRkQnV0dG9uKCk7XG4gICAgaWYgKCFidXR0b24pIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgJ0NvdWxkIG5vdCBjbGljayB0aGUgYWRkIGJ1dHRvbiBiZWNhdXNlIHRoZSBidXR0b24gY291bGQgbm90IGJlIGZvdW5kLidcbiAgICAgICk7XG4gICAgfVxuXG4gICAgYXdhaXQgYnV0dG9uLmNsaWNrKCk7XG4gIH1cbn1cbiJdfQ==
|