UNPKG

@visa/nova-angular

Version:

Visa Product Design System Nova Angular library

69 lines 7.14 kB
/** * 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 { Directive, ElementRef, HostBinding, Input } from '@angular/core'; import * as i0 from "@angular/core"; export class FloatingUITriggerDirective { get hostClasses() { return [this.class, 'v-dropdown'].join(' '); } get hostAriaExpanded() { if (this._triggersDropdownMenu) { return this._isShown; } } get hostDescribedby() { if (this._triggersTooltip) { return this._floatingElemID; } } get hostAriaControls() { if (this._triggersDropdownMenu) { return this._floatingElemID; } } constructor(el) { this.el = el; // the following are determined by floating-ui-container and used to set correct aria roles this._triggersTooltip = false; this._triggersDropdownMenu = false; this._isShown = false; } static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FloatingUITriggerDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); } static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.12", type: FloatingUITriggerDirective, isStandalone: true, selector: "[v-floating-ui-trigger]", inputs: { class: "class" }, host: { properties: { "class": "this.hostClasses", "attr.aria-expanded": "this.hostAriaExpanded", "attr.aria-describedby": "this.hostDescribedby", "attr.aria-controls": "this.hostAriaControls" } }, ngImport: i0 }); } } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FloatingUITriggerDirective, decorators: [{ type: Directive, args: [{ standalone: true, selector: '[v-floating-ui-trigger]' }] }], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { class: [{ type: Input }], hostClasses: [{ type: HostBinding, args: ['class'] }], hostAriaExpanded: [{ type: HostBinding, args: ['attr.aria-expanded'] }], hostDescribedby: [{ type: HostBinding, args: ['attr.aria-describedby'] }], hostAriaControls: [{ type: HostBinding, args: ['attr.aria-controls'] }] } }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmxvYXRpbmctdWktdHJpZ2dlci5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL25vdmEtbGliL3NyYy9saWIvZmxvYXRpbmctdWktdHJpZ2dlci9mbG9hdGluZy11aS10cmlnZ2VyLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7O0lBZUk7QUFDSixPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQU0xRSxNQUFNLE9BQU8sMEJBQTBCO0lBV3JDLElBQ0ksV0FBVztRQUNiLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLFlBQVksQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUM5QyxDQUFDO0lBRUQsSUFDSSxnQkFBZ0I7UUFDbEIsSUFBSSxJQUFJLENBQUMscUJBQXFCLEVBQUUsQ0FBQztZQUMvQixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUM7UUFDdkIsQ0FBQztJQUNILENBQUM7SUFHRCxJQUNJLGVBQWU7UUFDakIsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztZQUMxQixPQUFPLElBQUksQ0FBQyxlQUFlLENBQUM7UUFDOUIsQ0FBQztJQUNILENBQUM7SUFFRCxJQUNJLGdCQUFnQjtRQUNsQixJQUFJLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO1lBQy9CLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQztRQUM5QixDQUFDO0lBQ0gsQ0FBQztJQUVELFlBQW1CLEVBQWM7UUFBZCxPQUFFLEdBQUYsRUFBRSxDQUFZO1FBckNqQywyRkFBMkY7UUFDM0YscUJBQWdCLEdBQUcsS0FBSyxDQUFDO1FBQ3pCLDBCQUFxQixHQUFHLEtBQUssQ0FBQztRQUM5QixhQUFRLEdBQUcsS0FBSyxDQUFDO0lBa0NtQixDQUFDOytHQXRDMUIsMEJBQTBCO21HQUExQiwwQkFBMEI7OzRGQUExQiwwQkFBMEI7a0JBSnRDLFNBQVM7bUJBQUM7b0JBQ1QsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLFFBQVEsRUFBRSx5QkFBeUI7aUJBQ3BDOytFQVdVLEtBQUs7c0JBQWIsS0FBSztnQkFFRixXQUFXO3NCQURkLFdBQVc7dUJBQUMsT0FBTztnQkFNaEIsZ0JBQWdCO3NCQURuQixXQUFXO3VCQUFDLG9CQUFvQjtnQkFTN0IsZUFBZTtzQkFEbEIsV0FBVzt1QkFBQyx1QkFBdUI7Z0JBUWhDLGdCQUFnQjtzQkFEbkIsV0FBVzt1QkFBQyxvQkFBb0IiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqICAgICAgICAgICAgICBDb3B5cmlnaHQgKGMpIDIwMjUgVmlzYSwgSW5jLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKlxuICoqL1xuaW1wb3J0IHsgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBIb3N0QmluZGluZywgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQERpcmVjdGl2ZSh7XG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIHNlbGVjdG9yOiAnW3YtZmxvYXRpbmctdWktdHJpZ2dlcl0nXG59KVxuZXhwb3J0IGNsYXNzIEZsb2F0aW5nVUlUcmlnZ2VyRGlyZWN0aXZlIHtcbiAgLy8gdGhlIGZvbGxvd2luZyBhcmUgZGV0ZXJtaW5lZCBieSBmbG9hdGluZy11aS1jb250YWluZXIgYW5kIHVzZWQgdG8gc2V0IGNvcnJlY3QgYXJpYSByb2xlc1xuICBfdHJpZ2dlcnNUb29sdGlwID0gZmFsc2U7XG4gIF90cmlnZ2Vyc0Ryb3Bkb3duTWVudSA9IGZhbHNlO1xuICBfaXNTaG93biA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBQcm92aWRlcyBjdXN0b20gY2xhc3MmIzQwO2VzJiM0MTsgZm9yIGN1c3RvbSBzdHlsaW5nLlxuICAgKiBAZGVmYXVsdCAudi1kcm9wZG93blxuICAgKi9cbiAgQElucHV0KCkgY2xhc3M6IHN0cmluZztcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcycpXG4gIGdldCBob3N0Q2xhc3NlcygpOiBzdHJpbmcge1xuICAgIHJldHVybiBbdGhpcy5jbGFzcywgJ3YtZHJvcGRvd24nXS5qb2luKCcgJyk7XG4gIH1cblxuICBASG9zdEJpbmRpbmcoJ2F0dHIuYXJpYS1leHBhbmRlZCcpXG4gIGdldCBob3N0QXJpYUV4cGFuZGVkKCk6IGJvb2xlYW4gfCBudWxsIHwgdm9pZCB7XG4gICAgaWYgKHRoaXMuX3RyaWdnZXJzRHJvcGRvd25NZW51KSB7XG4gICAgICByZXR1cm4gdGhpcy5faXNTaG93bjtcbiAgICB9XG4gIH1cblxuICBfZmxvYXRpbmdFbGVtSUQ6IHN0cmluZztcbiAgQEhvc3RCaW5kaW5nKCdhdHRyLmFyaWEtZGVzY3JpYmVkYnknKVxuICBnZXQgaG9zdERlc2NyaWJlZGJ5KCk6IHN0cmluZyB8IHZvaWQge1xuICAgIGlmICh0aGlzLl90cmlnZ2Vyc1Rvb2x0aXApIHtcbiAgICAgIHJldHVybiB0aGlzLl9mbG9hdGluZ0VsZW1JRDtcbiAgICB9XG4gIH1cblxuICBASG9zdEJpbmRpbmcoJ2F0dHIuYXJpYS1jb250cm9scycpXG4gIGdldCBob3N0QXJpYUNvbnRyb2xzKCk6IHN0cmluZyB8IHZvaWQge1xuICAgIGlmICh0aGlzLl90cmlnZ2Vyc0Ryb3Bkb3duTWVudSkge1xuICAgICAgcmV0dXJuIHRoaXMuX2Zsb2F0aW5nRWxlbUlEO1xuICAgIH1cbiAgfVxuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBlbDogRWxlbWVudFJlZikge31cbn1cbiJdfQ==