UNPKG

@visa/nova-angular

Version:

Visa Product Design System Nova Angular library

73 lines 6.89 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, EventEmitter, HostListener, Output } from '@angular/core'; import * as i0 from "@angular/core"; export class BaseInteractiveDirective { constructor(el) { this.el = el; this.listeners = []; /** * Emits event when host interactive element is blurred. */ this.blurred = new EventEmitter(); /** * Emits event when host interactive element is focused. */ this.focused = new EventEmitter(); /** * Emits event when host interactive element is clicked. */ this.clicked = new EventEmitter(); } ngOnDestroy() { this.listeners = []; } hostBlur(event) { this.blurred.emit(event); } hostFocus(event) { this.focused.emit(event); } hostClick(event) { this.clicked.emit(event); } static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: BaseInteractiveDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); } static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.12", type: BaseInteractiveDirective, isStandalone: true, selector: "[v-interactive]", outputs: { blurred: "blurred", focused: "focused", clicked: "clicked" }, host: { listeners: { "blur": "hostBlur($event)", "focus": "hostFocus($event)", "click": "hostClick($event)" } }, ngImport: i0 }); } } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: BaseInteractiveDirective, decorators: [{ type: Directive, args: [{ selector: '[v-interactive]', standalone: true }] }], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { blurred: [{ type: Output }], hostBlur: [{ type: HostListener, args: ['blur', ['$event']] }], focused: [{ type: Output }], hostFocus: [{ type: HostListener, args: ['focus', ['$event']] }], clicked: [{ type: Output }], hostClick: [{ type: HostListener, args: ['click', ['$event']] }] } }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1pbnRlcmFjdGl2ZS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL25vdmEtbGliL3NyYy9saWIvX3V0aWxpdGllcy9hbmd1bGFyLXNwZWNpZmljLWRpcmVjdGl2ZXMvYmFzZS1pbnRlcmFjdGl2ZS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7OztJQWVJO0FBQ0osT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLFlBQVksRUFBYSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBTXJHLE1BQU0sT0FBTyx3QkFBd0I7SUFHbkMsWUFBbUIsRUFBYztRQUFkLE9BQUUsR0FBRixFQUFFLENBQVk7UUFGakMsY0FBUyxHQUFVLEVBQUUsQ0FBQztRQVF0Qjs7V0FFRztRQUNPLFlBQU8sR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFDO1FBTzVDOztXQUVHO1FBQ08sWUFBTyxHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7UUFPNUM7O1dBRUc7UUFDTyxZQUFPLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQztJQTdCUixDQUFDO0lBRXJDLFdBQVc7UUFDVCxJQUFJLENBQUMsU0FBUyxHQUFHLEVBQUUsQ0FBQztJQUN0QixDQUFDO0lBUUQsUUFBUSxDQUFDLEtBQVk7UUFDbkIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDM0IsQ0FBQztJQVFELFNBQVMsQ0FBQyxLQUFZO1FBQ3BCLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzNCLENBQUM7SUFRRCxTQUFTLENBQUMsS0FBWTtRQUNwQixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMzQixDQUFDOytHQXJDVSx3QkFBd0I7bUdBQXhCLHdCQUF3Qjs7NEZBQXhCLHdCQUF3QjtrQkFKcEMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsaUJBQWlCO29CQUMzQixVQUFVLEVBQUUsSUFBSTtpQkFDakI7K0VBYVcsT0FBTztzQkFBaEIsTUFBTTtnQkFHUCxRQUFRO3NCQURQLFlBQVk7dUJBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxDQUFDO2dCQVF0QixPQUFPO3NCQUFoQixNQUFNO2dCQUdQLFNBQVM7c0JBRFIsWUFBWTt1QkFBQyxPQUFPLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBUXZCLE9BQU87c0JBQWhCLE1BQU07Z0JBR1AsU0FBUztzQkFEUixZQUFZO3VCQUFDLE9BQU8sRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogICAgICAgICAgICAgIMKpIDIwMjUgVmlzYVxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKlxuICoqL1xuaW1wb3J0IHsgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIEhvc3RMaXN0ZW5lciwgT25EZXN0cm95LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW3YtaW50ZXJhY3RpdmVdJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBCYXNlSW50ZXJhY3RpdmVEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuICBsaXN0ZW5lcnM6IGFueVtdID0gW107XG5cbiAgY29uc3RydWN0b3IocHVibGljIGVsOiBFbGVtZW50UmVmKSB7fVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMubGlzdGVuZXJzID0gW107XG4gIH1cblxuICAvKipcbiAgICogRW1pdHMgZXZlbnQgd2hlbiBob3N0IGludGVyYWN0aXZlIGVsZW1lbnQgaXMgYmx1cnJlZC5cbiAgICovXG4gIEBPdXRwdXQoKSBibHVycmVkID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG5cbiAgQEhvc3RMaXN0ZW5lcignYmx1cicsIFsnJGV2ZW50J10pXG4gIGhvc3RCbHVyKGV2ZW50OiBFdmVudCkge1xuICAgIHRoaXMuYmx1cnJlZC5lbWl0KGV2ZW50KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBFbWl0cyBldmVudCB3aGVuIGhvc3QgaW50ZXJhY3RpdmUgZWxlbWVudCBpcyBmb2N1c2VkLlxuICAgKi9cbiAgQE91dHB1dCgpIGZvY3VzZWQgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcblxuICBASG9zdExpc3RlbmVyKCdmb2N1cycsIFsnJGV2ZW50J10pXG4gIGhvc3RGb2N1cyhldmVudDogRXZlbnQpIHtcbiAgICB0aGlzLmZvY3VzZWQuZW1pdChldmVudCk7XG4gIH1cblxuICAvKipcbiAgICogRW1pdHMgZXZlbnQgd2hlbiBob3N0IGludGVyYWN0aXZlIGVsZW1lbnQgaXMgY2xpY2tlZC5cbiAgICovXG4gIEBPdXRwdXQoKSBjbGlja2VkID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG5cbiAgQEhvc3RMaXN0ZW5lcignY2xpY2snLCBbJyRldmVudCddKVxuICBob3N0Q2xpY2soZXZlbnQ6IEV2ZW50KSB7XG4gICAgdGhpcy5jbGlja2VkLmVtaXQoZXZlbnQpO1xuICB9XG59XG4iXX0=