UNPKG

@visa/nova-angular

Version:

Visa Product Design System Nova Angular library

56 lines 6.68 kB
/** * © 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 { 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24taXRlbS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL25vdmEtbGliL3NyYy9saWIvZHJvcGRvd24taXRlbS9kcm9wZG93bi1pdGVtLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7O0lBZUk7QUFDSixPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFFLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLHNFQUFzRSxDQUFDOztBQU1oSCxNQUFNLE9BQU8scUJBQXNCLFNBQVEsd0JBQXdCO0lBSWpFLFlBQXFCLEVBQWM7UUFDakMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBRFMsT0FBRSxHQUFGLEVBQUUsQ0FBWTtRQUhuQyxlQUFVLEdBQVksS0FBSyxDQUFDO1FBRTVCLGVBQVUsR0FBRyxFQUFFLENBQUM7UUFVaEI7Ozs7V0FJRztRQUNNLFVBQUssR0FBRyxFQUFFLENBQUMsQ0FBQyxtREFBbUQ7UUFadEUsSUFBSSxDQUFDLFVBQVUsR0FBRyxnQ0FBZ0MsQ0FBQztRQUNuRCxJQUFJLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxXQUFXLEVBQUUsS0FBSyxRQUFRLEVBQUUsQ0FBQztZQUM3RCxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQztZQUN2QixJQUFJLENBQUMsVUFBVSxHQUFHLG1GQUFtRixDQUFDO1FBQ3hHLENBQUM7SUFDSCxDQUFDO0lBUUQsSUFDSSxXQUFXO1FBQ2IsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNqRCxDQUFDOytHQXRCVSxxQkFBcUI7bUdBQXJCLHFCQUFxQjs7NEZBQXJCLHFCQUFxQjtrQkFKakMsU0FBUzttQkFBQztvQkFDVCxVQUFVLEVBQUUsSUFBSTtvQkFDaEIsUUFBUSxFQUFFLG1CQUFtQjtpQkFDOUI7K0VBbUJVLEtBQUs7c0JBQWIsS0FBSztnQkFFRixXQUFXO3NCQURkLFdBQVc7dUJBQUMsT0FBTyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogICAgICAgICAgICAgIMKpIDIwMjUgVmlzYVxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKlxuICoqL1xuaW1wb3J0IHsgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBIb3N0QmluZGluZywgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJhc2VJbnRlcmFjdGl2ZURpcmVjdGl2ZSB9IGZyb20gJy4uL191dGlsaXRpZXMvYW5ndWxhci1zcGVjaWZpYy1kaXJlY3RpdmVzL2Jhc2UtaW50ZXJhY3RpdmUuZGlyZWN0aXZlJztcblxuQERpcmVjdGl2ZSh7XG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIHNlbGVjdG9yOiAnW3YtZHJvcGRvd24taXRlbV0nXG59KVxuZXhwb3J0IGNsYXNzIERyb3Bkb3duSXRlbURpcmVjdGl2ZSBleHRlbmRzIEJhc2VJbnRlcmFjdGl2ZURpcmVjdGl2ZSB7XG4gIGJ1dHRvbkl0ZW06IGJvb2xlYW4gPSBmYWxzZTtcblxuICBjc3NDbGFzc2VzID0gJyc7XG4gIGNvbnN0cnVjdG9yKG92ZXJyaWRlIGVsOiBFbGVtZW50UmVmKSB7XG4gICAgc3VwZXIoZWwpO1xuICAgIHRoaXMuY3NzQ2xhc3NlcyA9ICd2LWxpc3Rib3gtaXRlbSB2LWRyb3Bkb3duLWl0ZW0nO1xuICAgIGlmICh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQudGFnTmFtZS50b0xvd2VyQ2FzZSgpID09PSAnYnV0dG9uJykge1xuICAgICAgdGhpcy5idXR0b25JdGVtID0gdHJ1ZTtcbiAgICAgIHRoaXMuY3NzQ2xhc3NlcyA9ICd2LWxpc3Rib3gtaXRlbSB2LWRyb3Bkb3duLWl0ZW0gdi1idXR0b24gdi1idXR0b24tdGVydGlhcnkgdi1qdXN0aWZ5LWNvbnRlbnQtc3RhcnQnO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBQcm92aWRlcyBjdXN0b20gY2xhc3MmIzQwO2VzJiM0MTsgZm9yIGN1c3RvbSBzdHlsaW5nLlxuICAgKiBAZGVmYXVsdCAudi1saXN0Ym94LWl0ZW0udi1kcm9wZG93bi1pdGVtXG4gICAqIEBkZWZhdWx0IC52LWxpc3Rib3gtaXRlbS52LWRyb3Bkb3duLWl0ZW0udi1idXR0b24udi1idXR0b24tdGVydGlhcnkudi1qdXN0aWZ5LWNvbnRlbnQtc3RhcnQgd2hlbiB0aGUgaG9zdCBlbGVtZW50IGlzIGEgYnV0dG9uLlxuICAgKi9cbiAgQElucHV0KCkgY2xhc3MgPSAnJzsgLy8gb3ZlcnJpZGUgdGhlIHN0YW5kYXJkIGNsYXNzIGF0dHIgd2l0aCBhIG5ldyBvbmUuXG4gIEBIb3N0QmluZGluZygnY2xhc3MnKVxuICBnZXQgaG9zdENsYXNzZXMoKTogc3RyaW5nIHwgJycgfCBudWxsIHtcbiAgICByZXR1cm4gW3RoaXMuY2xhc3MsIHRoaXMuY3NzQ2xhc3Nlc10uam9pbignICcpO1xuICB9XG59XG4iXX0=