UNPKG

@visa/nova-angular

Version:

Visa Product Design System Nova Angular library

104 lines 14.2 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 { 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 * Copyright (c) 2025 Visa, Inc.\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 * Copyright (c) 2025 Visa, Inc.\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWNvbi10b2dnbGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9ub3ZhLWxpYi9zcmMvbGliL2ljb24tdG9nZ2xlL2ljb24tdG9nZ2xlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbm92YS1saWIvc3JjL2xpYi9pY29uLXRvZ2dsZS9pY29uLXRvZ2dsZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7O0lBZUk7QUFDSixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDeEYsT0FBTyxFQUFFLGtDQUFrQyxFQUFFLE1BQU0sc0RBQXNELENBQUM7QUFDMUcsT0FBTyxFQUFFLGtDQUFrQyxFQUFFLE1BQU0sc0RBQXNELENBQUM7OztBQVExRyxNQUFNLE9BQU8sbUJBQW1CO0lBTzlCLFlBQW1CLEVBQWM7UUFBZCxPQUFFLEdBQUYsRUFBRSxDQUFZO1FBSmpDLHNCQUFpQixHQUFZLEtBQUssQ0FBQztRQUNuQyxrQkFBYSxHQUFZLEtBQUssQ0FBQztRQUMvQixxQkFBZ0IsR0FBWSxLQUFLLENBQUM7UUFlbEMsV0FBTSxHQUFXLEVBQUUsQ0FBQztRQWlCcEIsYUFBUSxHQUFZLEtBQUssQ0FBQztRQUUxQixjQUFjO1FBSWQsY0FBUyxHQUFXLFFBQVEsQ0FBQztRQUU3QixzREFBc0Q7UUFDdEQscUNBQXFDO1FBQ3JDLGNBQWM7UUFJZCxVQUFLLEdBQVcsU0FBUyxDQUFDO1FBRTFCLGNBQWM7UUFHZCxrQkFBYSxHQUFXLE1BQU0sQ0FBQztJQWpESyxDQUFDLENBQUMsZ0JBQWdCO0lBRXREOzs7T0FHRztJQUNILElBQ0ksS0FBSztRQUNQLE9BQU8sQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLFFBQVEsRUFBRSxhQUFhLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ2xILENBQUM7SUFDRCxJQUFJLEtBQUssQ0FBQyxLQUFhO1FBQ3JCLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO0lBQ3RCLENBQUM7SUFFRCxJQUNJLFNBQVM7UUFDWCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUM7SUFDcEIsQ0FBQztJQUVEOzs7UUFHSTtJQUNKLElBQ0ksT0FBTztRQUNULE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUN2QixDQUFDO0lBQ0QsSUFBSSxPQUFPLENBQUMsS0FBYztRQUN4QixJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQztJQUN4QixDQUFDOytHQXBDVSxtQkFBbUI7bUdBQW5CLG1CQUFtQiwwZkFDaEIsa0NBQWtDLGtGQUNsQyxrQ0FBa0MsZ0RDN0JsRCx1NEJBdUJBLDJDREFZLFlBQVk7OzRGQUlYLG1CQUFtQjtrQkFOL0IsU0FBUztpQ0FDSSxJQUFJLFdBQ1AsQ0FBQyxZQUFZLENBQUMsWUFDYixvQkFBb0I7K0VBSW9CLGVBQWU7c0JBQWhFLFlBQVk7dUJBQUMsa0NBQWtDO2dCQUNFLGVBQWU7c0JBQWhFLFlBQVk7dUJBQUMsa0NBQWtDO2dCQVk1QyxLQUFLO3NCQURSLEtBQUs7Z0JBU0YsU0FBUztzQkFEWixXQUFXO3VCQUFDLE9BQU87Z0JBVWhCLE9BQU87c0JBRFYsS0FBSztnQkFhTixTQUFTO3NCQUhSLFdBQVc7dUJBQUMsbUJBQW1COztzQkFDL0IsV0FBVzt1QkFBQyx1QkFBdUI7O3NCQUNuQyxLQUFLO2dCQVNOLEtBQUs7c0JBSEosV0FBVzt1QkFBQyx3QkFBd0I7O3NCQUNwQyxXQUFXO3VCQUFDLDBCQUEwQjs7c0JBQ3RDLEtBQUs7Z0JBTU4sYUFBYTtzQkFGWixXQUFXO3VCQUFDLHNCQUFzQjs7c0JBQ2xDLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqICAgICAgICAgICAgICBDb3B5cmlnaHQgKGMpIDIwMjUgVmlzYSwgSW5jLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKlxuICoqL1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENvbXBvbmVudCwgQ29udGVudENoaWxkLCBFbGVtZW50UmVmLCBIb3N0QmluZGluZywgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEljb25Ub2dnbGVEZWZhdWx0VGVtcGxhdGVEaXJlY3RpdmUgfSBmcm9tICcuLi9pY29uLXRvZ2dsZS1kZWZhdWx0L2ljb24tdG9nZ2xlLWRlZmF1bHQuZGlyZWN0aXZlJztcbmltcG9ydCB7IEljb25Ub2dnbGVSb3RhdGVkVGVtcGxhdGVEaXJlY3RpdmUgfSBmcm9tICcuLi9pY29uLXRvZ2dsZS1yb3RhdGVkL2ljb24tdG9nZ2xlLXJvdGF0ZWQuZGlyZWN0aXZlJztcblxuQENvbXBvbmVudCh7XG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGVdLFxuICBzZWxlY3RvcjogJ3YtaWNvbi12aXNhLXRvZ2dsZScsXG4gIHRlbXBsYXRlVXJsOiAnLi9pY29uLXRvZ2dsZS5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgSWNvblRvZ2dsZUNvbXBvbmVudCB7XG4gIEBDb250ZW50Q2hpbGQoSWNvblRvZ2dsZURlZmF1bHRUZW1wbGF0ZURpcmVjdGl2ZSkgZGVmYXVsdFRlbXBsYXRlOiBJY29uVG9nZ2xlRGVmYXVsdFRlbXBsYXRlRGlyZWN0aXZlO1xuICBAQ29udGVudENoaWxkKEljb25Ub2dnbGVSb3RhdGVkVGVtcGxhdGVEaXJlY3RpdmUpIHJvdGF0ZWRUZW1wbGF0ZTogSWNvblRvZ2dsZVJvdGF0ZWRUZW1wbGF0ZURpcmVjdGl2ZTtcbiAgX2Zsb2F0aW5nVUlUb2dnbGU6IGJvb2xlYW4gPSBmYWxzZTtcbiAgX3NlbGVjdFRvZ2dsZTogYm9vbGVhbiA9IGZhbHNlO1xuICBfYWNjb3JkaW9uVG9nZ2xlOiBib29sZWFuID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IocHVibGljIGVsOiBFbGVtZW50UmVmKSB7fSAvLyB1c2VkIGZvciB0YWJzXG5cbiAgLyoqXG4gICAqIFByb3ZpZGVzIGN1c3RvbSBjbGFzcyYjNDA7ZXMmIzQxOyBmb3IgY3VzdG9tIHN0eWxpbmcuXG4gICAqIEBkZWZhdWx0IC52LWFjY29yZGlvbi10b2dnbGUtaWNvblxuICAgKi9cbiAgQElucHV0KClcbiAgZ2V0IGNsYXNzKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIFt0aGlzLl9jbGFzcywgJ3YtaWNvbicsICd2LWljb24tdGlueScsIHRoaXMuX2FjY29yZGlvblRvZ2dsZSA/ICd2LWFjY29yZGlvbi10b2dnbGUtaWNvbicgOiAnJ10uam9pbignICcpO1xuICB9XG4gIHNldCBjbGFzcyh2YWx1ZTogc3RyaW5nKSB7XG4gICAgdGhpcy5fY2xhc3MgPSB2YWx1ZTtcbiAgfVxuICBfY2xhc3M6IHN0cmluZyA9ICcnO1xuICBASG9zdEJpbmRpbmcoJ2NsYXNzJylcbiAgZ2V0IGhvc3RDbGFzcygpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmNsYXNzO1xuICB9XG5cbiAgLyoqXG4gICAqIFNob3dzIHRoZSByb3RhdGVkIHRlbXBsYXRlIHdoZW4gdHJ1ZSBhbmQgdGhlIGRlZmF1bHQgdGVtcGxhdGUgd2hlbiBmYWxzZS5cbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICoqL1xuICBASW5wdXQoKVxuICBnZXQgcm90YXRlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fcm90YXRlZDtcbiAgfVxuICBzZXQgcm90YXRlZCh2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMuX3JvdGF0ZWQgPSB2YWx1ZTtcbiAgfVxuICBfcm90YXRlZDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIC8qKiBAaWdub3JlICovXG4gIEBIb3N0QmluZGluZygnc3R5bGUuYWxpZ24taXRlbXMnKVxuICBASG9zdEJpbmRpbmcoJ3N0eWxlLmp1c3RpZnktY29udGVudCcpXG4gIEBJbnB1dCgpXG4gIGFsaWdubWVudDogc3RyaW5nID0gJ2NlbnRlcic7XG5cbiAgLy8gZG9uJ3QgYWxsb3cgdGhpcyBjb21wb25lbnQgdG8gYmUgc3R5bGVkIHdpdGggY29sb3JzXG4gIC8vIFwicGFzc1wiIHRoZSBjb2xvcnMgdG8gdGhlIGNoaWxkIHN2Z1xuICAvKiogQGlnbm9yZSAqL1xuICBASG9zdEJpbmRpbmcoJ3N0eWxlLi0tdi1pY29uLXByaW1hcnknKVxuICBASG9zdEJpbmRpbmcoJ3N0eWxlLi0tdi1pY29uLXNlY29uZGFyeScpXG4gIEBJbnB1dCgpXG4gIGNvbG9yOiBzdHJpbmcgPSAnaW5oZXJpdCc7XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgQEhvc3RCaW5kaW5nKCdzdHlsZS5wb2ludGVyLWV2ZW50cycpXG4gIEBJbnB1dCgpXG4gIHBvaW50ZXJFdmVudHM6IHN0cmluZyA9ICdub25lJztcbn1cbiIsIjwhLS1cbiAqICAgICAgICAgICAgICBDb3B5cmlnaHQgKGMpIDIwMjUgVmlzYSwgSW5jLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKlxuIC0tPlxuPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFyb3RhdGVkOyBlbHNlIHJvdGF0ZWRUZW1wbGF0ZVwiPlxuICA8bmctY29udGVudCBzZWxlY3Q9XCJbdi10b2dnbGUtZGVmYXVsdC10ZW1wbGF0ZV1cIj48L25nLWNvbnRlbnQ+XG48L25nLWNvbnRhaW5lcj5cblxuPG5nLXRlbXBsYXRlICNyb3RhdGVkVGVtcGxhdGU+XG4gIDxuZy1jb250ZW50IHNlbGVjdD1cIlt2LXRvZ2dsZS1yb3RhdGVkLXRlbXBsYXRlXVwiPjwvbmctY29udGVudD5cbjwvbmctdGVtcGxhdGU+XG4iXX0=