@visa/nova-angular
Version:
Visa Product Design System Nova Angular library
69 lines • 7.1 kB
JavaScript
/**
* © 2025 Visa
*
* 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmxvYXRpbmctdWktdHJpZ2dlci5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL25vdmEtbGliL3NyYy9saWIvZmxvYXRpbmctdWktdHJpZ2dlci9mbG9hdGluZy11aS10cmlnZ2VyLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7O0lBZUk7QUFDSixPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQU0xRSxNQUFNLE9BQU8sMEJBQTBCO0lBV3JDLElBQ0ksV0FBVztRQUNiLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLFlBQVksQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUM5QyxDQUFDO0lBRUQsSUFDSSxnQkFBZ0I7UUFDbEIsSUFBSSxJQUFJLENBQUMscUJBQXFCLEVBQUUsQ0FBQztZQUMvQixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUM7UUFDdkIsQ0FBQztJQUNILENBQUM7SUFHRCxJQUNJLGVBQWU7UUFDakIsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztZQUMxQixPQUFPLElBQUksQ0FBQyxlQUFlLENBQUM7UUFDOUIsQ0FBQztJQUNILENBQUM7SUFFRCxJQUNJLGdCQUFnQjtRQUNsQixJQUFJLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO1lBQy9CLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQztRQUM5QixDQUFDO0lBQ0gsQ0FBQztJQUVELFlBQW1CLEVBQWM7UUFBZCxPQUFFLEdBQUYsRUFBRSxDQUFZO1FBckNqQywyRkFBMkY7UUFDM0YscUJBQWdCLEdBQUcsS0FBSyxDQUFDO1FBQ3pCLDBCQUFxQixHQUFHLEtBQUssQ0FBQztRQUM5QixhQUFRLEdBQUcsS0FBSyxDQUFDO0lBa0NtQixDQUFDOytHQXRDMUIsMEJBQTBCO21HQUExQiwwQkFBMEI7OzRGQUExQiwwQkFBMEI7a0JBSnRDLFNBQVM7bUJBQUM7b0JBQ1QsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLFFBQVEsRUFBRSx5QkFBeUI7aUJBQ3BDOytFQVdVLEtBQUs7c0JBQWIsS0FBSztnQkFFRixXQUFXO3NCQURkLFdBQVc7dUJBQUMsT0FBTztnQkFNaEIsZ0JBQWdCO3NCQURuQixXQUFXO3VCQUFDLG9CQUFvQjtnQkFTN0IsZUFBZTtzQkFEbEIsV0FBVzt1QkFBQyx1QkFBdUI7Z0JBUWhDLGdCQUFnQjtzQkFEbkIsV0FBVzt1QkFBQyxvQkFBb0IiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqICAgICAgICAgICAgICDCqSAyMDI1IFZpc2FcbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICpcbiAqKi9cbmltcG9ydCB7IERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgSG9zdEJpbmRpbmcsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBEaXJlY3RpdmUoe1xuICBzdGFuZGFsb25lOiB0cnVlLFxuICBzZWxlY3RvcjogJ1t2LWZsb2F0aW5nLXVpLXRyaWdnZXJdJ1xufSlcbmV4cG9ydCBjbGFzcyBGbG9hdGluZ1VJVHJpZ2dlckRpcmVjdGl2ZSB7XG4gIC8vIHRoZSBmb2xsb3dpbmcgYXJlIGRldGVybWluZWQgYnkgZmxvYXRpbmctdWktY29udGFpbmVyIGFuZCB1c2VkIHRvIHNldCBjb3JyZWN0IGFyaWEgcm9sZXNcbiAgX3RyaWdnZXJzVG9vbHRpcCA9IGZhbHNlO1xuICBfdHJpZ2dlcnNEcm9wZG93bk1lbnUgPSBmYWxzZTtcbiAgX2lzU2hvd24gPSBmYWxzZTtcblxuICAvKipcbiAgICogUHJvdmlkZXMgY3VzdG9tIGNsYXNzJiM0MDtlcyYjNDE7IGZvciBjdXN0b20gc3R5bGluZy5cbiAgICogQGRlZmF1bHQgLnYtZHJvcGRvd25cbiAgICovXG4gIEBJbnB1dCgpIGNsYXNzOiBzdHJpbmc7XG4gIEBIb3N0QmluZGluZygnY2xhc3MnKVxuICBnZXQgaG9zdENsYXNzZXMoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gW3RoaXMuY2xhc3MsICd2LWRyb3Bkb3duJ10uam9pbignICcpO1xuICB9XG5cbiAgQEhvc3RCaW5kaW5nKCdhdHRyLmFyaWEtZXhwYW5kZWQnKVxuICBnZXQgaG9zdEFyaWFFeHBhbmRlZCgpOiBib29sZWFuIHwgbnVsbCB8IHZvaWQge1xuICAgIGlmICh0aGlzLl90cmlnZ2Vyc0Ryb3Bkb3duTWVudSkge1xuICAgICAgcmV0dXJuIHRoaXMuX2lzU2hvd247XG4gICAgfVxuICB9XG5cbiAgX2Zsb2F0aW5nRWxlbUlEOiBzdHJpbmc7XG4gIEBIb3N0QmluZGluZygnYXR0ci5hcmlhLWRlc2NyaWJlZGJ5JylcbiAgZ2V0IGhvc3REZXNjcmliZWRieSgpOiBzdHJpbmcgfCB2b2lkIHtcbiAgICBpZiAodGhpcy5fdHJpZ2dlcnNUb29sdGlwKSB7XG4gICAgICByZXR1cm4gdGhpcy5fZmxvYXRpbmdFbGVtSUQ7XG4gICAgfVxuICB9XG5cbiAgQEhvc3RCaW5kaW5nKCdhdHRyLmFyaWEtY29udHJvbHMnKVxuICBnZXQgaG9zdEFyaWFDb250cm9scygpOiBzdHJpbmcgfCB2b2lkIHtcbiAgICBpZiAodGhpcy5fdHJpZ2dlcnNEcm9wZG93bk1lbnUpIHtcbiAgICAgIHJldHVybiB0aGlzLl9mbG9hdGluZ0VsZW1JRDtcbiAgICB9XG4gIH1cblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgZWw6IEVsZW1lbnRSZWYpIHt9XG59XG4iXX0=