@ngx-uk-frontend/core
Version:
Core utilities and shared functionality for ngx-uk-frontend libraries
44 lines • 5.56 kB
JavaScript
import { Directive, inject, input } from '@angular/core';
import { CommonFormInputDirective, injectNgControl, } from '@ngx-uk-frontend/core/form-utils';
import * as i0 from "@angular/core";
/**
* Core text input directive that provides common functionality
* for text input components across different design systems.
*
* This directive handles:
* - Input type configuration
* - Width sizing options
* - Input mode and pattern attributes
* - Autocomplete and accessibility features
* - Form control integration
*/
export class TextInputDirective {
// Form control integration
ngControl = injectNgControl();
commonFormInput = inject(CommonFormInputDirective);
// Input configuration
type = input('text', ...(ngDevMode ? [{ debugName: "type" }] : []));
inputmode = input(...(ngDevMode ? [undefined, { debugName: "inputmode" }] : []));
pattern = input(...(ngDevMode ? [undefined, { debugName: "pattern" }] : []));
autocomplete = input(...(ngDevMode ? [undefined, { debugName: "autocomplete" }] : []));
spellcheck = input(...(ngDevMode ? [undefined, { debugName: "spellcheck" }] : []));
autocapitalize = input(...(ngDevMode ? [undefined, { debugName: "autocapitalize" }] : []));
// Width sizing
width = input(...(ngDevMode ? [undefined, { debugName: "width" }] : []));
fixedWidth = input(...(ngDevMode ? [undefined, { debugName: "fixedWidth" }] : []));
// Accessibility and form attributes
disabled = input(false, ...(ngDevMode ? [{ debugName: "disabled" }] : []));
readonly = input(false, ...(ngDevMode ? [{ debugName: "readonly" }] : []));
placeholder = input(...(ngDevMode ? [undefined, { debugName: "placeholder" }] : []));
maxlength = input(...(ngDevMode ? [undefined, { debugName: "maxlength" }] : []));
minlength = input(...(ngDevMode ? [undefined, { debugName: "minlength" }] : []));
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: TextInputDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.0.6", type: TextInputDirective, isStandalone: true, selector: "[libTextInput]", inputs: { type: { classPropertyName: "type", publicName: "type", isSignal: true, isRequired: false, transformFunction: null }, inputmode: { classPropertyName: "inputmode", publicName: "inputmode", isSignal: true, isRequired: false, transformFunction: null }, pattern: { classPropertyName: "pattern", publicName: "pattern", isSignal: true, isRequired: false, transformFunction: null }, autocomplete: { classPropertyName: "autocomplete", publicName: "autocomplete", isSignal: true, isRequired: false, transformFunction: null }, spellcheck: { classPropertyName: "spellcheck", publicName: "spellcheck", isSignal: true, isRequired: false, transformFunction: null }, autocapitalize: { classPropertyName: "autocapitalize", publicName: "autocapitalize", isSignal: true, isRequired: false, transformFunction: null }, width: { classPropertyName: "width", publicName: "width", isSignal: true, isRequired: false, transformFunction: null }, fixedWidth: { classPropertyName: "fixedWidth", publicName: "fixedWidth", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, readonly: { classPropertyName: "readonly", publicName: "readonly", isSignal: true, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null }, maxlength: { classPropertyName: "maxlength", publicName: "maxlength", isSignal: true, isRequired: false, transformFunction: null }, minlength: { classPropertyName: "minlength", publicName: "minlength", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0 });
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: TextInputDirective, decorators: [{
type: Directive,
args: [{
selector: '[libTextInput]',
}]
}], propDecorators: { type: [{ type: i0.Input, args: [{ isSignal: true, alias: "type", required: false }] }], inputmode: [{ type: i0.Input, args: [{ isSignal: true, alias: "inputmode", required: false }] }], pattern: [{ type: i0.Input, args: [{ isSignal: true, alias: "pattern", required: false }] }], autocomplete: [{ type: i0.Input, args: [{ isSignal: true, alias: "autocomplete", required: false }] }], spellcheck: [{ type: i0.Input, args: [{ isSignal: true, alias: "spellcheck", required: false }] }], autocapitalize: [{ type: i0.Input, args: [{ isSignal: true, alias: "autocapitalize", required: false }] }], width: [{ type: i0.Input, args: [{ isSignal: true, alias: "width", required: false }] }], fixedWidth: [{ type: i0.Input, args: [{ isSignal: true, alias: "fixedWidth", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], readonly: [{ type: i0.Input, args: [{ isSignal: true, alias: "readonly", required: false }] }], placeholder: [{ type: i0.Input, args: [{ isSignal: true, alias: "placeholder", required: false }] }], maxlength: [{ type: i0.Input, args: [{ isSignal: true, alias: "maxlength", required: false }] }], minlength: [{ type: i0.Input, args: [{ isSignal: true, alias: "minlength", required: false }] }] } });
//# sourceMappingURL=text-input.directive.js.map