@visa/nova-angular
Version:
Visa Product Design System Nova Angular library
58 lines • 6.33 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 { Directive, HostBinding } from '@angular/core';
import { ButtonDirective } from '../button/button.directive';
import * as i0 from "@angular/core";
import * as i1 from "../button/button.directive";
/**
* This directive sets the <code>disabled</code> attribute on \<button\> tags when they are disabled. <br>
* Note: The <code>disabled</code> attribute is not valid for \<a\> tags. <br>
* For disabling \<a\> tags, visit <code>ButtonAsDisabledATagDirective</code>.
*/
export class ButtonDisabledDirective {
constructor(buttonHost) {
this.buttonHost = buttonHost;
}
get hostAriaDisabled() {
if (this.buttonHost?.disabled || this.buttonHost?.ariaDisabled)
return 'true';
}
get hostDisabled() {
if (this.buttonHost?.disabled)
return 'disabled';
}
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ButtonDisabledDirective, deps: [{ token: i1.ButtonDirective }], target: i0.ɵɵFactoryTarget.Directive }); }
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.12", type: ButtonDisabledDirective, isStandalone: true, selector: "[v-button]:not(a), [v-button-icon]:not(a), [v-button-stacked]:not(a), [v-panel-toggle]:not(a)", host: { properties: { "attr.aria-disabled": "this.hostAriaDisabled", "disabled": "this.hostDisabled", "attr.disabled": "this.hostDisabled" } }, ngImport: i0 }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ButtonDisabledDirective, decorators: [{
type: Directive,
args: [{
standalone: true,
// tslint:disable-next-line:directive-selector
selector: '[v-button]:not(a), [v-button-icon]:not(a), [v-button-stacked]:not(a), [v-panel-toggle]:not(a)'
}]
}], ctorParameters: () => [{ type: i1.ButtonDirective }], propDecorators: { hostAriaDisabled: [{
type: HostBinding,
args: ['attr.aria-disabled']
}], hostDisabled: [{
type: HostBinding,
args: ['disabled']
}, {
type: HostBinding,
args: ['attr.disabled']
}] } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnV0dG9uLWRpc2FibGVkLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbm92YS1saWIvc3JjL2xpYi9idXR0b24tZGlzYWJsZWQvYnV0dG9uLWRpc2FibGVkLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7O0lBZUk7QUFDSixPQUFPLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7OztBQUU3RDs7OztHQUlHO0FBTUgsTUFBTSxPQUFPLHVCQUF1QjtJQUNsQyxZQUFvQixVQUEyQjtRQUEzQixlQUFVLEdBQVYsVUFBVSxDQUFpQjtJQUFHLENBQUM7SUFDbkQsSUFDSSxnQkFBZ0I7UUFDbEIsSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFLFFBQVEsSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFLFlBQVk7WUFBRSxPQUFPLE1BQU0sQ0FBQztJQUNoRixDQUFDO0lBQ0QsSUFFSSxZQUFZO1FBQ2QsSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFLFFBQVE7WUFBRSxPQUFPLFVBQVUsQ0FBQztJQUNuRCxDQUFDOytHQVZVLHVCQUF1QjttR0FBdkIsdUJBQXVCOzs0RkFBdkIsdUJBQXVCO2tCQUxuQyxTQUFTO21CQUFDO29CQUNULFVBQVUsRUFBRSxJQUFJO29CQUNoQiw4Q0FBOEM7b0JBQzlDLFFBQVEsRUFBRSwrRkFBK0Y7aUJBQzFHO29GQUlLLGdCQUFnQjtzQkFEbkIsV0FBVzt1QkFBQyxvQkFBb0I7Z0JBTTdCLFlBQVk7c0JBRmYsV0FBVzt1QkFBQyxVQUFVOztzQkFDdEIsV0FBVzt1QkFBQyxlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiAgICAgICAgICAgICAgQ29weXJpZ2h0IChjKSAyMDI1IFZpc2EsIEluYy5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICpcbiAqKi9cbmltcG9ydCB7IERpcmVjdGl2ZSwgSG9zdEJpbmRpbmcgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJ1dHRvbkRpcmVjdGl2ZSB9IGZyb20gJy4uL2J1dHRvbi9idXR0b24uZGlyZWN0aXZlJztcblxuLyoqXG4gKiBUaGlzIGRpcmVjdGl2ZSBzZXRzIHRoZSA8Y29kZT5kaXNhYmxlZDwvY29kZT4gYXR0cmlidXRlIG9uIFxcPGJ1dHRvblxcPiB0YWdzIHdoZW4gdGhleSBhcmUgZGlzYWJsZWQuIDxicj5cbiAqIE5vdGU6IFRoZSA8Y29kZT5kaXNhYmxlZDwvY29kZT4gYXR0cmlidXRlIGlzIG5vdCB2YWxpZCBmb3LCoFxcPGFcXD4gdGFncy4gPGJyPlxuICogRm9yIGRpc2FibGluZ8KgXFw8YVxcPiB0YWdzLCB2aXNpdCA8Y29kZT5CdXR0b25Bc0Rpc2FibGVkQVRhZ0RpcmVjdGl2ZTwvY29kZT4uXG4gKi9cbkBEaXJlY3RpdmUoe1xuICBzdGFuZGFsb25lOiB0cnVlLFxuICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6ZGlyZWN0aXZlLXNlbGVjdG9yXG4gIHNlbGVjdG9yOiAnW3YtYnV0dG9uXTpub3QoYSksIFt2LWJ1dHRvbi1pY29uXTpub3QoYSksIFt2LWJ1dHRvbi1zdGFja2VkXTpub3QoYSksIFt2LXBhbmVsLXRvZ2dsZV06bm90KGEpJ1xufSlcbmV4cG9ydCBjbGFzcyBCdXR0b25EaXNhYmxlZERpcmVjdGl2ZSB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgYnV0dG9uSG9zdDogQnV0dG9uRGlyZWN0aXZlKSB7fVxuICBASG9zdEJpbmRpbmcoJ2F0dHIuYXJpYS1kaXNhYmxlZCcpXG4gIGdldCBob3N0QXJpYURpc2FibGVkKCk6IHN0cmluZyB8IHZvaWQge1xuICAgIGlmICh0aGlzLmJ1dHRvbkhvc3Q/LmRpc2FibGVkIHx8IHRoaXMuYnV0dG9uSG9zdD8uYXJpYURpc2FibGVkKSByZXR1cm4gJ3RydWUnO1xuICB9XG4gIEBIb3N0QmluZGluZygnZGlzYWJsZWQnKVxuICBASG9zdEJpbmRpbmcoJ2F0dHIuZGlzYWJsZWQnKVxuICBnZXQgaG9zdERpc2FibGVkKCk6IHN0cmluZyB8IHZvaWQge1xuICAgIGlmICh0aGlzLmJ1dHRvbkhvc3Q/LmRpc2FibGVkKSByZXR1cm4gJ2Rpc2FibGVkJztcbiAgfVxufVxuIl19