UNPKG

@visa/nova-angular

Version:

Visa Product Design System Nova Angular library

56 lines 6.72 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 { BaseInteractiveDirective } from '../_utilities/angular-specific-directives/base-interactive.directive'; import * as i0 from "@angular/core"; export class DropdownItemDirective extends BaseInteractiveDirective { constructor(el) { super(el); this.el = el; this.buttonItem = false; this.cssClasses = ''; /** * Provides custom class(es) for custom styling. * @default .v-listbox-item.v-dropdown-item * @default .v-listbox-item.v-dropdown-item.v-button.v-button-tertiary.v-justify-content-start when the host element is a button. */ this.class = ''; // override the standard class attr with a new one. this.cssClasses = 'v-listbox-item v-dropdown-item'; if (this.el.nativeElement.tagName.toLowerCase() === 'button') { this.buttonItem = true; this.cssClasses = 'v-listbox-item v-dropdown-item v-button v-button-tertiary v-justify-content-start'; } } get hostClasses() { return [this.class, this.cssClasses].join(' '); } static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DropdownItemDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); } static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.12", type: DropdownItemDirective, isStandalone: true, selector: "[v-dropdown-item]", inputs: { class: "class" }, host: { properties: { "class": "this.hostClasses" } }, usesInheritance: true, ngImport: i0 }); } } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DropdownItemDirective, decorators: [{ type: Directive, args: [{ standalone: true, selector: '[v-dropdown-item]' }] }], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { class: [{ type: Input }], hostClasses: [{ type: HostBinding, args: ['class'] }] } }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24taXRlbS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL25vdmEtbGliL3NyYy9saWIvZHJvcGRvd24taXRlbS9kcm9wZG93bi1pdGVtLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7O0lBZUk7QUFDSixPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFFLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLHNFQUFzRSxDQUFDOztBQU1oSCxNQUFNLE9BQU8scUJBQXNCLFNBQVEsd0JBQXdCO0lBSWpFLFlBQXFCLEVBQWM7UUFDakMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBRFMsT0FBRSxHQUFGLEVBQUUsQ0FBWTtRQUhuQyxlQUFVLEdBQVksS0FBSyxDQUFDO1FBRTVCLGVBQVUsR0FBRyxFQUFFLENBQUM7UUFVaEI7Ozs7V0FJRztRQUNNLFVBQUssR0FBRyxFQUFFLENBQUMsQ0FBQyxtREFBbUQ7UUFadEUsSUFBSSxDQUFDLFVBQVUsR0FBRyxnQ0FBZ0MsQ0FBQztRQUNuRCxJQUFJLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxXQUFXLEVBQUUsS0FBSyxRQUFRLEVBQUUsQ0FBQztZQUM3RCxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQztZQUN2QixJQUFJLENBQUMsVUFBVSxHQUFHLG1GQUFtRixDQUFDO1FBQ3hHLENBQUM7SUFDSCxDQUFDO0lBUUQsSUFDSSxXQUFXO1FBQ2IsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNqRCxDQUFDOytHQXRCVSxxQkFBcUI7bUdBQXJCLHFCQUFxQjs7NEZBQXJCLHFCQUFxQjtrQkFKakMsU0FBUzttQkFBQztvQkFDVCxVQUFVLEVBQUUsSUFBSTtvQkFDaEIsUUFBUSxFQUFFLG1CQUFtQjtpQkFDOUI7K0VBbUJVLEtBQUs7c0JBQWIsS0FBSztnQkFFRixXQUFXO3NCQURkLFdBQVc7dUJBQUMsT0FBTyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogICAgICAgICAgICAgIENvcHlyaWdodCAoYykgMjAyNSBWaXNhLCBJbmMuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqXG4gKiovXG5pbXBvcnQgeyBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIEhvc3RCaW5kaW5nLCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQmFzZUludGVyYWN0aXZlRGlyZWN0aXZlIH0gZnJvbSAnLi4vX3V0aWxpdGllcy9hbmd1bGFyLXNwZWNpZmljLWRpcmVjdGl2ZXMvYmFzZS1pbnRlcmFjdGl2ZS5kaXJlY3RpdmUnO1xuXG5ARGlyZWN0aXZlKHtcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgc2VsZWN0b3I6ICdbdi1kcm9wZG93bi1pdGVtXSdcbn0pXG5leHBvcnQgY2xhc3MgRHJvcGRvd25JdGVtRGlyZWN0aXZlIGV4dGVuZHMgQmFzZUludGVyYWN0aXZlRGlyZWN0aXZlIHtcbiAgYnV0dG9uSXRlbTogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIGNzc0NsYXNzZXMgPSAnJztcbiAgY29uc3RydWN0b3Iob3ZlcnJpZGUgZWw6IEVsZW1lbnRSZWYpIHtcbiAgICBzdXBlcihlbCk7XG4gICAgdGhpcy5jc3NDbGFzc2VzID0gJ3YtbGlzdGJveC1pdGVtIHYtZHJvcGRvd24taXRlbSc7XG4gICAgaWYgKHRoaXMuZWwubmF0aXZlRWxlbWVudC50YWdOYW1lLnRvTG93ZXJDYXNlKCkgPT09ICdidXR0b24nKSB7XG4gICAgICB0aGlzLmJ1dHRvbkl0ZW0gPSB0cnVlO1xuICAgICAgdGhpcy5jc3NDbGFzc2VzID0gJ3YtbGlzdGJveC1pdGVtIHYtZHJvcGRvd24taXRlbSB2LWJ1dHRvbiB2LWJ1dHRvbi10ZXJ0aWFyeSB2LWp1c3RpZnktY29udGVudC1zdGFydCc7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFByb3ZpZGVzIGN1c3RvbSBjbGFzcyYjNDA7ZXMmIzQxOyBmb3IgY3VzdG9tIHN0eWxpbmcuXG4gICAqIEBkZWZhdWx0IC52LWxpc3Rib3gtaXRlbS52LWRyb3Bkb3duLWl0ZW1cbiAgICogQGRlZmF1bHQgLnYtbGlzdGJveC1pdGVtLnYtZHJvcGRvd24taXRlbS52LWJ1dHRvbi52LWJ1dHRvbi10ZXJ0aWFyeS52LWp1c3RpZnktY29udGVudC1zdGFydCB3aGVuIHRoZSBob3N0IGVsZW1lbnQgaXMgYSBidXR0b24uXG4gICAqL1xuICBASW5wdXQoKSBjbGFzcyA9ICcnOyAvLyBvdmVycmlkZSB0aGUgc3RhbmRhcmQgY2xhc3MgYXR0ciB3aXRoIGEgbmV3IG9uZS5cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcycpXG4gIGdldCBob3N0Q2xhc3NlcygpOiBzdHJpbmcgfCAnJyB8IG51bGwge1xuICAgIHJldHVybiBbdGhpcy5jbGFzcywgdGhpcy5jc3NDbGFzc2VzXS5qb2luKCcgJyk7XG4gIH1cbn1cbiJdfQ==