UNPKG

@visa/nova-angular

Version:

Visa Product Design System Nova Angular library

63 lines 7.2 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 { ContentChild, Directive, HostBinding, HostListener, Input } from '@angular/core'; import { CheckboxDirective } from '../checkbox/checkbox.directive'; import { RadioDirective } from '../radio/radio.directive'; import { ToggleControlService } from '../toggle-control/toggle-control.service'; import * as i0 from "@angular/core"; import * as i1 from "../toggle-control/toggle-control.service"; export class CheckboxPanelDirective { get hostClasses() { this.class = ['v-action', 'v-action-secondary', 'v-checkbox-panel'].join(' '); return this.class; } constructor(toggleControlService) { this.toggleControlService = toggleControlService; /** * Provides custom class(es) for custom styling. * @default .v-action.v-action-secondary.v-checkbox-panel */ this.class = ''; } handleClick(event) { this.toggleControlService.toggleControl(this.checkbox || this.radio, event); } static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: CheckboxPanelDirective, deps: [{ token: i1.ToggleControlService }], target: i0.ɵɵFactoryTarget.Directive }); } static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.12", type: CheckboxPanelDirective, isStandalone: true, selector: "[v-checkbox-panel], [v-radio-panel]", inputs: { class: "class" }, host: { listeners: { "click": "handleClick($event)" }, properties: { "class": "this.hostClasses" } }, queries: [{ propertyName: "checkbox", first: true, predicate: CheckboxDirective, descendants: true }, { propertyName: "radio", first: true, predicate: RadioDirective, descendants: true }], ngImport: i0 }); } } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: CheckboxPanelDirective, decorators: [{ type: Directive, args: [{ standalone: true, selector: '[v-checkbox-panel], [v-radio-panel]' }] }], ctorParameters: () => [{ type: i1.ToggleControlService }], propDecorators: { checkbox: [{ type: ContentChild, args: [CheckboxDirective] }], radio: [{ type: ContentChild, args: [RadioDirective] }], class: [{ type: Input }], hostClasses: [{ type: HostBinding, args: ['class'] }], handleClick: [{ type: HostListener, args: ['click', ['$event']] }] } }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tib3gtcGFuZWwuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9ub3ZhLWxpYi9zcmMvbGliL2NoZWNrYm94LXBhbmVsL2NoZWNrYm94LXBhbmVsLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7O0lBZUk7QUFDSixPQUFPLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxRixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNuRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDMUQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMENBQTBDLENBQUM7OztBQU1oRixNQUFNLE9BQU8sc0JBQXNCO0lBUWpDLElBQ0ksV0FBVztRQUNiLElBQUksQ0FBQyxLQUFLLEdBQUcsQ0FBQyxVQUFVLEVBQUUsb0JBQW9CLEVBQUUsa0JBQWtCLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFFOUUsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDO0lBQ3BCLENBQUM7SUFFRCxZQUFvQixvQkFBMEM7UUFBMUMseUJBQW9CLEdBQXBCLG9CQUFvQixDQUFzQjtRQVo5RDs7O1dBR0c7UUFDTSxVQUFLLEdBQVcsRUFBRSxDQUFDO0lBUXFDLENBQUM7SUFHbEUsV0FBVyxDQUFDLEtBQVk7UUFDdEIsSUFBSSxDQUFDLG9CQUFvQixDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDOUUsQ0FBQzsrR0FwQlUsc0JBQXNCO21HQUF0QixzQkFBc0IsdVFBQ25CLGlCQUFpQix3RUFDakIsY0FBYzs7NEZBRmpCLHNCQUFzQjtrQkFKbEMsU0FBUzttQkFBQztvQkFDVCxVQUFVLEVBQUUsSUFBSTtvQkFDaEIsUUFBUSxFQUFFLHFDQUFxQztpQkFDaEQ7eUZBRWtDLFFBQVE7c0JBQXhDLFlBQVk7dUJBQUMsaUJBQWlCO2dCQUNELEtBQUs7c0JBQWxDLFlBQVk7dUJBQUMsY0FBYztnQkFLbkIsS0FBSztzQkFBYixLQUFLO2dCQUVGLFdBQVc7c0JBRGQsV0FBVzt1QkFBQyxPQUFPO2dCQVVwQixXQUFXO3NCQURWLFlBQVk7dUJBQUMsT0FBTyxFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiAgICAgICAgICAgICAgQ29weXJpZ2h0IChjKSAyMDI1IFZpc2EsIEluYy5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICpcbiAqKi9cbmltcG9ydCB7IENvbnRlbnRDaGlsZCwgRGlyZWN0aXZlLCBIb3N0QmluZGluZywgSG9zdExpc3RlbmVyLCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ2hlY2tib3hEaXJlY3RpdmUgfSBmcm9tICcuLi9jaGVja2JveC9jaGVja2JveC5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgUmFkaW9EaXJlY3RpdmUgfSBmcm9tICcuLi9yYWRpby9yYWRpby5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgVG9nZ2xlQ29udHJvbFNlcnZpY2UgfSBmcm9tICcuLi90b2dnbGUtY29udHJvbC90b2dnbGUtY29udHJvbC5zZXJ2aWNlJztcblxuQERpcmVjdGl2ZSh7XG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIHNlbGVjdG9yOiAnW3YtY2hlY2tib3gtcGFuZWxdLCBbdi1yYWRpby1wYW5lbF0nXG59KVxuZXhwb3J0IGNsYXNzIENoZWNrYm94UGFuZWxEaXJlY3RpdmUge1xuICBAQ29udGVudENoaWxkKENoZWNrYm94RGlyZWN0aXZlKSBjaGVja2JveDogQ2hlY2tib3hEaXJlY3RpdmU7XG4gIEBDb250ZW50Q2hpbGQoUmFkaW9EaXJlY3RpdmUpIHJhZGlvOiBSYWRpb0RpcmVjdGl2ZTtcbiAgLyoqXG4gICAqIFByb3ZpZGVzIGN1c3RvbSBjbGFzcyYjNDA7ZXMmIzQxOyBmb3IgY3VzdG9tIHN0eWxpbmcuXG4gICAqIEBkZWZhdWx0IC52LWFjdGlvbi52LWFjdGlvbi1zZWNvbmRhcnkudi1jaGVja2JveC1wYW5lbFxuICAgKi9cbiAgQElucHV0KCkgY2xhc3M6IHN0cmluZyA9ICcnO1xuICBASG9zdEJpbmRpbmcoJ2NsYXNzJylcbiAgZ2V0IGhvc3RDbGFzc2VzKCk6IHN0cmluZyB7XG4gICAgdGhpcy5jbGFzcyA9IFsndi1hY3Rpb24nLCAndi1hY3Rpb24tc2Vjb25kYXJ5JywgJ3YtY2hlY2tib3gtcGFuZWwnXS5qb2luKCcgJyk7XG5cbiAgICByZXR1cm4gdGhpcy5jbGFzcztcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgdG9nZ2xlQ29udHJvbFNlcnZpY2U6IFRvZ2dsZUNvbnRyb2xTZXJ2aWNlKSB7fVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2NsaWNrJywgWyckZXZlbnQnXSlcbiAgaGFuZGxlQ2xpY2soZXZlbnQ6IEV2ZW50KSB7XG4gICAgdGhpcy50b2dnbGVDb250cm9sU2VydmljZS50b2dnbGVDb250cm9sKHRoaXMuY2hlY2tib3ggfHwgdGhpcy5yYWRpbywgZXZlbnQpO1xuICB9XG59XG4iXX0=