@visa/nova-angular
Version:
Visa Product Design System Nova Angular library
58 lines • 6.29 kB
JavaScript
/**
* © 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 { 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnV0dG9uLWRpc2FibGVkLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbm92YS1saWIvc3JjL2xpYi9idXR0b24tZGlzYWJsZWQvYnV0dG9uLWRpc2FibGVkLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7O0lBZUk7QUFDSixPQUFPLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7OztBQUU3RDs7OztHQUlHO0FBTUgsTUFBTSxPQUFPLHVCQUF1QjtJQUNsQyxZQUFvQixVQUEyQjtRQUEzQixlQUFVLEdBQVYsVUFBVSxDQUFpQjtJQUFHLENBQUM7SUFDbkQsSUFDSSxnQkFBZ0I7UUFDbEIsSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFLFFBQVEsSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFLFlBQVk7WUFBRSxPQUFPLE1BQU0sQ0FBQztJQUNoRixDQUFDO0lBQ0QsSUFFSSxZQUFZO1FBQ2QsSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFLFFBQVE7WUFBRSxPQUFPLFVBQVUsQ0FBQztJQUNuRCxDQUFDOytHQVZVLHVCQUF1QjttR0FBdkIsdUJBQXVCOzs0RkFBdkIsdUJBQXVCO2tCQUxuQyxTQUFTO21CQUFDO29CQUNULFVBQVUsRUFBRSxJQUFJO29CQUNoQiw4Q0FBOEM7b0JBQzlDLFFBQVEsRUFBRSwrRkFBK0Y7aUJBQzFHO29GQUlLLGdCQUFnQjtzQkFEbkIsV0FBVzt1QkFBQyxvQkFBb0I7Z0JBTTdCLFlBQVk7c0JBRmYsV0FBVzt1QkFBQyxVQUFVOztzQkFDdEIsV0FBVzt1QkFBQyxlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiAgICAgICAgICAgICAgwqkgMjAyNSBWaXNhXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqXG4gKiovXG5pbXBvcnQgeyBEaXJlY3RpdmUsIEhvc3RCaW5kaW5nIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCdXR0b25EaXJlY3RpdmUgfSBmcm9tICcuLi9idXR0b24vYnV0dG9uLmRpcmVjdGl2ZSc7XG5cbi8qKlxuICogVGhpcyBkaXJlY3RpdmUgc2V0cyB0aGUgPGNvZGU+ZGlzYWJsZWQ8L2NvZGU+IGF0dHJpYnV0ZSBvbiBcXDxidXR0b25cXD4gdGFncyB3aGVuIHRoZXkgYXJlIGRpc2FibGVkLiA8YnI+XG4gKiBOb3RlOiBUaGUgPGNvZGU+ZGlzYWJsZWQ8L2NvZGU+IGF0dHJpYnV0ZSBpcyBub3QgdmFsaWQgZm9ywqBcXDxhXFw+IHRhZ3MuIDxicj5cbiAqIEZvciBkaXNhYmxpbmfCoFxcPGFcXD4gdGFncywgdmlzaXQgPGNvZGU+QnV0dG9uQXNEaXNhYmxlZEFUYWdEaXJlY3RpdmU8L2NvZGU+LlxuICovXG5ARGlyZWN0aXZlKHtcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOmRpcmVjdGl2ZS1zZWxlY3RvclxuICBzZWxlY3RvcjogJ1t2LWJ1dHRvbl06bm90KGEpLCBbdi1idXR0b24taWNvbl06bm90KGEpLCBbdi1idXR0b24tc3RhY2tlZF06bm90KGEpLCBbdi1wYW5lbC10b2dnbGVdOm5vdChhKSdcbn0pXG5leHBvcnQgY2xhc3MgQnV0dG9uRGlzYWJsZWREaXJlY3RpdmUge1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGJ1dHRvbkhvc3Q6IEJ1dHRvbkRpcmVjdGl2ZSkge31cbiAgQEhvc3RCaW5kaW5nKCdhdHRyLmFyaWEtZGlzYWJsZWQnKVxuICBnZXQgaG9zdEFyaWFEaXNhYmxlZCgpOiBzdHJpbmcgfCB2b2lkIHtcbiAgICBpZiAodGhpcy5idXR0b25Ib3N0Py5kaXNhYmxlZCB8fCB0aGlzLmJ1dHRvbkhvc3Q/LmFyaWFEaXNhYmxlZCkgcmV0dXJuICd0cnVlJztcbiAgfVxuICBASG9zdEJpbmRpbmcoJ2Rpc2FibGVkJylcbiAgQEhvc3RCaW5kaW5nKCdhdHRyLmRpc2FibGVkJylcbiAgZ2V0IGhvc3REaXNhYmxlZCgpOiBzdHJpbmcgfCB2b2lkIHtcbiAgICBpZiAodGhpcy5idXR0b25Ib3N0Py5kaXNhYmxlZCkgcmV0dXJuICdkaXNhYmxlZCc7XG4gIH1cbn1cbiJdfQ==