UNPKG

@visa/nova-angular

Version:

Visa Product Design System Nova Angular library

136 lines 14.8 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 { coerceBooleanProperty } from '@angular/cdk/coercion'; import { ContentChildren, Directive, EventEmitter, HostBinding, Input, Optional, Output, QueryList, signal } from '@angular/core'; import { ButtonColor, ButtonSize } from '../button/button.constants'; import { ButtonDirective } from '../button/button.directive'; import * as i0 from "@angular/core"; import * as i1 from "../button/button.directive"; export class AccordionHeadingDirective { constructor(hostButton) { this.hostButton = hostButton; this._subtle = signal(false); this._class = ''; this._expanded = false; /** * Emits item index when accordion item is toggled (collapsed and expanded). */ this.toggled = new EventEmitter(); } /** * Provides custom class&#40;es&#41; for custom styling. * @default .v-accordion-heading */ get class() { return [this._class, 'v-accordion-heading'].join(' '); } set class(value) { this._class = value; } get hostClass() { return this.class; } /** * Sets expanded state of accordion heading. <br /> * <strong>This property is overriden when used with details/summary version of accordion. Instead, refer to the native <code>open</code> property of the details element.</strong> * @default false */ get expanded() { return this._expanded; } set expanded(value) { this._expanded = coerceBooleanProperty(value); this.toggled.emit(this._index); } get hostBackground() { if (this._subtle()) { return 'transparent'; } } get hostGap() { if (this._subtle()) { return '2px'; } } get hostForeground() { // only apply subtle foreground color if the button is not disabled if (this._subtle() && !(this.hostButton?.disabled || this.hostButton?.ariaDisabled)) { return 'var(--palette-default-active)'; } } ngAfterContentInit() { // children buttons if (this.buttons) { this.buttons.toArray().forEach((button) => { if (button.toggleIcon || button.toggleIconComponent) { this._buttonHeading = button; } }); } // [v-button][v-accordion-heading] instance if (this.hostButton) { if (!this.hostButton._buttonSizeSetByUser) { this.hostButton.buttonSize = ButtonSize.LARGE; this.hostButton._buttonSizeSetByUser = false; } if (!this.hostButton._buttonColorSetByUser) { this.hostButton.buttonColor = ButtonColor.SECONDARY; this.hostButton._buttonColorSetByUser = false; } } } static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: AccordionHeadingDirective, deps: [{ token: i1.ButtonDirective, optional: true }], target: i0.ɵɵFactoryTarget.Directive }); } static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.12", type: AccordionHeadingDirective, isStandalone: true, selector: "[v-accordion-heading]", inputs: { class: "class", expanded: "expanded" }, outputs: { toggled: "toggled" }, host: { properties: { "class": "this.hostClass", "style.--v-button-default-background": "this.hostBackground", "style.--v-accordion-background": "this.hostBackground", "style.--v-button-default-gap": "this.hostGap", "style.--v-accordion-items-gap": "this.hostGap", "style.--v-accordion-foreground-initial": "this.hostForeground" } }, queries: [{ propertyName: "buttons", predicate: ButtonDirective }], ngImport: i0 }); } } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: AccordionHeadingDirective, decorators: [{ type: Directive, args: [{ standalone: true, // tslint:disable-next-line:directive-selector selector: '[v-accordion-heading]' }] }], ctorParameters: () => [{ type: i1.ButtonDirective, decorators: [{ type: Optional }] }], propDecorators: { buttons: [{ type: ContentChildren, args: [ButtonDirective] }], class: [{ type: Input }], hostClass: [{ type: HostBinding, args: ['class'] }], expanded: [{ type: Input }], toggled: [{ type: Output }], hostBackground: [{ type: HostBinding, args: ['style.--v-button-default-background'] }, { type: HostBinding, args: ['style.--v-accordion-background'] }], hostGap: [{ type: HostBinding, args: ['style.--v-button-default-gap'] }, { type: HostBinding, args: ['style.--v-accordion-items-gap'] }], hostForeground: [{ type: HostBinding, args: ['style.--v-accordion-foreground-initial'] }] } }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjb3JkaW9uLWhlYWRpbmcuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9ub3ZhLWxpYi9zcmMvbGliL2FjY29yZGlvbi1oZWFkaW5nL2FjY29yZGlvbi1oZWFkaW5nLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7O0lBZUk7QUFDSixPQUFPLEVBQWdCLHFCQUFxQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDNUUsT0FBTyxFQUVMLGVBQWUsRUFDZixTQUFTLEVBQ1QsWUFBWSxFQUNaLFdBQVcsRUFDWCxLQUFLLEVBQ0wsUUFBUSxFQUNSLE1BQU0sRUFDTixTQUFTLEVBQ1QsTUFBTSxFQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxXQUFXLEVBQUUsVUFBVSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDckUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDRCQUE0QixDQUFDOzs7QUFPN0QsTUFBTSxPQUFPLHlCQUF5QjtJQU1wQyxZQUErQixVQUE0QjtRQUE1QixlQUFVLEdBQVYsVUFBVSxDQUFrQjtRQUozRCxZQUFPLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBaUJ4QixXQUFNLEdBQVcsRUFBRSxDQUFDO1FBbUJwQixjQUFTLEdBQVksS0FBSyxDQUFDO1FBRTNCOztXQUVHO1FBQ08sWUFBTyxHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7SUFyQ2UsQ0FBQztJQUUvRDs7O09BR0c7SUFDSCxJQUNJLEtBQUs7UUFDUCxPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxxQkFBcUIsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUN4RCxDQUFDO0lBQ0QsSUFBSSxLQUFLLENBQUMsS0FBYTtRQUNyQixJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztJQUN0QixDQUFDO0lBRUQsSUFD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biAqICAgICAgICAgICAgICBDb3B5cmlnaHQgKGMpIDIwMjUgVmlzYSwgSW5jLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKlxuICoqL1xuaW1wb3J0IHsgQm9vbGVhbklucHV0LCBjb2VyY2VCb29sZWFuUHJvcGVydHkgfSBmcm9tICdAYW5ndWxhci9jZGsvY29lcmNpb24nO1xuaW1wb3J0IHtcbiAgQWZ0ZXJDb250ZW50SW5pdCxcbiAgQ29udGVudENoaWxkcmVuLFxuICBEaXJlY3RpdmUsXG4gIEV2ZW50RW1pdHRlcixcbiAgSG9zdEJpbmRpbmcsXG4gIElucHV0LFxuICBPcHRpb25hbCxcbiAgT3V0cHV0LFxuICBRdWVyeUxpc3QsXG4gIHNpZ25hbFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJ1dHRvbkNvbG9yLCBCdXR0b25TaXplIH0gZnJvbSAnLi4vYnV0dG9uL2J1dHRvbi5jb25zdGFudHMnO1xuaW1wb3J0IHsgQnV0dG9uRGlyZWN0aXZlIH0gZnJvbSAnLi4vYnV0dG9uL2J1dHRvbi5kaXJlY3RpdmUnO1xuXG5ARGlyZWN0aXZlKHtcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOmRpcmVjdGl2ZS1zZWxlY3RvclxuICBzZWxlY3RvcjogJ1t2LWFjY29yZGlvbi1oZWFkaW5nXSdcbn0pXG5leHBvcnQgY2xhc3MgQWNjb3JkaW9uSGVhZGluZ0RpcmVjdGl2ZSBpbXBsZW1lbnRzIEFmdGVyQ29udGVudEluaXQge1xuICBAQ29udGVudENoaWxkcmVuKEJ1dHRvbkRpcmVjdGl2ZSkgYnV0dG9uczogUXVlcnlMaXN0PEJ1dHRvbkRpcmVjdGl2ZT47XG4gIF9zdWJ0bGUgPSBzaWduYWwoZmFsc2UpO1xuICBfaW5kZXg6IG51bWJlcjtcbiAgX2J1dHRvbkhlYWRpbmc6IEJ1dHRvbkRpcmVjdGl2ZTtcblxuICBjb25zdHJ1Y3RvcihAT3B0aW9uYWwoKSBwdWJsaWMgaG9zdEJ1dHRvbj86IEJ1dHRvbkRpcmVjdGl2ZSkge31cblxuICAvKipcbiAgICogUHJvdmlkZXMgY3VzdG9tIGNsYXNzJiM0MDtlcyYjNDE7IGZvciBjdXN0b20gc3R5bGluZy5cbiAgICogQGRlZmF1bHQgLnYtYWNjb3JkaW9uLWhlYWRpbmdcbiAgICovXG4gIEBJbnB1dCgpXG4gIGdldCBjbGFzcygpOiBzdHJpbmcge1xuICAgIHJldHVybiBbdGhpcy5fY2xhc3MsICd2LWFjY29yZGlvbi1oZWFkaW5nJ10uam9pbignICcpO1xuICB9XG4gIHNldCBjbGFzcyh2YWx1ZTogc3RyaW5nKSB7XG4gICAgdGhpcy5fY2xhc3MgPSB2YWx1ZTtcbiAgfVxuICBfY2xhc3M6IHN0cmluZyA9ICcnO1xuICBASG9zdEJpbmRpbmcoJ2NsYXNzJylcbiAgZ2V0IGhvc3RDbGFzcygpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmNsYXNzO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgZXhwYW5kZWQgc3RhdGUgb2YgYWNjb3JkaW9uIGhlYWRpbmcuIDxiciAvPlxuICAgKiA8c3Ryb25nPlRoaXMgcHJvcGVydHkgaXMgb3ZlcnJpZGVuIHdoZW4gdXNlZCB3aXRoIGRldGFpbHMvc3VtbWFyeSB2ZXJzaW9uIG9mIGFjY29yZGlvbi4gSW5zdGVhZCwgcmVmZXIgdG8gdGhlIG5hdGl2ZSA8Y29kZT5vcGVuPC9jb2RlPiBwcm9wZXJ0eSBvZiB0aGUgZGV0YWlscyBlbGVtZW50Ljwvc3Ryb25nPlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgQElucHV0KClcbiAgZ2V0IGV4cGFuZGVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9leHBhbmRlZDtcbiAgfVxuICBzZXQgZXhwYW5kZWQodmFsdWU6IEJvb2xlYW5JbnB1dCkge1xuICAgIHRoaXMuX2V4cGFuZGVkID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcbiAgICB0aGlzLnRvZ2dsZWQuZW1pdCh0aGlzLl9pbmRleCk7XG4gIH1cbiAgX2V4cGFuZGVkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIEVtaXRzIGl0ZW0gaW5kZXggd2hlbiBhY2NvcmRpb24gaXRlbSBpcyB0b2dnbGVkIChjb2xsYXBzZWQgYW5kIGV4cGFuZGVkKS5cbiAgICovXG4gIEBPdXRwdXQoKSB0b2dnbGVkID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XG5cbiAgQEhvc3RCaW5kaW5nKCdzdHlsZS4tLXYtYnV0dG9uLWRlZmF1bHQtYmFja2dyb3VuZCcpXG4gIEBIb3N0QmluZGluZygnc3R5bGUuLS12LWFjY29yZGlvbi1iYWNrZ3JvdW5kJylcbiAgZ2V0IGhvc3RCYWNrZ3JvdW5kKCk6IHN0cmluZyB8IHZvaWQge1xuICAgIGlmICh0aGlzLl9zdWJ0bGUoKSkge1xuICAgICAgcmV0dXJuICd0cmFuc3BhcmVudCc7XG4gICAgfVxuICB9XG5cbiAgQEhvc3RCaW5kaW5nKCdzdHlsZS4tLXYtYnV0dG9uLWRlZmF1bHQtZ2FwJylcbiAgQEhvc3RCaW5kaW5nKCdzdHlsZS4tLXYtYWNjb3JkaW9uLWl0ZW1zLWdhcCcpXG4gIGdldCBob3N0R2FwKCk6IHN0cmluZyB8IHZvaWQge1xuICAgIGlmICh0aGlzLl9zdWJ0bGUoKSkge1xuICAgICAgcmV0dXJuICcycHgnO1xuICAgIH1cbiAgfVxuXG4gIEBIb3N0QmluZGluZygnc3R5bGUuLS12LWFjY29yZGlvbi1mb3JlZ3JvdW5kLWluaXRpYWwnKVxuICBnZXQgaG9zdEZvcmVncm91bmQoKTogc3RyaW5nIHwgdm9pZCB7XG4gICAgLy8gb25seSBhcHBseSBzdWJ0bGUgZm9yZWdyb3VuZCBjb2xvciBpZiB0aGUgYnV0dG9uIGlzIG5vdCBkaXNhYmxlZFxuICAgIGlmICh0aGlzLl9zdWJ0bGUoKSAmJiAhKHRoaXMuaG9zdEJ1dHRvbj8uZGlzYWJsZWQgfHwgdGhpcy5ob3N0QnV0dG9uPy5hcmlhRGlzYWJsZWQpKSB7XG4gICAgICByZXR1cm4gJ3ZhcigtLXBhbGV0dGUtZGVmYXVsdC1hY3RpdmUpJztcbiAgICB9XG4gIH1cblxuICBuZ0FmdGVyQ29udGVudEluaXQoKTogdm9pZCB7XG4gICAgLy8gY2hpbGRyZW4gYnV0dG9uc1xuICAgIGlmICh0aGlzLmJ1dHRvbnMpIHtcbiAgICAgIHRoaXMuYnV0dG9ucy50b0FycmF5KCkuZm9yRWFjaCgoYnV0dG9uKSA9PiB7XG4gICAgICAgIGlmIChidXR0b24udG9nZ2xlSWNvbiB8fCBidXR0b24udG9nZ2xlSWNvbkNvbXBvbmVudCkge1xuICAgICAgICAgIHRoaXMuX2J1dHRvbkhlYWRpbmcgPSBidXR0b247XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cblxuICAgIC8vIFt2LWJ1dHRvbl1bdi1hY2NvcmRpb24taGVhZGluZ10gaW5zdGFuY2VcbiAgICBpZiAodGhpcy5ob3N0QnV0dG9uKSB7XG4gICAgICBpZiAoIXRoaXMuaG9zdEJ1dHRvbi5fYnV0dG9uU2l6ZVNldEJ5VXNlcikge1xuICAgICAgICB0aGlzLmhvc3RCdXR0b24uYnV0dG9uU2l6ZSA9IEJ1dHRvblNpemUuTEFSR0U7XG4gICAgICAgIHRoaXMuaG9zdEJ1dHRvbi5fYnV0dG9uU2l6ZVNldEJ5VXNlciA9IGZhbHNlO1xuICAgICAgfVxuICAgICAgaWYgKCF0aGlzLmhvc3RCdXR0b24uX2J1dHRvbkNvbG9yU2V0QnlVc2VyKSB7XG4gICAgICAgIHRoaXMuaG9zdEJ1dHRvbi5idXR0b25Db2xvciA9IEJ1dHRvbkNvbG9yLlNFQ09OREFSWTtcbiAgICAgICAgdGhpcy5ob3N0QnV0dG9uLl9idXR0b25Db2xvclNldEJ5VXNlciA9IGZhbHNlO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIl19