@visa/nova-angular
Version:
Visa Product Design System Nova Angular library
104 lines • 14.1 kB
JavaScript
/**
* © 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(es) 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==