@visa/nova-angular
Version:
Visa Product Design System Nova Angular library
75 lines • 7.76 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 { coerceBooleanProperty } from '@angular/cdk/coercion';
import { ContentChild, Directive, ElementRef, HostBinding, Input } from '@angular/core';
import { CheckboxDirective } from '../checkbox/checkbox.directive';
import { ButtonDirective } from '../button/button.directive';
import * as i0 from "@angular/core";
export class ChipDirective {
/**
* Provides custom class(es) for custom styling.
* @default .v-button
*/
get class() {
return [this._class, 'v-chip', this.compact ? 'v-chip-compact' : '', this.checkbox ? 'v-chip-selection' : ''].join(' ');
}
set class(value) {
this._class = value;
}
get hostClass() {
return this.class;
}
/**
* Sets chip to compact variant when true.
* @default false
*/
get compact() {
return this._compact;
}
set compact(value) {
this._compact = coerceBooleanProperty(value);
}
constructor(el) {
this.el = el;
this._class = '';
this._compact = false;
} // used in floating-ui-container
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ChipDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.12", type: ChipDirective, isStandalone: true, selector: "[v-chip]", inputs: { class: "class", compact: "compact" }, host: { properties: { "class": "this.hostClass" } }, queries: [{ propertyName: "checkbox", first: true, predicate: CheckboxDirective, descendants: true }, { propertyName: "button", first: true, predicate: ButtonDirective, descendants: true }], ngImport: i0 }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ChipDirective, decorators: [{
type: Directive,
args: [{
standalone: true,
// tslint:disable-next-line:directive-selector
selector: '[v-chip]'
}]
}], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { checkbox: [{
type: ContentChild,
args: [CheckboxDirective]
}], button: [{
type: ContentChild,
args: [ButtonDirective]
}], class: [{
type: Input
}], hostClass: [{
type: HostBinding,
args: ['class']
}], compact: [{
type: Input
}] } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hpcC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL25vdmEtbGliL3NyYy9saWIvY2hpcC9jaGlwLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7O0lBZUk7QUFDSixPQUFPLEVBQWdCLHFCQUFxQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDNUUsT0FBTyxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDeEYsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDbkUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDRCQUE0QixDQUFDOztBQU83RCxNQUFNLE9BQU8sYUFBYTtJQUd4Qjs7O09BR0c7SUFDSCxJQUNJLEtBQUs7UUFDUCxPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxRQUFRLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUNoSCxHQUFHLENBQ0osQ0FBQztJQUNKLENBQUM7SUFDRCxJQUFJLEtBQUssQ0FBQyxLQUFhO1FBQ3JCLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO0lBQ3RCLENBQUM7SUFFRCxJQUNJLFNBQVM7UUFDWCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUM7SUFDcEIsQ0FBQztJQUVEOzs7T0FHRztJQUNILElBQ0ksT0FBTztRQUNULE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUN2QixDQUFDO0lBQ0QsSUFBSSxPQUFPLENBQUMsS0FBbUI7UUFDN0IsSUFBSSxDQUFDLFFBQVEsR0FBRyxxQkFBcUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMvQyxDQUFDO0lBR0QsWUFBcUIsRUFBYztRQUFkLE9BQUUsR0FBRixFQUFFLENBQVk7UUFuQm5DLFdBQU0sR0FBVyxFQUFFLENBQUM7UUFpQnBCLGFBQVEsR0FBWSxLQUFLLENBQUM7SUFFWSxDQUFDLENBQUMsZ0NBQWdDOytHQW5DN0QsYUFBYTttR0FBYixhQUFhLCtNQUNWLGlCQUFpQix5RUFDakIsZUFBZTs7NEZBRmxCLGFBQWE7a0JBTHpCLFNBQVM7bUJBQUM7b0JBQ1QsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLDhDQUE4QztvQkFDOUMsUUFBUSxFQUFFLFVBQVU7aUJBQ3JCOytFQUVrQyxRQUFRO3NCQUF4QyxZQUFZO3VCQUFDLGlCQUFpQjtnQkFDQSxNQUFNO3NCQUFwQyxZQUFZO3VCQUFDLGVBQWU7Z0JBTXpCLEtBQUs7c0JBRFIsS0FBSztnQkFXRixTQUFTO3NCQURaLFdBQVc7dUJBQUMsT0FBTztnQkFVaEIsT0FBTztzQkFEVixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiAgICAgICAgICAgICAgwqkgMjAyNSBWaXNhXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqXG4gKiovXG5pbXBvcnQgeyBCb29sZWFuSW5wdXQsIGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2VyY2lvbic7XG5pbXBvcnQgeyBDb250ZW50Q2hpbGQsIERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgSG9zdEJpbmRpbmcsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDaGVja2JveERpcmVjdGl2ZSB9IGZyb20gJy4uL2NoZWNrYm94L2NoZWNrYm94LmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBCdXR0b25EaXJlY3RpdmUgfSBmcm9tICcuLi9idXR0b24vYnV0dG9uLmRpcmVjdGl2ZSc7XG5cbkBEaXJlY3RpdmUoe1xuICBzdGFuZGFsb25lOiB0cnVlLFxuICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6ZGlyZWN0aXZlLXNlbGVjdG9yXG4gIHNlbGVjdG9yOiAnW3YtY2hpcF0nXG59KVxuZXhwb3J0IGNsYXNzIENoaXBEaXJlY3RpdmUge1xuICBAQ29udGVudENoaWxkKENoZWNrYm94RGlyZWN0aXZlKSBjaGVja2JveDogQ2hlY2tib3hEaXJlY3RpdmU7XG4gIEBDb250ZW50Q2hpbGQoQnV0dG9uRGlyZWN0aXZlKSBidXR0b246IEJ1dHRvbkRpcmVjdGl2ZTtcbiAgLyoqXG4gICAqIFByb3ZpZGVzIGN1c3RvbSBjbGFzcyYjNDA7ZXMmIzQxOyBmb3IgY3VzdG9tIHN0eWxpbmcuXG4gICAqIEBkZWZhdWx0IC52LWJ1dHRvblxuICAgKi9cbiAgQElucHV0KClcbiAgZ2V0IGNsYXNzKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIFt0aGlzLl9jbGFzcywgJ3YtY2hpcCcsIHRoaXMuY29tcGFjdCA/ICd2LWNoaXAtY29tcGFjdCcgOiAnJywgdGhpcy5jaGVja2JveCA/ICd2LWNoaXAtc2VsZWN0aW9uJyA6ICcnXS5qb2luKFxuICAgICAgJyAnXG4gICAgKTtcbiAgfVxuICBzZXQgY2xhc3ModmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMuX2NsYXNzID0gdmFsdWU7XG4gIH1cbiAgX2NsYXNzOiBzdHJpbmcgPSAnJztcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcycpXG4gIGdldCBob3N0Q2xhc3MoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5jbGFzcztcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIGNoaXAgdG8gY29tcGFjdCB2YXJpYW50IHdoZW4gdHJ1ZS5cbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIEBJbnB1dCgpXG4gIGdldCBjb21wYWN0KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9jb21wYWN0O1xuICB9XG4gIHNldCBjb21wYWN0KHZhbHVlOiBCb29sZWFuSW5wdXQpIHtcbiAgICB0aGlzLl9jb21wYWN0ID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcbiAgfVxuICBfY29tcGFjdDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKHJlYWRvbmx5IGVsOiBFbGVtZW50UmVmKSB7fSAvLyB1c2VkIGluIGZsb2F0aW5nLXVpLWNvbnRhaW5lclxufVxuIl19