@visa/nova-angular
Version:
Visa Product Design System Nova Angular library
159 lines • 15 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 { coerceBooleanProperty } from '@angular/cdk/coercion';
import { Directive, HostBinding, Input } from '@angular/core';
import { TableSize } from './table.constants';
import * as i0 from "@angular/core";
export class TableDirective {
get hostClasses() {
return [
this.class,
'v-table',
this.keyValue ? 'v-table-key-value' : '',
this.alternate ? 'v-table-alt' : '',
this.subtle ? 'v-table-subtle' : '',
this.dividerLines ? 'v-table-border' : '',
this.horizontalDividerLines ? 'v-table-border-block' : ''
].join(' ');
}
/**
* Sets table as subtle variant when true.
* @default false
*/
get subtle() {
return this._subtle;
}
set subtle(value) {
this._subtle = coerceBooleanProperty(value);
}
/**
* Adds vertical and horizontal divider lines when true.
* @default false
*/
get dividerLines() {
return this._dividerLines;
}
set dividerLines(value) {
this._dividerLines = coerceBooleanProperty(value);
}
/**
* Adds horizontal divider lines when true.
* @default false
*/
get horizontalDividerLines() {
return this._horizontalDividerLines;
}
set horizontalDividerLines(value) {
this._horizontalDividerLines = coerceBooleanProperty(value);
}
/**
* Sets table as key-value variant when true.
* @default false
*/
get keyValue() {
return this._keyValue;
}
set keyValue(value) {
this._keyValue = coerceBooleanProperty(value);
}
/**
* Sets table as alternate variant when true (alternate rows have different background color).
* @default false
*/
get alternate() {
return this._alternate;
}
set alternate(value) {
this._alternate = coerceBooleanProperty(value);
}
get hostTableBlockDefault() {
switch (this._tableSize) {
case 'compact':
return 'var(--v-table-data-block-small)';
case 'medium':
return '';
case 'large':
return 'var(--v-table-data-block-large)';
default:
return '';
}
}
get hostTablePaddingBlock() {
switch (this._tableSize) {
case 'compact':
return 'var(--v-table-data-padding-block-small)';
case 'medium':
return '';
case 'large':
return 'var(--v-table-data-padding-block-large)';
default:
return '';
}
}
/**
* Sets table size.
* @default 'medium' / TableSize.MEDIUM
* @options 'compact' | TableSize.COMPACT | <br> 'medium' | TableSize.MEDIUM | <br> 'large' | TableSize.LARGE
*/
get tableSize() {
return this._tableSize;
}
set tableSize(value) {
this._tableSize = value;
}
constructor() {
this._subtle = false;
this._dividerLines = false;
this._horizontalDividerLines = false;
this._keyValue = false;
this._alternate = false;
this._tableSize = TableSize.MEDIUM;
}
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TableDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.12", type: TableDirective, isStandalone: true, selector: "[v-table]", inputs: { class: "class", subtle: "subtle", dividerLines: "dividerLines", horizontalDividerLines: "horizontalDividerLines", keyValue: "keyValue", alternate: "alternate", tableSize: "tableSize" }, host: { properties: { "class": "this.hostClasses", "style.--v-table-data-block-default": "this.hostTableBlockDefault", "style.--v-table-data-padding-block-default": "this.hostTablePaddingBlock" } }, ngImport: i0 }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TableDirective, decorators: [{
type: Directive,
args: [{
standalone: true,
selector: '[v-table]'
}]
}], ctorParameters: () => [], propDecorators: { class: [{
type: Input
}], hostClasses: [{
type: HostBinding,
args: ['class']
}], subtle: [{
type: Input
}], dividerLines: [{
type: Input
}], horizontalDividerLines: [{
type: Input
}], keyValue: [{
type: Input
}], alternate: [{
type: Input
}], hostTableBlockDefault: [{
type: HostBinding,
args: ['style.--v-table-data-block-default']
}], hostTablePaddingBlock: [{
type: HostBinding,
args: ['style.--v-table-data-padding-block-default']
}], tableSize: [{
type: Input
}] } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9ub3ZhLWxpYi9zcmMvbGliL3RhYmxlL3RhYmxlLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7O0lBZUk7QUFDSixPQUFPLEVBQWdCLHFCQUFxQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDNUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzlELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQzs7QUFNOUMsTUFBTSxPQUFPLGNBQWM7SUFNekIsSUFDSSxXQUFXO1FBQ2IsT0FBTztZQUNMLElBQUksQ0FBQyxLQUFLO1lBQ1YsU0FBUztZQUNULElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLG1CQUFtQixDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQ3hDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUNuQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUNuQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUN6QyxJQUFJLENBQUMsc0JBQXNCLENBQUMsQ0FBQyxDQUFDLHNCQUFzQixDQUFDLENBQUMsQ0FBQyxFQUFFO1NBQzFELENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ2QsQ0FBQztJQUVEOzs7T0FHRztJQUNILElBQ0ksTUFBTTtRQUNSLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUN0QixDQUFDO0lBQ0QsSUFBSSxNQUFNLENBQUMsS0FBbUI7UUFDNUIsSUFBSSxDQUFDLE9BQU8sR0FBRyxxQkFBcUIsQ0FB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InNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogICAgICAgICAgICAgIENvcHlyaWdodCAoYykgMjAyNSBWaXNhLCBJbmMuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqXG4gKiovXG5pbXBvcnQgeyBCb29sZWFuSW5wdXQsIGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2VyY2lvbic7XG5pbXBvcnQgeyBEaXJlY3RpdmUsIEhvc3RCaW5kaW5nLCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVGFibGVTaXplIH0gZnJvbSAnLi90YWJsZS5jb25zdGFudHMnO1xuXG5ARGlyZWN0aXZlKHtcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgc2VsZWN0b3I6ICdbdi10YWJsZV0nXG59KVxuZXhwb3J0IGNsYXNzIFRhYmxlRGlyZWN0aXZlIHtcbiAgLyoqXG4gICAqIFByb3ZpZGVzIGN1c3RvbSBjbGFzcyYjNDA7ZXMmIzQxOyBmb3IgY3VzdG9tIHN0eWxpbmcuXG4gICAqIEBkZWZhdWx0IC52LXRhYmxlXG4gICAqL1xuICBASW5wdXQoKSBjbGFzczogc3RyaW5nO1xuICBASG9zdEJpbmRpbmcoJ2NsYXNzJylcbiAgZ2V0IGhvc3RDbGFzc2VzKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIFtcbiAgICAgIHRoaXMuY2xhc3MsXG4gICAgICAndi10YWJsZScsXG4gICAgICB0aGlzLmtleVZhbHVlID8gJ3YtdGFibGUta2V5LXZhbHVlJyA6ICcnLFxuICAgICAgdGhpcy5hbHRlcm5hdGUgPyAndi10YWJsZS1hbHQnIDogJycsXG4gICAgICB0aGlzLnN1YnRsZSA/ICd2LXRhYmxlLXN1YnRsZScgOiAnJyxcbiAgICAgIHRoaXMuZGl2aWRlckxpbmVzID8gJ3YtdGFibGUtYm9yZGVyJyA6ICcnLFxuICAgICAgdGhpcy5ob3Jpem9udGFsRGl2aWRlckxpbmVzID8gJ3YtdGFibGUtYm9yZGVyLWJsb2NrJyA6ICcnXG4gICAgXS5qb2luKCcgJyk7XG4gIH1cblxuICAvKipcbiAgICogU2V0cyB0YWJsZSBhcyBzdWJ0bGUgdmFyaWFudCB3aGVuIHRydWUuXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICBASW5wdXQoKVxuICBnZXQgc3VidGxlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9zdWJ0bGU7XG4gIH1cbiAgc2V0IHN1YnRsZSh2YWx1ZTogQm9vbGVhbklucHV0KSB7XG4gICAgdGhpcy5fc3VidGxlID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcbiAgfVxuICBfc3VidGxlOiBib29sZWFuID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIEFkZHMgdmVydGljYWwgYW5kIGhvcml6b250YWwgZGl2aWRlciBsaW5lcyB3aGVuIHRydWUuXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICBASW5wdXQoKVxuICBnZXQgZGl2aWRlckxpbmVzKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9kaXZpZGVyTGluZXM7XG4gIH1cbiAgc2V0IGRpdmlkZXJMaW5lcyh2YWx1ZTogQm9vbGVhbklucHV0KSB7XG4gICAgdGhpcy5fZGl2aWRlckxpbmVzID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcbiAgfVxuICBfZGl2aWRlckxpbmVzOiBib29sZWFuID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIEFkZHMgaG9yaXpvbnRhbCBkaXZpZGVyIGxpbmVzIHdoZW4gdHJ1ZS5cbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIEBJbnB1dCgpXG4gIGdldCBob3Jpem9udGFsRGl2aWRlckxpbmVzKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9ob3Jpem9udGFsRGl2aWRlckxpbmVzO1xuICB9XG4gIHNldCBob3Jpem9udGFsRGl2aWRlckxpbmVzKHZhbHVlOiBCb29sZWFuSW5wdXQpIHtcbiAgICB0aGlzLl9ob3Jpem9udGFsRGl2aWRlckxpbmVzID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcbiAgfVxuICBfaG9yaXpvbnRhbERpdmlkZXJMaW5lczogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBTZXRzIHRhYmxlIGFzIGtleS12YWx1ZSB2YXJpYW50IHdoZW4gdHJ1ZS5cbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIEBJbnB1dCgpXG4gIGdldCBrZXlWYWx1ZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fa2V5VmFsdWU7XG4gIH1cbiAgc2V0IGtleVZhbHVlKHZhbHVlOiBCb29sZWFuSW5wdXQpIHtcbiAgICB0aGlzLl9rZXlWYWx1ZSA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG4gIH1cbiAgX2tleVZhbHVlOiBib29sZWFuID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIFNldHMgdGFibGUgYXMgYWx0ZXJuYXRlIHZhcmlhbnQgd2hlbiB0cnVlIChhbHRlcm5hdGUgcm93cyBoYXZlIGRpZmZlcmVudCBiYWNrZ3JvdW5kIGNvbG9yKS5cbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIEBJbnB1dCgpXG4gIGdldCBhbHRlcm5hdGUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX2FsdGVybmF0ZTtcbiAgfVxuICBzZXQgYWx0ZXJuYXRlKHZhbHVlOiBCb29sZWFuSW5wdXQpIHtcbiAgICB0aGlzLl9hbHRlcm5hdGUgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xuICB9XG4gIF9hbHRlcm5hdGU6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBASG9zdEJpbmRpbmcoJ3N0eWxlLi0tdi10YWJsZS1kYXRhLWJsb2NrLWRlZmF1bHQnKVxuICBnZXQgaG9zdFRhYmxlQmxvY2tEZWZhdWx0KCk6IHN0cmluZyB8IHZvaWQge1xuICAgIHN3aXRjaCAodGhpcy5fdGFibGVTaXplKSB7XG4gICAgICBjYXNlICdjb21wYWN0JzpcbiAgICAgICAgcmV0dXJuICd2YXIoLS12LXRhYmxlLWRhdGEtYmxvY2stc21hbGwpJztcbiAgICAgIGNhc2UgJ21lZGl1bSc6XG4gICAgICAgIHJldHVybiAnJztcbiAgICAgIGNhc2UgJ2xhcmdlJzpcbiAgICAgICAgcmV0dXJuICd2YXIoLS12LXRhYmxlLWRhdGEtYmxvY2stbGFyZ2UpJztcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybiAnJztcbiAgICB9XG4gIH1cblxuICBASG9zdEJpbmRpbmcoJ3N0eWxlLi0tdi10YWJsZS1kYXRhLXBhZGRpbmctYmxvY2stZGVmYXVsdCcpXG4gIGdldCBob3N0VGFibGVQYWRkaW5nQmxvY2soKTogc3RyaW5nIHwgdm9pZCB7XG4gICAgc3dpdGNoICh0aGlzLl90YWJsZVNpemUpIHtcbiAgICAgIGNhc2UgJ2NvbXBhY3QnOlxuICAgICAgICByZXR1cm4gJ3ZhcigtLXYtdGFibGUtZGF0YS1wYWRkaW5nLWJsb2NrLXNtYWxsKSc7XG4gICAgICBjYXNlICdtZWRpdW0nOlxuICAgICAgICByZXR1cm4gJyc7XG4gICAgICBjYXNlICdsYXJnZSc6XG4gICAgICAgIHJldHVybiAndmFyKC0tdi10YWJsZS1kYXRhLXBhZGRpbmctYmxvY2stbGFyZ2UpJztcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybiAnJztcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogU2V0cyB0YWJsZSBzaXplLlxuICAgKiBAZGVmYXVsdCAnbWVkaXVtJyAvIFRhYmxlU2l6ZS5NRURJVU1cbiAgICogQG9wdGlvbnMgJ2NvbXBhY3QnIHwgVGFibGVTaXplLkNPTVBBQ1QgfCA8YnI+ICdtZWRpdW0nIHwgVGFibGVTaXplLk1FRElVTSB8IDxicj4gJ2xhcmdlJyB8IFRhYmxlU2l6ZS5MQVJHRVxuICAgKi9cbiAgQElucHV0KClcbiAgZ2V0IHRhYmxlU2l6ZSgpOiBUYWJsZVNpemUge1xuICAgIHJldHVybiB0aGlzLl90YWJsZVNpemU7XG4gIH1cbiAgc2V0IHRhYmxlU2l6ZSh2YWx1ZTogVGFibGVTaXplKSB7XG4gICAgdGhpcy5fdGFibGVTaXplID0gdmFsdWU7XG4gIH1cbiAgX3RhYmxlU2l6ZTogVGFibGVTaXplID0gVGFibGVTaXplLk1FRElVTTtcblxuICBjb25zdHJ1Y3RvcigpIHt9XG59XG4iXX0=