ngx-otp-input
Version:
One Time Password input library for Angular (14+)
30 lines • 3.95 kB
JavaScript
import { Directive, Input, ContentChildren, } from '@angular/core';
import * as i0 from "@angular/core";
export class AriaLabelsDirective {
ngAfterContentInit() {
this.setAriaLabelsAttrs();
}
getDefaultAriaLabelText(index) {
return `One Time Password Input Number ${index + 1}`;
}
setAriaLabelsAttrs() {
this.inputs.forEach((input, index) => {
input.nativeElement.setAttribute('aria-label', this.ngxOtpAriaLabels[index] ?? this.getDefaultAriaLabelText(index));
});
}
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: AriaLabelsDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.0.1", type: AriaLabelsDirective, isStandalone: true, selector: "[ngxOtpAriaLabels]", inputs: { ngxOtpAriaLabels: "ngxOtpAriaLabels" }, queries: [{ propertyName: "inputs", predicate: ["otpInputElement"], descendants: true }], ngImport: i0 }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: AriaLabelsDirective, decorators: [{
type: Directive,
args: [{
standalone: true,
selector: '[ngxOtpAriaLabels]',
}]
}], propDecorators: { inputs: [{
type: ContentChildren,
args: ['otpInputElement', { descendants: true }]
}], ngxOtpAriaLabels: [{
type: Input
}] } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJpYUxhYmVscy5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtb3RwLWlucHV0L3NyYy9saWIvZGlyZWN0aXZlcy9hcmlhTGFiZWxzLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULEtBQUssRUFFTCxlQUFlLEdBR2hCLE1BQU0sZUFBZSxDQUFDOztBQU12QixNQUFNLE9BQU8sbUJBQW1CO0lBTTlCLGtCQUFrQjtRQUNoQixJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztJQUM1QixDQUFDO0lBRU8sdUJBQXVCLENBQUMsS0FBYTtRQUMzQyxPQUFPLGtDQUFrQyxLQUFLLEdBQUcsQ0FBQyxFQUFFLENBQUM7SUFDdkQsQ0FBQztJQUVPLGtCQUFrQjtRQUN4QixJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsRUFBRTtZQUNuQyxLQUFLLENBQUMsYUFBYSxDQUFDLFlBQVksQ0FDOUIsWUFBWSxFQUNaLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsSUFBSSxJQUFJLENBQUMsdUJBQXVCLENBQUMsS0FBSyxDQUFDLENBQ3BFLENBQUM7UUFDSixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7OEdBckJVLG1CQUFtQjtrR0FBbkIsbUJBQW1COzsyRkFBbkIsbUJBQW1CO2tCQUovQixTQUFTO21CQUFDO29CQUNULFVBQVUsRUFBRSxJQUFJO29CQUNoQixRQUFRLEVBQUUsb0JBQW9CO2lCQUMvQjs4QkFHQyxNQUFNO3NCQURMLGVBQWU7dUJBQUMsaUJBQWlCLEVBQUUsRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFO2dCQUdoRCxnQkFBZ0I7c0JBQXhCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBEaXJlY3RpdmUsXG4gIElucHV0LFxuICBFbGVtZW50UmVmLFxuICBDb250ZW50Q2hpbGRyZW4sXG4gIFF1ZXJ5TGlzdCxcbiAgQWZ0ZXJDb250ZW50SW5pdCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBEaXJlY3RpdmUoe1xuICBzdGFuZGFsb25lOiB0cnVlLFxuICBzZWxlY3RvcjogJ1tuZ3hPdHBBcmlhTGFiZWxzXScsXG59KVxuZXhwb3J0IGNsYXNzIEFyaWFMYWJlbHNEaXJlY3RpdmUgaW1wbGVtZW50cyBBZnRlckNvbnRlbnRJbml0IHtcbiAgQENvbnRlbnRDaGlsZHJlbignb3RwSW5wdXRFbGVtZW50JywgeyBkZXNjZW5kYW50czogdHJ1ZSB9KVxuICBpbnB1dHMhOiBRdWVyeUxpc3Q8RWxlbWVudFJlZjxIVE1MSW5wdXRFbGVtZW50Pj47XG5cbiAgQElucHV0KCkgbmd4T3RwQXJpYUxhYmVscyE6IHN0cmluZ1tdO1xuXG4gIG5nQWZ0ZXJDb250ZW50SW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnNldEFyaWFMYWJlbHNBdHRycygpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXREZWZhdWx0QXJpYUxhYmVsVGV4dChpbmRleDogbnVtYmVyKTogc3RyaW5nIHtcbiAgICByZXR1cm4gYE9uZSBUaW1lIFBhc3N3b3JkIElucHV0IE51bWJlciAke2luZGV4ICsgMX1gO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRBcmlhTGFiZWxzQXR0cnMoKTogdm9pZCB7XG4gICAgdGhpcy5pbnB1dHMuZm9yRWFjaCgoaW5wdXQsIGluZGV4KSA9PiB7XG4gICAgICBpbnB1dC5uYXRpdmVFbGVtZW50LnNldEF0dHJpYnV0ZShcbiAgICAgICAgJ2FyaWEtbGFiZWwnLFxuICAgICAgICB0aGlzLm5neE90cEFyaWFMYWJlbHNbaW5kZXhdID8/IHRoaXMuZ2V0RGVmYXVsdEFyaWFMYWJlbFRleHQoaW5kZXgpLFxuICAgICAgKTtcbiAgICB9KTtcbiAgfVxufVxuIl19