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