@visa/nova-angular
Version:
Visa Product Design System Nova Angular library
73 lines • 6.94 kB
JavaScript
/**
* 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, 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1pbnRlcmFjdGl2ZS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL25vdmEtbGliL3NyYy9saWIvX3V0aWxpdGllcy9hbmd1bGFyLXNwZWNpZmljLWRpcmVjdGl2ZXMvYmFzZS1pbnRlcmFjdGl2ZS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7OztJQWVJO0FBQ0osT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLFlBQVksRUFBYSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBTXJHLE1BQU0sT0FBTyx3QkFBd0I7SUFHbkMsWUFBbUIsRUFBYztRQUFkLE9BQUUsR0FBRixFQUFFLENBQVk7UUFGakMsY0FBUyxHQUFVLEVBQUUsQ0FBQztRQVF0Qjs7V0FFRztRQUNPLFlBQU8sR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFDO1FBTzVDOztXQUVHO1FBQ08sWUFBTyxHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7UUFPNUM7O1dBRUc7UUFDTyxZQUFPLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQztJQTdCUixDQUFDO0lBRXJDLFdBQVc7UUFDVCxJQUFJLENBQUMsU0FBUyxHQUFHLEVBQUUsQ0FBQztJQUN0QixDQUFDO0lBUUQsUUFBUSxDQUFDLEtBQVk7UUFDbkIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDM0IsQ0FBQztJQVFELFNBQVMsQ0FBQyxLQUFZO1FBQ3BCLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzNCLENBQUM7SUFRRCxTQUFTLENBQUMsS0FBWTtRQUNwQixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMzQixDQUFDOytHQXJDVSx3QkFBd0I7bUdBQXhCLHdCQUF3Qjs7NEZBQXhCLHdCQUF3QjtrQkFKcEMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsaUJBQWlCO29CQUMzQixVQUFVLEVBQUUsSUFBSTtpQkFDakI7K0VBYVcsT0FBTztzQkFBaEIsTUFBTTtnQkFHUCxRQUFRO3NCQURQLFlBQVk7dUJBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxDQUFDO2dCQVF0QixPQUFPO3NCQUFoQixNQUFNO2dCQUdQLFNBQVM7c0JBRFIsWUFBWTt1QkFBQyxPQUFPLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBUXZCLE9BQU87c0JBQWhCLE1BQU07Z0JBR1AsU0FBUztzQkFEUixZQUFZO3VCQUFDLE9BQU8sRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogICAgICAgICAgICAgIENvcHlyaWdodCAoYykgMjAyNSBWaXNhLCBJbmMuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqXG4gKiovXG5pbXBvcnQgeyBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgSG9zdExpc3RlbmVyLCBPbkRlc3Ryb3ksIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbdi1pbnRlcmFjdGl2ZV0nLFxuICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIEJhc2VJbnRlcmFjdGl2ZURpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gIGxpc3RlbmVyczogYW55W10gPSBbXTtcblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgZWw6IEVsZW1lbnRSZWYpIHt9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5saXN0ZW5lcnMgPSBbXTtcbiAgfVxuXG4gIC8qKlxuICAgKiBFbWl0cyBldmVudCB3aGVuIGhvc3QgaW50ZXJhY3RpdmUgZWxlbWVudCBpcyBibHVycmVkLlxuICAgKi9cbiAgQE91dHB1dCgpIGJsdXJyZWQgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcblxuICBASG9zdExpc3RlbmVyKCdibHVyJywgWyckZXZlbnQnXSlcbiAgaG9zdEJsdXIoZXZlbnQ6IEV2ZW50KSB7XG4gICAgdGhpcy5ibHVycmVkLmVtaXQoZXZlbnQpO1xuICB9XG5cbiAgLyoqXG4gICAqIEVtaXRzIGV2ZW50IHdoZW4gaG9zdCBpbnRlcmFjdGl2ZSBlbGVtZW50IGlzIGZvY3VzZWQuXG4gICAqL1xuICBAT3V0cHV0KCkgZm9jdXNlZCA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuXG4gIEBIb3N0TGlzdGVuZXIoJ2ZvY3VzJywgWyckZXZlbnQnXSlcbiAgaG9zdEZvY3VzKGV2ZW50OiBFdmVudCkge1xuICAgIHRoaXMuZm9jdXNlZC5lbWl0KGV2ZW50KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBFbWl0cyBldmVudCB3aGVuIGhvc3QgaW50ZXJhY3RpdmUgZWxlbWVudCBpcyBjbGlja2VkLlxuICAgKi9cbiAgQE91dHB1dCgpIGNsaWNrZWQgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcblxuICBASG9zdExpc3RlbmVyKCdjbGljaycsIFsnJGV2ZW50J10pXG4gIGhvc3RDbGljayhldmVudDogRXZlbnQpIHtcbiAgICB0aGlzLmNsaWNrZWQuZW1pdChldmVudCk7XG4gIH1cbn1cbiJdfQ==