@visa/nova-angular
Version:
Visa Product Design System Nova Angular library
63 lines • 6.79 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 { TableDirective } from '../table/table.directive';
import * as i0 from "@angular/core";
import * as i1 from "../table/table.directive";
export class ThDirective {
get hostClasses() {
return [this.class, this._groupHeader ? 'v-th-alt v-typography-overline' : this._cellHeaderClass].join(' ');
}
/**
* Alternate header for when there are two levels of headers (group headers).
*/
get groupHeader() {
return this._groupHeader;
}
set groupHeader(value) {
this._groupHeader = coerceBooleanProperty(value);
}
constructor(tableDirective) {
this.tableDirective = tableDirective;
this._cellHeaderClass = 'v-th';
/**
* Provides custom class(es) for custom styling.
*/
this.class = '';
}
ngAfterContentInit() {
this.tableDirective._keyValue ? (this._cellHeaderClass = 'v-td') : (this._cellHeaderClass = 'v-th');
}
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ThDirective, deps: [{ token: i1.TableDirective }], target: i0.ɵɵFactoryTarget.Directive }); }
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.12", type: ThDirective, isStandalone: true, selector: "[v-th]", inputs: { class: "class", groupHeader: "groupHeader" }, host: { properties: { "class": "this.hostClasses" } }, ngImport: i0 }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ThDirective, decorators: [{
type: Directive,
args: [{
standalone: true,
selector: '[v-th]'
}]
}], ctorParameters: () => [{ type: i1.TableDirective }], propDecorators: { class: [{
type: Input
}], hostClasses: [{
type: HostBinding,
args: ['class']
}], groupHeader: [{
type: Input
}] } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGguZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9ub3ZhLWxpYi9zcmMvbGliL3RoL3RoLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7O0lBZUk7QUFDSixPQUFPLEVBQWdCLHFCQUFxQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDNUUsT0FBTyxFQUFvQixTQUFTLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNoRixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7OztBQU0xRCxNQUFNLE9BQU8sV0FBVztJQU10QixJQUNJLFdBQVc7UUFDYixPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxnQ0FBZ0MsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQzlHLENBQUM7SUFFRDs7T0FFRztJQUNILElBQ0ksV0FBVztRQUNiLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQztJQUMzQixDQUFDO0lBQ0QsSUFBSSxXQUFXLENBQUMsS0FBbUI7UUFDakMsSUFBSSxDQUFDLFlBQVksR0FBRyxxQkFBcUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNuRCxDQUFDO0lBR0QsWUFBb0IsY0FBOEI7UUFBOUIsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBdEIxQyxxQkFBZ0IsR0FBVyxNQUFNLENBQUM7UUFDMUM7O1dBRUc7UUFDTSxVQUFLLEdBQVcsRUFBRSxDQUFDO0lBa0J5QixDQUFDO0lBRXRELGtCQUFrQjtRQUNoQixJQUFJLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGdCQUFnQixHQUFHLE1BQU0sQ0FBQyxDQUFDO0lBQ3RHLENBQUM7K0dBM0JVLFdBQVc7bUdBQVgsV0FBVzs7NEZBQVgsV0FBVztrQkFKdkIsU0FBUzttQkFBQztvQkFDVCxVQUFVLEVBQUUsSUFBSTtvQkFDaEIsUUFBUSxFQUFFLFFBQVE7aUJBQ25CO21GQU1VLEtBQUs7c0JBQWIsS0FBSztnQkFFRixXQUFXO3NCQURkLFdBQVc7dUJBQUMsT0FBTztnQkFTaEIsV0FBVztzQkFEZCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiAgICAgICAgICAgICAgQ29weXJpZ2h0IChjKSAyMDI1IFZpc2EsIEluYy5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICpcbiAqKi9cbmltcG9ydCB7IEJvb2xlYW5JbnB1dCwgY29lcmNlQm9vbGVhblByb3BlcnR5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvZXJjaW9uJztcbmltcG9ydCB7IEFmdGVyQ29udGVudEluaXQsIERpcmVjdGl2ZSwgSG9zdEJpbmRpbmcsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBUYWJsZURpcmVjdGl2ZSB9IGZyb20gJy4uL3RhYmxlL3RhYmxlLmRpcmVjdGl2ZSc7XG5cbkBEaXJlY3RpdmUoe1xuICBzdGFuZGFsb25lOiB0cnVlLFxuICBzZWxlY3RvcjogJ1t2LXRoXSdcbn0pXG5leHBvcnQgY2xhc3MgVGhEaXJlY3RpdmUgaW1wbGVtZW50cyBBZnRlckNvbnRlbnRJbml0IHtcbiAgcHJpdmF0ZSBfY2VsbEhlYWRlckNsYXNzOiBzdHJpbmcgPSAndi10aCc7XG4gIC8qKlxuICAgKiBQcm92aWRlcyBjdXN0b20gY2xhc3MmIzQwO2VzJiM0MTsgZm9yIGN1c3RvbSBzdHlsaW5nLlxuICAgKi9cbiAgQElucHV0KCkgY2xhc3M6IHN0cmluZyA9ICcnO1xuICBASG9zdEJpbmRpbmcoJ2NsYXNzJylcbiAgZ2V0IGhvc3RDbGFzc2VzKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIFt0aGlzLmNsYXNzLCB0aGlzLl9ncm91cEhlYWRlciA/ICd2LXRoLWFsdCB2LXR5cG9ncmFwaHktb3ZlcmxpbmUnIDogdGhpcy5fY2VsbEhlYWRlckNsYXNzXS5qb2luKCcgJyk7XG4gIH1cblxuICAvKipcbiAgICogQWx0ZXJuYXRlIGhlYWRlciBmb3Igd2hlbiB0aGVyZSBhcmUgdHdvIGxldmVscyBvZiBoZWFkZXJzIChncm91cCBoZWFkZXJzKS5cbiAgICovXG4gIEBJbnB1dCgpXG4gIGdldCBncm91cEhlYWRlcigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fZ3JvdXBIZWFkZXI7XG4gIH1cbiAgc2V0IGdyb3VwSGVhZGVyKHZhbHVlOiBCb29sZWFuSW5wdXQpIHtcbiAgICB0aGlzLl9ncm91cEhlYWRlciA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG4gIH1cbiAgX2dyb3VwSGVhZGVyOiBib29sZWFuO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgdGFibGVEaXJlY3RpdmU6IFRhYmxlRGlyZWN0aXZlKSB7fVxuXG4gIG5nQWZ0ZXJDb250ZW50SW5pdCgpIHtcbiAgICB0aGlzLnRhYmxlRGlyZWN0aXZlLl9rZXlWYWx1ZSA/ICh0aGlzLl9jZWxsSGVhZGVyQ2xhc3MgPSAndi10ZCcpIDogKHRoaXMuX2NlbGxIZWFkZXJDbGFzcyA9ICd2LXRoJyk7XG4gIH1cbn1cbiJdfQ==