@visa/nova-angular
Version:
Visa Product Design System Nova Angular library
63 lines • 7.16 kB
JavaScript
/**
* © 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 { 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tib3gtcGFuZWwuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9ub3ZhLWxpYi9zcmMvbGliL2NoZWNrYm94LXBhbmVsL2NoZWNrYm94LXBhbmVsLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7O0lBZUk7QUFDSixPQUFPLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxRixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNuRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDMUQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMENBQTBDLENBQUM7OztBQU1oRixNQUFNLE9BQU8sc0JBQXNCO0lBUWpDLElBQ0ksV0FBVztRQUNiLElBQUksQ0FBQyxLQUFLLEdBQUcsQ0FBQyxVQUFVLEVBQUUsb0JBQW9CLEVBQUUsa0JBQWtCLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFFOUUsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDO0lBQ3BCLENBQUM7SUFFRCxZQUFvQixvQkFBMEM7UUFBMUMseUJBQW9CLEdBQXBCLG9CQUFvQixDQUFzQjtRQVo5RDs7O1dBR0c7UUFDTSxVQUFLLEdBQVcsRUFBRSxDQUFDO0lBUXFDLENBQUM7SUFHbEUsV0FBVyxDQUFDLEtBQVk7UUFDdEIsSUFBSSxDQUFDLG9CQUFvQixDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDOUUsQ0FBQzsrR0FwQlUsc0JBQXNCO21HQUF0QixzQkFBc0IsdVFBQ25CLGlCQUFpQix3RUFDakIsY0FBYzs7NEZBRmpCLHNCQUFzQjtrQkFKbEMsU0FBUzttQkFBQztvQkFDVCxVQUFVLEVBQUUsSUFBSTtvQkFDaEIsUUFBUSxFQUFFLHFDQUFxQztpQkFDaEQ7eUZBRWtDLFFBQVE7c0JBQXhDLFlBQVk7dUJBQUMsaUJBQWlCO2dCQUNELEtBQUs7c0JBQWxDLFlBQVk7dUJBQUMsY0FBYztnQkFLbkIsS0FBSztzQkFBYixLQUFLO2dCQUVGLFdBQVc7c0JBRGQsV0FBVzt1QkFBQyxPQUFPO2dCQVVwQixXQUFXO3NCQURWLFlBQVk7dUJBQUMsT0FBTyxFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiAgICAgICAgICAgICAgwqkgMjAyNSBWaXNhXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqXG4gKiovXG5pbXBvcnQgeyBDb250ZW50Q2hpbGQsIERpcmVjdGl2ZSwgSG9zdEJpbmRpbmcsIEhvc3RMaXN0ZW5lciwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENoZWNrYm94RGlyZWN0aXZlIH0gZnJvbSAnLi4vY2hlY2tib3gvY2hlY2tib3guZGlyZWN0aXZlJztcbmltcG9ydCB7IFJhZGlvRGlyZWN0aXZlIH0gZnJvbSAnLi4vcmFkaW8vcmFkaW8uZGlyZWN0aXZlJztcbmltcG9ydCB7IFRvZ2dsZUNvbnRyb2xTZXJ2aWNlIH0gZnJvbSAnLi4vdG9nZ2xlLWNvbnRyb2wvdG9nZ2xlLWNvbnRyb2wuc2VydmljZSc7XG5cbkBEaXJlY3RpdmUoe1xuICBzdGFuZGFsb25lOiB0cnVlLFxuICBzZWxlY3RvcjogJ1t2LWNoZWNrYm94LXBhbmVsXSwgW3YtcmFkaW8tcGFuZWxdJ1xufSlcbmV4cG9ydCBjbGFzcyBDaGVja2JveFBhbmVsRGlyZWN0aXZlIHtcbiAgQENvbnRlbnRDaGlsZChDaGVja2JveERpcmVjdGl2ZSkgY2hlY2tib3g6IENoZWNrYm94RGlyZWN0aXZlO1xuICBAQ29udGVudENoaWxkKFJhZGlvRGlyZWN0aXZlKSByYWRpbzogUmFkaW9EaXJlY3RpdmU7XG4gIC8qKlxuICAgKiBQcm92aWRlcyBjdXN0b20gY2xhc3MmIzQwO2VzJiM0MTsgZm9yIGN1c3RvbSBzdHlsaW5nLlxuICAgKiBAZGVmYXVsdCAudi1hY3Rpb24udi1hY3Rpb24tc2Vjb25kYXJ5LnYtY2hlY2tib3gtcGFuZWxcbiAgICovXG4gIEBJbnB1dCgpIGNsYXNzOiBzdHJpbmcgPSAnJztcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcycpXG4gIGdldCBob3N0Q2xhc3NlcygpOiBzdHJpbmcge1xuICAgIHRoaXMuY2xhc3MgPSBbJ3YtYWN0aW9uJywgJ3YtYWN0aW9uLXNlY29uZGFyeScsICd2LWNoZWNrYm94LXBhbmVsJ10uam9pbignICcpO1xuXG4gICAgcmV0dXJuIHRoaXMuY2xhc3M7XG4gIH1cblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHRvZ2dsZUNvbnRyb2xTZXJ2aWNlOiBUb2dnbGVDb250cm9sU2VydmljZSkge31cblxuICBASG9zdExpc3RlbmVyKCdjbGljaycsIFsnJGV2ZW50J10pXG4gIGhhbmRsZUNsaWNrKGV2ZW50OiBFdmVudCkge1xuICAgIHRoaXMudG9nZ2xlQ29udHJvbFNlcnZpY2UudG9nZ2xlQ29udHJvbCh0aGlzLmNoZWNrYm94IHx8IHRoaXMucmFkaW8sIGV2ZW50KTtcbiAgfVxufVxuIl19