@taiga-ui/legacy 4.52.0-canary.974ca4b → 4.52.0-canary.9c7b1f0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/components/dialog/dialog.component.d.ts +2 -1
- package/components/dialog/dialog.service.d.ts +1 -1
- package/components/index.d.ts +0 -12
- package/components/mobile-dialog/mobile-dialog.service.d.ts +1 -1
- package/components/pdf-viewer/pdf-viewer.service.d.ts +1 -1
- package/fesm2022/taiga-ui-legacy-components-dialog.mjs +17 -17
- package/fesm2022/taiga-ui-legacy-components-dialog.mjs.map +1 -1
- package/fesm2022/taiga-ui-legacy-components-mobile-dialog.mjs +8 -8
- package/fesm2022/taiga-ui-legacy-components-mobile-dialog.mjs.map +1 -1
- package/fesm2022/taiga-ui-legacy-components-pdf-viewer.mjs +11 -11
- package/fesm2022/taiga-ui-legacy-components-pdf-viewer.mjs.map +1 -1
- package/fesm2022/taiga-ui-legacy-components.mjs +0 -12
- package/fesm2022/taiga-ui-legacy-components.mjs.map +1 -1
- package/fesm2022/taiga-ui-legacy.mjs +0 -4
- package/fesm2022/taiga-ui-legacy.mjs.map +1 -1
- package/index.d.ts +0 -4
- package/package.json +12 -94
- package/classes/abstract-native-select.d.ts +0 -22
- package/classes/abstract-textfield-host.d.ts +0 -19
- package/classes/control.d.ts +0 -60
- package/classes/controller.d.ts +0 -9
- package/classes/index.d.ts +0 -9
- package/classes/interactive.d.ts +0 -34
- package/classes/multiple-control.d.ts +0 -11
- package/classes/named-day.d.ts +0 -11
- package/classes/nullable-control.d.ts +0 -10
- package/classes/stringifiable-item.d.ts +0 -11
- package/components/arrow/arrow.component.d.ts +0 -17
- package/components/arrow/arrow.options.d.ts +0 -17
- package/components/arrow/arrow.providers.d.ts +0 -18
- package/components/arrow/index.d.ts +0 -3
- package/components/input/index.d.ts +0 -3
- package/components/input/input.component.d.ts +0 -32
- package/components/input/input.directive.d.ts +0 -12
- package/components/input/input.module.d.ts +0 -16
- package/components/input-date-range/index.d.ts +0 -3
- package/components/input-date-range/input-date-range.component.d.ts +0 -66
- package/components/input-date-range/input-date-range.directive.d.ts +0 -16
- package/components/input-date-range/input-date-range.module.d.ts +0 -21
- package/components/input-date-time/index.d.ts +0 -3
- package/components/input-date-time/input-date-time.component.d.ts +0 -87
- package/components/input-date-time/input-date-time.directive.d.ts +0 -17
- package/components/input-date-time/input-date-time.module.d.ts +0 -23
- package/components/input-date-time/native-date-time/native-date-time.directive.d.ts +0 -13
- package/components/input-month-range/index.d.ts +0 -3
- package/components/input-month-range/input-month-range.component.d.ts +0 -38
- package/components/input-month-range/input-month-range.directive.d.ts +0 -23
- package/components/input-month-range/input-month-range.module.d.ts +0 -18
- package/components/input-number/index.d.ts +0 -4
- package/components/input-number/input-number.component.d.ts +0 -62
- package/components/input-number/input-number.directive.d.ts +0 -16
- package/components/input-number/input-number.module.d.ts +0 -18
- package/components/input-number/input-number.options.d.ts +0 -23
- package/components/input-range/index.d.ts +0 -2
- package/components/input-range/input-range.component.d.ts +0 -56
- package/components/input-range/input-range.module.d.ts +0 -19
- package/components/input-slider/index.d.ts +0 -2
- package/components/input-slider/input-slider.component.d.ts +0 -42
- package/components/input-slider/input-slider.module.d.ts +0 -18
- package/components/primitive-textfield/index.d.ts +0 -7
- package/components/primitive-textfield/primitive-textfield-options.d.ts +0 -21
- package/components/primitive-textfield/primitive-textfield-types.d.ts +0 -11
- package/components/primitive-textfield/primitive-textfield.component.d.ts +0 -73
- package/components/primitive-textfield/primitive-textfield.directive.d.ts +0 -14
- package/components/primitive-textfield/primitive-textfield.module.d.ts +0 -21
- package/components/primitive-textfield/textfield/textfield.component.d.ts +0 -13
- package/components/primitive-textfield/value-decoration/value-decoration.component.d.ts +0 -22
- package/components/select/index.d.ts +0 -6
- package/components/select/native-select/native-select-group.component.d.ts +0 -17
- package/components/select/native-select/native-select.component.d.ts +0 -16
- package/components/select/select.component.d.ts +0 -45
- package/components/select/select.directive.d.ts +0 -16
- package/components/select/select.module.d.ts +0 -24
- package/components/select/select.options.d.ts +0 -19
- package/components/select-option/index.d.ts +0 -2
- package/components/select-option/select-option.component.d.ts +0 -27
- package/components/select-option/select-option.module.d.ts +0 -10
- package/components/tooltip/index.d.ts +0 -2
- package/components/tooltip/tooltip.component.d.ts +0 -12
- package/components/tooltip/tooltip.module.d.ts +0 -13
- package/directives/index.d.ts +0 -5
- package/directives/legacy-dropdown-open-monitor/index.d.ts +0 -1
- package/directives/legacy-dropdown-open-monitor/legacy-dropdown-open-monitor.d.ts +0 -11
- package/directives/textfield-controller/index.d.ts +0 -14
- package/directives/textfield-controller/textfield-appearance.directive.d.ts +0 -9
- package/directives/textfield-controller/textfield-cleaner.directive.d.ts +0 -9
- package/directives/textfield-controller/textfield-controller.module.d.ts +0 -17
- package/directives/textfield-controller/textfield-controller.provider.d.ts +0 -4
- package/directives/textfield-controller/textfield-custom-content.directive.d.ts +0 -10
- package/directives/textfield-controller/textfield-filler.directive.d.ts +0 -9
- package/directives/textfield-controller/textfield-icon-left.directive.d.ts +0 -12
- package/directives/textfield-controller/textfield-icon.directive.d.ts +0 -12
- package/directives/textfield-controller/textfield-label-outside.directive.d.ts +0 -9
- package/directives/textfield-controller/textfield-postfix.directive.d.ts +0 -9
- package/directives/textfield-controller/textfield-prefix.directive.d.ts +0 -9
- package/directives/textfield-controller/textfield-size.directive.d.ts +0 -10
- package/directives/textfield-controller/textfield.controller.d.ts +0 -41
- package/directives/textfield-controller/textfield.options.d.ts +0 -17
- package/directives/unfinished-validator/index.d.ts +0 -2
- package/directives/unfinished-validator/unfinished-validator.directive.d.ts +0 -10
- package/directives/unfinished-validator/unfinished.validator.d.ts +0 -4
- package/directives/value-accessor/index.d.ts +0 -3
- package/directives/value-accessor/value-accessor.directive.d.ts +0 -5
- package/directives/value-accessor/value-accessor.module.d.ts +0 -7
- package/directives/value-accessor/value-accessor.provider.d.ts +0 -2
- package/directives/wrapper/README.md +0 -19
- package/directives/wrapper/index.d.ts +0 -2
- package/directives/wrapper/wrapper.directive.d.ts +0 -22
- package/directives/wrapper/wrapper.module.d.ts +0 -10
- package/fesm2022/taiga-ui-legacy-classes.mjs +0 -413
- package/fesm2022/taiga-ui-legacy-classes.mjs.map +0 -1
- package/fesm2022/taiga-ui-legacy-components-arrow.mjs +0 -72
- package/fesm2022/taiga-ui-legacy-components-arrow.mjs.map +0 -1
- package/fesm2022/taiga-ui-legacy-components-input-date-range.mjs +0 -346
- package/fesm2022/taiga-ui-legacy-components-input-date-range.mjs.map +0 -1
- package/fesm2022/taiga-ui-legacy-components-input-date-time.mjs +0 -459
- package/fesm2022/taiga-ui-legacy-components-input-date-time.mjs.map +0 -1
- package/fesm2022/taiga-ui-legacy-components-input-month-range.mjs +0 -221
- package/fesm2022/taiga-ui-legacy-components-input-month-range.mjs.map +0 -1
- package/fesm2022/taiga-ui-legacy-components-input-number.mjs +0 -375
- package/fesm2022/taiga-ui-legacy-components-input-number.mjs.map +0 -1
- package/fesm2022/taiga-ui-legacy-components-input-range.mjs +0 -261
- package/fesm2022/taiga-ui-legacy-components-input-range.mjs.map +0 -1
- package/fesm2022/taiga-ui-legacy-components-input-slider.mjs +0 -199
- package/fesm2022/taiga-ui-legacy-components-input-slider.mjs.map +0 -1
- package/fesm2022/taiga-ui-legacy-components-input.mjs +0 -156
- package/fesm2022/taiga-ui-legacy-components-input.mjs.map +0 -1
- package/fesm2022/taiga-ui-legacy-components-primitive-textfield.mjs +0 -454
- package/fesm2022/taiga-ui-legacy-components-primitive-textfield.mjs.map +0 -1
- package/fesm2022/taiga-ui-legacy-components-select-option.mjs +0 -88
- package/fesm2022/taiga-ui-legacy-components-select-option.mjs.map +0 -1
- package/fesm2022/taiga-ui-legacy-components-select.mjs +0 -345
- package/fesm2022/taiga-ui-legacy-components-select.mjs.map +0 -1
- package/fesm2022/taiga-ui-legacy-components-tooltip.mjs +0 -53
- package/fesm2022/taiga-ui-legacy-components-tooltip.mjs.map +0 -1
- package/fesm2022/taiga-ui-legacy-directives-legacy-dropdown-open-monitor.mjs +0 -49
- package/fesm2022/taiga-ui-legacy-directives-legacy-dropdown-open-monitor.mjs.map +0 -1
- package/fesm2022/taiga-ui-legacy-directives-textfield-controller.mjs +0 -397
- package/fesm2022/taiga-ui-legacy-directives-textfield-controller.mjs.map +0 -1
- package/fesm2022/taiga-ui-legacy-directives-unfinished-validator.mjs +0 -48
- package/fesm2022/taiga-ui-legacy-directives-unfinished-validator.mjs.map +0 -1
- package/fesm2022/taiga-ui-legacy-directives-value-accessor.mjs +0 -44
- package/fesm2022/taiga-ui-legacy-directives-value-accessor.mjs.map +0 -1
- package/fesm2022/taiga-ui-legacy-directives-wrapper.mjs +0 -99
- package/fesm2022/taiga-ui-legacy-directives-wrapper.mjs.map +0 -1
- package/fesm2022/taiga-ui-legacy-directives.mjs +0 -10
- package/fesm2022/taiga-ui-legacy-directives.mjs.map +0 -1
- package/fesm2022/taiga-ui-legacy-tokens.mjs +0 -384
- package/fesm2022/taiga-ui-legacy-tokens.mjs.map +0 -1
- package/fesm2022/taiga-ui-legacy-utils.mjs +0 -262
- package/fesm2022/taiga-ui-legacy-utils.mjs.map +0 -1
- package/styles/mixins/mixins.less +0 -239
- package/styles/mixins/mixins.scss +0 -224
- package/styles/mixins/textfield.less +0 -324
- package/styles/mixins/textfield.scss +0 -308
- package/styles/taiga-ui-local.less +0 -3
- package/styles/taiga-ui-local.scss +0 -3
- package/tokens/countries-masks.d.ts +0 -9
- package/tokens/focusable-item-accessor.d.ts +0 -25
- package/tokens/fonts-ready.d.ts +0 -6
- package/tokens/icons.d.ts +0 -6
- package/tokens/index.d.ts +0 -14
- package/tokens/is-apple.d.ts +0 -6
- package/tokens/is-chromium.d.ts +0 -6
- package/tokens/is-firefox.d.ts +0 -6
- package/tokens/is-stackblitz.d.ts +0 -5
- package/tokens/month-formatter.d.ts +0 -10
- package/tokens/sanitizer.d.ts +0 -6
- package/tokens/textfield-appearance.d.ts +0 -7
- package/tokens/textfield-host.d.ts +0 -23
- package/tokens/touch-supported.d.ts +0 -5
- package/tokens/value-accessor.d.ts +0 -7
- package/utils/capitalize-first-letter.d.ts +0 -4
- package/utils/date-mode-maskito-adapter.d.ts +0 -6
- package/utils/format-phone.d.ts +0 -30
- package/utils/get-border.d.ts +0 -5
- package/utils/get-max-allowed-phone-length.d.ts +0 -24
- package/utils/get-safe-area-size.d.ts +0 -7
- package/utils/icons-path-factory.d.ts +0 -13
- package/utils/index.d.ts +0 -13
- package/utils/is-presumed-html-string.d.ts +0 -4
- package/utils/iso-to-country-code.d.ts +0 -13
- package/utils/not-kz-region.d.ts +0 -20
- package/utils/process-icon.d.ts +0 -4
- package/utils/specific-dropdown-controllers.d.ts +0 -4
- package/utils/status.d.ts +0 -4
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import { type TuiContext } from '@taiga-ui/cdk/types';
|
|
2
|
-
import { type TuiSizeL, type TuiSizeS } from '@taiga-ui/core/types';
|
|
3
|
-
import { type PolymorpheusContent } from '@taiga-ui/polymorpheus';
|
|
4
|
-
export interface TuiTextfieldOptions {
|
|
5
|
-
readonly hintOnDisabled: boolean;
|
|
6
|
-
readonly iconCleaner: PolymorpheusContent<TuiContext<TuiSizeL | TuiSizeS>>;
|
|
7
|
-
}
|
|
8
|
-
/**
|
|
9
|
-
* @deprecated: drop in v5.0
|
|
10
|
-
* Default values for primitive textfield options
|
|
11
|
-
*/
|
|
12
|
-
export declare const TUI_TEXTFIELD_DEFAULT_OPTIONS: TuiTextfieldOptions;
|
|
13
|
-
/**
|
|
14
|
-
* @deprecated: drop in v5.0
|
|
15
|
-
* Default parameters for textfield
|
|
16
|
-
*/
|
|
17
|
-
export declare const TUI_TEXTFIELD_OPTIONS: import("@angular/core").InjectionToken<TuiTextfieldOptions>, tuiTextfieldOptionsProvider: (item: Partial<TuiTextfieldOptions> | (() => Partial<TuiTextfieldOptions>)) => import("@angular/core").FactoryProvider;
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import { type Validator } from '@angular/forms';
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
export declare class TuiUnfinishedValidator implements Validator {
|
|
4
|
-
private readonly default;
|
|
5
|
-
private readonly injector;
|
|
6
|
-
tuiUnfinishedValidator: string;
|
|
7
|
-
readonly validate: import("@angular/forms").ValidatorFn;
|
|
8
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<TuiUnfinishedValidator, never>;
|
|
9
|
-
static ɵdir: i0.ɵɵDirectiveDeclaration<TuiUnfinishedValidator, "[tuiUnfinishedValidator]", never, { "tuiUnfinishedValidator": { "alias": "tuiUnfinishedValidator"; "required": false; }; }, {}, never, never, true, never>;
|
|
10
|
-
}
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
import { type ValidatorFn } from '@angular/forms';
|
|
2
|
-
import { type TuiFocusableElementAccessor } from '@taiga-ui/legacy/tokens';
|
|
3
|
-
import { type PolymorpheusContent } from '@taiga-ui/polymorpheus';
|
|
4
|
-
export declare function tuiCreateUnfinishedValidator(nativeInputGetter: () => TuiFocusableElementAccessor, message: PolymorpheusContent): ValidatorFn;
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
import * as i0 from "@angular/core";
|
|
2
|
-
export declare class TuiValueAccessorDirective {
|
|
3
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<TuiValueAccessorDirective, never>;
|
|
4
|
-
static ɵdir: i0.ɵɵDirectiveDeclaration<TuiValueAccessorDirective, "[tuiValueAccessor]", never, {}, {}, never, never, false, never>;
|
|
5
|
-
}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import * as i0 from "@angular/core";
|
|
2
|
-
import * as i1 from "./value-accessor.directive";
|
|
3
|
-
export declare class TuiValueAccessorModule {
|
|
4
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<TuiValueAccessorModule, never>;
|
|
5
|
-
static ɵmod: i0.ɵɵNgModuleDeclaration<TuiValueAccessorModule, [typeof i1.TuiValueAccessorDirective], never, [typeof i1.TuiValueAccessorDirective]>;
|
|
6
|
-
static ɵinj: i0.ɵɵInjectorDeclaration<TuiValueAccessorModule>;
|
|
7
|
-
}
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
Wrapper is organized with 2 layers:
|
|
2
|
-
|
|
3
|
-
1. element itself, that serves as a background
|
|
4
|
-
2. `:after` pseudo element that serves as overlay
|
|
5
|
-
|
|
6
|
-
Overlay is click-through and typically used for focus ring
|
|
7
|
-
|
|
8
|
-
To apply styles use following mixins from
|
|
9
|
-
|
|
10
|
-
```less
|
|
11
|
-
@import '@taiga-ui/core/styles/taiga-ui-local.less';
|
|
12
|
-
```
|
|
13
|
-
|
|
14
|
-
1. `.wrapper-hover(@ruleset)`
|
|
15
|
-
2. `.wrapper-active(@ruleset)`
|
|
16
|
-
3. `.wrapper-readonly(@ruleset)`
|
|
17
|
-
4. `.wrapper-disabled(@ruleset)`
|
|
18
|
-
5. `.wrapper-focus(@ruleset)`
|
|
19
|
-
6. `.wrapper-invalid(@ruleset)`
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
import { type TuiLooseUnion } from '@taiga-ui/cdk/types';
|
|
2
|
-
import { type TuiInteractiveState } from '@taiga-ui/core/types';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
/**
|
|
5
|
-
* @deprecated: drop in v5.0
|
|
6
|
-
*/
|
|
7
|
-
export declare class TuiWrapperDirective {
|
|
8
|
-
disabled: boolean;
|
|
9
|
-
readOnly: boolean;
|
|
10
|
-
hover: boolean | null;
|
|
11
|
-
active: boolean | null;
|
|
12
|
-
focus: boolean;
|
|
13
|
-
invalid: boolean;
|
|
14
|
-
appearance: string;
|
|
15
|
-
protected get computedInvalid(): boolean;
|
|
16
|
-
protected get computedFocused(): boolean;
|
|
17
|
-
protected get interactiveState(): TuiLooseUnion<TuiInteractiveState> | null;
|
|
18
|
-
protected get noHover(): boolean;
|
|
19
|
-
protected get noActive(): boolean;
|
|
20
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<TuiWrapperDirective, never>;
|
|
21
|
-
static ɵdir: i0.ɵɵDirectiveDeclaration<TuiWrapperDirective, "[tuiWrapper]", never, { "disabled": { "alias": "disabled"; "required": false; }; "readOnly": { "alias": "readOnly"; "required": false; }; "hover": { "alias": "hover"; "required": false; }; "active": { "alias": "active"; "required": false; }; "focus": { "alias": "focus"; "required": false; }; "invalid": { "alias": "invalid"; "required": false; }; "appearance": { "alias": "appearance"; "required": false; }; }, {}, never, never, false, never>;
|
|
22
|
-
}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import * as i0 from "@angular/core";
|
|
2
|
-
import * as i1 from "./wrapper.directive";
|
|
3
|
-
/**
|
|
4
|
-
* @deprecated: drop in v5.0
|
|
5
|
-
*/
|
|
6
|
-
export declare class TuiWrapperModule {
|
|
7
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<TuiWrapperModule, never>;
|
|
8
|
-
static ɵmod: i0.ɵɵNgModuleDeclaration<TuiWrapperModule, [typeof i1.TuiWrapperDirective], never, [typeof i1.TuiWrapperDirective]>;
|
|
9
|
-
static ɵinj: i0.ɵɵInjectorDeclaration<TuiWrapperModule>;
|
|
10
|
-
}
|
|
@@ -1,413 +0,0 @@
|
|
|
1
|
-
import * as i0 from '@angular/core';
|
|
2
|
-
import { EventEmitter, Output, Input, Directive, inject, DestroyRef, ChangeDetectorRef, TemplateRef, ViewChild } from '@angular/core';
|
|
3
|
-
import { tuiInjectId } from '@taiga-ui/cdk/services';
|
|
4
|
-
import { tuiInjectElement } from '@taiga-ui/cdk/utils/dom';
|
|
5
|
-
import { TuiDataListDirective } from '@taiga-ui/core/components/data-list';
|
|
6
|
-
import { TUI_ITEMS_HANDLERS } from '@taiga-ui/kit/tokens';
|
|
7
|
-
import { TUI_TEXTFIELD_HOST } from '@taiga-ui/legacy/tokens';
|
|
8
|
-
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
9
|
-
import { NgControl, NgModel } from '@angular/forms';
|
|
10
|
-
import { TuiValueTransformer, TuiControl } from '@taiga-ui/cdk/classes';
|
|
11
|
-
import { EMPTY_FUNCTION } from '@taiga-ui/cdk/constants';
|
|
12
|
-
import { tuiIsPresent, tuiProvide } from '@taiga-ui/cdk/utils/miscellaneous';
|
|
13
|
-
import { Subject, delay, startWith, map, filter, distinctUntilChanged, switchMap, merge, EMPTY } from 'rxjs';
|
|
14
|
-
|
|
15
|
-
const TUI = 'tui_interactive_';
|
|
16
|
-
/**
|
|
17
|
-
* @deprecated: drop in v5.0
|
|
18
|
-
*/
|
|
19
|
-
class AbstractTuiInteractive {
|
|
20
|
-
constructor() {
|
|
21
|
-
this.autoIdString = `${TUI}${AbstractTuiInteractive.autoId++}${Date.now()}`;
|
|
22
|
-
this.focusVisible = false;
|
|
23
|
-
this.pseudoHover = null;
|
|
24
|
-
this.pseudoActive = null;
|
|
25
|
-
this.pseudoFocus = null;
|
|
26
|
-
/**
|
|
27
|
-
* Determines if component is focusable with keyboard.
|
|
28
|
-
*/
|
|
29
|
-
this.focusable = true;
|
|
30
|
-
this.nativeId = '';
|
|
31
|
-
/**
|
|
32
|
-
* Emits 'true' on focus and 'false' on blur.
|
|
33
|
-
*/
|
|
34
|
-
this.focusedChange = new EventEmitter();
|
|
35
|
-
this.focusVisibleChange = new EventEmitter();
|
|
36
|
-
}
|
|
37
|
-
static { this.autoId = 0; }
|
|
38
|
-
get computedDisabled() {
|
|
39
|
-
return this.disabled;
|
|
40
|
-
}
|
|
41
|
-
get computedFocused() {
|
|
42
|
-
return !this.computedDisabled && (this.pseudoFocus ?? this.focused);
|
|
43
|
-
}
|
|
44
|
-
get computedFocusVisible() {
|
|
45
|
-
return !this.computedDisabled && (this.pseudoFocus ?? this.focusVisible);
|
|
46
|
-
}
|
|
47
|
-
get computedFocusable() {
|
|
48
|
-
return !this.computedDisabled && (this.focusable || this.focused);
|
|
49
|
-
}
|
|
50
|
-
// TODO: 3.0 Consider removing since native input is exposed
|
|
51
|
-
get id() {
|
|
52
|
-
return this.nativeId || this.autoIdString;
|
|
53
|
-
}
|
|
54
|
-
updateFocused(focused) {
|
|
55
|
-
this.focusedChange.emit(focused);
|
|
56
|
-
}
|
|
57
|
-
updateFocusVisible(focusVisible) {
|
|
58
|
-
if (this.focusVisible === focusVisible) {
|
|
59
|
-
return;
|
|
60
|
-
}
|
|
61
|
-
this.focusVisible = focusVisible;
|
|
62
|
-
this.focusVisibleChange.emit(focusVisible);
|
|
63
|
-
}
|
|
64
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: AbstractTuiInteractive, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
65
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.15", type: AbstractTuiInteractive, isStandalone: false, inputs: { pseudoHover: "pseudoHover", pseudoActive: "pseudoActive", pseudoFocus: "pseudoFocus", focusable: "focusable", nativeId: "nativeId" }, outputs: { focusedChange: "focusedChange", focusVisibleChange: "focusVisibleChange" }, host: { properties: { "attr.data-focused": "pseudoFocus", "class._disabled": "computedDisabled", "class._focused": "computedFocused", "class._focus-visible": "computedFocusVisible" } }, ngImport: i0 }); }
|
|
66
|
-
}
|
|
67
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: AbstractTuiInteractive, decorators: [{
|
|
68
|
-
type: Directive,
|
|
69
|
-
args: [{
|
|
70
|
-
standalone: false,
|
|
71
|
-
host: {
|
|
72
|
-
'[attr.data-focused]': 'pseudoFocus',
|
|
73
|
-
'[class._disabled]': 'computedDisabled',
|
|
74
|
-
'[class._focused]': 'computedFocused',
|
|
75
|
-
'[class._focus-visible]': 'computedFocusVisible',
|
|
76
|
-
},
|
|
77
|
-
}]
|
|
78
|
-
}], propDecorators: { pseudoHover: [{
|
|
79
|
-
type: Input
|
|
80
|
-
}], pseudoActive: [{
|
|
81
|
-
type: Input
|
|
82
|
-
}], pseudoFocus: [{
|
|
83
|
-
type: Input
|
|
84
|
-
}], focusable: [{
|
|
85
|
-
type: Input
|
|
86
|
-
}], nativeId: [{
|
|
87
|
-
type: Input
|
|
88
|
-
}], focusedChange: [{
|
|
89
|
-
type: Output
|
|
90
|
-
}], focusVisibleChange: [{
|
|
91
|
-
type: Output
|
|
92
|
-
}] } });
|
|
93
|
-
|
|
94
|
-
/// <reference types="@taiga-ui/tsconfig/ng-dev-mode" />
|
|
95
|
-
/**
|
|
96
|
-
* @deprecated: drop in v5.0
|
|
97
|
-
* Basic ControlValueAccessor class to build form components upon
|
|
98
|
-
*/
|
|
99
|
-
class AbstractTuiControl extends AbstractTuiInteractive {
|
|
100
|
-
constructor() {
|
|
101
|
-
super();
|
|
102
|
-
this.ngControl = inject(NgControl, { optional: true });
|
|
103
|
-
this.refresh$ = new Subject();
|
|
104
|
-
this.onTouched = EMPTY_FUNCTION;
|
|
105
|
-
this.onChange = EMPTY_FUNCTION;
|
|
106
|
-
this.fallbackValue = this.getFallbackValue();
|
|
107
|
-
this.destroyRef = inject(DestroyRef);
|
|
108
|
-
this.cdr = inject(ChangeDetectorRef);
|
|
109
|
-
this.valueTransformer = inject(TuiValueTransformer, { optional: true });
|
|
110
|
-
this.readOnly = false;
|
|
111
|
-
this.pseudoInvalid = null;
|
|
112
|
-
// Workaround for legacy control to notify of internal change in case updateOn: 'blur' is used
|
|
113
|
-
this.update$ = new Subject();
|
|
114
|
-
if (ngDevMode && this.ngControl === null) {
|
|
115
|
-
console.assert(false, `NgControl not injected in ${this.constructor.name}!\n`, 'Use [(ngModel)] or [formControl] or formControlName for correct work.');
|
|
116
|
-
}
|
|
117
|
-
if (this.ngControl) {
|
|
118
|
-
this.ngControl.valueAccessor = this;
|
|
119
|
-
}
|
|
120
|
-
}
|
|
121
|
-
get computedInvalid() {
|
|
122
|
-
return (this.interactive &&
|
|
123
|
-
(this.pseudoInvalid !== null
|
|
124
|
-
? this.pseudoInvalid
|
|
125
|
-
: this.touched && this.invalid));
|
|
126
|
-
}
|
|
127
|
-
get value() {
|
|
128
|
-
return this.previousInternalValue ?? this.fallbackValue;
|
|
129
|
-
}
|
|
130
|
-
set value(value) {
|
|
131
|
-
this.updateValue(value);
|
|
132
|
-
this.update$.next();
|
|
133
|
-
}
|
|
134
|
-
get safeCurrentValue() {
|
|
135
|
-
return this.rawValue ?? this.fallbackValue;
|
|
136
|
-
}
|
|
137
|
-
get invalid() {
|
|
138
|
-
return this.safeNgControlData(({ invalid }) => invalid, false);
|
|
139
|
-
}
|
|
140
|
-
get valid() {
|
|
141
|
-
return this.safeNgControlData(({ valid }) => valid, false);
|
|
142
|
-
}
|
|
143
|
-
get touched() {
|
|
144
|
-
return this.safeNgControlData(({ touched }) => touched, false);
|
|
145
|
-
}
|
|
146
|
-
get disabled() {
|
|
147
|
-
return this.safeNgControlData(({ disabled }) => disabled, false);
|
|
148
|
-
}
|
|
149
|
-
get interactive() {
|
|
150
|
-
return !this.readOnly && !this.computedDisabled;
|
|
151
|
-
}
|
|
152
|
-
get control() {
|
|
153
|
-
return this.safeNgControlData(({ control }) => control, null);
|
|
154
|
-
}
|
|
155
|
-
get computedName() {
|
|
156
|
-
return this.controlName?.toString() ?? null;
|
|
157
|
-
}
|
|
158
|
-
get controlName() {
|
|
159
|
-
return this.ngControl?.name?.toString() ?? null;
|
|
160
|
-
}
|
|
161
|
-
ngOnInit() {
|
|
162
|
-
this.refresh$
|
|
163
|
-
.pipe(delay(0), startWith(null), map(() => this.ngControl?.control), filter(tuiIsPresent), distinctUntilChanged(), switchMap((control) => merge(control.valueChanges, control.statusChanges, control.events || EMPTY)), takeUntilDestroyed(this.destroyRef))
|
|
164
|
-
.subscribe(() => {
|
|
165
|
-
this.refreshLocalValue(this.safeCurrentValue);
|
|
166
|
-
});
|
|
167
|
-
}
|
|
168
|
-
checkControlUpdate() {
|
|
169
|
-
this.cdr.markForCheck();
|
|
170
|
-
}
|
|
171
|
-
registerOnChange(onChange) {
|
|
172
|
-
this.onChange = (componentValue) => {
|
|
173
|
-
onChange(this.toControlValue(componentValue));
|
|
174
|
-
};
|
|
175
|
-
this.refresh$.next();
|
|
176
|
-
}
|
|
177
|
-
registerOnTouched(onTouched) {
|
|
178
|
-
this.onTouched = onTouched;
|
|
179
|
-
}
|
|
180
|
-
setDisabledState() {
|
|
181
|
-
this.checkControlUpdate();
|
|
182
|
-
}
|
|
183
|
-
writeValue(value) {
|
|
184
|
-
const controlValue = this.ngControl instanceof NgModel && this.previousInternalValue === undefined
|
|
185
|
-
? this.ngControl.model
|
|
186
|
-
: value;
|
|
187
|
-
this.refreshLocalValue(this.fromControlValue(controlValue));
|
|
188
|
-
}
|
|
189
|
-
updateFocused(focused) {
|
|
190
|
-
if (!focused) {
|
|
191
|
-
this.controlMarkAsTouched();
|
|
192
|
-
}
|
|
193
|
-
super.updateFocused(focused);
|
|
194
|
-
}
|
|
195
|
-
/**
|
|
196
|
-
* @deprecated use `value` setter
|
|
197
|
-
*/
|
|
198
|
-
updateValue(value) {
|
|
199
|
-
if (this.disabled || this.valueIdenticalComparator(this.value, value)) {
|
|
200
|
-
return;
|
|
201
|
-
}
|
|
202
|
-
this.previousInternalValue = value;
|
|
203
|
-
this.controlSetValue(value);
|
|
204
|
-
}
|
|
205
|
-
valueIdenticalComparator(oldValue, newValue) {
|
|
206
|
-
return oldValue === newValue;
|
|
207
|
-
}
|
|
208
|
-
get rawValue() {
|
|
209
|
-
const { ngControl } = this;
|
|
210
|
-
if (ngControl === null) {
|
|
211
|
-
return undefined;
|
|
212
|
-
}
|
|
213
|
-
const controlValue = ngControl instanceof NgModel && this.previousInternalValue === undefined
|
|
214
|
-
? ngControl.viewModel
|
|
215
|
-
: ngControl.value;
|
|
216
|
-
return this.fromControlValue(controlValue);
|
|
217
|
-
}
|
|
218
|
-
safeNgControlData(extractor, defaultFieldValue) {
|
|
219
|
-
return (this.ngControl && extractor(this.ngControl)) ?? defaultFieldValue;
|
|
220
|
-
}
|
|
221
|
-
controlMarkAsTouched() {
|
|
222
|
-
this.onTouched();
|
|
223
|
-
this.checkControlUpdate();
|
|
224
|
-
}
|
|
225
|
-
controlSetValue(value) {
|
|
226
|
-
this.onChange(value);
|
|
227
|
-
this.checkControlUpdate();
|
|
228
|
-
}
|
|
229
|
-
refreshLocalValue(value) {
|
|
230
|
-
this.previousInternalValue = value;
|
|
231
|
-
this.checkControlUpdate();
|
|
232
|
-
}
|
|
233
|
-
fromControlValue(controlValue) {
|
|
234
|
-
return this.valueTransformer
|
|
235
|
-
? this.valueTransformer.fromControlValue(controlValue)
|
|
236
|
-
: controlValue;
|
|
237
|
-
}
|
|
238
|
-
toControlValue(componentValue) {
|
|
239
|
-
return this.valueTransformer
|
|
240
|
-
? this.valueTransformer.toControlValue(componentValue)
|
|
241
|
-
: componentValue;
|
|
242
|
-
}
|
|
243
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: AbstractTuiControl, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
244
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.15", type: AbstractTuiControl, isStandalone: false, inputs: { readOnly: "readOnly", pseudoInvalid: "pseudoInvalid" }, host: { properties: { "class._readonly": "readOnly", "class._invalid": "computedInvalid" } }, usesInheritance: true, ngImport: i0 }); }
|
|
245
|
-
}
|
|
246
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: AbstractTuiControl, decorators: [{
|
|
247
|
-
type: Directive,
|
|
248
|
-
args: [{
|
|
249
|
-
standalone: false,
|
|
250
|
-
host: {
|
|
251
|
-
'[class._readonly]': 'readOnly',
|
|
252
|
-
'[class._invalid]': 'computedInvalid',
|
|
253
|
-
},
|
|
254
|
-
}]
|
|
255
|
-
}], ctorParameters: () => [], propDecorators: { readOnly: [{
|
|
256
|
-
type: Input
|
|
257
|
-
}], pseudoInvalid: [{
|
|
258
|
-
type: Input
|
|
259
|
-
}] } });
|
|
260
|
-
function tuiAsControl(control) {
|
|
261
|
-
return [tuiProvide(AbstractTuiControl, control), tuiProvide(TuiControl, control)];
|
|
262
|
-
}
|
|
263
|
-
|
|
264
|
-
/**
|
|
265
|
-
* @deprecated: drop in v5.0
|
|
266
|
-
*/
|
|
267
|
-
class AbstractTuiNativeSelect {
|
|
268
|
-
constructor() {
|
|
269
|
-
this.datalist = null;
|
|
270
|
-
this.autoId = tuiInjectId();
|
|
271
|
-
this.el = tuiInjectElement();
|
|
272
|
-
this.host = inject(TUI_TEXTFIELD_HOST);
|
|
273
|
-
this.control = inject(AbstractTuiControl);
|
|
274
|
-
this.itemsHandlers = inject(TUI_ITEMS_HANDLERS);
|
|
275
|
-
this.disabledItemHandler = null;
|
|
276
|
-
this.placeholder = '';
|
|
277
|
-
}
|
|
278
|
-
get id() {
|
|
279
|
-
return this.el.id || this.autoId;
|
|
280
|
-
}
|
|
281
|
-
get emptyOption() {
|
|
282
|
-
return !!this.placeholder && !this.control.value;
|
|
283
|
-
}
|
|
284
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: AbstractTuiNativeSelect, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
285
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.15", type: AbstractTuiNativeSelect, isStandalone: false, inputs: { disabledItemHandler: "disabledItemHandler", placeholder: "placeholder" }, host: { properties: { "id": "id" } }, viewQueries: [{ propertyName: "datalist", first: true, predicate: TuiDataListDirective, descendants: true, read: TemplateRef, static: true }], ngImport: i0 }); }
|
|
286
|
-
}
|
|
287
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: AbstractTuiNativeSelect, decorators: [{
|
|
288
|
-
type: Directive,
|
|
289
|
-
args: [{
|
|
290
|
-
standalone: false,
|
|
291
|
-
host: {
|
|
292
|
-
'[id]': 'id',
|
|
293
|
-
},
|
|
294
|
-
}]
|
|
295
|
-
}], propDecorators: { datalist: [{
|
|
296
|
-
type: ViewChild,
|
|
297
|
-
args: [TuiDataListDirective, { read: TemplateRef, static: true }]
|
|
298
|
-
}], disabledItemHandler: [{
|
|
299
|
-
type: Input
|
|
300
|
-
}], placeholder: [{
|
|
301
|
-
type: Input
|
|
302
|
-
}] } });
|
|
303
|
-
|
|
304
|
-
/**
|
|
305
|
-
* @deprecated: drop in v5.0
|
|
306
|
-
*/
|
|
307
|
-
class AbstractTuiTextfieldHost {
|
|
308
|
-
constructor() {
|
|
309
|
-
this.host = inject(AbstractTuiControl, { optional: true });
|
|
310
|
-
this.inputMode = 'text';
|
|
311
|
-
}
|
|
312
|
-
get readOnly() {
|
|
313
|
-
return this.host.readOnly;
|
|
314
|
-
}
|
|
315
|
-
get disabled() {
|
|
316
|
-
return this.host.computedDisabled;
|
|
317
|
-
}
|
|
318
|
-
get invalid() {
|
|
319
|
-
return this.host.computedInvalid;
|
|
320
|
-
}
|
|
321
|
-
get focusable() {
|
|
322
|
-
return this.host.computedFocusable;
|
|
323
|
-
}
|
|
324
|
-
get value() {
|
|
325
|
-
return this.host.value?.toString() || '';
|
|
326
|
-
}
|
|
327
|
-
process(_input) { }
|
|
328
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: AbstractTuiTextfieldHost, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
329
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.15", type: AbstractTuiTextfieldHost, isStandalone: true, ngImport: i0 }); }
|
|
330
|
-
}
|
|
331
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: AbstractTuiTextfieldHost, decorators: [{
|
|
332
|
-
type: Directive
|
|
333
|
-
}] });
|
|
334
|
-
|
|
335
|
-
class AbstractTuiController {
|
|
336
|
-
constructor() {
|
|
337
|
-
this.change$ = new Subject();
|
|
338
|
-
}
|
|
339
|
-
ngOnChanges() {
|
|
340
|
-
this.change$.next();
|
|
341
|
-
}
|
|
342
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: AbstractTuiController, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
343
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.15", type: AbstractTuiController, isStandalone: true, usesOnChanges: true, ngImport: i0 }); }
|
|
344
|
-
}
|
|
345
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: AbstractTuiController, decorators: [{
|
|
346
|
-
type: Directive
|
|
347
|
-
}] });
|
|
348
|
-
|
|
349
|
-
/**
|
|
350
|
-
* @deprecated: drop in v5.0
|
|
351
|
-
*/
|
|
352
|
-
class AbstractTuiMultipleControl extends AbstractTuiControl {
|
|
353
|
-
clear() {
|
|
354
|
-
this.value = [];
|
|
355
|
-
}
|
|
356
|
-
getFallbackValue() {
|
|
357
|
-
return [];
|
|
358
|
-
}
|
|
359
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: AbstractTuiMultipleControl, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
|
|
360
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.15", type: AbstractTuiMultipleControl, isStandalone: true, usesInheritance: true, ngImport: i0 }); }
|
|
361
|
-
}
|
|
362
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: AbstractTuiMultipleControl, decorators: [{
|
|
363
|
-
type: Directive
|
|
364
|
-
}] });
|
|
365
|
-
|
|
366
|
-
/**
|
|
367
|
-
* @deprecated: drop in v5.0
|
|
368
|
-
*/
|
|
369
|
-
class TuiNamedDay {
|
|
370
|
-
constructor(day, name, displayDay = day) {
|
|
371
|
-
this.day = day;
|
|
372
|
-
this.name = name;
|
|
373
|
-
this.displayDay = displayDay;
|
|
374
|
-
}
|
|
375
|
-
toString() {
|
|
376
|
-
return this.name;
|
|
377
|
-
}
|
|
378
|
-
}
|
|
379
|
-
|
|
380
|
-
/**
|
|
381
|
-
* @deprecated: drop in v5.0
|
|
382
|
-
*/
|
|
383
|
-
class AbstractTuiNullableControl extends AbstractTuiControl {
|
|
384
|
-
getFallbackValue() {
|
|
385
|
-
return null;
|
|
386
|
-
}
|
|
387
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: AbstractTuiNullableControl, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
|
|
388
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.15", type: AbstractTuiNullableControl, isStandalone: true, usesInheritance: true, ngImport: i0 }); }
|
|
389
|
-
}
|
|
390
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: AbstractTuiNullableControl, decorators: [{
|
|
391
|
-
type: Directive
|
|
392
|
-
}] });
|
|
393
|
-
|
|
394
|
-
/**
|
|
395
|
-
* @deprecated: drop in v5.0
|
|
396
|
-
* Wrapper around an item to add `toString()` method
|
|
397
|
-
*/
|
|
398
|
-
class TuiStringifiableItem {
|
|
399
|
-
constructor(item, stringify) {
|
|
400
|
-
this.item = item;
|
|
401
|
-
this.stringify = stringify;
|
|
402
|
-
}
|
|
403
|
-
toString() {
|
|
404
|
-
return this.stringify(this.item);
|
|
405
|
-
}
|
|
406
|
-
}
|
|
407
|
-
|
|
408
|
-
/**
|
|
409
|
-
* Generated bundle index. Do not edit.
|
|
410
|
-
*/
|
|
411
|
-
|
|
412
|
-
export { AbstractTuiControl, AbstractTuiController, AbstractTuiInteractive, AbstractTuiMultipleControl, AbstractTuiNativeSelect, AbstractTuiNullableControl, AbstractTuiTextfieldHost, TuiNamedDay, TuiStringifiableItem, tuiAsControl };
|
|
413
|
-
//# sourceMappingURL=taiga-ui-legacy-classes.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"taiga-ui-legacy-classes.mjs","sources":["../../../projects/legacy/classes/interactive.ts","../../../projects/legacy/classes/control.ts","../../../projects/legacy/classes/abstract-native-select.ts","../../../projects/legacy/classes/abstract-textfield-host.ts","../../../projects/legacy/classes/controller.ts","../../../projects/legacy/classes/multiple-control.ts","../../../projects/legacy/classes/named-day.ts","../../../projects/legacy/classes/nullable-control.ts","../../../projects/legacy/classes/stringifiable-item.ts","../../../projects/legacy/classes/taiga-ui-legacy-classes.ts"],"sourcesContent":["import {Directive, EventEmitter, Input, Output} from '@angular/core';\n\nconst TUI = 'tui_interactive_';\n\n/**\n * @deprecated: drop in v5.0\n */\n@Directive({\n standalone: false,\n host: {\n '[attr.data-focused]': 'pseudoFocus',\n '[class._disabled]': 'computedDisabled',\n '[class._focused]': 'computedFocused',\n '[class._focus-visible]': 'computedFocusVisible',\n },\n})\nexport abstract class AbstractTuiInteractive {\n private static autoId = 0;\n\n public abstract disabled: boolean;\n\n public abstract focused: boolean;\n\n private readonly autoIdString: string = `${TUI}${AbstractTuiInteractive.autoId++}${Date.now()}`;\n\n protected focusVisible = false;\n\n @Input()\n public pseudoHover: boolean | null = null;\n\n @Input()\n public pseudoActive: boolean | null = null;\n\n @Input()\n public pseudoFocus: boolean | null = null;\n\n /**\n * Determines if component is focusable with keyboard.\n */\n @Input()\n public focusable = true;\n\n @Input()\n public nativeId = '';\n\n /**\n * Emits 'true' on focus and 'false' on blur.\n */\n @Output()\n public readonly focusedChange = new EventEmitter<boolean>();\n\n @Output()\n public readonly focusVisibleChange = new EventEmitter<boolean>();\n\n public get computedDisabled(): boolean {\n return this.disabled;\n }\n\n public get computedFocused(): boolean {\n return !this.computedDisabled && (this.pseudoFocus ?? this.focused);\n }\n\n public get computedFocusVisible(): boolean {\n return !this.computedDisabled && (this.pseudoFocus ?? this.focusVisible);\n }\n\n public get computedFocusable(): boolean {\n return !this.computedDisabled && (this.focusable || this.focused);\n }\n\n // TODO: 3.0 Consider removing since native input is exposed\n public get id(): string {\n return this.nativeId || this.autoIdString;\n }\n\n protected updateFocused(focused: boolean): void {\n this.focusedChange.emit(focused);\n }\n\n protected updateFocusVisible(focusVisible: boolean): void {\n if (this.focusVisible === focusVisible) {\n return;\n }\n\n this.focusVisible = focusVisible;\n this.focusVisibleChange.emit(focusVisible);\n }\n}\n","/// <reference types=\"@taiga-ui/tsconfig/ng-dev-mode\" />\nimport {\n ChangeDetectorRef,\n DestroyRef,\n Directive,\n inject,\n Input,\n type OnInit,\n type Provider,\n type Type,\n} from '@angular/core';\nimport {takeUntilDestroyed} from '@angular/core/rxjs-interop';\nimport {\n type AbstractControl,\n type ControlValueAccessor,\n NgControl,\n NgModel,\n} from '@angular/forms';\nimport {TuiControl, TuiValueTransformer} from '@taiga-ui/cdk/classes';\nimport {EMPTY_FUNCTION} from '@taiga-ui/cdk/constants';\nimport {tuiIsPresent, tuiProvide} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {\n delay,\n distinctUntilChanged,\n EMPTY,\n filter,\n map,\n merge,\n startWith,\n Subject,\n switchMap,\n} from 'rxjs';\n\nimport {AbstractTuiInteractive} from './interactive';\n\n/**\n * @deprecated: drop in v5.0\n * Basic ControlValueAccessor class to build form components upon\n */\n@Directive({\n standalone: false,\n host: {\n '[class._readonly]': 'readOnly',\n '[class._invalid]': 'computedInvalid',\n },\n})\nexport abstract class AbstractTuiControl<T>\n extends AbstractTuiInteractive\n implements OnInit, ControlValueAccessor\n{\n private readonly ngControl = inject(NgControl, {optional: true});\n private previousInternalValue?: T | null;\n private readonly refresh$ = new Subject<void>();\n\n protected onTouched = EMPTY_FUNCTION;\n protected onChange = EMPTY_FUNCTION;\n protected readonly fallbackValue = this.getFallbackValue();\n protected destroyRef = inject(DestroyRef);\n protected readonly cdr = inject(ChangeDetectorRef);\n protected readonly valueTransformer = inject<TuiValueTransformer<T>>(\n TuiValueTransformer,\n {optional: true},\n );\n\n @Input()\n public readOnly = false;\n\n @Input()\n public pseudoInvalid: boolean | null = null;\n\n // Workaround for legacy control to notify of internal change in case updateOn: 'blur' is used\n public readonly update$ = new Subject<void>();\n\n constructor() {\n super();\n\n if (ngDevMode && this.ngControl === null) {\n console.assert(\n false,\n `NgControl not injected in ${this.constructor.name}!\\n`,\n 'Use [(ngModel)] or [formControl] or formControlName for correct work.',\n );\n }\n\n if (this.ngControl) {\n this.ngControl.valueAccessor = this;\n }\n }\n\n protected abstract getFallbackValue(): T;\n\n public get computedInvalid(): boolean {\n return (\n this.interactive &&\n (this.pseudoInvalid !== null\n ? this.pseudoInvalid\n : this.touched && this.invalid)\n );\n }\n\n public get value(): T {\n return this.previousInternalValue ?? this.fallbackValue;\n }\n\n public set value(value: T) {\n this.updateValue(value);\n this.update$.next();\n }\n\n public get safeCurrentValue(): T {\n return this.rawValue ?? this.fallbackValue;\n }\n\n public get invalid(): boolean {\n return this.safeNgControlData<boolean>(({invalid}) => invalid, false);\n }\n\n public get valid(): boolean {\n return this.safeNgControlData<boolean>(({valid}) => valid, false);\n }\n\n public get touched(): boolean {\n return this.safeNgControlData<boolean>(({touched}) => touched, false);\n }\n\n public get disabled(): boolean {\n return this.safeNgControlData<boolean>(({disabled}) => disabled, false);\n }\n\n public get interactive(): boolean {\n return !this.readOnly && !this.computedDisabled;\n }\n\n public get control(): AbstractControl | null {\n return this.safeNgControlData<AbstractControl | null>(\n ({control}) => control,\n null,\n );\n }\n\n public get computedName(): string | null {\n return this.controlName?.toString() ?? null;\n }\n\n public get controlName(): string | null {\n return this.ngControl?.name?.toString() ?? null;\n }\n\n public ngOnInit(): void {\n this.refresh$\n .pipe(\n delay(0),\n startWith(null),\n map(() => this.ngControl?.control),\n filter(tuiIsPresent),\n distinctUntilChanged(),\n switchMap((control) =>\n merge(\n control.valueChanges,\n control.statusChanges,\n (control as any).events || EMPTY,\n ),\n ),\n takeUntilDestroyed(this.destroyRef),\n )\n .subscribe(() => {\n this.refreshLocalValue(this.safeCurrentValue);\n });\n }\n\n public checkControlUpdate(): void {\n this.cdr.markForCheck();\n }\n\n public registerOnChange(onChange: (value: unknown) => void): void {\n this.onChange = (componentValue: T) => {\n onChange(this.toControlValue(componentValue));\n };\n\n this.refresh$.next();\n }\n\n public registerOnTouched(onTouched: () => void): void {\n this.onTouched = onTouched;\n }\n\n public setDisabledState(): void {\n this.checkControlUpdate();\n }\n\n public writeValue(value: T | null): void {\n const controlValue =\n this.ngControl instanceof NgModel && this.previousInternalValue === undefined\n ? this.ngControl.model\n : value;\n\n this.refreshLocalValue(this.fromControlValue(controlValue));\n }\n\n protected override updateFocused(focused: boolean): void {\n if (!focused) {\n this.controlMarkAsTouched();\n }\n\n super.updateFocused(focused);\n }\n\n /**\n * @deprecated use `value` setter\n */\n protected updateValue(value: T): void {\n if (this.disabled || this.valueIdenticalComparator(this.value, value)) {\n return;\n }\n\n this.previousInternalValue = value;\n this.controlSetValue(value);\n }\n\n protected valueIdenticalComparator(oldValue: T, newValue: T): boolean {\n return oldValue === newValue;\n }\n\n private get rawValue(): T | undefined {\n const {ngControl} = this;\n\n if (ngControl === null) {\n return undefined;\n }\n\n const controlValue =\n ngControl instanceof NgModel && this.previousInternalValue === undefined\n ? ngControl.viewModel\n : ngControl.value;\n\n return this.fromControlValue(controlValue);\n }\n\n private safeNgControlData<T>(\n extractor: (ngControl: NgControl) => T | null | undefined,\n defaultFieldValue: T,\n ): T {\n return (this.ngControl && extractor(this.ngControl)) ?? defaultFieldValue;\n }\n\n private controlMarkAsTouched(): void {\n this.onTouched();\n this.checkControlUpdate();\n }\n\n private controlSetValue(value: T): void {\n this.onChange(value);\n this.checkControlUpdate();\n }\n\n private refreshLocalValue(value: T | null): void {\n this.previousInternalValue = value;\n this.checkControlUpdate();\n }\n\n private fromControlValue(controlValue: unknown): T {\n return this.valueTransformer\n ? this.valueTransformer.fromControlValue(controlValue)\n : (controlValue as T);\n }\n\n private toControlValue(componentValue: T): unknown {\n return this.valueTransformer\n ? this.valueTransformer.toControlValue(componentValue)\n : componentValue;\n }\n}\n\nexport function tuiAsControl<T>(control: Type<AbstractTuiControl<T>>): Provider[] {\n return [tuiProvide(AbstractTuiControl, control), tuiProvide(TuiControl, control)];\n}\n","import {Directive, inject, Input, TemplateRef, ViewChild} from '@angular/core';\nimport {tuiInjectId} from '@taiga-ui/cdk/services';\nimport {type TuiBooleanHandler} from '@taiga-ui/cdk/types';\nimport {tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\nimport {TuiDataListDirective} from '@taiga-ui/core/components/data-list';\nimport {TUI_ITEMS_HANDLERS} from '@taiga-ui/kit/tokens';\nimport {TUI_TEXTFIELD_HOST, type TuiTextfieldHost} from '@taiga-ui/legacy/tokens';\n\nimport {AbstractTuiControl} from './control';\n\n/**\n * @deprecated: drop in v5.0\n */\n@Directive({\n standalone: false,\n host: {\n '[id]': 'id',\n },\n})\nexport abstract class AbstractTuiNativeSelect<H = TuiTextfieldHost, T = string> {\n @ViewChild(TuiDataListDirective, {read: TemplateRef, static: true})\n protected readonly datalist: TemplateRef<any> | null = null;\n\n protected readonly autoId = tuiInjectId();\n protected readonly el = tuiInjectElement<HTMLSelectElement>();\n protected readonly host = inject<H>(TUI_TEXTFIELD_HOST);\n protected readonly control = inject(AbstractTuiControl);\n protected readonly itemsHandlers = inject(TUI_ITEMS_HANDLERS);\n\n @Input()\n public disabledItemHandler: TuiBooleanHandler<T> | null = null;\n\n @Input()\n public placeholder = '';\n\n protected get id(): string {\n return this.el.id || this.autoId;\n }\n\n protected get emptyOption(): boolean {\n return !!this.placeholder && !this.control.value;\n }\n}\n","import {Directive, inject} from '@angular/core';\nimport {type TuiTextfieldHost} from '@taiga-ui/legacy/tokens';\n\nimport {AbstractTuiControl} from './control';\n\n/**\n * @deprecated: drop in v5.0\n */\n@Directive()\nexport abstract class AbstractTuiTextfieldHost<T extends AbstractTuiControl<any>>\n implements TuiTextfieldHost\n{\n protected readonly host: T = inject<any>(AbstractTuiControl, {optional: true});\n\n public readonly inputMode: TuiTextfieldHost['inputMode'] = 'text';\n\n public abstract onValueChange(value: string): void;\n\n public get readOnly(): boolean {\n return this.host.readOnly;\n }\n\n public get disabled(): boolean {\n return this.host.computedDisabled;\n }\n\n public get invalid(): boolean {\n return this.host.computedInvalid;\n }\n\n public get focusable(): boolean {\n return this.host.computedFocusable;\n }\n\n public get value(): string {\n return this.host.value?.toString() || '';\n }\n\n public process(_input: HTMLInputElement): void {}\n}\n","import {Directive, type OnChanges} from '@angular/core';\nimport {Subject} from 'rxjs';\n\n@Directive()\nexport abstract class AbstractTuiController implements OnChanges {\n public readonly change$ = new Subject<void>();\n\n public ngOnChanges(): void {\n this.change$.next();\n }\n}\n","import {Directive} from '@angular/core';\n\nimport {AbstractTuiControl} from './control';\n\n/**\n * @deprecated: drop in v5.0\n */\n@Directive()\nexport abstract class AbstractTuiMultipleControl<T> extends AbstractTuiControl<\n readonly T[]\n> {\n protected clear(): void {\n this.value = [];\n }\n\n protected getFallbackValue(): readonly T[] {\n return [];\n }\n}\n","import {type TuiDay} from '@taiga-ui/cdk/date-time';\n\n/**\n * @deprecated: drop in v5.0\n */\nexport class TuiNamedDay {\n constructor(\n public readonly day: TuiDay,\n private readonly name: string,\n public readonly displayDay: TuiDay = day,\n ) {}\n\n protected toString(): string {\n return this.name;\n }\n}\n","import {Directive} from '@angular/core';\n\nimport {AbstractTuiControl} from './control';\n\n/**\n * @deprecated: drop in v5.0\n */\n@Directive()\nexport abstract class AbstractTuiNullableControl<T> extends AbstractTuiControl<T | null> {\n protected getFallbackValue(): T | null {\n return null;\n }\n}\n","import {type TuiStringHandler} from '@taiga-ui/cdk/types';\n\n/**\n * @deprecated: drop in v5.0\n * Wrapper around an item to add `toString()` method\n */\nexport class TuiStringifiableItem<T> {\n constructor(\n public readonly item: T,\n public readonly stringify: TuiStringHandler<T>,\n ) {}\n\n protected toString(): string {\n return this.stringify(this.item);\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|