UNPKG

@visa/nova-angular

Version:

Visa Product Design System Nova Angular library

67 lines 7.08 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, HostBinding, Input } from '@angular/core'; import { ButtonDirective } from '../button/button.directive'; import * as i0 from "@angular/core"; import * as i1 from "../button/button.directive"; export class PanelToggleDirective { /** * Provides custom class(es) for custom styling. * @default .v-panel-toggle */ get class() { return [this._class, 'v-panel-toggle'].join(' '); } set class(value) { this._class = value; } get hostClass() { return this.class; } constructor(button) { this.button = button; this._class = ''; } ngOnInit() { // if the panel is a dialog, don't set the aria-expanded attribute. // if a button host exists, set the aria-expanded attribute to the button's aria-expanded attribute // if the button does not have an aria-expanded attribute, set it to false if (this._responsive) { this._expanded = !this.button ? null : this.button.ariaExpanded ? this.button.ariaExpanded : (this.button.ariaExpanded = false); } } static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: PanelToggleDirective, deps: [{ token: i1.ButtonDirective }], target: i0.ɵɵFactoryTarget.Directive }); } static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.12", type: PanelToggleDirective, isStandalone: true, selector: "[v-panel-toggle]", inputs: { class: "class" }, host: { properties: { "class": "this.hostClass" } }, ngImport: i0 }); } } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: PanelToggleDirective, decorators: [{ type: Directive, args: [{ standalone: true, // tslint:disable-next-line:directive-selector selector: '[v-panel-toggle]' }] }], ctorParameters: () => [{ type: i1.ButtonDirective }], propDecorators: { class: [{ type: Input }], hostClass: [{ type: HostBinding, args: ['class'] }] } }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFuZWwtdG9nZ2xlLWJ1dHRvbi5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL25vdmEtbGliL3NyYy9saWIvcGFuZWwtdG9nZ2xlLWJ1dHRvbi9wYW5lbC10b2dnbGUtYnV0dG9uLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7O0lBZUk7QUFDSixPQUFPLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDdEUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDRCQUE0QixDQUFDOzs7QUFPN0QsTUFBTSxPQUFPLG9CQUFvQjtJQUkvQjs7O09BR0c7SUFDSCxJQUNJLEtBQUs7UUFDUCxPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNuRCxDQUFDO0lBQ0QsSUFBSSxLQUFLLENBQUMsS0FBYTtRQUNyQixJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztJQUN0QixDQUFDO0lBRUQsSUFDSSxTQUFTO1FBQ1gsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDO0lBQ3BCLENBQUM7SUFFRCxZQUFtQixNQUF3QjtRQUF4QixXQUFNLEdBQU4sTUFBTSxDQUFrQjtRQU4zQyxXQUFNLEdBQVcsRUFBRSxDQUFDO0lBTTBCLENBQUM7SUFDL0MsUUFBUTtRQUNOLG1FQUFtRTtRQUNuRSxtR0FBbUc7UUFDbkcsMEVBQTBFO1FBQzFFLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ3JCLElBQUksQ0FBQyxTQUFTLEdBQUcsQ0FBQyxJQUFJLENBQUMsTUFBTTtnQkFDM0IsQ0FBQyxDQUFDLElBQUk7Z0JBQ04sQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsWUFBWTtvQkFDeEIsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsWUFBWTtvQkFDMUIsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFDLENBQUM7UUFDM0MsQ0FBQztJQUNILENBQUM7K0dBakNVLG9CQUFvQjttR0FBcEIsb0JBQW9COzs0RkFBcEIsb0JBQW9CO2tCQUxoQyxTQUFTO21CQUFDO29CQUNULFVBQVUsRUFBRSxJQUFJO29CQUNoQiw4Q0FBOEM7b0JBQzlDLFFBQVEsRUFBRSxrQkFBa0I7aUJBQzdCO29GQVVLLEtBQUs7c0JBRFIsS0FBSztnQkFTRixTQUFTO3NCQURaLFdBQVc7dUJBQUMsT0FBTyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogICAgICAgICAgICAgIMKpIDIwMjUgVmlzYVxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKlxuICoqL1xuaW1wb3J0IHsgRGlyZWN0aXZlLCBIb3N0QmluZGluZywgSW5wdXQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQnV0dG9uRGlyZWN0aXZlIH0gZnJvbSAnLi4vYnV0dG9uL2J1dHRvbi5kaXJlY3RpdmUnO1xuXG5ARGlyZWN0aXZlKHtcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOmRpcmVjdGl2ZS1zZWxlY3RvclxuICBzZWxlY3RvcjogJ1t2LXBhbmVsLXRvZ2dsZV0nXG59KVxuZXhwb3J0IGNsYXNzIFBhbmVsVG9nZ2xlRGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0IHtcbiAgX2V4cGFuZGVkOiBib29sZWFuIHwgbnVsbDtcbiAgX3Jlc3BvbnNpdmU6IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFByb3ZpZGVzIGN1c3RvbSBjbGFzcyYjNDA7ZXMmIzQxOyBmb3IgY3VzdG9tIHN0eWxpbmcuXG4gICAqIEBkZWZhdWx0IC52LXBhbmVsLXRvZ2dsZVxuICAgKi9cbiAgQElucHV0KClcbiAgZ2V0IGNsYXNzKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIFt0aGlzLl9jbGFzcywgJ3YtcGFuZWwtdG9nZ2xlJ10uam9pbignICcpO1xuICB9XG4gIHNldCBjbGFzcyh2YWx1ZTogc3RyaW5nKSB7XG4gICAgdGhpcy5fY2xhc3MgPSB2YWx1ZTtcbiAgfVxuICBfY2xhc3M6IHN0cmluZyA9ICcnO1xuICBASG9zdEJpbmRpbmcoJ2NsYXNzJylcbiAgZ2V0IGhvc3RDbGFzcygpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmNsYXNzO1xuICB9XG5cbiAgY29uc3RydWN0b3IocHVibGljIGJ1dHRvbj86IEJ1dHRvbkRpcmVjdGl2ZSkge31cbiAgbmdPbkluaXQoKSB7XG4gICAgLy8gaWYgdGhlIHBhbmVsIGlzIGEgZGlhbG9nLCBkb24ndCBzZXQgdGhlIGFyaWEtZXhwYW5kZWQgYXR0cmlidXRlLlxuICAgIC8vIGlmIGEgYnV0dG9uIGhvc3QgZXhpc3RzLCBzZXQgdGhlIGFyaWEtZXhwYW5kZWQgYXR0cmlidXRlIHRvIHRoZSBidXR0b24ncyBhcmlhLWV4cGFuZGVkIGF0dHJpYnV0ZVxuICAgIC8vIGlmIHRoZSBidXR0b24gZG9lcyBub3QgaGF2ZSBhbiBhcmlhLWV4cGFuZGVkIGF0dHJpYnV0ZSwgc2V0IGl0IHRvIGZhbHNlXG4gICAgaWYgKHRoaXMuX3Jlc3BvbnNpdmUpIHtcbiAgICAgIHRoaXMuX2V4cGFuZGVkID0gIXRoaXMuYnV0dG9uXG4gICAgICAgID8gbnVsbFxuICAgICAgICA6IHRoaXMuYnV0dG9uLmFyaWFFeHBhbmRlZFxuICAgICAgICAgID8gdGhpcy5idXR0b24uYXJpYUV4cGFuZGVkXG4gICAgICAgICAgOiAodGhpcy5idXR0b24uYXJpYUV4cGFuZGVkID0gZmFsc2UpO1xuICAgIH1cbiAgfVxufVxuIl19