@taiga-ui/legacy 4.52.0-canary.ece97e9 → 4.52.0-canary.efbd0d4
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/README.md +1 -1
- package/components/dialog/dialog.component.d.ts +5 -5
- package/components/dialog/dialog.directive.d.ts +4 -3
- package/components/dialog/dialog.interfaces.d.ts +3 -4
- package/components/dialog/dialog.service.d.ts +5 -2
- package/components/dialog/dialog.tokens.d.ts +1 -3
- package/components/index.d.ts +1 -17
- package/components/mobile-dialog/index.d.ts +3 -0
- package/components/mobile-dialog/mobile-dialog.component.d.ts +10 -0
- package/components/mobile-dialog/mobile-dialog.options.d.ts +10 -0
- package/components/mobile-dialog/mobile-dialog.service.d.ts +14 -0
- package/components/pdf-viewer/pdf-viewer.component.d.ts +2 -2
- package/components/pdf-viewer/pdf-viewer.directive.d.ts +4 -3
- package/components/pdf-viewer/pdf-viewer.options.d.ts +1 -3
- package/components/pdf-viewer/pdf-viewer.service.d.ts +7 -3
- package/fesm2022/taiga-ui-legacy-components-dialog.mjs +40 -33
- package/fesm2022/taiga-ui-legacy-components-dialog.mjs.map +1 -1
- package/fesm2022/taiga-ui-legacy-components-mobile-dialog.mjs +62 -0
- package/fesm2022/taiga-ui-legacy-components-mobile-dialog.mjs.map +1 -0
- package/fesm2022/taiga-ui-legacy-components-pdf-viewer.mjs +34 -28
- package/fesm2022/taiga-ui-legacy-components-pdf-viewer.mjs.map +1 -1
- package/fesm2022/taiga-ui-legacy-components.mjs +1 -17
- 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 +19 -114
- 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 -19
- package/components/arrow/arrow.providers.d.ts +0 -23
- 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 -67
- 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 -88
- 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 -63
- 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 -29
- 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/input-tag/index.d.ts +0 -3
- package/components/input-tag/input-tag.component.d.ts +0 -103
- package/components/input-tag/input-tag.module.d.ts +0 -22
- package/components/input-tag/input-tag.options.d.ts +0 -27
- package/components/multi-select/hide-selected.pipe.d.ts +0 -11
- package/components/multi-select/index.d.ts +0 -10
- package/components/multi-select/multi-select-group/multi-select-group.component.d.ts +0 -23
- package/components/multi-select/multi-select-group/multi-select-group.directive.d.ts +0 -8
- package/components/multi-select/multi-select.component.d.ts +0 -71
- package/components/multi-select/multi-select.directive.d.ts +0 -14
- package/components/multi-select/multi-select.module.d.ts +0 -30
- package/components/multi-select/multi-select.options.d.ts +0 -14
- package/components/multi-select/native-multi-select/native-multi-select-group.component.d.ts +0 -9
- package/components/multi-select/native-multi-select/native-multi-select.component.d.ts +0 -8
- package/components/multi-select/native-multi-select/native-multi-select.d.ts +0 -11
- package/components/multi-select-option/index.d.ts +0 -2
- package/components/multi-select-option/multi-select-option.component.d.ts +0 -9
- package/components/multi-select-option/multi-select-option.module.d.ts +0 -9
- 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 -25
- 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/tag/index.d.ts +0 -3
- package/components/tag/tag.component.d.ts +0 -44
- package/components/tag/tag.module.d.ts +0 -16
- package/components/tag/tag.options.d.ts +0 -27
- package/components/textarea/index.d.ts +0 -3
- package/components/textarea/textarea.component.d.ts +0 -54
- package/components/textarea/textarea.directive.d.ts +0 -12
- package/components/textarea/textarea.module.d.ts +0 -21
- 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 -19
- 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 -415
- package/fesm2022/taiga-ui-legacy-classes.mjs.map +0 -1
- package/fesm2022/taiga-ui-legacy-components-arrow.mjs +0 -85
- package/fesm2022/taiga-ui-legacy-components-arrow.mjs.map +0 -1
- package/fesm2022/taiga-ui-legacy-components-input-date-range.mjs +0 -352
- package/fesm2022/taiga-ui-legacy-components-input-date-range.mjs.map +0 -1
- package/fesm2022/taiga-ui-legacy-components-input-date-time.mjs +0 -465
- 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 -390
- 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-tag.mjs +0 -524
- package/fesm2022/taiga-ui-legacy-components-input-tag.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-multi-select-option.mjs +0 -47
- package/fesm2022/taiga-ui-legacy-components-multi-select-option.mjs.map +0 -1
- package/fesm2022/taiga-ui-legacy-components-multi-select.mjs +0 -686
- package/fesm2022/taiga-ui-legacy-components-multi-select.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 -353
- package/fesm2022/taiga-ui-legacy-components-select.mjs.map +0 -1
- package/fesm2022/taiga-ui-legacy-components-tag.mjs +0 -225
- package/fesm2022/taiga-ui-legacy-components-tag.mjs.map +0 -1
- package/fesm2022/taiga-ui-legacy-components-textarea.mjs +0 -262
- package/fesm2022/taiga-ui-legacy-components-textarea.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 -50
- package/fesm2022/taiga-ui-legacy-directives-legacy-dropdown-open-monitor.mjs.map +0 -1
- package/fesm2022/taiga-ui-legacy-directives-textfield-controller.mjs +0 -401
- package/fesm2022/taiga-ui-legacy-directives-textfield-controller.mjs.map +0 -1
- package/fesm2022/taiga-ui-legacy-directives-unfinished-validator.mjs +0 -49
- 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,415 +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
|
-
}
|
|
311
|
-
get readOnly() {
|
|
312
|
-
return this.host.readOnly;
|
|
313
|
-
}
|
|
314
|
-
get disabled() {
|
|
315
|
-
return this.host.computedDisabled;
|
|
316
|
-
}
|
|
317
|
-
get invalid() {
|
|
318
|
-
return this.host.computedInvalid;
|
|
319
|
-
}
|
|
320
|
-
get focusable() {
|
|
321
|
-
return this.host.computedFocusable;
|
|
322
|
-
}
|
|
323
|
-
get inputMode() {
|
|
324
|
-
return 'text';
|
|
325
|
-
}
|
|
326
|
-
get value() {
|
|
327
|
-
return this.host.value?.toString() || '';
|
|
328
|
-
}
|
|
329
|
-
process(_input) { }
|
|
330
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: AbstractTuiTextfieldHost, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
331
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.15", type: AbstractTuiTextfieldHost, isStandalone: true, ngImport: i0 }); }
|
|
332
|
-
}
|
|
333
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: AbstractTuiTextfieldHost, decorators: [{
|
|
334
|
-
type: Directive
|
|
335
|
-
}] });
|
|
336
|
-
|
|
337
|
-
class AbstractTuiController {
|
|
338
|
-
constructor() {
|
|
339
|
-
this.change$ = new Subject();
|
|
340
|
-
}
|
|
341
|
-
ngOnChanges() {
|
|
342
|
-
this.change$.next();
|
|
343
|
-
}
|
|
344
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: AbstractTuiController, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
345
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.15", type: AbstractTuiController, isStandalone: true, usesOnChanges: true, ngImport: i0 }); }
|
|
346
|
-
}
|
|
347
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: AbstractTuiController, decorators: [{
|
|
348
|
-
type: Directive
|
|
349
|
-
}] });
|
|
350
|
-
|
|
351
|
-
/**
|
|
352
|
-
* @deprecated: drop in v5.0
|
|
353
|
-
*/
|
|
354
|
-
class AbstractTuiMultipleControl extends AbstractTuiControl {
|
|
355
|
-
clear() {
|
|
356
|
-
this.value = [];
|
|
357
|
-
}
|
|
358
|
-
getFallbackValue() {
|
|
359
|
-
return [];
|
|
360
|
-
}
|
|
361
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: AbstractTuiMultipleControl, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
|
|
362
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.15", type: AbstractTuiMultipleControl, isStandalone: true, usesInheritance: true, ngImport: i0 }); }
|
|
363
|
-
}
|
|
364
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: AbstractTuiMultipleControl, decorators: [{
|
|
365
|
-
type: Directive
|
|
366
|
-
}] });
|
|
367
|
-
|
|
368
|
-
/**
|
|
369
|
-
* @deprecated: drop in v5.0
|
|
370
|
-
*/
|
|
371
|
-
class TuiNamedDay {
|
|
372
|
-
constructor(day, name, displayDay = day) {
|
|
373
|
-
this.day = day;
|
|
374
|
-
this.name = name;
|
|
375
|
-
this.displayDay = displayDay;
|
|
376
|
-
}
|
|
377
|
-
toString() {
|
|
378
|
-
return this.name;
|
|
379
|
-
}
|
|
380
|
-
}
|
|
381
|
-
|
|
382
|
-
/**
|
|
383
|
-
* @deprecated: drop in v5.0
|
|
384
|
-
*/
|
|
385
|
-
class AbstractTuiNullableControl extends AbstractTuiControl {
|
|
386
|
-
getFallbackValue() {
|
|
387
|
-
return null;
|
|
388
|
-
}
|
|
389
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: AbstractTuiNullableControl, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
|
|
390
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.15", type: AbstractTuiNullableControl, isStandalone: true, usesInheritance: true, ngImport: i0 }); }
|
|
391
|
-
}
|
|
392
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: AbstractTuiNullableControl, decorators: [{
|
|
393
|
-
type: Directive
|
|
394
|
-
}] });
|
|
395
|
-
|
|
396
|
-
/**
|
|
397
|
-
* @deprecated: drop in v5.0
|
|
398
|
-
* Wrapper around an item to add `toString()` method
|
|
399
|
-
*/
|
|
400
|
-
class TuiStringifiableItem {
|
|
401
|
-
constructor(item, stringify) {
|
|
402
|
-
this.item = item;
|
|
403
|
-
this.stringify = stringify;
|
|
404
|
-
}
|
|
405
|
-
toString() {
|
|
406
|
-
return this.stringify(this.item);
|
|
407
|
-
}
|
|
408
|
-
}
|
|
409
|
-
|
|
410
|
-
/**
|
|
411
|
-
* Generated bundle index. Do not edit.
|
|
412
|
-
*/
|
|
413
|
-
|
|
414
|
-
export { AbstractTuiControl, AbstractTuiController, AbstractTuiInteractive, AbstractTuiMultipleControl, AbstractTuiNativeSelect, AbstractTuiNullableControl, AbstractTuiTextfieldHost, TuiNamedDay, TuiStringifiableItem, tuiAsControl };
|
|
415
|
-
//# 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 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 inputMode(): TuiTextfieldHost['inputMode'] {\n return 'text';\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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"}
|
|
@@ -1,85 +0,0 @@
|
|
|
1
|
-
import * as i0 from '@angular/core';
|
|
2
|
-
import { InjectionToken, inject, computed, ChangeDetectionStrategy, Component } from '@angular/core';
|
|
3
|
-
import { toSignal } from '@angular/core/rxjs-interop';
|
|
4
|
-
import { TuiIcon } from '@taiga-ui/core/components/icon';
|
|
5
|
-
import { TuiDropdownOpen } from '@taiga-ui/core/directives/dropdown';
|
|
6
|
-
import { tuiSizeBigger } from '@taiga-ui/core/utils/miscellaneous';
|
|
7
|
-
import { AbstractTuiControl } from '@taiga-ui/legacy/classes';
|
|
8
|
-
import { TUI_TEXTFIELD_SIZE } from '@taiga-ui/legacy/directives';
|
|
9
|
-
import { PolymorpheusOutlet, PolymorpheusComponent } from '@taiga-ui/polymorpheus';
|
|
10
|
-
import { of } from 'rxjs';
|
|
11
|
-
import { tuiProvideOptions } from '@taiga-ui/cdk/utils/miscellaneous';
|
|
12
|
-
|
|
13
|
-
/**
|
|
14
|
-
* @deprecated: drop in v5.0 use {@link TuiChevron}
|
|
15
|
-
*/
|
|
16
|
-
const TUI_ARROW_DEFAULT_OPTIONS = {
|
|
17
|
-
iconSmall: '@tui.chevron-down',
|
|
18
|
-
iconLarge: '@tui.chevron-down',
|
|
19
|
-
};
|
|
20
|
-
/**
|
|
21
|
-
* @deprecated: drop in v5.0
|
|
22
|
-
* Default parameters for arrow component
|
|
23
|
-
*/
|
|
24
|
-
const TUI_ARROW_OPTIONS = new InjectionToken(ngDevMode ? 'TUI_ARROW_OPTIONS' : '', {
|
|
25
|
-
factory: () => TUI_ARROW_DEFAULT_OPTIONS,
|
|
26
|
-
});
|
|
27
|
-
function tuiArrowOptionsProvider(options) {
|
|
28
|
-
return tuiProvideOptions(TUI_ARROW_OPTIONS, options, TUI_ARROW_DEFAULT_OPTIONS);
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
/**
|
|
32
|
-
* @deprecated: drop in v5.0 use {@link TuiChevron}
|
|
33
|
-
*/
|
|
34
|
-
class TuiArrowComponent {
|
|
35
|
-
constructor() {
|
|
36
|
-
this.control = inject(AbstractTuiControl, { optional: true });
|
|
37
|
-
this.textfieldSize = inject(TUI_TEXTFIELD_SIZE);
|
|
38
|
-
this.options = inject(TUI_ARROW_OPTIONS);
|
|
39
|
-
this.dropdownOpen = toSignal(inject(TuiDropdownOpen, { optional: true })?.tuiDropdownOpenChange || of(false));
|
|
40
|
-
this.rotated = computed(() => this.dropdownOpen() || this.control.pseudoOpen?.());
|
|
41
|
-
}
|
|
42
|
-
get small() {
|
|
43
|
-
return !tuiSizeBigger(this.textfieldSize.size);
|
|
44
|
-
}
|
|
45
|
-
get arrowIcon() {
|
|
46
|
-
return !this.small ? this.options.iconLarge : this.options.iconSmall;
|
|
47
|
-
}
|
|
48
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiArrowComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
49
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.15", type: TuiArrowComponent, isStandalone: true, selector: "tui-arrow", host: { properties: { "class._rotated": "rotated()", "class._small": "small" } }, ngImport: i0, template: "<tui-icon\n *polymorpheusOutlet=\"arrowIcon as src\"\n [icon]=\"src\"\n/>\n", styles: [":host{transition-property:transform;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;display:block;cursor:pointer;pointer-events:none}:host._rotated{transform:rotate(180deg)}tui-icon:before{font-size:1rem}\n"], dependencies: [{ kind: "directive", type: PolymorpheusOutlet, selector: "[polymorpheusOutlet]", inputs: ["polymorpheusOutlet", "polymorpheusOutletContext"] }, { kind: "component", type: TuiIcon, selector: "tui-icon:not([tuiBadge])", inputs: ["background"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
50
|
-
}
|
|
51
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiArrowComponent, decorators: [{
|
|
52
|
-
type: Component,
|
|
53
|
-
args: [{ selector: 'tui-arrow', imports: [PolymorpheusOutlet, TuiIcon], changeDetection: ChangeDetectionStrategy.OnPush, host: {
|
|
54
|
-
'[class._rotated]': 'rotated()',
|
|
55
|
-
'[class._small]': 'small',
|
|
56
|
-
}, template: "<tui-icon\n *polymorpheusOutlet=\"arrowIcon as src\"\n [icon]=\"src\"\n/>\n", styles: [":host{transition-property:transform;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;display:block;cursor:pointer;pointer-events:none}:host._rotated{transform:rotate(180deg)}tui-icon:before{font-size:1rem}\n"] }]
|
|
57
|
-
}] });
|
|
58
|
-
const TUI_ARROW = new PolymorpheusComponent(TuiArrowComponent);
|
|
59
|
-
|
|
60
|
-
/**
|
|
61
|
-
* @deprecated: drop in v5.0 use {@link TuiChevron}
|
|
62
|
-
*/
|
|
63
|
-
const TUI_ARROW_DEFAULT_MODE = {
|
|
64
|
-
interactive: TUI_ARROW,
|
|
65
|
-
disabled: TUI_ARROW,
|
|
66
|
-
};
|
|
67
|
-
/**
|
|
68
|
-
* @deprecated: drop in v5.0 use {@link TuiChevron}
|
|
69
|
-
*/
|
|
70
|
-
const TUI_ARROW_MODE = new InjectionToken(ngDevMode ? 'TUI_ARROW_MODE' : '', {
|
|
71
|
-
factory: () => TUI_ARROW_DEFAULT_MODE,
|
|
72
|
-
});
|
|
73
|
-
/**
|
|
74
|
-
* @deprecated: drop in v5.0 use {@link TuiChevron}
|
|
75
|
-
*/
|
|
76
|
-
function tuiArrowModeProvider(options) {
|
|
77
|
-
return tuiProvideOptions(TUI_ARROW_MODE, options, TUI_ARROW_DEFAULT_MODE);
|
|
78
|
-
}
|
|
79
|
-
|
|
80
|
-
/**
|
|
81
|
-
* Generated bundle index. Do not edit.
|
|
82
|
-
*/
|
|
83
|
-
|
|
84
|
-
export { TUI_ARROW, TUI_ARROW_DEFAULT_MODE, TUI_ARROW_DEFAULT_OPTIONS, TUI_ARROW_MODE, TUI_ARROW_OPTIONS, TuiArrowComponent, tuiArrowModeProvider, tuiArrowOptionsProvider };
|
|
85
|
-
//# sourceMappingURL=taiga-ui-legacy-components-arrow.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"taiga-ui-legacy-components-arrow.mjs","sources":["../../../projects/legacy/components/arrow/arrow.options.ts","../../../projects/legacy/components/arrow/arrow.component.ts","../../../projects/legacy/components/arrow/arrow.template.html","../../../projects/legacy/components/arrow/arrow.providers.ts","../../../projects/legacy/components/arrow/taiga-ui-legacy-components-arrow.ts"],"sourcesContent":["import {InjectionToken, type Provider} from '@angular/core';\nimport {tuiProvideOptions} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {type PolymorpheusContent} from '@taiga-ui/polymorpheus';\n\n/**\n * @deprecated: drop in v5.0 use {@link TuiChevron}\n */\nexport interface TuiArrowOptions {\n readonly iconLarge: PolymorpheusContent;\n readonly iconSmall: PolymorpheusContent;\n}\n\n/**\n * @deprecated: drop in v5.0 use {@link TuiChevron}\n */\nexport const TUI_ARROW_DEFAULT_OPTIONS: TuiArrowOptions = {\n iconSmall: '@tui.chevron-down',\n iconLarge: '@tui.chevron-down',\n};\n\n/**\n * @deprecated: drop in v5.0\n * Default parameters for arrow component\n */\nexport const TUI_ARROW_OPTIONS = new InjectionToken(\n ngDevMode ? 'TUI_ARROW_OPTIONS' : '',\n {\n factory: () => TUI_ARROW_DEFAULT_OPTIONS,\n },\n);\n\nexport function tuiArrowOptionsProvider(options: Partial<TuiArrowOptions>): Provider {\n return tuiProvideOptions(TUI_ARROW_OPTIONS, options, TUI_ARROW_DEFAULT_OPTIONS);\n}\n","import {ChangeDetectionStrategy, Component, computed, inject} from '@angular/core';\nimport {toSignal} from '@angular/core/rxjs-interop';\nimport {TuiIcon} from '@taiga-ui/core/components/icon';\nimport {TuiDropdownOpen} from '@taiga-ui/core/directives/dropdown';\nimport {tuiSizeBigger} from '@taiga-ui/core/utils/miscellaneous';\nimport {AbstractTuiControl} from '@taiga-ui/legacy/classes';\nimport {TUI_TEXTFIELD_SIZE} from '@taiga-ui/legacy/directives';\nimport {\n PolymorpheusComponent,\n type PolymorpheusContent,\n PolymorpheusOutlet,\n} from '@taiga-ui/polymorpheus';\nimport {of} from 'rxjs';\n\nimport {TUI_ARROW_OPTIONS} from './arrow.options';\n\n/**\n * @deprecated: drop in v5.0 use {@link TuiChevron}\n */\n@Component({\n selector: 'tui-arrow',\n imports: [PolymorpheusOutlet, TuiIcon],\n templateUrl: './arrow.template.html',\n styleUrl: './arrow.style.less',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[class._rotated]': 'rotated()',\n '[class._small]': 'small',\n },\n})\nexport class TuiArrowComponent {\n private readonly control: any = inject(AbstractTuiControl, {optional: true});\n private readonly textfieldSize = inject(TUI_TEXTFIELD_SIZE);\n private readonly options = inject(TUI_ARROW_OPTIONS);\n protected readonly dropdownOpen = toSignal(\n inject(TuiDropdownOpen, {optional: true})?.tuiDropdownOpenChange || of(false),\n );\n\n protected readonly rotated = computed(\n () => this.dropdownOpen() || this.control.pseudoOpen?.(),\n );\n\n protected get small(): boolean {\n return !tuiSizeBigger(this.textfieldSize.size);\n }\n\n protected get arrowIcon(): PolymorpheusContent {\n return !this.small ? this.options.iconLarge : this.options.iconSmall;\n }\n}\n\nexport const TUI_ARROW = new PolymorpheusComponent(TuiArrowComponent);\n","<tui-icon\n *polymorpheusOutlet=\"arrowIcon as src\"\n [icon]=\"src\"\n/>\n","import {InjectionToken, type Provider} from '@angular/core';\nimport {type TuiContext} from '@taiga-ui/cdk/types';\nimport {tuiProvideOptions} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {type TuiSizeL, type TuiSizeM, type TuiSizeS} from '@taiga-ui/core/types';\nimport {type PolymorpheusContent} from '@taiga-ui/polymorpheus';\n\nimport {TUI_ARROW} from './arrow.component';\n\n/**\n * @deprecated: drop in v5.0 use {@link TuiChevron}\n */\nexport interface TuiArrowMode {\n readonly disabled: PolymorpheusContent<TuiContext<TuiSizeL | TuiSizeM | TuiSizeS>>;\n readonly interactive: PolymorpheusContent<TuiContext<TuiSizeL | TuiSizeM | TuiSizeS>>;\n}\n\n/**\n * @deprecated: drop in v5.0 use {@link TuiChevron}\n */\nexport const TUI_ARROW_DEFAULT_MODE: TuiArrowMode = {\n interactive: TUI_ARROW,\n disabled: TUI_ARROW,\n};\n\n/**\n * @deprecated: drop in v5.0 use {@link TuiChevron}\n */\nexport const TUI_ARROW_MODE = new InjectionToken(ngDevMode ? 'TUI_ARROW_MODE' : '', {\n factory: () => TUI_ARROW_DEFAULT_MODE,\n});\n\n/**\n * @deprecated: drop in v5.0 use {@link TuiChevron}\n */\nexport function tuiArrowModeProvider(options: Partial<TuiArrowMode>): Provider {\n return tuiProvideOptions(TUI_ARROW_MODE, options, TUI_ARROW_DEFAULT_MODE);\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|