UNPKG

@taiga-ui/core

Version:

Core library for creating Angular components and applications using Taiga UI

63 lines 9.09 kB
import { Directive, inject, InjectionToken, Input, Optional, signal, SkipSelf, } from '@angular/core'; import { tuiProvide } from '@taiga-ui/cdk/utils/miscellaneous'; import * as i0 from "@angular/core"; const DEFAULT = { appearance: 'textfield', size: 'l', cleaner: true, }; export const TUI_TEXTFIELD_OPTIONS = new InjectionToken(ngDevMode ? 'TUI_TEXTFIELD_OPTIONS' : '', { factory: () => ({ appearance: signal(DEFAULT.appearance), size: signal(DEFAULT.size), cleaner: signal(DEFAULT.cleaner), }), }); export function tuiTextfieldOptionsProvider(options) { return { provide: TUI_TEXTFIELD_OPTIONS, deps: [[new Optional(), new SkipSelf(), TUI_TEXTFIELD_OPTIONS]], useFactory: (parent) => ({ appearance: signal(parent?.appearance() ?? DEFAULT.appearance), size: signal(parent?.size() ?? DEFAULT.size), cleaner: signal(parent?.cleaner() ?? DEFAULT.cleaner), ...options, }), }; } class TuiTextfieldOptionsDirective { constructor() { this.options = inject(TUI_TEXTFIELD_OPTIONS, { skipSelf: true }); // TODO: refactor to signal inputs after Angular update this.appearance = signal(this.options.appearance()); this.size = signal(this.options.size()); this.cleaner = signal(this.options.cleaner()); } set tuiTextfieldAppearance(appearance) { this.appearance.set(appearance); } set tuiTextfieldSize(size) { this.size.set(size); } set tuiTextfieldCleaner(enabled) { this.cleaner.set(enabled); } static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiTextfieldOptionsDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); } static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: TuiTextfieldOptionsDirective, isStandalone: true, selector: "[tuiTextfieldAppearance],[tuiTextfieldSize],[tuiTextfieldCleaner]", inputs: { tuiTextfieldAppearance: "tuiTextfieldAppearance", tuiTextfieldSize: "tuiTextfieldSize", tuiTextfieldCleaner: "tuiTextfieldCleaner" }, providers: [tuiProvide(TUI_TEXTFIELD_OPTIONS, TuiTextfieldOptionsDirective)], ngImport: i0 }); } } export { TuiTextfieldOptionsDirective }; i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiTextfieldOptionsDirective, decorators: [{ type: Directive, args: [{ standalone: true, selector: '[tuiTextfieldAppearance],[tuiTextfieldSize],[tuiTextfieldCleaner]', providers: [tuiProvide(TUI_TEXTFIELD_OPTIONS, TuiTextfieldOptionsDirective)], }] }], propDecorators: { tuiTextfieldAppearance: [{ type: Input }], tuiTextfieldSize: [{ type: Input }], tuiTextfieldCleaner: [{ type: Input }] } }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dGZpZWxkLm9wdGlvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL2NvbXBvbmVudHMvdGV4dGZpZWxkL3RleHRmaWVsZC5vcHRpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCxTQUFTLEVBQ1QsTUFBTSxFQUNOLGNBQWMsRUFDZCxLQUFLLEVBQ0wsUUFBUSxFQUVSLE1BQU0sRUFDTixRQUFRLEdBRVgsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLG1DQUFtQyxDQUFDOztBQUc3RCxNQUFNLE9BQU8sR0FBRztJQUNaLFVBQVUsRUFBRSxXQUFXO0lBQ3ZCLElBQUksRUFBRSxHQUFHO0lBQ1QsT0FBTyxFQUFFLElBQUk7Q0FDUCxDQUFDO0FBUVgsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQUcsSUFBSSxjQUFjLENBQ25ELFNBQVMsQ0FBQyxDQUFDLENBQUMsdUJBQXVCLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFDeEM7SUFDSSxPQUFPLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQztRQUNaLFVBQVUsRUFBRSxNQUFNLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQztRQUN0QyxJQUFJLEVBQUUsTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUM7UUFDMUIsT0FBTyxFQUFFLE1BQU0sQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDO0tBQ25DLENBQUM7Q0FDTCxDQUNKLENBQUM7QUFFRixNQUFNLFVBQVUsMkJBQTJCLENBQ3ZDLE9BQXFDO0lBRXJDLE9BQU87UUFDSCxPQUFPLEVBQUUscUJBQXFCO1FBQzlCLElBQUksRUFBRSxDQUFDLENBQUMsSUFBSSxRQUFRLEVBQUUsRUFBRSxJQUFJLFFBQVEsRUFBRSxFQUFFLHFCQUFxQixDQUFDLENBQUM7UUFDL0QsVUFBVSxFQUFFLENBQUMsTUFBa0MsRUFBRSxFQUFFLENBQUMsQ0FBQztZQUNqRCxVQUFVLEVBQUUsTUFBTSxDQUFDLE1BQU0sRUFBRSxVQUFVLEVBQUUsSUFBSSxPQUFPLENBQUMsVUFBVSxDQUFDO1lBQzlELElBQUksRUFBRSxNQUFNLENBQUMsTUFBTSxFQUFFLElBQUksRUFBRSxJQUFJLE9BQU8sQ0FBQyxJQUFJLENBQUM7WUFDNUMsT0FBTyxFQUFFLE1BQU0sQ0FBQyxNQUFNLEVBQUUsT0FBTyxFQUFFLElBQUksT0FBTyxDQUFDLE9BQU8sQ0FBQztZQUNyRCxHQUFHLE9BQU87U0FDYixDQUFDO0tBQ0wsQ0FBQztBQUNOLENBQUM7QUFFRCxNQUthLDRCQUE0QjtJQUx6QztRQU1xQixZQUFPLEdBQUcsTUFBTSxDQUFDLHFCQUFxQixFQUFFLEVBQUMsUUFBUSxFQUFFLElBQUksRUFBQyxDQUFDLENBQUM7UUFFM0UsdURBQXVEO1FBQ2hELGVBQVUsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDO1FBQy9DLFNBQUksR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQ25DLFlBQU8sR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO0tBZ0JuRDtJQWRHLElBQ1csc0JBQXNCLENBQUMsVUFBa0I7UUFDaEQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUVELElBQ1csZ0JBQWdCLENBQUMsSUFBeUI7UUFDakQsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDeEIsQ0FBQztJQUVELElBQ1csbUJBQW1CLENBQUMsT0FBZ0I7UUFDM0MsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDOUIsQ0FBQzsrR0FyQlEsNEJBQTRCO21HQUE1Qiw0QkFBNEIsZ1FBRjFCLENBQUMsVUFBVSxDQUFDLHFCQUFxQixFQUFFLDRCQUE0QixDQUFDLENBQUM7O1NBRW5FLDRCQUE0Qjs0RkFBNUIsNEJBQTRCO2tCQUx4QyxTQUFTO21CQUFDO29CQUNQLFVBQVUsRUFBRSxJQUFJO29CQUNoQixRQUFRLEVBQUUsbUVBQW1FO29CQUM3RSxTQUFTLEVBQUUsQ0FBQyxVQUFVLENBQUMscUJBQXFCLCtCQUErQixDQUFDO2lCQUMvRTs4QkFVYyxzQkFBc0I7c0JBRGhDLEtBQUs7Z0JBTUssZ0JBQWdCO3NCQUQxQixLQUFLO2dCQU1LLG1CQUFtQjtzQkFEN0IsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgRGlyZWN0aXZlLFxuICAgIGluamVjdCxcbiAgICBJbmplY3Rpb25Ub2tlbixcbiAgICBJbnB1dCxcbiAgICBPcHRpb25hbCxcbiAgICB0eXBlIFByb3ZpZGVyLFxuICAgIHNpZ25hbCxcbiAgICBTa2lwU2VsZixcbiAgICB0eXBlIFdyaXRhYmxlU2lnbmFsLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7dHVpUHJvdmlkZX0gZnJvbSAnQHRhaWdhLXVpL2Nkay91dGlscy9taXNjZWxsYW5lb3VzJztcbmltcG9ydCB7dHlwZSBUdWlTaXplTCwgdHlwZSBUdWlTaXplU30gZnJvbSAnQHRhaWdhLXVpL2NvcmUvdHlwZXMnO1xuXG5jb25zdCBERUZBVUxUID0ge1xuICAgIGFwcGVhcmFuY2U6ICd0ZXh0ZmllbGQnLFxuICAgIHNpemU6ICdsJyxcbiAgICBjbGVhbmVyOiB0cnVlLFxufSBhcyBjb25zdDtcblxuZXhwb3J0IGludGVyZmFjZSBUdWlUZXh0ZmllbGRPcHRpb25zIHtcbiAgICByZWFkb25seSBhcHBlYXJhbmNlOiBXcml0YWJsZVNpZ25hbDxzdHJpbmc+O1xuICAgIHJlYWRvbmx5IHNpemU6IFdyaXRhYmxlU2lnbmFsPFR1aVNpemVMIHwgVHVpU2l6ZVM+O1xuICAgIHJlYWRvbmx5IGNsZWFuZXI6IFdyaXRhYmxlU2lnbmFsPGJvb2xlYW4+O1xufVxuXG5leHBvcnQgY29uc3QgVFVJX1RFWFRGSUVMRF9PUFRJT05TID0gbmV3IEluamVjdGlvblRva2VuPFR1aVRleHRmaWVsZE9wdGlvbnM+KFxuICAgIG5nRGV2TW9kZSA/ICdUVUlfVEVYVEZJRUxEX09QVElPTlMnIDogJycsXG4gICAge1xuICAgICAgICBmYWN0b3J5OiAoKSA9PiAoe1xuICAgICAgICAgICAgYXBwZWFyYW5jZTogc2lnbmFsKERFRkFVTFQuYXBwZWFyYW5jZSksXG4gICAgICAgICAgICBzaXplOiBzaWduYWwoREVGQVVMVC5zaXplKSxcbiAgICAgICAgICAgIGNsZWFuZXI6IHNpZ25hbChERUZBVUxULmNsZWFuZXIpLFxuICAgICAgICB9KSxcbiAgICB9LFxuKTtcblxuZXhwb3J0IGZ1bmN0aW9uIHR1aVRleHRmaWVsZE9wdGlvbnNQcm92aWRlcihcbiAgICBvcHRpb25zOiBQYXJ0aWFsPFR1aVRleHRmaWVsZE9wdGlvbnM+LFxuKTogUHJvdmlkZXIge1xuICAgIHJldHVybiB7XG4gICAgICAgIHByb3ZpZGU6IFRVSV9URVhURklFTERfT1BUSU9OUyxcbiAgICAgICAgZGVwczogW1tuZXcgT3B0aW9uYWwoKSwgbmV3IFNraXBTZWxmKCksIFRVSV9URVhURklFTERfT1BUSU9OU11dLFxuICAgICAgICB1c2VGYWN0b3J5OiAocGFyZW50OiBUdWlUZXh0ZmllbGRPcHRpb25zIHwgbnVsbCkgPT4gKHtcbiAgICAgICAgICAgIGFwcGVhcmFuY2U6IHNpZ25hbChwYXJlbnQ/LmFwcGVhcmFuY2UoKSA/PyBERUZBVUxULmFwcGVhcmFuY2UpLFxuICAgICAgICAgICAgc2l6ZTogc2lnbmFsKHBhcmVudD8uc2l6ZSgpID8/IERFRkFVTFQuc2l6ZSksXG4gICAgICAgICAgICBjbGVhbmVyOiBzaWduYWwocGFyZW50Py5jbGVhbmVyKCkgPz8gREVGQVVMVC5jbGVhbmVyKSxcbiAgICAgICAgICAgIC4uLm9wdGlvbnMsXG4gICAgICAgIH0pLFxuICAgIH07XG59XG5cbkBEaXJlY3RpdmUoe1xuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgc2VsZWN0b3I6ICdbdHVpVGV4dGZpZWxkQXBwZWFyYW5jZV0sW3R1aVRleHRmaWVsZFNpemVdLFt0dWlUZXh0ZmllbGRDbGVhbmVyXScsXG4gICAgcHJvdmlkZXJzOiBbdHVpUHJvdmlkZShUVUlfVEVYVEZJRUxEX09QVElPTlMsIFR1aVRleHRmaWVsZE9wdGlvbnNEaXJlY3RpdmUpXSxcbn0pXG5leHBvcnQgY2xhc3MgVHVpVGV4dGZpZWxkT3B0aW9uc0RpcmVjdGl2ZSBpbXBsZW1lbnRzIFR1aVRleHRmaWVsZE9wdGlvbnMge1xuICAgIHByaXZhdGUgcmVhZG9ubHkgb3B0aW9ucyA9IGluamVjdChUVUlfVEVYVEZJRUxEX09QVElPTlMsIHtza2lwU2VsZjogdHJ1ZX0pO1xuXG4gICAgLy8gVE9ETzogcmVmYWN0b3IgdG8gc2lnbmFsIGlucHV0cyBhZnRlciBBbmd1bGFyIHVwZGF0ZVxuICAgIHB1YmxpYyBhcHBlYXJhbmNlID0gc2lnbmFsKHRoaXMub3B0aW9ucy5hcHBlYXJhbmNlKCkpO1xuICAgIHB1YmxpYyBzaXplID0gc2lnbmFsKHRoaXMub3B0aW9ucy5zaXplKCkpO1xuICAgIHB1YmxpYyBjbGVhbmVyID0gc2lnbmFsKHRoaXMub3B0aW9ucy5jbGVhbmVyKCkpO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgc2V0IHR1aVRleHRmaWVsZEFwcGVhcmFuY2UoYXBwZWFyYW5jZTogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMuYXBwZWFyYW5jZS5zZXQoYXBwZWFyYW5jZSk7XG4gICAgfVxuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgc2V0IHR1aVRleHRmaWVsZFNpemUoc2l6ZTogVHVpU2l6ZUwgfCBUdWlTaXplUykge1xuICAgICAgICB0aGlzLnNpemUuc2V0KHNpemUpO1xuICAgIH1cblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHNldCB0dWlUZXh0ZmllbGRDbGVhbmVyKGVuYWJsZWQ6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5jbGVhbmVyLnNldChlbmFibGVkKTtcbiAgICB9XG59XG4iXX0=