UNPKG

@visa/nova-angular

Version:

Visa Product Design System Nova Angular library

67 lines 6.6 kB
/** * 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 * as i0 from "@angular/core"; export class BannerDirective { get hostClasses() { return [this.class, 'v-banner'].join(' '); } /** * Provides sticky styling for global banners. <br /> * When true, the following CSS rules are applied - <code>position: sticky; top: 0; z-index: 888;</code>. * @default false */ get isGlobal() { return this._isGlobal; } set isGlobal(value) { this._isGlobal = coerceBooleanProperty(value); } get hostStyle() { return this.isGlobal ? 'position: sticky; top: 0; z-index: 888;' : ''; } constructor() { /** * Provides custom class&#40;es&#41; for custom styling. * @default .v-banner */ this.class = ''; // override the standard class attr with a new one. this._isGlobal = false; } static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: BannerDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); } static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.12", type: BannerDirective, isStandalone: true, selector: "[v-banner]", inputs: { class: "class", isGlobal: "isGlobal" }, host: { properties: { "class": "this.hostClasses", "style": "this.hostStyle" } }, ngImport: i0 }); } } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: BannerDirective, decorators: [{ type: Directive, args: [{ standalone: true, // tslint:disable-next-line:directive-selector selector: '[v-banner]' }] }], ctorParameters: () => [], propDecorators: { class: [{ type: Input }], hostClasses: [{ type: HostBinding, args: ['class'] }], isGlobal: [{ type: Input }], hostStyle: [{ type: HostBinding, args: ['style'] }] } }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFubmVyLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbm92YS1saWIvc3JjL2xpYi9iYW5uZXIvYmFubmVyLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7O0lBZUk7QUFDSixPQUFPLEVBQWdCLHFCQUFxQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDNUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQU85RCxNQUFNLE9BQU8sZUFBZTtJQU0xQixJQUNJLFdBQVc7UUFDYixPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxVQUFVLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDNUMsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxJQUNJLFFBQVE7UUFDVixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUM7SUFDeEIsQ0FBQztJQUNELElBQUksUUFBUSxDQUFDLEtBQW1CO1FBQzlCLElBQUksQ0FBQyxTQUFTLEdBQUcscUJBQXFCLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDaEQsQ0FBQztJQUdELElBQ0ksU0FBUztRQUNYLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMseUNBQXlDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztJQUN4RSxDQUFDO0lBRUQ7UUE3QkE7OztXQUdHO1FBQ00sVUFBSyxHQUFHLEVBQUUsQ0FBQyxDQUFDLG1EQUFtRDtRQWtCeEUsY0FBUyxHQUFZLEtBQUssQ0FBQztJQU9aLENBQUM7K0dBOUJMLGVBQWU7bUdBQWYsZUFBZTs7NEZBQWYsZUFBZTtrQkFMM0IsU0FBUzttQkFBQztvQkFDVCxVQUFVLEVBQUUsSUFBSTtvQkFDaEIsOENBQThDO29CQUM5QyxRQUFRLEVBQUUsWUFBWTtpQkFDdkI7d0RBTVUsS0FBSztzQkFBYixLQUFLO2dCQUVGLFdBQVc7c0JBRGQsV0FBVzt1QkFBQyxPQUFPO2dCQVdoQixRQUFRO3NCQURYLEtBQUs7Z0JBVUYsU0FBUztzQkFEWixXQUFXO3VCQUFDLE9BQU8iLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqICAgICAgICAgICAgICBDb3B5cmlnaHQgKGMpIDIwMjUgVmlzYSwgSW5jLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKlxuICoqL1xuaW1wb3J0IHsgQm9vbGVhbklucHV0LCBjb2VyY2VCb29sZWFuUHJvcGVydHkgfSBmcm9tICdAYW5ndWxhci9jZGsvY29lcmNpb24nO1xuaW1wb3J0IHsgRGlyZWN0aXZlLCBIb3N0QmluZGluZywgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQERpcmVjdGl2ZSh7XG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpkaXJlY3RpdmUtc2VsZWN0b3JcbiAgc2VsZWN0b3I6ICdbdi1iYW5uZXJdJ1xufSlcbmV4cG9ydCBjbGFzcyBCYW5uZXJEaXJlY3RpdmUge1xuICAvKipcbiAgICogUHJvdmlkZXMgY3VzdG9tIGNsYXNzJiM0MDtlcyYjNDE7IGZvciBjdXN0b20gc3R5bGluZy5cbiAgICogQGRlZmF1bHQgLnYtYmFubmVyXG4gICAqL1xuICBASW5wdXQoKSBjbGFzcyA9ICcnOyAvLyBvdmVycmlkZSB0aGUgc3RhbmRhcmQgY2xhc3MgYXR0ciB3aXRoIGEgbmV3IG9uZS5cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcycpXG4gIGdldCBob3N0Q2xhc3NlcygpOiBzdHJpbmcge1xuICAgIHJldHVybiBbdGhpcy5jbGFzcywgJ3YtYmFubmVyJ10uam9pbignICcpO1xuICB9XG5cbiAgLyoqXG4gICAqIFByb3ZpZGVzIHN0aWNreSBzdHlsaW5nIGZvciBnbG9iYWwgYmFubmVycy4gPGJyIC8+XG4gICAqIFdoZW4gdHJ1ZSwgdGhlIGZvbGxvd2luZyBDU1MgcnVsZXMgYXJlIGFwcGxpZWQgLSA8Y29kZT5wb3NpdGlvbjogc3RpY2t5OyB0b3A6IDA7IHotaW5kZXg6IDg4ODs8L2NvZGU+LlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgQElucHV0KClcbiAgZ2V0IGlzR2xvYmFsKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9pc0dsb2JhbDtcbiAgfVxuICBzZXQgaXNHbG9iYWwodmFsdWU6IEJvb2xlYW5JbnB1dCkge1xuICAgIHRoaXMuX2lzR2xvYmFsID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcbiAgfVxuICBfaXNHbG9iYWw6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBASG9zdEJpbmRpbmcoJ3N0eWxlJylcbiAgZ2V0IGhvc3RTdHlsZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmlzR2xvYmFsID8gJ3Bvc2l0aW9uOiBzdGlja3k7IHRvcDogMDsgei1pbmRleDogODg4OycgOiAnJztcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKCkge31cbn1cbiJdfQ==