@alfresco/adf-content-services
Version:
Alfresco ADF content services
165 lines • 15 kB
JavaScript
/*!
* @license
* Copyright © 2005-2025 Hyland Software, Inc. and its affiliates. All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import { Component, ViewChild } from '@angular/core';
import { SearchComponent } from '../search/components/search.component';
import { ResultSetPaging, ResultSetRowEntry, ContentInfo, UserInfo, ResultNode } from '@alfresco/js-api';
import { SearchModule } from '../search';
import { CommonModule } from '@angular/common';
import * as i0 from "@angular/core";
import * as i1 from "../search/components/search.component";
import * as i2 from "@angular/common";
const entryItem = new ResultSetRowEntry({
entry: new ResultNode({
id: '123',
name: 'MyDoc',
isFile: true,
content: new ContentInfo({
mimeType: 'text/plain'
}),
createdByUser: new UserInfo({
displayName: 'John Doe'
}),
modifiedByUser: new UserInfo({
displayName: 'John Doe'
})
})
});
const entryDifferentItem = new ResultSetRowEntry({
entry: new ResultNode({
id: '999',
name: 'TEST_DOC',
isFile: true,
content: new ContentInfo({
mimeType: 'text/plain'
}),
createdByUser: new UserInfo({
displayName: 'John TEST'
}),
modifiedByUser: new UserInfo({
displayName: 'John TEST'
})
})
});
export const result = new ResultSetPaging({
list: {
entries: [entryItem]
}
});
export const differentResult = new ResultSetPaging({
list: {
entries: [entryDifferentItem]
}
});
export const results = {
list: {
entries: [entryItem, entryItem, entryItem]
}
};
export const noResult = {
list: {
entries: []
}
};
export class SimpleSearchTestComponent {
constructor() {
this.message = '';
this.searchedWord = '';
this.maxResults = 5;
}
showSearchResult(event) {
this.message = event;
}
elementClicked() {
this.message = 'element clicked';
}
setSearchWordTo(str) {
this.searchedWord = str;
}
setSearchNodeTo(searchNode) {
this.searchNode = searchNode;
}
changeMaxResultTo(newMax) {
this.maxResults = newMax;
}
forceHidePanel() {
this.search.hidePanel();
}
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: SimpleSearchTestComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.3", type: SimpleSearchTestComponent, isStandalone: true, selector: "ng-component", viewQueries: [{ propertyName: "search", first: true, predicate: ["search"], descendants: true, static: true }], ngImport: i0, template: `
<adf-search
[searchTerm]="searchedWord"
[maxResults]="maxResults"
(error)="showSearchResult('ERROR')"
(success)="showSearchResult('success')"
#search
>
<ng-template let-data>
<ul id="autocomplete-search-result-list">
<li
*ngFor="let item of data?.list?.entries; let idx = index"
(click)="elementClicked()"
tabindex="0"
role="button"
(keyup.enter)="elementClicked()"
>
<div id="result_option_{{ idx }}">
<span>{{ item?.entry.name }}</span>
</div>
</li>
</ul>
</ng-template>
</adf-search>
<span id="component-result-message">{{ message }}</span>
`, isInline: true, dependencies: [{ kind: "ngmodule", type: SearchModule }, { kind: "component", type: i1.SearchComponent, selector: "adf-search", inputs: ["displayWith", "maxResults", "skipResults", "searchTerm", "class"], outputs: ["resultLoaded", "error"], exportAs: ["searchAutocomplete"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: SimpleSearchTestComponent, decorators: [{
type: Component,
args: [{
template: `
<adf-search
[searchTerm]="searchedWord"
[maxResults]="maxResults"
(error)="showSearchResult('ERROR')"
(success)="showSearchResult('success')"
#search
>
<ng-template let-data>
<ul id="autocomplete-search-result-list">
<li
*ngFor="let item of data?.list?.entries; let idx = index"
(click)="elementClicked()"
tabindex="0"
role="button"
(keyup.enter)="elementClicked()"
>
<div id="result_option_{{ idx }}">
<span>{{ item?.entry.name }}</span>
</div>
</li>
</ul>
</ng-template>
</adf-search>
<span id="component-result-message">{{ message }}</span>
`,
standalone: true,
imports: [SearchModule, CommonModule]
}]
}], ctorParameters: () => [], propDecorators: { search: [{
type: ViewChild,
args: ['search', { static: true }]
}] } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLmNvbXBvbmVudC5tb2NrLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGliL2NvbnRlbnQtc2VydmljZXMvc3JjL2xpYi9tb2NrL3NlYXJjaC5jb21wb25lbnQubW9jay50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7O0dBZUc7QUFFSCxPQUFPLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNyRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDeEUsT0FBTyxFQUFpQixlQUFlLEVBQUUsaUJBQWlCLEVBQUUsV0FBVyxFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUN4SCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7OztBQUUvQyxNQUFNLFNBQVMsR0FBRyxJQUFJLGlCQUFpQixDQUFDO0lBQ3BDLEtBQUssRUFBRSxJQUFJLFVBQVUsQ0FBQztRQUNsQixFQUFFLEVBQUUsS0FBSztRQUNULElBQUksRUFBRSxPQUFPO1FBQ2IsTUFBTSxFQUFFLElBQUk7UUFDWixPQUFPLEVBQUUsSUFBSSxXQUFXLENBQUM7WUFDckIsUUFBUSxFQUFFLFlBQVk7U0FDekIsQ0FBQztRQUNGLGFBQWEsRUFBRSxJQUFJLFFBQVEsQ0FBQztZQUN4QixXQUFXLEVBQUUsVUFBVTtTQUMxQixDQUFDO1FBQ0YsY0FBYyxFQUFFLElBQUksUUFBUSxDQUFDO1lBQ3pCLFdBQVcsRUFBRSxVQUFVO1NBQzFCLENBQUM7S0FDTCxDQUFDO0NBQ0wsQ0FBQyxDQUFDO0FBRUgsTUFBTSxrQkFBa0IsR0FBRyxJQUFJLGlCQUFpQixDQUFDO0lBQzdDLEtBQUssRUFBRSxJQUFJLFVBQVUsQ0FBQztRQUNsQixFQUFFLEVBQUUsS0FBSztRQUNULElBQUksRUFBRSxVQUFVO1FBQ2hCLE1BQU0sRUFBRSxJQUFJO1FBQ1osT0FBTyxFQUFFLElBQUksV0FBVyxDQUFDO1lBQ3JCLFFBQVEsRUFBRSxZQUFZO1NBQ3pCLENBQUM7UUFDRixhQUFhLEVBQUUsSUFBSSxRQUFRLENBQUM7WUFDeEIsV0FBVyxFQUFFLFdBQVc7U0FDM0IsQ0FBQztRQUNGLGNBQWMsRUFBRSxJQUFJLFFBQVEsQ0FBQztZQUN6QixXQUFXLEVBQUUsV0FBVztTQUMzQixDQUFDO0tBQ0wsQ0FBQztDQUNMLENBQUMsQ0FBQztBQUVILE1BQU0sQ0FBQyxNQUFNLE1BQU0sR0FBRyxJQUFJLGVBQWUsQ0FBQztJQUN0QyxJQUFJLEVBQUU7UUFDRixPQUFPLEVBQUUsQ0FBQyxTQUFTLENBQUM7S0FDdkI7Q0FDSixDQUFDLENBQUM7QUFFSCxNQUFNLENBQUMsTUFBTSxlQUFlLEdBQUcsSUFBSSxlQUFlLENBQUM7SUFDL0MsSUFBSSxFQUFFO1FBQ0YsT0FBTyxFQUFFLENBQUMsa0JBQWtCLENBQUM7S0FDaEM7Q0FDSixDQUFDLENBQUM7QUFFSCxNQUFNLENBQUMsTUFBTSxPQUFPLEdBQUc7SUFDbkIsSUFBSSxFQUFFO1FBQ0YsT0FBTyxFQUFFLENBQUMsU0FBUyxFQUFFLFNBQVMsRUFBRSxTQUFTLENBQUM7S0FDN0M7Q0FDSixDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sUUFBUSxHQUFHO0lBQ3BCLElBQUksRUFBRTtRQUNGLE9BQU8sRUFBRSxFQUFFO0tBQ2Q7Q0FDSixDQUFDO0FBZ0NGLE1BQU0sT0FBTyx5QkFBeUI7SUFTbEM7UUFMQSxZQUFPLEdBQVcsRUFBRSxDQUFDO1FBQ3JCLGlCQUFZLEdBQUcsRUFBRSxDQUFDO1FBQ2xCLGVBQVUsR0FBVyxDQUFDLENBQUM7SUFHUixDQUFDO0lBRWhCLGdCQUFnQixDQUFDLEtBQVU7UUFDdkIsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7SUFDekIsQ0FBQztJQUVELGNBQWM7UUFDVixJQUFJLENBQUMsT0FBTyxHQUFHLGlCQUFpQixDQUFDO0lBQ3JDLENBQUM7SUFFRCxlQUFlLENBQUMsR0FBVztRQUN2QixJQUFJLENBQUMsWUFBWSxHQUFHLEdBQUcsQ0FBQztJQUM1QixDQUFDO0lBRUQsZUFBZSxDQUFDLFVBQXlCO1FBQ3JDLElBQUksQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDO0lBQ2pDLENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxNQUFjO1FBQzVCLElBQUksQ0FBQyxVQUFVLEdBQUcsTUFBTSxDQUFDO0lBQzdCLENBQUM7SUFFRCxjQUFjO1FBQ1YsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUM1QixDQUFDOzhHQWpDUSx5QkFBeUI7a0dBQXpCLHlCQUF5Qix3TEE3QnhCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0tBeUJULDJEQUVTLFlBQVksMFBBQUUsWUFBWTs7MkZBRTNCLHlCQUF5QjtrQkE5QnJDLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0tBeUJUO29CQUNELFVBQVUsRUFBRSxJQUFJO29CQUNoQixPQUFPLEVBQUUsQ0FBQyxZQUFZLEVBQUUsWUFBWSxDQUFDO2lCQUN4Qzt3REFHRyxNQUFNO3NCQURMLFNBQVM7dUJBQUMsUUFBUSxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbIi8qIVxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCDCqSAyMDA1LTIwMjUgSHlsYW5kIFNvZnR3YXJlLCBJbmMuIGFuZCBpdHMgYWZmaWxpYXRlcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuaW1wb3J0IHsgQ29tcG9uZW50LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFNlYXJjaENvbXBvbmVudCB9IGZyb20gJy4uL3NlYXJjaC9jb21wb25lbnRzL3NlYXJjaC5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2VhcmNoUmVxdWVzdCwgUmVzdWx0U2V0UGFnaW5nLCBSZXN1bHRTZXRSb3dFbnRyeSwgQ29udGVudEluZm8sIFVzZXJJbmZvLCBSZXN1bHROb2RlIH0gZnJvbSAnQGFsZnJlc2NvL2pzLWFwaSc7XG5pbXBvcnQgeyBTZWFyY2hNb2R1bGUgfSBmcm9tICcuLi9zZWFyY2gnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcblxuY29uc3QgZW50cnlJdGVtID0gbmV3IFJlc3VsdFNldFJvd0VudHJ5KHtcbiAgICBlbnRyeTogbmV3IFJlc3VsdE5vZGUoe1xuICAgICAgICBpZDogJzEyMycsXG4gICAgICAgIG5hbWU6ICdNeURvYycsXG4gICAgICAgIGlzRmlsZTogdHJ1ZSxcbiAgICAgICAgY29udGVudDogbmV3IENvbnRlbnRJbmZvKHtcbiAgICAgICAgICAgIG1pbWVUeXBlOiAndGV4dC9wbGFpbidcbiAgICAgICAgfSksXG4gICAgICAgIGNyZWF0ZWRCeVVzZXI6IG5ldyBVc2VySW5mbyh7XG4gICAgICAgICAgICBkaXNwbGF5TmFtZTogJ0pvaG4gRG9lJ1xuICAgICAgICB9KSxcbiAgICAgICAgbW9kaWZpZWRCeVVzZXI6IG5ldyBVc2VySW5mbyh7XG4gICAgICAgICAgICBkaXNwbGF5TmFtZTogJ0pvaG4gRG9lJ1xuICAgICAgICB9KVxuICAgIH0pXG59KTtcblxuY29uc3QgZW50cnlEaWZmZXJlbnRJdGVtID0gbmV3IFJlc3VsdFNldFJvd0VudHJ5KHtcbiAgICBlbnRyeTogbmV3IFJlc3VsdE5vZGUoe1xuICAgICAgICBpZDogJzk5OScsXG4gICAgICAgIG5hbWU6ICdURVNUX0RPQycsXG4gICAgICAgIGlzRmlsZTogdHJ1ZSxcbiAgICAgICAgY29udGVudDogbmV3IENvbnRlbnRJbmZvKHtcbiAgICAgICAgICAgIG1pbWVUeXBlOiAndGV4dC9wbGFpbidcbiAgICAgICAgfSksXG4gICAgICAgIGNyZWF0ZWRCeVVzZXI6IG5ldyBVc2VySW5mbyh7XG4gICAgICAgICAgICBkaXNwbGF5TmFtZTogJ0pvaG4gVEVTVCdcbiAgICAgICAgfSksXG4gICAgICAgIG1vZGlmaWVkQnlVc2VyOiBuZXcgVXNlckluZm8oe1xuICAgICAgICAgICAgZGlzcGxheU5hbWU6ICdKb2huIFRFU1QnXG4gICAgICAgIH0pXG4gICAgfSlcbn0pO1xuXG5leHBvcnQgY29uc3QgcmVzdWx0ID0gbmV3IFJlc3VsdFNldFBhZ2luZyh7XG4gICAgbGlzdDoge1xuICAgICAgICBlbnRyaWVzOiBbZW50cnlJdGVtXVxuICAgIH1cbn0pO1xuXG5leHBvcnQgY29uc3QgZGlmZmVyZW50UmVzdWx0ID0gbmV3IFJlc3VsdFNldFBhZ2luZyh7XG4gICAgbGlzdDoge1xuICAgICAgICBlbnRyaWVzOiBbZW50cnlEaWZmZXJlbnRJdGVtXVxuICAgIH1cbn0pO1xuXG5leHBvcnQgY29uc3QgcmVzdWx0cyA9IHtcbiAgICBsaXN0OiB7XG4gICAgICAgIGVudHJpZXM6IFtlbnRyeUl0ZW0sIGVudHJ5SXRlbSwgZW50cnlJdGVtXVxuICAgIH1cbn07XG5cbmV4cG9ydCBjb25zdCBub1Jlc3VsdCA9IHtcbiAgICBsaXN0OiB7XG4gICAgICAgIGVudHJpZXM6IFtdXG4gICAgfVxufTtcblxuQENvbXBvbmVudCh7XG4gICAgdGVtcGxhdGU6IGBcbiAgICAgICAgPGFkZi1zZWFyY2hcbiAgICAgICAgICAgIFtzZWFyY2hUZXJtXT1cInNlYXJjaGVkV29yZFwiXG4gICAgICAgICAgICBbbWF4UmVzdWx0c109XCJtYXhSZXN1bHRzXCJcbiAgICAgICAgICAgIChlcnJvcik9XCJzaG93U2VhcmNoUmVzdWx0KCdFUlJPUicpXCJcbiAgICAgICAgICAgIChzdWNjZXNzKT1cInNob3dTZWFyY2hSZXN1bHQoJ3N1Y2Nlc3MnKVwiXG4gICAgICAgICAgICAjc2VhcmNoXG4gICAgICAgID5cbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBsZXQtZGF0YT5cbiAgICAgICAgICAgICAgICA8dWwgaWQ9XCJhdXRvY29tcGxldGUtc2VhcmNoLXJlc3VsdC1saXN0XCI+XG4gICAgICAgICAgICAgICAgICAgIDxsaVxuICAgICAgICAgICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IGl0ZW0gb2YgZGF0YT8ubGlzdD8uZW50cmllczsgbGV0IGlkeCA9IGluZGV4XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJlbGVtZW50Q2xpY2tlZCgpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRhYmluZGV4PVwiMFwiXG4gICAgICAgICAgICAgICAgICAgICAgICByb2xlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIChrZXl1cC5lbnRlcik9XCJlbGVtZW50Q2xpY2tlZCgpXCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD1cInJlc3VsdF9vcHRpb25fe3sgaWR4IH19XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+e3sgaXRlbT8uZW50cnkubmFtZSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgIDwvdWw+XG4gICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICA8L2FkZi1zZWFyY2g+XG4gICAgICAgIDxzcGFuIGlkPVwiY29tcG9uZW50LXJlc3VsdC1tZXNzYWdlXCI+e3sgbWVzc2FnZSB9fTwvc3Bhbj5cbiAgICBgLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW1NlYXJjaE1vZHVsZSwgQ29tbW9uTW9kdWxlXVxufSlcbmV4cG9ydCBjbGFzcyBTaW1wbGVTZWFyY2hUZXN0Q29tcG9uZW50IHtcbiAgICBAVmlld0NoaWxkKCdzZWFyY2gnLCB7IHN0YXRpYzogdHJ1ZSB9KVxuICAgIHNlYXJjaDogU2VhcmNoQ29tcG9uZW50O1xuXG4gICAgbWVzc2FnZTogc3RyaW5nID0gJyc7XG4gICAgc2VhcmNoZWRXb3JkID0gJyc7XG4gICAgbWF4UmVzdWx0czogbnVtYmVyID0gNTtcbiAgICBzZWFyY2hOb2RlOiBTZWFyY2hSZXF1ZXN0O1xuXG4gICAgY29uc3RydWN0b3IoKSB7fVxuXG4gICAgc2hvd1NlYXJjaFJlc3VsdChldmVudDogYW55KSB7XG4gICAgICAgIHRoaXMubWVzc2FnZSA9IGV2ZW50O1xuICAgIH1cblxuICAgIGVsZW1lbnRDbGlja2VkKCkge1xuICAgICAgICB0aGlzLm1lc3NhZ2UgPSAnZWxlbWVudCBjbGlja2VkJztcbiAgICB9XG5cbiAgICBzZXRTZWFyY2hXb3JkVG8oc3RyOiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy5zZWFyY2hlZFdvcmQgPSBzdHI7XG4gICAgfVxuXG4gICAgc2V0U2VhcmNoTm9kZVRvKHNlYXJjaE5vZGU6IFNlYXJjaFJlcXVlc3QpIHtcbiAgICAgICAgdGhpcy5zZWFyY2hOb2RlID0gc2VhcmNoTm9kZTtcbiAgICB9XG5cbiAgICBjaGFuZ2VNYXhSZXN1bHRUbyhuZXdNYXg6IG51bWJlcikge1xuICAgICAgICB0aGlzLm1heFJlc3VsdHMgPSBuZXdNYXg7XG4gICAgfVxuXG4gICAgZm9yY2VIaWRlUGFuZWwoKSB7XG4gICAgICAgIHRoaXMuc2VhcmNoLmhpZGVQYW5lbCgpO1xuICAgIH1cbn1cbiJdfQ==