@visa/nova-angular
Version:
Visa Product Design System Nova Angular library
53 lines • 5.71 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 { Injectable } from '@angular/core';
import { AppReadyService } from '../_utilities/services/app-stable-check.service';
import * as i0 from "@angular/core";
import * as i1 from "../_utilities/services/app-stable-check.service";
/**
* Service to toggle checkbox or radio programmatically.
*/
export class ToggleControlService {
constructor(appReadyService) {
this.appReadyService = appReadyService;
}
/**
* Toggles checkbox or radio programmatically.
* @param control Checkbox or Radio item to toggle.
* @param event Event to check if target is the control.
*/
toggleControl(control, event) {
// check that browser is available before manipulating/checking DOM elements
if (this.appReadyService.isBrowserAndDomAvailable() && control) {
if (control.el.nativeElement.contains(event.target)) {
return;
}
else {
control.el.nativeElement.click();
}
}
}
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ToggleControlService, deps: [{ token: i1.AppReadyService }], target: i0.ɵɵFactoryTarget.Injectable }); }
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ToggleControlService, providedIn: 'root' }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ToggleControlService, decorators: [{
type: Injectable,
args: [{
providedIn: 'root'
}]
}], ctorParameters: () => [{ type: i1.AppReadyService }] });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9nZ2xlLWNvbnRyb2wuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbm92YS1saWIvc3JjL2xpYi90b2dnbGUtY29udHJvbC90b2dnbGUtY29udHJvbC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7SUFlSTtBQUNKLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGlEQUFpRCxDQUFDOzs7QUFJbEY7O0dBRUc7QUFJSCxNQUFNLE9BQU8sb0JBQW9CO0lBQy9CLFlBQW9CLGVBQWdDO1FBQWhDLG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtJQUFHLENBQUM7SUFFeEQ7Ozs7T0FJRztJQUNILGFBQWEsQ0FBQyxPQUEyQyxFQUFFLEtBQVk7UUFDckUsNEVBQTRFO1FBQzVFLElBQUksSUFBSSxDQUFDLGVBQWUsQ0FBQyx3QkFBd0IsRUFBRSxJQUFJLE9BQU8sRUFBRSxDQUFDO1lBQy9ELElBQUksT0FBTyxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO2dCQUNwRCxPQUFPO1lBQ1QsQ0FBQztpQkFBTSxDQUFDO2dCQUNOLE9BQU8sQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ25DLENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQzsrR0FqQlUsb0JBQW9CO21IQUFwQixvQkFBb0IsY0FGbkIsTUFBTTs7NEZBRVAsb0JBQW9CO2tCQUhoQyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogICAgICAgICAgICAgIENvcHlyaWdodCAoYykgMjAyNSBWaXNhLCBJbmMuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqXG4gKiovXG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBcHBSZWFkeVNlcnZpY2UgfSBmcm9tICcuLi9fdXRpbGl0aWVzL3NlcnZpY2VzL2FwcC1zdGFibGUtY2hlY2suc2VydmljZSc7XG5pbXBvcnQgeyBDaGVja2JveERpcmVjdGl2ZSB9IGZyb20gJy4uL2NoZWNrYm94L2NoZWNrYm94LmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBSYWRpb0RpcmVjdGl2ZSB9IGZyb20gJy4uL3JhZGlvL3JhZGlvLmRpcmVjdGl2ZSc7XG5cbi8qKlxuICogU2VydmljZSB0byB0b2dnbGUgY2hlY2tib3ggb3IgcmFkaW8gcHJvZ3JhbW1hdGljYWxseS5cbiAqL1xuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgVG9nZ2xlQ29udHJvbFNlcnZpY2Uge1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGFwcFJlYWR5U2VydmljZTogQXBwUmVhZHlTZXJ2aWNlKSB7fVxuXG4gIC8qKlxuICAgKiBUb2dnbGVzIGNoZWNrYm94IG9yIHJhZGlvIHByb2dyYW1tYXRpY2FsbHkuXG4gICAqIEBwYXJhbSBjb250cm9sIENoZWNrYm94IG9yIFJhZGlvIGl0ZW0gdG8gdG9nZ2xlLlxuICAgKiBAcGFyYW0gZXZlbnQgRXZlbnQgdG8gY2hlY2sgaWYgdGFyZ2V0IGlzIHRoZSBjb250cm9sLlxuICAgKi9cbiAgdG9nZ2xlQ29udHJvbChjb250cm9sOiBSYWRpb0RpcmVjdGl2ZSB8IENoZWNrYm94RGlyZWN0aXZlLCBldmVudDogRXZlbnQpIHtcbiAgICAvLyBjaGVjayB0aGF0IGJyb3dzZXIgaXMgYXZhaWxhYmxlIGJlZm9yZSBtYW5pcHVsYXRpbmcvY2hlY2tpbmcgRE9NIGVsZW1lbnRzXG4gICAgaWYgKHRoaXMuYXBwUmVhZHlTZXJ2aWNlLmlzQnJvd3NlckFuZERvbUF2YWlsYWJsZSgpICYmIGNvbnRyb2wpIHtcbiAgICAgIGlmIChjb250cm9sLmVsLm5hdGl2ZUVsZW1lbnQuY29udGFpbnMoZXZlbnQudGFyZ2V0KSkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb250cm9sLmVsLm5hdGl2ZUVsZW1lbnQuY2xpY2soKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiJdfQ==