UNPKG

@visa/nova-angular

Version:

Visa Product Design System Nova Angular library

159 lines 15 kB
/** * © 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 { 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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InNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogICAgICAgICAgICAgIMKpIDIwMjUgVmlzYVxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKlxuICoqL1xuaW1wb3J0IHsgQm9vbGVhbklucHV0LCBjb2VyY2VCb29sZWFuUHJvcGVydHkgfSBmcm9tICdAYW5ndWxhci9jZGsvY29lcmNpb24nO1xuaW1wb3J0IHsgRGlyZWN0aXZlLCBIb3N0QmluZGluZywgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFRhYmxlU2l6ZSB9IGZyb20gJy4vdGFibGUuY29uc3RhbnRzJztcblxuQERpcmVjdGl2ZSh7XG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIHNlbGVjdG9yOiAnW3YtdGFibGVdJ1xufSlcbmV4cG9ydCBjbGFzcyBUYWJsZURpcmVjdGl2ZSB7XG4gIC8qKlxuICAgKiBQcm92aWRlcyBjdXN0b20gY2xhc3MmIzQwO2VzJiM0MTsgZm9yIGN1c3RvbSBzdHlsaW5nLlxuICAgKiBAZGVmYXVsdCAudi10YWJsZVxuICAgKi9cbiAgQElucHV0KCkgY2xhc3M6IHN0cmluZztcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcycpXG4gIGdldCBob3N0Q2xhc3NlcygpOiBzdHJpbmcge1xuICAgIHJldHVybiBbXG4gICAgICB0aGlzLmNsYXNzLFxuICAgICAgJ3YtdGFibGUnLFxuICAgICAgdGhpcy5rZXlWYWx1ZSA/ICd2LXRhYmxlLWtleS12YWx1ZScgOiAnJyxcbiAgICAgIHRoaXMuYWx0ZXJuYXRlID8gJ3YtdGFibGUtYWx0JyA6ICcnLFxuICAgICAgdGhpcy5zdWJ0bGUgPyAndi10YWJsZS1zdWJ0bGUnIDogJycsXG4gICAgICB0aGlzLmRpdmlkZXJMaW5lcyA/ICd2LXRhYmxlLWJvcmRlcicgOiAnJyxcbiAgICAgIHRoaXMuaG9yaXpvbnRhbERpdmlkZXJMaW5lcyA/ICd2LXRhYmxlLWJvcmRlci1ibG9jaycgOiAnJ1xuICAgIF0uam9pbignICcpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgdGFibGUgYXMgc3VidGxlIHZhcmlhbnQgd2hlbiB0cnVlLlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgQElucHV0KClcbiAgZ2V0IHN1YnRsZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fc3VidGxlO1xuICB9XG4gIHNldCBzdWJ0bGUodmFsdWU6IEJvb2xlYW5JbnB1dCkge1xuICAgIHRoaXMuX3N1YnRsZSA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG4gIH1cbiAgX3N1YnRsZTogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBBZGRzIHZlcnRpY2FsIGFuZCBob3Jpem9udGFsIGRpdmlkZXIgbGluZXMgd2hlbiB0cnVlLlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgQElucHV0KClcbiAgZ2V0IGRpdmlkZXJMaW5lcygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fZGl2aWRlckxpbmVzO1xuICB9XG4gIHNldCBkaXZpZGVyTGluZXModmFsdWU6IEJvb2xlYW5JbnB1dCkge1xuICAgIHRoaXMuX2RpdmlkZXJMaW5lcyA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG4gIH1cbiAgX2RpdmlkZXJMaW5lczogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBBZGRzIGhvcml6b250YWwgZGl2aWRlciBsaW5lcyB3aGVuIHRydWUuXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICBASW5wdXQoKVxuICBnZXQgaG9yaXpvbnRhbERpdmlkZXJMaW5lcygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5faG9yaXpvbnRhbERpdmlkZXJMaW5lcztcbiAgfVxuICBzZXQgaG9yaXpvbnRhbERpdmlkZXJMaW5lcyh2YWx1ZTogQm9vbGVhbklucHV0KSB7XG4gICAgdGhpcy5faG9yaXpvbnRhbERpdmlkZXJMaW5lcyA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG4gIH1cbiAgX2hvcml6b250YWxEaXZpZGVyTGluZXM6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAvKipcbiAgICogU2V0cyB0YWJsZSBhcyBrZXktdmFsdWUgdmFyaWFudCB3aGVuIHRydWUuXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICBASW5wdXQoKVxuICBnZXQga2V5VmFsdWUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX2tleVZhbHVlO1xuICB9XG4gIHNldCBrZXlWYWx1ZSh2YWx1ZTogQm9vbGVhbklucHV0KSB7XG4gICAgdGhpcy5fa2V5VmFsdWUgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xuICB9XG4gIF9rZXlWYWx1ZTogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBTZXRzIHRhYmxlIGFzIGFsdGVybmF0ZSB2YXJpYW50IHdoZW4gdHJ1ZSAoYWx0ZXJuYXRlIHJvd3MgaGF2ZSBkaWZmZXJlbnQgYmFja2dyb3VuZCBjb2xvcikuXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICBASW5wdXQoKVxuICBnZXQgYWx0ZXJuYXRlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9hbHRlcm5hdGU7XG4gIH1cbiAgc2V0IGFsdGVybmF0ZSh2YWx1ZTogQm9vbGVhbklucHV0KSB7XG4gICAgdGhpcy5fYWx0ZXJuYXRlID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcbiAgfVxuICBfYWx0ZXJuYXRlOiBib29sZWFuID0gZmFsc2U7XG5cbiAgQEhvc3RCaW5kaW5nKCdzdHlsZS4tLXYtdGFibGUtZGF0YS1ibG9jay1kZWZhdWx0JylcbiAgZ2V0IGhvc3RUYWJsZUJsb2NrRGVmYXVsdCgpOiBzdHJpbmcgfCB2b2lkIHtcbiAgICBzd2l0Y2ggKHRoaXMuX3RhYmxlU2l6ZSkge1xuICAgICAgY2FzZSAnY29tcGFjdCc6XG4gICAgICAgIHJldHVybiAndmFyKC0tdi10YWJsZS1kYXRhLWJsb2NrLXNtYWxsKSc7XG4gICAgICBjYXNlICdtZWRpdW0nOlxuICAgICAgICByZXR1cm4gJyc7XG4gICAgICBjYXNlICdsYXJnZSc6XG4gICAgICAgIHJldHVybiAndmFyKC0tdi10YWJsZS1kYXRhLWJsb2NrLWxhcmdlKSc7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm4gJyc7XG4gICAgfVxuICB9XG5cbiAgQEhvc3RCaW5kaW5nKCdzdHlsZS4tLXYtdGFibGUtZGF0YS1wYWRkaW5nLWJsb2NrLWRlZmF1bHQnKVxuICBnZXQgaG9zdFRhYmxlUGFkZGluZ0Jsb2NrKCk6IHN0cmluZyB8IHZvaWQge1xuICAgIHN3aXRjaCAodGhpcy5fdGFibGVTaXplKSB7XG4gICAgICBjYXNlICdjb21wYWN0JzpcbiAgICAgICAgcmV0dXJuICd2YXIoLS12LXRhYmxlLWRhdGEtcGFkZGluZy1ibG9jay1zbWFsbCknO1xuICAgICAgY2FzZSAnbWVkaXVtJzpcbiAgICAgICAgcmV0dXJuICcnO1xuICAgICAgY2FzZSAnbGFyZ2UnOlxuICAgICAgICByZXR1cm4gJ3ZhcigtLXYtdGFibGUtZGF0YS1wYWRkaW5nLWJsb2NrLWxhcmdlKSc7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm4gJyc7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgdGFibGUgc2l6ZS5cbiAgICogQGRlZmF1bHQgJ21lZGl1bScgLyBUYWJsZVNpemUuTUVESVVNXG4gICAqIEBvcHRpb25zICdjb21wYWN0JyB8IFRhYmxlU2l6ZS5DT01QQUNUIHwgPGJyPiAnbWVkaXVtJyB8IFRhYmxlU2l6ZS5NRURJVU0gfCA8YnI+ICdsYXJnZScgfCBUYWJsZVNpemUuTEFSR0VcbiAgICovXG4gIEBJbnB1dCgpXG4gIGdldCB0YWJsZVNpemUoKTogVGFibGVTaXplIHtcbiAgICByZXR1cm4gdGhpcy5fdGFibGVTaXplO1xuICB9XG4gIHNldCB0YWJsZVNpemUodmFsdWU6IFRhYmxlU2l6ZSkge1xuICAgIHRoaXMuX3RhYmxlU2l6ZSA9IHZhbHVlO1xuICB9XG4gIF90YWJsZVNpemU6IFRhYmxlU2l6ZSA9IFRhYmxlU2l6ZS5NRURJVU07XG5cbiAgY29uc3RydWN0b3IoKSB7fVxufVxuIl19