UNPKG

@visa/nova-angular

Version:

Visa Product Design System Nova Angular library

104 lines 14.1 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 { CommonModule } from '@angular/common'; import { Component, ContentChild, ElementRef, HostBinding, Input } from '@angular/core'; import { IconToggleDefaultTemplateDirective } from '../icon-toggle-default/icon-toggle-default.directive'; import { IconToggleRotatedTemplateDirective } from '../icon-toggle-rotated/icon-toggle-rotated.directive'; import * as i0 from "@angular/core"; import * as i1 from "@angular/common"; export class IconToggleComponent { constructor(el) { this.el = el; this._floatingUIToggle = false; this._selectToggle = false; this._accordionToggle = false; this._class = ''; this._rotated = false; /** @ignore */ this.alignment = 'center'; // don't allow this component to be styled with colors // "pass" the colors to the child svg /** @ignore */ this.color = 'inherit'; /** @ignore */ this.pointerEvents = 'none'; } // used for tabs /** * Provides custom class&#40;es&#41; for custom styling. * @default .v-accordion-toggle-icon */ get class() { return [this._class, 'v-icon', 'v-icon-tiny', this._accordionToggle ? 'v-accordion-toggle-icon' : ''].join(' '); } set class(value) { this._class = value; } get hostClass() { return this.class; } /** * Shows the rotated template when true and the default template when false. * @default false **/ get rotated() { return this._rotated; } set rotated(value) { this._rotated = value; } static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: IconToggleComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); } static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: IconToggleComponent, isStandalone: true, selector: "v-icon-visa-toggle", inputs: { class: "class", rotated: "rotated", alignment: "alignment", color: "color", pointerEvents: "pointerEvents" }, host: { properties: { "class": "this.hostClass", "style.align-items": "this.alignment", "style.justify-content": "this.alignment", "style.--v-icon-primary": "this.color", "style.--v-icon-secondary": "this.color", "style.pointer-events": "this.pointerEvents" } }, queries: [{ propertyName: "defaultTemplate", first: true, predicate: IconToggleDefaultTemplateDirective, descendants: true }, { propertyName: "rotatedTemplate", first: true, predicate: IconToggleRotatedTemplateDirective, descendants: true }], ngImport: i0, template: "<!--\n * \u00A9 2025 Visa\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n -->\n<ng-container *ngIf=\"!rotated; else rotatedTemplate\">\n <ng-content select=\"[v-toggle-default-template]\"></ng-content>\n</ng-container>\n\n<ng-template #rotatedTemplate>\n <ng-content select=\"[v-toggle-rotated-template]\"></ng-content>\n</ng-template>\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); } } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: IconToggleComponent, decorators: [{ type: Component, args: [{ standalone: true, imports: [CommonModule], selector: 'v-icon-visa-toggle', template: "<!--\n * \u00A9 2025 Visa\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n -->\n<ng-container *ngIf=\"!rotated; else rotatedTemplate\">\n <ng-content select=\"[v-toggle-default-template]\"></ng-content>\n</ng-container>\n\n<ng-template #rotatedTemplate>\n <ng-content select=\"[v-toggle-rotated-template]\"></ng-content>\n</ng-template>\n" }] }], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { defaultTemplate: [{ type: ContentChild, args: [IconToggleDefaultTemplateDirective] }], rotatedTemplate: [{ type: ContentChild, args: [IconToggleRotatedTemplateDirective] }], class: [{ type: Input }], hostClass: [{ type: HostBinding, args: ['class'] }], rotated: [{ type: Input }], alignment: [{ type: HostBinding, args: ['style.align-items'] }, { type: HostBinding, args: ['style.justify-content'] }, { type: Input }], color: [{ type: HostBinding, args: ['style.--v-icon-primary'] }, { type: HostBinding, args: ['style.--v-icon-secondary'] }, { type: Input }], pointerEvents: [{ type: HostBinding, args: ['style.pointer-events'] }, { type: Input }] } }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWNvbi10b2dnbGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9ub3ZhLWxpYi9zcmMvbGliL2ljb24tdG9nZ2xlL2ljb24tdG9nZ2xlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbm92YS1saWIvc3JjL2xpYi9pY29uLXRvZ2dsZS9pY29uLXRvZ2dsZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7O0lBZUk7QUFDSixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDeEYsT0FBTyxFQUFFLGtDQUFrQyxFQUFFLE1BQU0sc0RBQXNELENBQUM7QUFDMUcsT0FBTyxFQUFFLGtDQUFrQyxFQUFFLE1BQU0sc0RBQXNELENBQUM7OztBQVExRyxNQUFNLE9BQU8sbUJBQW1CO0lBTzlCLFlBQW1CLEVBQWM7UUFBZCxPQUFFLEdBQUYsRUFBRSxDQUFZO1FBSmpDLHNCQUFpQixHQUFZLEtBQUssQ0FBQztRQUNuQyxrQkFBYSxHQUFZLEtBQUssQ0FBQztRQUMvQixxQkFBZ0IsR0FBWSxLQUFLLENBQUM7UUFlbEMsV0FBTSxHQUFXLEVBQUUsQ0FBQztRQWlCcEIsYUFBUSxHQUFZLEtBQUssQ0FBQztRQUUxQixjQUFjO1FBSWQsY0FBUyxHQUFXLFFBQVEsQ0FBQztRQUU3QixzREFBc0Q7UUFDdEQscUNBQXFDO1FBQ3JDLGNBQWM7UUFJZCxVQUFLLEdBQVcsU0FBUyxDQUFDO1FBRTFCLGNBQWM7UUFHZCxrQkFBYSxHQUFXLE1BQU0sQ0FBQztJQWpESyxDQUFDLENBQUMsZ0JBQWdCO0lBRXREOzs7T0FHRztJQUNILElBQ0ksS0FBSztRQUNQLE9BQU8sQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLFFBQVEsRUFBRSxhQUFhLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ2xILENBQUM7SUFDRCxJQUFJLEtBQUssQ0FBQyxLQUFhO1FBQ3JCLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO0lBQ3RCLENBQUM7SUFFRCxJQUNJLFNBQVM7UUFDWCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUM7SUFDcEIsQ0FBQztJQUVEOzs7UUFHSTtJQUNKLElBQ0ksT0FBTztRQUNULE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUN2QixDQUFDO0lBQ0QsSUFBSSxPQUFPLENBQUMsS0FBYztRQUN4QixJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQztJQUN4QixDQUFDOytHQXBDVSxtQkFBbUI7bUdBQW5CLG1CQUFtQiwwZkFDaEIsa0NBQWtDLGtGQUNsQyxrQ0FBa0MsZ0RDN0JsRCwwM0JBdUJBLDJDREFZLFlBQVk7OzRGQUlYLG1CQUFtQjtrQkFOL0IsU0FBUztpQ0FDSSxJQUFJLFdBQ1AsQ0FBQyxZQUFZLENBQUMsWUFDYixvQkFBb0I7K0VBSW9CLGVBQWU7c0JBQWhFLFlBQVk7dUJBQUMsa0NBQWtDO2dCQUNFLGVBQWU7c0JBQWhFLFlBQVk7dUJBQUMsa0NBQWtDO2dCQVk1QyxLQUFLO3NCQURSLEtBQUs7Z0JBU0YsU0FBUztzQkFEWixXQUFXO3VCQUFDLE9BQU87Z0JBVWhCLE9BQU87c0JBRFYsS0FBSztnQkFhTixTQUFTO3NCQUhSLFdBQVc7dUJBQUMsbUJBQW1COztzQkFDL0IsV0FBVzt1QkFBQyx1QkFBdUI7O3NCQUNuQyxLQUFLO2dCQVNOLEtBQUs7c0JBSEosV0FBVzt1QkFBQyx3QkFBd0I7O3NCQUNwQyxXQUFXO3VCQUFDLDBCQUEwQjs7c0JBQ3RDLEtBQUs7Z0JBTU4sYUFBYTtzQkFGWixXQUFXO3VCQUFDLHNCQUFzQjs7c0JBQ2xDLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqICAgICAgICAgICAgICDCqSAyMDI1IFZpc2FcbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICpcbiAqKi9cbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDb21wb25lbnQsIENvbnRlbnRDaGlsZCwgRWxlbWVudFJlZiwgSG9zdEJpbmRpbmcsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJY29uVG9nZ2xlRGVmYXVsdFRlbXBsYXRlRGlyZWN0aXZlIH0gZnJvbSAnLi4vaWNvbi10b2dnbGUtZGVmYXVsdC9pY29uLXRvZ2dsZS1kZWZhdWx0LmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBJY29uVG9nZ2xlUm90YXRlZFRlbXBsYXRlRGlyZWN0aXZlIH0gZnJvbSAnLi4vaWNvbi10b2dnbGUtcm90YXRlZC9pY29uLXRvZ2dsZS1yb3RhdGVkLmRpcmVjdGl2ZSc7XG5cbkBDb21wb25lbnQoe1xuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlXSxcbiAgc2VsZWN0b3I6ICd2LWljb24tdmlzYS10b2dnbGUnLFxuICB0ZW1wbGF0ZVVybDogJy4vaWNvbi10b2dnbGUuY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIEljb25Ub2dnbGVDb21wb25lbnQge1xuICBAQ29udGVudENoaWxkKEljb25Ub2dnbGVEZWZhdWx0VGVtcGxhdGVEaXJlY3RpdmUpIGRlZmF1bHRUZW1wbGF0ZTogSWNvblRvZ2dsZURlZmF1bHRUZW1wbGF0ZURpcmVjdGl2ZTtcbiAgQENvbnRlbnRDaGlsZChJY29uVG9nZ2xlUm90YXRlZFRlbXBsYXRlRGlyZWN0aXZlKSByb3RhdGVkVGVtcGxhdGU6IEljb25Ub2dnbGVSb3RhdGVkVGVtcGxhdGVEaXJlY3RpdmU7XG4gIF9mbG9hdGluZ1VJVG9nZ2xlOiBib29sZWFuID0gZmFsc2U7XG4gIF9zZWxlY3RUb2dnbGU6IGJvb2xlYW4gPSBmYWxzZTtcbiAgX2FjY29yZGlvblRvZ2dsZTogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBlbDogRWxlbWVudFJlZikge30gLy8gdXNlZCBmb3IgdGFic1xuXG4gIC8qKlxuICAgKiBQcm92aWRlcyBjdXN0b20gY2xhc3MmIzQwO2VzJiM0MTsgZm9yIGN1c3RvbSBzdHlsaW5nLlxuICAgKiBAZGVmYXVsdCAudi1hY2NvcmRpb24tdG9nZ2xlLWljb25cbiAgICovXG4gIEBJbnB1dCgpXG4gIGdldCBjbGFzcygpOiBzdHJpbmcge1xuICAgIHJldHVybiBbdGhpcy5fY2xhc3MsICd2LWljb24nLCAndi1pY29uLXRpbnknLCB0aGlzLl9hY2NvcmRpb25Ub2dnbGUgPyAndi1hY2NvcmRpb24tdG9nZ2xlLWljb24nIDogJyddLmpvaW4oJyAnKTtcbiAgfVxuICBzZXQgY2xhc3ModmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMuX2NsYXNzID0gdmFsdWU7XG4gIH1cbiAgX2NsYXNzOiBzdHJpbmcgPSAnJztcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcycpXG4gIGdldCBob3N0Q2xhc3MoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5jbGFzcztcbiAgfVxuXG4gIC8qKlxuICAgKiBTaG93cyB0aGUgcm90YXRlZCB0ZW1wbGF0ZSB3aGVuIHRydWUgYW5kIHRoZSBkZWZhdWx0IHRlbXBsYXRlIHdoZW4gZmFsc2UuXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqKi9cbiAgQElucHV0KClcbiAgZ2V0IHJvdGF0ZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX3JvdGF0ZWQ7XG4gIH1cbiAgc2V0IHJvdGF0ZWQodmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLl9yb3RhdGVkID0gdmFsdWU7XG4gIH1cbiAgX3JvdGF0ZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAvKiogQGlnbm9yZSAqL1xuICBASG9zdEJpbmRpbmcoJ3N0eWxlLmFsaWduLWl0ZW1zJylcbiAgQEhvc3RCaW5kaW5nKCdzdHlsZS5qdXN0aWZ5LWNvbnRlbnQnKVxuICBASW5wdXQoKVxuICBhbGlnbm1lbnQ6IHN0cmluZyA9ICdjZW50ZXInO1xuXG4gIC8vIGRvbid0IGFsbG93IHRoaXMgY29tcG9uZW50IHRvIGJlIHN0eWxlZCB3aXRoIGNvbG9yc1xuICAvLyBcInBhc3NcIiB0aGUgY29sb3JzIHRvIHRoZSBjaGlsZCBzdmdcbiAgLyoqIEBpZ25vcmUgKi9cbiAgQEhvc3RCaW5kaW5nKCdzdHlsZS4tLXYtaWNvbi1wcmltYXJ5JylcbiAgQEhvc3RCaW5kaW5nKCdzdHlsZS4tLXYtaWNvbi1zZWNvbmRhcnknKVxuICBASW5wdXQoKVxuICBjb2xvcjogc3RyaW5nID0gJ2luaGVyaXQnO1xuXG4gIC8qKiBAaWdub3JlICovXG4gIEBIb3N0QmluZGluZygnc3R5bGUucG9pbnRlci1ldmVudHMnKVxuICBASW5wdXQoKVxuICBwb2ludGVyRXZlbnRzOiBzdHJpbmcgPSAnbm9uZSc7XG59XG4iLCI8IS0tXG4gKiAgICAgICAgICAgICAgwqkgMjAyNSBWaXNhXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqXG4gLS0+XG48bmctY29udGFpbmVyICpuZ0lmPVwiIXJvdGF0ZWQ7IGVsc2Ugcm90YXRlZFRlbXBsYXRlXCI+XG4gIDxuZy1jb250ZW50IHNlbGVjdD1cIlt2LXRvZ2dsZS1kZWZhdWx0LXRlbXBsYXRlXVwiPjwvbmctY29udGVudD5cbjwvbmctY29udGFpbmVyPlxuXG48bmctdGVtcGxhdGUgI3JvdGF0ZWRUZW1wbGF0ZT5cbiAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW3YtdG9nZ2xlLXJvdGF0ZWQtdGVtcGxhdGVdXCI+PC9uZy1jb250ZW50PlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==