@visa/nova-angular
Version:
Visa Product Design System Nova Angular library
136 lines • 14.8 kB
JavaScript
/**
* Copyright (c) 2025 Visa, Inc.
*
* 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 { coerceBooleanProperty } from '@angular/cdk/coercion';
import { ContentChildren, Directive, EventEmitter, HostBinding, Input, Optional, Output, QueryList, signal } from '@angular/core';
import { ButtonColor, ButtonSize } from '../button/button.constants';
import { ButtonDirective } from '../button/button.directive';
import * as i0 from "@angular/core";
import * as i1 from "../button/button.directive";
export class AccordionHeadingDirective {
constructor(hostButton) {
this.hostButton = hostButton;
this._subtle = signal(false);
this._class = '';
this._expanded = false;
/**
* Emits item index when accordion item is toggled (collapsed and expanded).
*/
this.toggled = new EventEmitter();
}
/**
* Provides custom class(es) for custom styling.
* @default .v-accordion-heading
*/
get class() {
return [this._class, 'v-accordion-heading'].join(' ');
}
set class(value) {
this._class = value;
}
get hostClass() {
return this.class;
}
/**
* Sets expanded state of accordion heading. <br />
* <strong>This property is overriden when used with details/summary version of accordion. Instead, refer to the native <code>open</code> property of the details element.</strong>
* @default false
*/
get expanded() {
return this._expanded;
}
set expanded(value) {
this._expanded = coerceBooleanProperty(value);
this.toggled.emit(this._index);
}
get hostBackground() {
if (this._subtle()) {
return 'transparent';
}
}
get hostGap() {
if (this._subtle()) {
return '2px';
}
}
get hostForeground() {
// only apply subtle foreground color if the button is not disabled
if (this._subtle() && !(this.hostButton?.disabled || this.hostButton?.ariaDisabled)) {
return 'var(--palette-default-active)';
}
}
ngAfterContentInit() {
// children buttons
if (this.buttons) {
this.buttons.toArray().forEach((button) => {
if (button.toggleIcon || button.toggleIconComponent) {
this._buttonHeading = button;
}
});
}
// [v-button][v-accordion-heading] instance
if (this.hostButton) {
if (!this.hostButton._buttonSizeSetByUser) {
this.hostButton.buttonSize = ButtonSize.LARGE;
this.hostButton._buttonSizeSetByUser = false;
}
if (!this.hostButton._buttonColorSetByUser) {
this.hostButton.buttonColor = ButtonColor.SECONDARY;
this.hostButton._buttonColorSetByUser = false;
}
}
}
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: AccordionHeadingDirective, deps: [{ token: i1.ButtonDirective, optional: true }], target: i0.ɵɵFactoryTarget.Directive }); }
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.12", type: AccordionHeadingDirective, isStandalone: true, selector: "[v-accordion-heading]", inputs: { class: "class", expanded: "expanded" }, outputs: { toggled: "toggled" }, host: { properties: { "class": "this.hostClass", "style.--v-button-default-background": "this.hostBackground", "style.--v-accordion-background": "this.hostBackground", "style.--v-button-default-gap": "this.hostGap", "style.--v-accordion-items-gap": "this.hostGap", "style.--v-accordion-foreground-initial": "this.hostForeground" } }, queries: [{ propertyName: "buttons", predicate: ButtonDirective }], ngImport: i0 }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: AccordionHeadingDirective, decorators: [{
type: Directive,
args: [{
standalone: true,
// tslint:disable-next-line:directive-selector
selector: '[v-accordion-heading]'
}]
}], ctorParameters: () => [{ type: i1.ButtonDirective, decorators: [{
type: Optional
}] }], propDecorators: { buttons: [{
type: ContentChildren,
args: [ButtonDirective]
}], class: [{
type: Input
}], hostClass: [{
type: HostBinding,
args: ['class']
}], expanded: [{
type: Input
}], toggled: [{
type: Output
}], hostBackground: [{
type: HostBinding,
args: ['style.--v-button-default-background']
}, {
type: HostBinding,
args: ['style.--v-accordion-background']
}], hostGap: [{
type: HostBinding,
args: ['style.--v-button-default-gap']
}, {
type: HostBinding,
args: ['style.--v-accordion-items-gap']
}], hostForeground: [{
type: HostBinding,
args: ['style.--v-accordion-foreground-initial']
}] } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjb3JkaW9uLWhlYWRpbmcuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9ub3ZhLWxpYi9zcmMvbGliL2FjY29yZGlvbi1oZWFkaW5nL2FjY29yZGlvbi1oZWFkaW5nLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7O0lBZUk7QUFDSixPQUFPLEVBQWdCLHFCQUFxQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDNUUsT0FBTyxFQUVMLGVBQWUsRUFDZixTQUFTLEVBQ1QsWUFBWSxFQUNaLFdBQVcsRUFDWCxLQUFLLEVBQ0wsUUFBUSxFQUNSLE1BQU0sRUFDTixTQUFTLEVBQ1QsTUFBTSxFQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxXQUFXLEVBQUUsVUFBVSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDckUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDRCQUE0QixDQUFDOzs7QUFPN0QsTUFBTSxPQUFPLHlCQUF5QjtJQU1wQyxZQUErQixVQUE0QjtRQUE1QixlQUFVLEdBQVYsVUFBVSxDQUFrQjtRQUozRCxZQUFPLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBaUJ4QixXQUFNLEdBQVcsRUFBRSxDQUFDO1FBbUJwQixjQUFTLEdBQVksS0FBSyxDQUFDO1FBRTNCOztXQUVHO1FBQ08sWUFBTyxHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7SUFyQ2UsQ0FBQztJQUUvRDs7O09BR0c7SUFDSCxJQUNJLEtBQUs7UUFDUCxPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxxQkFBcUIsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUN4RCxDQUFDO0lBQ0QsSUFBSSxLQUFLLENBQUMsS0FBYTtRQUNyQixJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztJQUN0QixDQUFDO0lBRUQsSUFDSSxTQUFTO1FBQ1gsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDO0lBQ3BCLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsSUFDSSxRQUFRO1FBQ1YsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQ3hCLENBQUM7SUFDRCxJQUFJLFFBQVEsQ0FBQyxLQUFtQjtRQUM5QixJQUFJLENBQUMsU0FBUyxHQUFHLHFCQUFxQixDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzlDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNqQyxDQUFDO0lBUUQsSUFFSSxjQUFjO1FBQ2hCLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUM7WUFDbkIsT0FBTyxhQUFhLENBQUM7UUFDdkIsQ0FBQztJQUNILENBQUM7SUFFRCxJQUVJLE9BQU87UUFDVCxJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDO1lBQ25CLE9BQU8sS0FBSyxDQUFDO1FBQ2YsQ0FBQztJQUNILENBQUM7SUFFRCxJQUNJLGNBQWM7UUFDaEIsbUVBQW1FO1FBQ25FLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLFFBQVEsSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFLFlBQVksQ0FBQyxFQUFFLENBQUM7WUFDcEYsT0FBTywrQkFBK0IsQ0FBQztRQUN6QyxDQUFDO0lBQ0gsQ0FBQztJQUVELGtCQUFrQjtRQUNoQixtQkFBbUI7UUFDbkIsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDakIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRTtnQkFDeEMsSUFBSSxNQUFNLENBQUMsVUFBVSxJQUFJLE1BQU0sQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO29CQUNwRCxJQUFJLENBQUMsY0FBYyxHQUFHLE1BQU0sQ0FBQztnQkFDL0IsQ0FBQztZQUNILENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztRQUVELDJDQUEyQztRQUMzQyxJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUNwQixJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO2dCQUMxQyxJQUFJLENBQUMsVUFBVSxDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUMsS0FBSyxDQUFDO2dCQUM5QyxJQUFJLENBQUMsVUFBVSxDQUFDLG9CQUFvQixHQUFHLEtBQUssQ0FBQztZQUMvQyxDQUFDO1lBQ0QsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMscUJBQXFCLEVBQUUsQ0FBQztnQkFDM0MsSUFBSSxDQUFDLFVBQVUsQ0FBQyxXQUFXLEdBQUcsV0FBVyxDQUFDLFNBQVMsQ0FBQztnQkFDcEQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxxQkFBcUIsR0FBRyxLQUFLLENBQUM7WUFDaEQsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDOytHQTFGVSx5QkFBeUI7bUdBQXpCLHlCQUF5QiwwZ0JBQ25CLGVBQWU7OzRGQURyQix5QkFBeUI7a0JBTHJDLFNBQVM7bUJBQUM7b0JBQ1QsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLDhDQUE4QztvQkFDOUMsUUFBUSxFQUFFLHVCQUF1QjtpQkFDbEM7OzBCQU9jLFFBQVE7eUNBTGEsT0FBTztzQkFBeEMsZUFBZTt1QkFBQyxlQUFlO2dCQVk1QixLQUFLO3NCQURSLEtBQUs7Z0JBU0YsU0FBUztzQkFEWixXQUFXO3VCQUFDLE9BQU87Z0JBV2hCLFFBQVE7c0JBRFgsS0FBSztnQkFhSSxPQUFPO3NCQUFoQixNQUFNO2dCQUlILGNBQWM7c0JBRmpCLFdBQVc7dUJBQUMscUNBQXFDOztzQkFDakQsV0FBVzt1QkFBQyxnQ0FBZ0M7Z0JBU3pDLE9BQU87c0JBRlYsV0FBVzt1QkFBQyw4QkFBOEI7O3NCQUMxQyxXQUFXO3VCQUFDLCtCQUErQjtnQkFReEMsY0FBYztzQkFEakIsV0FBVzt1QkFBQyx3Q0FBd0MiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqICAgICAgICAgICAgICBDb3B5cmlnaHQgKGMpIDIwMjUgVmlzYSwgSW5jLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKlxuICoqL1xuaW1wb3J0IHsgQm9vbGVhbklucHV0LCBjb2VyY2VCb29sZWFuUHJvcGVydHkgfSBmcm9tICdAYW5ndWxhci9jZGsvY29lcmNpb24nO1xuaW1wb3J0IHtcbiAgQWZ0ZXJDb250ZW50SW5pdCxcbiAgQ29udGVudENoaWxkcmVuLFxuICBEaXJlY3RpdmUsXG4gIEV2ZW50RW1pdHRlcixcbiAgSG9zdEJpbmRpbmcsXG4gIElucHV0LFxuICBPcHRpb25hbCxcbiAgT3V0cHV0LFxuICBRdWVyeUxpc3QsXG4gIHNpZ25hbFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJ1dHRvbkNvbG9yLCBCdXR0b25TaXplIH0gZnJvbSAnLi4vYnV0dG9uL2J1dHRvbi5jb25zdGFudHMnO1xuaW1wb3J0IHsgQnV0dG9uRGlyZWN0aXZlIH0gZnJvbSAnLi4vYnV0dG9uL2J1dHRvbi5kaXJlY3RpdmUnO1xuXG5ARGlyZWN0aXZlKHtcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOmRpcmVjdGl2ZS1zZWxlY3RvclxuICBzZWxlY3RvcjogJ1t2LWFjY29yZGlvbi1oZWFkaW5nXSdcbn0pXG5leHBvcnQgY2xhc3MgQWNjb3JkaW9uSGVhZGluZ0RpcmVjdGl2ZSBpbXBsZW1lbnRzIEFmdGVyQ29udGVudEluaXQge1xuICBAQ29udGVudENoaWxkcmVuKEJ1dHRvbkRpcmVjdGl2ZSkgYnV0dG9uczogUXVlcnlMaXN0PEJ1dHRvbkRpcmVjdGl2ZT47XG4gIF9zdWJ0bGUgPSBzaWduYWwoZmFsc2UpO1xuICBfaW5kZXg6IG51bWJlcjtcbiAgX2J1dHRvbkhlYWRpbmc6IEJ1dHRvbkRpcmVjdGl2ZTtcblxuICBjb25zdHJ1Y3RvcihAT3B0aW9uYWwoKSBwdWJsaWMgaG9zdEJ1dHRvbj86IEJ1dHRvbkRpcmVjdGl2ZSkge31cblxuICAvKipcbiAgICogUHJvdmlkZXMgY3VzdG9tIGNsYXNzJiM0MDtlcyYjNDE7IGZvciBjdXN0b20gc3R5bGluZy5cbiAgICogQGRlZmF1bHQgLnYtYWNjb3JkaW9uLWhlYWRpbmdcbiAgICovXG4gIEBJbnB1dCgpXG4gIGdldCBjbGFzcygpOiBzdHJpbmcge1xuICAgIHJldHVybiBbdGhpcy5fY2xhc3MsICd2LWFjY29yZGlvbi1oZWFkaW5nJ10uam9pbignICcpO1xuICB9XG4gIHNldCBjbGFzcyh2YWx1ZTogc3RyaW5nKSB7XG4gICAgdGhpcy5fY2xhc3MgPSB2YWx1ZTtcbiAgfVxuICBfY2xhc3M6IHN0cmluZyA9ICcnO1xuICBASG9zdEJpbmRpbmcoJ2NsYXNzJylcbiAgZ2V0IGhvc3RDbGFzcygpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmNsYXNzO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgZXhwYW5kZWQgc3RhdGUgb2YgYWNjb3JkaW9uIGhlYWRpbmcuIDxiciAvPlxuICAgKiA8c3Ryb25nPlRoaXMgcHJvcGVydHkgaXMgb3ZlcnJpZGVuIHdoZW4gdXNlZCB3aXRoIGRldGFpbHMvc3VtbWFyeSB2ZXJzaW9uIG9mIGFjY29yZGlvbi4gSW5zdGVhZCwgcmVmZXIgdG8gdGhlIG5hdGl2ZSA8Y29kZT5vcGVuPC9jb2RlPiBwcm9wZXJ0eSBvZiB0aGUgZGV0YWlscyBlbGVtZW50Ljwvc3Ryb25nPlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgQElucHV0KClcbiAgZ2V0IGV4cGFuZGVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9leHBhbmRlZDtcbiAgfVxuICBzZXQgZXhwYW5kZWQodmFsdWU6IEJvb2xlYW5JbnB1dCkge1xuICAgIHRoaXMuX2V4cGFuZGVkID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcbiAgICB0aGlzLnRvZ2dsZWQuZW1pdCh0aGlzLl9pbmRleCk7XG4gIH1cbiAgX2V4cGFuZGVkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIEVtaXRzIGl0ZW0gaW5kZXggd2hlbiBhY2NvcmRpb24gaXRlbSBpcyB0b2dnbGVkIChjb2xsYXBzZWQgYW5kIGV4cGFuZGVkKS5cbiAgICovXG4gIEBPdXRwdXQoKSB0b2dnbGVkID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XG5cbiAgQEhvc3RCaW5kaW5nKCdzdHlsZS4tLXYtYnV0dG9uLWRlZmF1bHQtYmFja2dyb3VuZCcpXG4gIEBIb3N0QmluZGluZygnc3R5bGUuLS12LWFjY29yZGlvbi1iYWNrZ3JvdW5kJylcbiAgZ2V0IGhvc3RCYWNrZ3JvdW5kKCk6IHN0cmluZyB8IHZvaWQge1xuICAgIGlmICh0aGlzLl9zdWJ0bGUoKSkge1xuICAgICAgcmV0dXJuICd0cmFuc3BhcmVudCc7XG4gICAgfVxuICB9XG5cbiAgQEhvc3RCaW5kaW5nKCdzdHlsZS4tLXYtYnV0dG9uLWRlZmF1bHQtZ2FwJylcbiAgQEhvc3RCaW5kaW5nKCdzdHlsZS4tLXYtYWNjb3JkaW9uLWl0ZW1zLWdhcCcpXG4gIGdldCBob3N0R2FwKCk6IHN0cmluZyB8IHZvaWQge1xuICAgIGlmICh0aGlzLl9zdWJ0bGUoKSkge1xuICAgICAgcmV0dXJuICcycHgnO1xuICAgIH1cbiAgfVxuXG4gIEBIb3N0QmluZGluZygnc3R5bGUuLS12LWFjY29yZGlvbi1mb3JlZ3JvdW5kLWluaXRpYWwnKVxuICBnZXQgaG9zdEZvcmVncm91bmQoKTogc3RyaW5nIHwgdm9pZCB7XG4gICAgLy8gb25seSBhcHBseSBzdWJ0bGUgZm9yZWdyb3VuZCBjb2xvciBpZiB0aGUgYnV0dG9uIGlzIG5vdCBkaXNhYmxlZFxuICAgIGlmICh0aGlzLl9zdWJ0bGUoKSAmJiAhKHRoaXMuaG9zdEJ1dHRvbj8uZGlzYWJsZWQgfHwgdGhpcy5ob3N0QnV0dG9uPy5hcmlhRGlzYWJsZWQpKSB7XG4gICAgICByZXR1cm4gJ3ZhcigtLXBhbGV0dGUtZGVmYXVsdC1hY3RpdmUpJztcbiAgICB9XG4gIH1cblxuICBuZ0FmdGVyQ29udGVudEluaXQoKTogdm9pZCB7XG4gICAgLy8gY2hpbGRyZW4gYnV0dG9uc1xuICAgIGlmICh0aGlzLmJ1dHRvbnMpIHtcbiAgICAgIHRoaXMuYnV0dG9ucy50b0FycmF5KCkuZm9yRWFjaCgoYnV0dG9uKSA9PiB7XG4gICAgICAgIGlmIChidXR0b24udG9nZ2xlSWNvbiB8fCBidXR0b24udG9nZ2xlSWNvbkNvbXBvbmVudCkge1xuICAgICAgICAgIHRoaXMuX2J1dHRvbkhlYWRpbmcgPSBidXR0b247XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cblxuICAgIC8vIFt2LWJ1dHRvbl1bdi1hY2NvcmRpb24taGVhZGluZ10gaW5zdGFuY2VcbiAgICBpZiAodGhpcy5ob3N0QnV0dG9uKSB7XG4gICAgICBpZiAoIXRoaXMuaG9zdEJ1dHRvbi5fYnV0dG9uU2l6ZVNldEJ5VXNlcikge1xuICAgICAgICB0aGlzLmhvc3RCdXR0b24uYnV0dG9uU2l6ZSA9IEJ1dHRvblNpemUuTEFSR0U7XG4gICAgICAgIHRoaXMuaG9zdEJ1dHRvbi5fYnV0dG9uU2l6ZVNldEJ5VXNlciA9IGZhbHNlO1xuICAgICAgfVxuICAgICAgaWYgKCF0aGlzLmhvc3RCdXR0b24uX2J1dHRvbkNvbG9yU2V0QnlVc2VyKSB7XG4gICAgICAgIHRoaXMuaG9zdEJ1dHRvbi5idXR0b25Db2xvciA9IEJ1dHRvbkNvbG9yLlNFQ09OREFSWTtcbiAgICAgICAgdGhpcy5ob3N0QnV0dG9uLl9idXR0b25Db2xvclNldEJ5VXNlciA9IGZhbHNlO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIl19