@taiga-ui/legacy 4.52.0-canary.6043e8f → 4.52.0-canary.65c65f9
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/index.d.ts +3 -0
- package/components/input-copy/index.d.ts +4 -0
- package/components/input-copy/input-copy.component.d.ts +33 -0
- package/components/input-copy/input-copy.directive.d.ts +11 -0
- package/components/input-copy/input-copy.module.d.ts +18 -0
- package/components/input-copy/input-copy.options.d.ts +26 -0
- package/components/input-date-multi/index.d.ts +2 -0
- package/components/input-date-multi/input-date-multi.component.d.ts +66 -0
- package/components/input-date-multi/input-date-multi.module.d.ts +20 -0
- package/components/input-month/index.d.ts +3 -0
- package/components/input-month/input-month.component.d.ts +44 -0
- package/components/input-month/input-month.directive.d.ts +19 -0
- package/components/input-month/input-month.module.d.ts +19 -0
- package/fesm2022/taiga-ui-legacy-components-combo-box.mjs +3 -2
- package/fesm2022/taiga-ui-legacy-components-combo-box.mjs.map +1 -1
- package/fesm2022/taiga-ui-legacy-components-input-copy.mjs +197 -0
- package/fesm2022/taiga-ui-legacy-components-input-copy.mjs.map +1 -0
- package/fesm2022/taiga-ui-legacy-components-input-date-multi.mjs +272 -0
- package/fesm2022/taiga-ui-legacy-components-input-date-multi.mjs.map +1 -0
- package/fesm2022/taiga-ui-legacy-components-input-month.mjs +231 -0
- package/fesm2022/taiga-ui-legacy-components-input-month.mjs.map +1 -0
- package/fesm2022/taiga-ui-legacy-components-input-phone.mjs +3 -2
- package/fesm2022/taiga-ui-legacy-components-input-phone.mjs.map +1 -1
- package/fesm2022/taiga-ui-legacy-components-input-range.mjs +6 -6
- package/fesm2022/taiga-ui-legacy-components-input-range.mjs.map +1 -1
- package/fesm2022/taiga-ui-legacy-components-input-slider.mjs +3 -3
- package/fesm2022/taiga-ui-legacy-components-input-slider.mjs.map +1 -1
- package/fesm2022/taiga-ui-legacy-components-input-tag.mjs +2 -2
- package/fesm2022/taiga-ui-legacy-components-input-tag.mjs.map +1 -1
- package/fesm2022/taiga-ui-legacy-components-input-time.mjs +2 -2
- package/fesm2022/taiga-ui-legacy-components-input-time.mjs.map +1 -1
- package/fesm2022/taiga-ui-legacy-components-input.mjs +3 -2
- package/fesm2022/taiga-ui-legacy-components-input.mjs.map +1 -1
- package/fesm2022/taiga-ui-legacy-components-multi-select-option.mjs +1 -1
- package/fesm2022/taiga-ui-legacy-components-multi-select-option.mjs.map +1 -1
- package/fesm2022/taiga-ui-legacy-components-multi-select.mjs +2 -2
- package/fesm2022/taiga-ui-legacy-components-multi-select.mjs.map +1 -1
- package/fesm2022/taiga-ui-legacy-components-primitive-textfield.mjs +2 -2
- package/fesm2022/taiga-ui-legacy-components-primitive-textfield.mjs.map +1 -1
- package/fesm2022/taiga-ui-legacy-components-select.mjs +3 -2
- package/fesm2022/taiga-ui-legacy-components-select.mjs.map +1 -1
- package/fesm2022/taiga-ui-legacy-components-textarea.mjs +2 -2
- package/fesm2022/taiga-ui-legacy-components-textarea.mjs.map +1 -1
- package/fesm2022/taiga-ui-legacy-components.mjs +3 -0
- package/fesm2022/taiga-ui-legacy-components.mjs.map +1 -1
- package/package.json +13 -1
- package/utils/icons-path-factory.d.ts +1 -1
|
@@ -0,0 +1,197 @@
|
|
|
1
|
+
import { __decorate } from 'tslib';
|
|
2
|
+
import * as i7 from '@angular/common';
|
|
3
|
+
import { DOCUMENT, CommonModule } from '@angular/common';
|
|
4
|
+
import * as i0 from '@angular/core';
|
|
5
|
+
import { InjectionToken, inject, Input, ViewChild, ChangeDetectionStrategy, Component, Directive, NgModule } from '@angular/core';
|
|
6
|
+
import { tuiProvideOptions, tuiPure } from '@taiga-ui/cdk/utils/miscellaneous';
|
|
7
|
+
import { TUI_COPY_TEXTS } from '@taiga-ui/kit/tokens';
|
|
8
|
+
import { AbstractTuiControl, tuiAsControl, AbstractTuiTextfieldHost } from '@taiga-ui/legacy/classes';
|
|
9
|
+
import * as i2 from '@taiga-ui/legacy/components/primitive-textfield';
|
|
10
|
+
import { TuiPrimitiveTextfieldComponent, TuiTextfieldComponent, TuiPrimitiveTextfieldModule } from '@taiga-ui/legacy/components/primitive-textfield';
|
|
11
|
+
import * as i3 from '@taiga-ui/legacy/directives';
|
|
12
|
+
import { TUI_TEXTFIELD_SIZE, TUI_VALUE_ACCESSOR_PROVIDER, TuiTextfieldControllerModule } from '@taiga-ui/legacy/directives';
|
|
13
|
+
import { tuiAsFocusableItemAccessor, tuiAsTextfieldHost } from '@taiga-ui/legacy/tokens';
|
|
14
|
+
import { BehaviorSubject, switchMap, of, merge, timer, map } from 'rxjs';
|
|
15
|
+
import * as i1 from '@taiga-ui/polymorpheus';
|
|
16
|
+
import { PolymorpheusOutlet, PolymorpheusTemplate } from '@taiga-ui/polymorpheus';
|
|
17
|
+
import * as i4 from '@taiga-ui/core/directives/appearance';
|
|
18
|
+
import { TuiAppearance } from '@taiga-ui/core/directives/appearance';
|
|
19
|
+
import * as i5 from '@taiga-ui/core/components/icon';
|
|
20
|
+
import { TuiIcon } from '@taiga-ui/core/components/icon';
|
|
21
|
+
import * as i1$1 from '@taiga-ui/core/directives/hint';
|
|
22
|
+
import { TuiHint } from '@taiga-ui/core/directives/hint';
|
|
23
|
+
|
|
24
|
+
/**
|
|
25
|
+
* @deprecated use {@link TuiCopy} with {@link TuiTextfield}
|
|
26
|
+
*/
|
|
27
|
+
const TUI_INPUT_COPY_DEFAULT_OPTIONS = {
|
|
28
|
+
successMessage: '',
|
|
29
|
+
messageDirection: 'bottom-left',
|
|
30
|
+
messageAppearance: '',
|
|
31
|
+
icon: () => '@tui.copy',
|
|
32
|
+
};
|
|
33
|
+
/**
|
|
34
|
+
* @deprecated use {@link TuiCopy} with {@link TuiTextfield}
|
|
35
|
+
*/
|
|
36
|
+
const TUI_INPUT_COPY_OPTIONS = new InjectionToken(ngDevMode ? 'TUI_INPUT_COPY_OPTIONS' : '', {
|
|
37
|
+
factory: () => TUI_INPUT_COPY_DEFAULT_OPTIONS,
|
|
38
|
+
});
|
|
39
|
+
/**
|
|
40
|
+
* @deprecated use {@link TuiCopy} with {@link TuiTextfield}
|
|
41
|
+
*/
|
|
42
|
+
function tuiInputCopyOptionsProvider(options) {
|
|
43
|
+
return tuiProvideOptions(TUI_INPUT_COPY_OPTIONS, options, TUI_INPUT_COPY_DEFAULT_OPTIONS);
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
/**
|
|
47
|
+
* @deprecated use {@link TuiCopy} with {@link TuiTextfield}
|
|
48
|
+
*/
|
|
49
|
+
class TuiInputCopyComponent extends AbstractTuiControl {
|
|
50
|
+
constructor() {
|
|
51
|
+
super(...arguments);
|
|
52
|
+
this.copied$ = new BehaviorSubject(false);
|
|
53
|
+
this.doc = inject(DOCUMENT);
|
|
54
|
+
this.copyTexts$ = inject(TUI_COPY_TEXTS);
|
|
55
|
+
this.options = inject(TUI_INPUT_COPY_OPTIONS);
|
|
56
|
+
this.textfieldSize = inject(TUI_TEXTFIELD_SIZE);
|
|
57
|
+
this.successMessage = this.options.successMessage;
|
|
58
|
+
this.messageDirection = this.options.messageDirection;
|
|
59
|
+
this.messageAppearance = this.options.messageAppearance;
|
|
60
|
+
}
|
|
61
|
+
get nativeFocusableElement() {
|
|
62
|
+
return this.computedDisabled || !this.textfield
|
|
63
|
+
? null
|
|
64
|
+
: this.textfield.nativeFocusableElement;
|
|
65
|
+
}
|
|
66
|
+
get focused() {
|
|
67
|
+
return !!this.textfield?.focused;
|
|
68
|
+
}
|
|
69
|
+
onValueChange(value) {
|
|
70
|
+
this.value = value;
|
|
71
|
+
}
|
|
72
|
+
get hintText$() {
|
|
73
|
+
return this.copyTexts$.pipe(switchMap((texts) => this.copied$.pipe(switchMap((copied) => {
|
|
74
|
+
if (!copied) {
|
|
75
|
+
return of(texts[0]);
|
|
76
|
+
}
|
|
77
|
+
this.copied$.next(false);
|
|
78
|
+
return merge(of(this.successMessage || texts[1]), timer(3000).pipe(map(() => texts[0])));
|
|
79
|
+
}))));
|
|
80
|
+
}
|
|
81
|
+
get size() {
|
|
82
|
+
return this.textfieldSize.size;
|
|
83
|
+
}
|
|
84
|
+
get icon() {
|
|
85
|
+
return this.options.icon;
|
|
86
|
+
}
|
|
87
|
+
onFocused(focused) {
|
|
88
|
+
this.updateFocused(focused);
|
|
89
|
+
}
|
|
90
|
+
copy() {
|
|
91
|
+
if (!this.textfield?.nativeFocusableElement) {
|
|
92
|
+
return;
|
|
93
|
+
}
|
|
94
|
+
this.textfield.nativeFocusableElement.select();
|
|
95
|
+
this.doc.execCommand('copy');
|
|
96
|
+
this.copied$.next(true);
|
|
97
|
+
}
|
|
98
|
+
getFallbackValue() {
|
|
99
|
+
return '';
|
|
100
|
+
}
|
|
101
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiInputCopyComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
102
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.15", type: TuiInputCopyComponent, isStandalone: false, selector: "tui-input-copy", inputs: { successMessage: "successMessage", messageDirection: "messageDirection", messageAppearance: "messageAppearance" }, host: { properties: { "attr.data-size": "size" } }, providers: [
|
|
103
|
+
TUI_VALUE_ACCESSOR_PROVIDER,
|
|
104
|
+
tuiAsFocusableItemAccessor(TuiInputCopyComponent),
|
|
105
|
+
tuiAsControl(TuiInputCopyComponent),
|
|
106
|
+
], viewQueries: [{ propertyName: "textfield", first: true, predicate: TuiPrimitiveTextfieldComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: "<tui-primitive-textfield\n class=\"t-textfield\"\n [disabled]=\"computedDisabled\"\n [focusable]=\"focusable\"\n [invalid]=\"computedInvalid\"\n [nativeId]=\"nativeId\"\n [pseudoActive]=\"pseudoActive\"\n [pseudoFocus]=\"pseudoFocus\"\n [pseudoHover]=\"pseudoHover\"\n [readOnly]=\"readOnly\"\n [tuiTextfieldIcon]=\"!disabled ? iconContent : ''\"\n [(value)]=\"value\"\n (focusedChange)=\"onFocused($event)\"\n>\n <ng-content />\n <ng-content\n ngProjectAs=\"input\"\n select=\"input\"\n />\n</tui-primitive-textfield>\n\n<ng-template #iconContent>\n <tui-icon\n *polymorpheusOutlet=\"icon as src; context: {$implicit: size}\"\n automation-id=\"tui-copy__icon\"\n tuiAppearance=\"icon\"\n class=\"t-icon\"\n [class.t-icon_small]=\"size === 's'\"\n [icon]=\"src.toString()\"\n [tuiAppearanceState]=\"!value ? 'disabled' : null\"\n [tuiHint]=\"hint\"\n [tuiHintAppearance]=\"messageAppearance\"\n [tuiHintDirection]=\"messageDirection\"\n (click)=\"copy()\"\n />\n</ng-template>\n\n<ng-template #hint>\n <ng-container *polymorpheusOutlet=\"hintText$ | async as text\">\n {{ text }}\n </ng-container>\n</ng-template>\n", styles: [":host{display:block;border-radius:var(--tui-radius-m);text-align:start}:host :host-context(*:disabled){pointer-events:none}.t-icon{position:relative;cursor:pointer;pointer-events:auto}.t-icon_small:before{font-size:1rem}.t-textfield{border-radius:inherit;text-align:inherit}\n"], dependencies: [{ kind: "directive", type: i1.PolymorpheusOutlet, selector: "[polymorpheusOutlet]", inputs: ["polymorpheusOutlet", "polymorpheusOutletContext"] }, { kind: "component", type: i2.TuiPrimitiveTextfieldComponent, selector: "tui-primitive-textfield", inputs: ["editable", "iconCleaner", "readOnly", "invalid", "disabled", "value"], outputs: ["valueChange"] }, { kind: "directive", type: i2.TuiPrimitiveTextfieldDirective, selector: "tui-primitive-textfield" }, { kind: "directive", type: i3.TuiTextfieldIconDirective, selector: "[tuiTextfieldIcon]", inputs: ["tuiTextfieldIcon"] }, { kind: "directive", type: i4.TuiAppearance, selector: "[tuiAppearance]", inputs: ["tuiAppearance", "tuiAppearanceState", "tuiAppearanceFocus", "tuiAppearanceMode"] }, { kind: "component", type: i5.TuiIcon, selector: "tui-icon:not([tuiBadge])", inputs: ["background"] }, { kind: "directive", type: i1$1.TuiHintDirective, selector: "[tuiHint]:not(ng-container):not(ng-template)", inputs: ["tuiHintContext", "tuiHintAppearance", "tuiHint"], outputs: ["tuiHintVisible"] }, { kind: "pipe", type: i7.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
107
|
+
}
|
|
108
|
+
__decorate([
|
|
109
|
+
tuiPure
|
|
110
|
+
], TuiInputCopyComponent.prototype, "hintText$", null);
|
|
111
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiInputCopyComponent, decorators: [{
|
|
112
|
+
type: Component,
|
|
113
|
+
args: [{ standalone: false, selector: 'tui-input-copy', changeDetection: ChangeDetectionStrategy.OnPush, providers: [
|
|
114
|
+
TUI_VALUE_ACCESSOR_PROVIDER,
|
|
115
|
+
tuiAsFocusableItemAccessor(TuiInputCopyComponent),
|
|
116
|
+
tuiAsControl(TuiInputCopyComponent),
|
|
117
|
+
], host: {
|
|
118
|
+
'[attr.data-size]': 'size',
|
|
119
|
+
}, template: "<tui-primitive-textfield\n class=\"t-textfield\"\n [disabled]=\"computedDisabled\"\n [focusable]=\"focusable\"\n [invalid]=\"computedInvalid\"\n [nativeId]=\"nativeId\"\n [pseudoActive]=\"pseudoActive\"\n [pseudoFocus]=\"pseudoFocus\"\n [pseudoHover]=\"pseudoHover\"\n [readOnly]=\"readOnly\"\n [tuiTextfieldIcon]=\"!disabled ? iconContent : ''\"\n [(value)]=\"value\"\n (focusedChange)=\"onFocused($event)\"\n>\n <ng-content />\n <ng-content\n ngProjectAs=\"input\"\n select=\"input\"\n />\n</tui-primitive-textfield>\n\n<ng-template #iconContent>\n <tui-icon\n *polymorpheusOutlet=\"icon as src; context: {$implicit: size}\"\n automation-id=\"tui-copy__icon\"\n tuiAppearance=\"icon\"\n class=\"t-icon\"\n [class.t-icon_small]=\"size === 's'\"\n [icon]=\"src.toString()\"\n [tuiAppearanceState]=\"!value ? 'disabled' : null\"\n [tuiHint]=\"hint\"\n [tuiHintAppearance]=\"messageAppearance\"\n [tuiHintDirection]=\"messageDirection\"\n (click)=\"copy()\"\n />\n</ng-template>\n\n<ng-template #hint>\n <ng-container *polymorpheusOutlet=\"hintText$ | async as text\">\n {{ text }}\n </ng-container>\n</ng-template>\n", styles: [":host{display:block;border-radius:var(--tui-radius-m);text-align:start}:host :host-context(*:disabled){pointer-events:none}.t-icon{position:relative;cursor:pointer;pointer-events:auto}.t-icon_small:before{font-size:1rem}.t-textfield{border-radius:inherit;text-align:inherit}\n"] }]
|
|
120
|
+
}], propDecorators: { textfield: [{
|
|
121
|
+
type: ViewChild,
|
|
122
|
+
args: [TuiPrimitiveTextfieldComponent]
|
|
123
|
+
}], successMessage: [{
|
|
124
|
+
type: Input
|
|
125
|
+
}], messageDirection: [{
|
|
126
|
+
type: Input
|
|
127
|
+
}], messageAppearance: [{
|
|
128
|
+
type: Input
|
|
129
|
+
}], hintText$: [] } });
|
|
130
|
+
|
|
131
|
+
/**
|
|
132
|
+
* @deprecated use {@link TuiCopy} with {@link TuiTextfield}
|
|
133
|
+
*/
|
|
134
|
+
class TuiInputCopyDirective extends AbstractTuiTextfieldHost {
|
|
135
|
+
onValueChange(value) {
|
|
136
|
+
this.host.onValueChange(value);
|
|
137
|
+
}
|
|
138
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiInputCopyDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
|
|
139
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.15", type: TuiInputCopyDirective, isStandalone: false, selector: "tui-input-copy", providers: [tuiAsTextfieldHost(TuiInputCopyDirective)], usesInheritance: true, ngImport: i0 }); }
|
|
140
|
+
}
|
|
141
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiInputCopyDirective, decorators: [{
|
|
142
|
+
type: Directive,
|
|
143
|
+
args: [{
|
|
144
|
+
standalone: false,
|
|
145
|
+
selector: 'tui-input-copy',
|
|
146
|
+
providers: [tuiAsTextfieldHost(TuiInputCopyDirective)],
|
|
147
|
+
}]
|
|
148
|
+
}] });
|
|
149
|
+
|
|
150
|
+
/**
|
|
151
|
+
* @deprecated use {@link TuiCopy} with {@link TuiTextfield}
|
|
152
|
+
*/
|
|
153
|
+
class TuiInputCopyModule {
|
|
154
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiInputCopyModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
155
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.15", ngImport: i0, type: TuiInputCopyModule, declarations: [TuiInputCopyComponent, TuiInputCopyDirective], imports: [CommonModule,
|
|
156
|
+
PolymorpheusOutlet,
|
|
157
|
+
PolymorpheusTemplate,
|
|
158
|
+
TuiPrimitiveTextfieldModule,
|
|
159
|
+
TuiTextfieldControllerModule,
|
|
160
|
+
TuiAppearance,
|
|
161
|
+
TuiIcon, i1$1.TuiHintComponent, i1$1.TuiHintDirective, i1$1.TuiHintOptionsDirective, i1$1.TuiHintUnstyled, i1$1.TuiHintDriver, i1$1.TuiHintPosition, i1$1.TuiHintHover, i1$1.TuiHintOverflow, i1$1.TuiHintDescribe, i1$1.TuiHintHost, i1$1.TuiHintManual, i1$1.TuiHintPointer], exports: [TuiInputCopyComponent,
|
|
162
|
+
TuiInputCopyDirective,
|
|
163
|
+
TuiTextfieldComponent, i1$1.TuiHintComponent, i1$1.TuiHintDirective, i1$1.TuiHintOptionsDirective, i1$1.TuiHintUnstyled, i1$1.TuiHintDriver, i1$1.TuiHintPosition, i1$1.TuiHintHover, i1$1.TuiHintOverflow, i1$1.TuiHintDescribe, i1$1.TuiHintHost, i1$1.TuiHintManual, i1$1.TuiHintPointer] }); }
|
|
164
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiInputCopyModule, imports: [CommonModule,
|
|
165
|
+
TuiPrimitiveTextfieldModule,
|
|
166
|
+
TuiTextfieldControllerModule,
|
|
167
|
+
TuiIcon, i1$1.TuiHintComponent] }); }
|
|
168
|
+
}
|
|
169
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiInputCopyModule, decorators: [{
|
|
170
|
+
type: NgModule,
|
|
171
|
+
args: [{
|
|
172
|
+
imports: [
|
|
173
|
+
CommonModule,
|
|
174
|
+
PolymorpheusOutlet,
|
|
175
|
+
PolymorpheusTemplate,
|
|
176
|
+
TuiPrimitiveTextfieldModule,
|
|
177
|
+
TuiTextfieldControllerModule,
|
|
178
|
+
TuiAppearance,
|
|
179
|
+
TuiIcon,
|
|
180
|
+
...TuiHint,
|
|
181
|
+
],
|
|
182
|
+
declarations: [TuiInputCopyComponent, TuiInputCopyDirective],
|
|
183
|
+
exports: [
|
|
184
|
+
TuiInputCopyComponent,
|
|
185
|
+
TuiInputCopyDirective,
|
|
186
|
+
TuiTextfieldComponent,
|
|
187
|
+
...TuiHint,
|
|
188
|
+
],
|
|
189
|
+
}]
|
|
190
|
+
}] });
|
|
191
|
+
|
|
192
|
+
/**
|
|
193
|
+
* Generated bundle index. Do not edit.
|
|
194
|
+
*/
|
|
195
|
+
|
|
196
|
+
export { TUI_INPUT_COPY_DEFAULT_OPTIONS, TUI_INPUT_COPY_OPTIONS, TuiInputCopyComponent, TuiInputCopyDirective, TuiInputCopyModule, tuiInputCopyOptionsProvider };
|
|
197
|
+
//# sourceMappingURL=taiga-ui-legacy-components-input-copy.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"taiga-ui-legacy-components-input-copy.mjs","sources":["../../../projects/legacy/components/input-copy/input-copy.options.ts","../../../projects/legacy/components/input-copy/input-copy.component.ts","../../../projects/legacy/components/input-copy/input-copy.template.html","../../../projects/legacy/components/input-copy/input-copy.directive.ts","../../../projects/legacy/components/input-copy/input-copy.module.ts","../../../projects/legacy/components/input-copy/taiga-ui-legacy-components-input-copy.ts"],"sourcesContent":["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 TuiHintDirection} from '@taiga-ui/core/directives/hint';\nimport {type TuiSizeL, type TuiSizeS} from '@taiga-ui/core/types';\nimport {type PolymorpheusContent} from '@taiga-ui/polymorpheus';\n\n/**\n * @deprecated use {@link TuiCopy} with {@link TuiTextfield}\n */\nexport interface TuiInputCopyOptions {\n readonly icon: PolymorpheusContent<TuiContext<TuiSizeL | TuiSizeS>>;\n readonly messageAppearance: string;\n readonly messageDirection: TuiHintDirection;\n readonly successMessage: PolymorpheusContent;\n}\n\n/**\n * @deprecated use {@link TuiCopy} with {@link TuiTextfield}\n */\nexport const TUI_INPUT_COPY_DEFAULT_OPTIONS: TuiInputCopyOptions = {\n successMessage: '',\n messageDirection: 'bottom-left',\n messageAppearance: '',\n icon: () => '@tui.copy',\n};\n\n/**\n * @deprecated use {@link TuiCopy} with {@link TuiTextfield}\n */\nexport const TUI_INPUT_COPY_OPTIONS = new InjectionToken(\n ngDevMode ? 'TUI_INPUT_COPY_OPTIONS' : '',\n {\n factory: () => TUI_INPUT_COPY_DEFAULT_OPTIONS,\n },\n);\n\n/**\n * @deprecated use {@link TuiCopy} with {@link TuiTextfield}\n */\nexport function tuiInputCopyOptionsProvider(\n options: Partial<TuiInputCopyOptions>,\n): Provider {\n return tuiProvideOptions(\n TUI_INPUT_COPY_OPTIONS,\n options,\n TUI_INPUT_COPY_DEFAULT_OPTIONS,\n );\n}\n","import {DOCUMENT} from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n inject,\n Input,\n ViewChild,\n} from '@angular/core';\nimport {tuiPure} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {type TuiHintDirection} from '@taiga-ui/core/directives/hint';\nimport {type TuiSizeL, type TuiSizeS} from '@taiga-ui/core/types';\nimport {TUI_COPY_TEXTS} from '@taiga-ui/kit/tokens';\nimport {AbstractTuiControl, tuiAsControl} from '@taiga-ui/legacy/classes';\nimport {TuiPrimitiveTextfieldComponent} from '@taiga-ui/legacy/components/primitive-textfield';\nimport {\n TUI_TEXTFIELD_SIZE,\n TUI_VALUE_ACCESSOR_PROVIDER,\n} from '@taiga-ui/legacy/directives';\nimport {\n tuiAsFocusableItemAccessor,\n type TuiFocusableElementAccessor,\n type TuiNativeFocusableElement,\n} from '@taiga-ui/legacy/tokens';\nimport {type PolymorpheusContent} from '@taiga-ui/polymorpheus';\nimport {BehaviorSubject, map, merge, type Observable, of, switchMap, timer} from 'rxjs';\n\nimport {TUI_INPUT_COPY_OPTIONS, type TuiInputCopyOptions} from './input-copy.options';\n\n/**\n * @deprecated use {@link TuiCopy} with {@link TuiTextfield}\n */\n@Component({\n standalone: false,\n selector: 'tui-input-copy',\n templateUrl: './input-copy.template.html',\n styleUrls: ['./input-copy.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n TUI_VALUE_ACCESSOR_PROVIDER,\n tuiAsFocusableItemAccessor(TuiInputCopyComponent),\n tuiAsControl(TuiInputCopyComponent),\n ],\n host: {\n '[attr.data-size]': 'size',\n },\n})\nexport class TuiInputCopyComponent\n extends AbstractTuiControl<string>\n implements TuiFocusableElementAccessor\n{\n @ViewChild(TuiPrimitiveTextfieldComponent)\n private readonly textfield?: TuiPrimitiveTextfieldComponent;\n\n private readonly copied$ = new BehaviorSubject<boolean>(false);\n private readonly doc = inject(DOCUMENT);\n private readonly copyTexts$ = inject(TUI_COPY_TEXTS);\n private readonly options = inject(TUI_INPUT_COPY_OPTIONS);\n private readonly textfieldSize = inject(TUI_TEXTFIELD_SIZE);\n\n @Input()\n public successMessage = this.options.successMessage;\n\n @Input()\n public messageDirection: TuiHintDirection = this.options.messageDirection;\n\n @Input()\n public messageAppearance = this.options.messageAppearance;\n\n public get nativeFocusableElement(): TuiNativeFocusableElement | null {\n return this.computedDisabled || !this.textfield\n ? null\n : this.textfield.nativeFocusableElement;\n }\n\n public get focused(): boolean {\n return !!this.textfield?.focused;\n }\n\n public onValueChange(value: string): void {\n this.value = value;\n }\n\n @tuiPure\n protected get hintText$(): Observable<PolymorpheusContent> {\n return this.copyTexts$.pipe(\n switchMap((texts) =>\n this.copied$.pipe(\n switchMap((copied) => {\n if (!copied) {\n return of(texts[0]);\n }\n\n this.copied$.next(false);\n\n return merge(\n of(this.successMessage || texts[1]),\n timer(3000).pipe(map(() => texts[0])),\n );\n }),\n ),\n ),\n );\n }\n\n protected get size(): TuiSizeL | TuiSizeS {\n return this.textfieldSize.size;\n }\n\n protected get icon(): TuiInputCopyOptions['icon'] {\n return this.options.icon;\n }\n\n protected onFocused(focused: boolean): void {\n this.updateFocused(focused);\n }\n\n protected copy(): void {\n if (!this.textfield?.nativeFocusableElement) {\n return;\n }\n\n this.textfield.nativeFocusableElement.select();\n this.doc.execCommand('copy');\n this.copied$.next(true);\n }\n\n protected getFallbackValue(): string {\n return '';\n }\n}\n","<tui-primitive-textfield\n class=\"t-textfield\"\n [disabled]=\"computedDisabled\"\n [focusable]=\"focusable\"\n [invalid]=\"computedInvalid\"\n [nativeId]=\"nativeId\"\n [pseudoActive]=\"pseudoActive\"\n [pseudoFocus]=\"pseudoFocus\"\n [pseudoHover]=\"pseudoHover\"\n [readOnly]=\"readOnly\"\n [tuiTextfieldIcon]=\"!disabled ? iconContent : ''\"\n [(value)]=\"value\"\n (focusedChange)=\"onFocused($event)\"\n>\n <ng-content />\n <ng-content\n ngProjectAs=\"input\"\n select=\"input\"\n />\n</tui-primitive-textfield>\n\n<ng-template #iconContent>\n <tui-icon\n *polymorpheusOutlet=\"icon as src; context: {$implicit: size}\"\n automation-id=\"tui-copy__icon\"\n tuiAppearance=\"icon\"\n class=\"t-icon\"\n [class.t-icon_small]=\"size === 's'\"\n [icon]=\"src.toString()\"\n [tuiAppearanceState]=\"!value ? 'disabled' : null\"\n [tuiHint]=\"hint\"\n [tuiHintAppearance]=\"messageAppearance\"\n [tuiHintDirection]=\"messageDirection\"\n (click)=\"copy()\"\n />\n</ng-template>\n\n<ng-template #hint>\n <ng-container *polymorpheusOutlet=\"hintText$ | async as text\">\n {{ text }}\n </ng-container>\n</ng-template>\n","import {Directive} from '@angular/core';\nimport {AbstractTuiTextfieldHost} from '@taiga-ui/legacy/classes';\nimport {tuiAsTextfieldHost} from '@taiga-ui/legacy/tokens';\n\nimport {type TuiInputCopyComponent} from './input-copy.component';\n\n/**\n * @deprecated use {@link TuiCopy} with {@link TuiTextfield}\n */\n@Directive({\n standalone: false,\n selector: 'tui-input-copy',\n providers: [tuiAsTextfieldHost(TuiInputCopyDirective)],\n})\nexport class TuiInputCopyDirective extends AbstractTuiTextfieldHost<TuiInputCopyComponent> {\n public onValueChange(value: string): void {\n this.host.onValueChange(value);\n }\n}\n","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {TuiIcon} from '@taiga-ui/core/components/icon';\nimport {TuiAppearance} from '@taiga-ui/core/directives/appearance';\nimport {TuiHint} from '@taiga-ui/core/directives/hint';\nimport {\n TuiPrimitiveTextfieldModule,\n TuiTextfieldComponent,\n} from '@taiga-ui/legacy/components/primitive-textfield';\nimport {TuiTextfieldControllerModule} from '@taiga-ui/legacy/directives';\nimport {PolymorpheusOutlet, PolymorpheusTemplate} from '@taiga-ui/polymorpheus';\n\nimport {TuiInputCopyComponent} from './input-copy.component';\nimport {TuiInputCopyDirective} from './input-copy.directive';\n\n/**\n * @deprecated use {@link TuiCopy} with {@link TuiTextfield}\n */\n@NgModule({\n imports: [\n CommonModule,\n PolymorpheusOutlet,\n PolymorpheusTemplate,\n TuiPrimitiveTextfieldModule,\n TuiTextfieldControllerModule,\n TuiAppearance,\n TuiIcon,\n ...TuiHint,\n ],\n declarations: [TuiInputCopyComponent, TuiInputCopyDirective],\n exports: [\n TuiInputCopyComponent,\n TuiInputCopyDirective,\n TuiTextfieldComponent,\n ...TuiHint,\n ],\n})\nexport class TuiInputCopyModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i6","i1"],"mappings":"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"}
|
|
@@ -0,0 +1,272 @@
|
|
|
1
|
+
import * as i0 from '@angular/core';
|
|
2
|
+
import { inject, Input, ViewChild, ChangeDetectionStrategy, Component, NgModule } from '@angular/core';
|
|
3
|
+
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
4
|
+
import { maskitoDateOptionsGenerator } from '@maskito/kit';
|
|
5
|
+
import { tuiAsControl } from '@taiga-ui/cdk/classes';
|
|
6
|
+
import { TUI_FALSE_HANDLER } from '@taiga-ui/cdk/constants';
|
|
7
|
+
import { TuiMonth, TuiDay, tuiDateClamp } from '@taiga-ui/cdk/date-time';
|
|
8
|
+
import { tuiWatch } from '@taiga-ui/cdk/observables';
|
|
9
|
+
import { TUI_IS_MOBILE } from '@taiga-ui/cdk/tokens';
|
|
10
|
+
import { changeDateSeparator, tuiIsString } from '@taiga-ui/cdk/utils/miscellaneous';
|
|
11
|
+
import { TUI_DEFAULT_DATE_FORMAT, TUI_DATE_FORMAT } from '@taiga-ui/core/tokens';
|
|
12
|
+
import { TUI_MOBILE_CALENDAR, TUI_INPUT_DATE_OPTIONS, TUI_DATE_TEXTS, TUI_DATE_VALUE_TRANSFORMER, TUI_DONE_WORD, tuiDateStreamWithTransformer, TUI_MOBILE_CALENDAR_PROVIDER } from '@taiga-ui/kit/tokens';
|
|
13
|
+
import { tuiToggleDay } from '@taiga-ui/kit/utils';
|
|
14
|
+
import { AbstractTuiMultipleControl, TuiStringifiableItem, tuiAsControl as tuiAsControl$1 } from '@taiga-ui/legacy/classes';
|
|
15
|
+
import * as i5 from '@taiga-ui/legacy/components/input-tag';
|
|
16
|
+
import { TuiInputTagComponent, TuiInputTagModule } from '@taiga-ui/legacy/components/input-tag';
|
|
17
|
+
import { TuiPrimitiveTextfieldComponent, TuiPrimitiveTextfieldModule } from '@taiga-ui/legacy/components/primitive-textfield';
|
|
18
|
+
import * as i8 from '@taiga-ui/legacy/directives';
|
|
19
|
+
import { TUI_TEXTFIELD_SIZE, TuiTextfieldControllerModule, TuiLegacyDropdownOpenMonitorDirective } from '@taiga-ui/legacy/directives';
|
|
20
|
+
import { tuiAsFocusableItemAccessor } from '@taiga-ui/legacy/tokens';
|
|
21
|
+
import { map } from 'rxjs';
|
|
22
|
+
import * as i1 from '@maskito/angular';
|
|
23
|
+
import { MaskitoDirective } from '@maskito/angular';
|
|
24
|
+
import * as i2 from '@taiga-ui/polymorpheus';
|
|
25
|
+
import { PolymorpheusOutlet, PolymorpheusTemplate } from '@taiga-ui/polymorpheus';
|
|
26
|
+
import * as i3 from '@taiga-ui/core/components/calendar';
|
|
27
|
+
import { TuiCalendar } from '@taiga-ui/core/components/calendar';
|
|
28
|
+
import * as i4 from '@taiga-ui/core/components/link';
|
|
29
|
+
import { TuiLink } from '@taiga-ui/core/components/link';
|
|
30
|
+
import * as i1$1 from '@taiga-ui/core/directives/dropdown';
|
|
31
|
+
import { TuiDropdown } from '@taiga-ui/core/directives/dropdown';
|
|
32
|
+
import * as i7 from '@angular/forms';
|
|
33
|
+
import { FormsModule } from '@angular/forms';
|
|
34
|
+
import * as i9 from '@taiga-ui/core/components/icon';
|
|
35
|
+
import { TuiIcon } from '@taiga-ui/core/components/icon';
|
|
36
|
+
import * as i10 from '@taiga-ui/core/directives/appearance';
|
|
37
|
+
import { TuiAppearance } from '@taiga-ui/core/directives/appearance';
|
|
38
|
+
import * as i11 from '@angular/common';
|
|
39
|
+
import { CommonModule } from '@angular/common';
|
|
40
|
+
import * as i12 from '@taiga-ui/cdk/pipes/mapper';
|
|
41
|
+
import { TuiMapperPipe } from '@taiga-ui/cdk/pipes/mapper';
|
|
42
|
+
|
|
43
|
+
class TuiInputDateMultiComponent extends AbstractTuiMultipleControl {
|
|
44
|
+
constructor() {
|
|
45
|
+
super(...arguments);
|
|
46
|
+
this.month = null;
|
|
47
|
+
this.mobileCalendar = inject(TUI_MOBILE_CALENDAR, { optional: true });
|
|
48
|
+
this.options = inject(TUI_INPUT_DATE_OPTIONS);
|
|
49
|
+
this.textfieldSize = inject(TUI_TEXTFIELD_SIZE);
|
|
50
|
+
this.dateTexts$ = inject(TUI_DATE_TEXTS);
|
|
51
|
+
this.valueTransformer = inject(TUI_DATE_VALUE_TRANSFORMER, { optional: true });
|
|
52
|
+
this.open = false;
|
|
53
|
+
this.dateFormat = TUI_DEFAULT_DATE_FORMAT;
|
|
54
|
+
this.isMobile = inject(TUI_IS_MOBILE);
|
|
55
|
+
this.doneWord$ = inject(TUI_DONE_WORD);
|
|
56
|
+
this.filler$ = this.dateTexts$.pipe(map((dateTexts) => changeDateSeparator(dateTexts[this.dateFormat.mode], this.dateFormat.separator)));
|
|
57
|
+
this.dateFormat$ = inject(TUI_DATE_FORMAT)
|
|
58
|
+
.pipe(tuiWatch(this.cdr), takeUntilDestroyed())
|
|
59
|
+
.subscribe((format) => {
|
|
60
|
+
this.dateFormat = format;
|
|
61
|
+
});
|
|
62
|
+
this.min = this.options.min;
|
|
63
|
+
this.max = this.options.max;
|
|
64
|
+
this.disabledItemHandler = TUI_FALSE_HANDLER;
|
|
65
|
+
this.markerHandler = null;
|
|
66
|
+
this.defaultActiveYearMonth = TuiMonth.currentLocal();
|
|
67
|
+
this.inputHidden = false;
|
|
68
|
+
this.editable = true;
|
|
69
|
+
this.search = '';
|
|
70
|
+
this.placeholder = '';
|
|
71
|
+
this.rows = 1;
|
|
72
|
+
this.maskitoOptions = maskitoDateOptionsGenerator({
|
|
73
|
+
mode: 'dd/mm/yyyy',
|
|
74
|
+
separator: '.',
|
|
75
|
+
min: this.min?.toLocalNativeDate(),
|
|
76
|
+
max: this.max?.toLocalNativeDate(),
|
|
77
|
+
});
|
|
78
|
+
this.tagValidator = (tag) => {
|
|
79
|
+
const { year, month, day } = tuiIsString(tag)
|
|
80
|
+
? TuiDay.parseRawDateString(tag)
|
|
81
|
+
: tag;
|
|
82
|
+
const date = new TuiDay(year, month, day);
|
|
83
|
+
return ((TuiDay.isValidDay(year, month, day) &&
|
|
84
|
+
this.min?.daySameOrBefore(date) &&
|
|
85
|
+
this.max?.daySameOrAfter(date)) ??
|
|
86
|
+
false);
|
|
87
|
+
};
|
|
88
|
+
this.disabledItemHandlerWrapper = (handler) => (stringifiable) => tuiIsString(stringifiable) || handler(stringifiable.item);
|
|
89
|
+
this.valueMapper = (value) => value.map((item) => new TuiStringifiableItem(item, (item) => String(item)));
|
|
90
|
+
}
|
|
91
|
+
get nativeFocusableElement() {
|
|
92
|
+
return this.textfield?.nativeFocusableElement || null;
|
|
93
|
+
}
|
|
94
|
+
get focused() {
|
|
95
|
+
return !!this.textfield?.focused;
|
|
96
|
+
}
|
|
97
|
+
setDisabledState() {
|
|
98
|
+
super.setDisabledState();
|
|
99
|
+
this.open = false;
|
|
100
|
+
}
|
|
101
|
+
get size() {
|
|
102
|
+
return this.textfieldSize.size;
|
|
103
|
+
}
|
|
104
|
+
get nativeDropdownMode() {
|
|
105
|
+
return this.isMobile && !this.editable;
|
|
106
|
+
}
|
|
107
|
+
get computedMin() {
|
|
108
|
+
return this.min ?? this.options.min;
|
|
109
|
+
}
|
|
110
|
+
get computedMax() {
|
|
111
|
+
return this.max ?? this.options.max;
|
|
112
|
+
}
|
|
113
|
+
get computedMobile() {
|
|
114
|
+
return this.isMobile && !!this.mobileCalendar;
|
|
115
|
+
}
|
|
116
|
+
get calendarIcon() {
|
|
117
|
+
return this.options.icon;
|
|
118
|
+
}
|
|
119
|
+
get computedActiveYearMonth() {
|
|
120
|
+
return (this.month ||
|
|
121
|
+
this.value[this.value.length - 1] ||
|
|
122
|
+
tuiDateClamp(this.defaultActiveYearMonth, this.computedMin, this.computedMax));
|
|
123
|
+
}
|
|
124
|
+
onClick() {
|
|
125
|
+
if (!this.isMobile && this.interactive) {
|
|
126
|
+
this.open = !this.open;
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
onIconClick() {
|
|
130
|
+
if (this.isMobile && this.interactive) {
|
|
131
|
+
this.open = true;
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
onEnter(search) {
|
|
135
|
+
if (!this.tagValidator(search)) {
|
|
136
|
+
return;
|
|
137
|
+
}
|
|
138
|
+
this.value = tuiToggleDay(this.value, TuiDay.normalizeParse(search));
|
|
139
|
+
if (this.inputTag) {
|
|
140
|
+
this.inputTag.search = '';
|
|
141
|
+
}
|
|
142
|
+
this.done();
|
|
143
|
+
}
|
|
144
|
+
onValueChange(value) {
|
|
145
|
+
this.control?.updateValueAndValidity({ emitEvent: false });
|
|
146
|
+
if (!value.length && !this.mobileCalendar) {
|
|
147
|
+
this.onOpenChange(true);
|
|
148
|
+
}
|
|
149
|
+
this.value = value.map(({ item }) => item);
|
|
150
|
+
}
|
|
151
|
+
onDayClick(value) {
|
|
152
|
+
this.value = tuiToggleDay(this.value, value);
|
|
153
|
+
}
|
|
154
|
+
done() {
|
|
155
|
+
this.open = false;
|
|
156
|
+
}
|
|
157
|
+
onMonthChange(month) {
|
|
158
|
+
this.month = month;
|
|
159
|
+
}
|
|
160
|
+
onOpenChange(open) {
|
|
161
|
+
this.open = open;
|
|
162
|
+
}
|
|
163
|
+
onFocused(focused) {
|
|
164
|
+
this.updateFocused(focused);
|
|
165
|
+
}
|
|
166
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiInputDateMultiComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
167
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.15", type: TuiInputDateMultiComponent, isStandalone: false, selector: "tui-input-date[multiple]", inputs: { min: "min", max: "max", disabledItemHandler: "disabledItemHandler", markerHandler: "markerHandler", defaultActiveYearMonth: "defaultActiveYearMonth", inputHidden: "inputHidden", editable: "editable", search: "search", placeholder: "placeholder", rows: "rows", tagValidator: "tagValidator" }, host: { listeners: { "click": "onClick()" }, properties: { "class._editable": "editable", "attr.data-size": "size" } }, providers: [
|
|
168
|
+
tuiAsFocusableItemAccessor(TuiInputDateMultiComponent),
|
|
169
|
+
tuiAsControl(TuiInputDateMultiComponent),
|
|
170
|
+
tuiAsControl$1(TuiInputDateMultiComponent),
|
|
171
|
+
tuiDateStreamWithTransformer(TUI_DATE_VALUE_TRANSFORMER),
|
|
172
|
+
TUI_MOBILE_CALENDAR_PROVIDER,
|
|
173
|
+
], viewQueries: [{ propertyName: "textfield", first: true, predicate: TuiPrimitiveTextfieldComponent, descendants: true }, { propertyName: "inputTag", first: true, predicate: TuiInputTagComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: "<div\n tuiDropdownOpenMonitor\n class=\"t-hosted\"\n [tuiDropdown]=\"dropdown\"\n [tuiDropdownEnabled]=\"interactive\"\n [tuiDropdownOpen]=\"open && interactive\"\n (tuiDropdownOpenChange)=\"onOpenChange($event)\"\n>\n <tui-input-tag\n #inputTag\n class=\"t-input\"\n [disabled]=\"disabled\"\n [disabledItemHandler]=\"disabledItemHandler | tuiMapper: disabledItemHandlerWrapper\"\n [editable]=\"editable\"\n [inputHidden]=\"inputHidden\"\n [maskito]=\"maskitoOptions\"\n [nativeId]=\"nativeId\"\n [ngModel]=\"value | tuiMapper: valueMapper\"\n [ngModelOptions]=\"{standalone: true}\"\n [placeholder]=\"placeholder\"\n [pseudoFocus]=\"pseudoFocus\"\n [pseudoHover]=\"pseudoHover\"\n [pseudoInvalid]=\"computedInvalid\"\n [readOnly]=\"readOnly\"\n [removable]=\"!nativeDropdownMode\"\n [rows]=\"rows\"\n [tagValidator]=\"tagValidator | tuiMapper: disabledItemHandlerWrapper\"\n [tuiTextfieldFiller]=\"(filler$ | async) || ''\"\n [tuiTextfieldIcon]=\"calendarIcon && iconContent\"\n (keydown.enter)=\"onEnter(inputTag.search || '')\"\n (ngModelChange)=\"onValueChange($event)\"\n >\n <ng-content />\n <ng-content\n ngProjectAs=\"input\"\n select=\"input\"\n />\n </tui-input-tag>\n\n <ng-template #iconContent>\n <tui-icon\n *polymorpheusOutlet=\"calendarIcon as src; context: {$implicit: size}\"\n tuiAppearance=\"icon\"\n [class.t-icon_small]=\"size === 's'\"\n [class.t-icon]=\"!computedDisabled\"\n [icon]=\"src.toString()\"\n (click)=\"onIconClick()\"\n />\n </ng-template>\n\n <ng-template #dropdown>\n <tui-calendar\n [disabledItemHandler]=\"disabledItemHandler\"\n [markerHandler]=\"markerHandler\"\n [max]=\"computedMax\"\n [min]=\"computedMin\"\n [month]=\"computedActiveYearMonth\"\n [value]=\"value\"\n (dayClick)=\"onDayClick($event)\"\n (monthChange)=\"onMonthChange($event)\"\n (mousedown.zoneless.prevent)=\"(0)\"\n />\n <div\n class=\"t-button\"\n (mousedown.zoneless.prevent)=\"(0)\"\n >\n <button\n tuiLink\n type=\"button\"\n (click)=\"done()\"\n >\n {{ doneWord$ | async }}\n </button>\n </div>\n </ng-template>\n</div>\n", styles: [":host{display:block;border-radius:var(--tui-radius-m);text-align:start}:host :host-context(*:disabled){pointer-events:none}.t-hosted{display:block;border-radius:inherit}.t-textfield{border-radius:inherit;text-align:inherit}.t-icon{pointer-events:auto}.t-icon_small:before{font-size:1rem}.t-button{display:flex;block-size:2.75rem;justify-content:center;box-shadow:inset 0 1px var(--tui-border-normal)}.t-button button{flex:1;text-align:center}.t-native-input{position:absolute;top:0;left:0;inline-size:100%;block-size:100%;opacity:0;pointer-events:auto;font-size:2rem}\n"], dependencies: [{ kind: "directive", type: i1.MaskitoDirective, selector: "[maskito]", inputs: ["maskito", "maskitoElement"] }, { kind: "directive", type: i2.PolymorpheusOutlet, selector: "[polymorpheusOutlet]", inputs: ["polymorpheusOutlet", "polymorpheusOutletContext"] }, { kind: "component", type: i3.TuiCalendar, selector: "tui-calendar", inputs: ["month", "disabledItemHandler", "min", "max", "minViewedMonth", "maxViewedMonth", "hoveredItem", "showAdjacent", "markerHandler", "value", "initialView"], outputs: ["dayClick", "monthChange", "hoveredItemChange"] }, { kind: "directive", type: i4.TuiLink, selector: "a[tuiLink], button[tuiLink]", inputs: ["pseudo"] }, { kind: "component", type: i5.TuiInputTagComponent, selector: "tui-input-tag", inputs: ["separator", "search", "editable", "tagValidator", "rows", "inputHidden", "uniqueTags", "autoColor", "maxLength", "placeholder", "removable", "disabledItemHandler", "pseudoFocused", "pseudoOpen"], outputs: ["searchChange"] }, { kind: "directive", type: i1$1.TuiDropdownDirective, selector: "[tuiDropdown]:not(ng-container):not(ng-template)", inputs: ["tuiDropdown"], exportAs: ["tuiDropdown"] }, { kind: "directive", type: i1$1.TuiDropdownOpen, selector: "[tuiDropdown][tuiDropdownOpen],[tuiDropdown][tuiDropdownOpenChange]", inputs: ["tuiDropdownEnabled", "tuiDropdownOpen"], outputs: ["tuiDropdownOpenChange"] }, { kind: "directive", type: i7.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i7.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i8.TuiTextfieldIconDirective, selector: "[tuiTextfieldIcon]", inputs: ["tuiTextfieldIcon"] }, { kind: "directive", type: i8.TuiTextfieldFillerDirective, selector: "[tuiTextfieldFiller]", inputs: ["tuiTextfieldFiller"] }, { kind: "directive", type: i8.TuiLegacyDropdownOpenMonitorDirective, selector: "[tuiDropdownOpenMonitor]" }, { kind: "component", type: i9.TuiIcon, selector: "tui-icon:not([tuiBadge])", inputs: ["background"] }, { kind: "directive", type: i10.TuiAppearance, selector: "[tuiAppearance]", inputs: ["tuiAppearance", "tuiAppearanceState", "tuiAppearanceFocus", "tuiAppearanceMode"] }, { kind: "pipe", type: i11.AsyncPipe, name: "async" }, { kind: "pipe", type: i12.TuiMapperPipe, name: "tuiMapper" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
174
|
+
}
|
|
175
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiInputDateMultiComponent, decorators: [{
|
|
176
|
+
type: Component,
|
|
177
|
+
args: [{ standalone: false, selector: 'tui-input-date[multiple]', changeDetection: ChangeDetectionStrategy.OnPush, providers: [
|
|
178
|
+
tuiAsFocusableItemAccessor(TuiInputDateMultiComponent),
|
|
179
|
+
tuiAsControl(TuiInputDateMultiComponent),
|
|
180
|
+
tuiAsControl$1(TuiInputDateMultiComponent),
|
|
181
|
+
tuiDateStreamWithTransformer(TUI_DATE_VALUE_TRANSFORMER),
|
|
182
|
+
TUI_MOBILE_CALENDAR_PROVIDER,
|
|
183
|
+
], host: {
|
|
184
|
+
'[class._editable]': 'editable',
|
|
185
|
+
'[attr.data-size]': 'size',
|
|
186
|
+
'(click)': 'onClick()',
|
|
187
|
+
}, template: "<div\n tuiDropdownOpenMonitor\n class=\"t-hosted\"\n [tuiDropdown]=\"dropdown\"\n [tuiDropdownEnabled]=\"interactive\"\n [tuiDropdownOpen]=\"open && interactive\"\n (tuiDropdownOpenChange)=\"onOpenChange($event)\"\n>\n <tui-input-tag\n #inputTag\n class=\"t-input\"\n [disabled]=\"disabled\"\n [disabledItemHandler]=\"disabledItemHandler | tuiMapper: disabledItemHandlerWrapper\"\n [editable]=\"editable\"\n [inputHidden]=\"inputHidden\"\n [maskito]=\"maskitoOptions\"\n [nativeId]=\"nativeId\"\n [ngModel]=\"value | tuiMapper: valueMapper\"\n [ngModelOptions]=\"{standalone: true}\"\n [placeholder]=\"placeholder\"\n [pseudoFocus]=\"pseudoFocus\"\n [pseudoHover]=\"pseudoHover\"\n [pseudoInvalid]=\"computedInvalid\"\n [readOnly]=\"readOnly\"\n [removable]=\"!nativeDropdownMode\"\n [rows]=\"rows\"\n [tagValidator]=\"tagValidator | tuiMapper: disabledItemHandlerWrapper\"\n [tuiTextfieldFiller]=\"(filler$ | async) || ''\"\n [tuiTextfieldIcon]=\"calendarIcon && iconContent\"\n (keydown.enter)=\"onEnter(inputTag.search || '')\"\n (ngModelChange)=\"onValueChange($event)\"\n >\n <ng-content />\n <ng-content\n ngProjectAs=\"input\"\n select=\"input\"\n />\n </tui-input-tag>\n\n <ng-template #iconContent>\n <tui-icon\n *polymorpheusOutlet=\"calendarIcon as src; context: {$implicit: size}\"\n tuiAppearance=\"icon\"\n [class.t-icon_small]=\"size === 's'\"\n [class.t-icon]=\"!computedDisabled\"\n [icon]=\"src.toString()\"\n (click)=\"onIconClick()\"\n />\n </ng-template>\n\n <ng-template #dropdown>\n <tui-calendar\n [disabledItemHandler]=\"disabledItemHandler\"\n [markerHandler]=\"markerHandler\"\n [max]=\"computedMax\"\n [min]=\"computedMin\"\n [month]=\"computedActiveYearMonth\"\n [value]=\"value\"\n (dayClick)=\"onDayClick($event)\"\n (monthChange)=\"onMonthChange($event)\"\n (mousedown.zoneless.prevent)=\"(0)\"\n />\n <div\n class=\"t-button\"\n (mousedown.zoneless.prevent)=\"(0)\"\n >\n <button\n tuiLink\n type=\"button\"\n (click)=\"done()\"\n >\n {{ doneWord$ | async }}\n </button>\n </div>\n </ng-template>\n</div>\n", styles: [":host{display:block;border-radius:var(--tui-radius-m);text-align:start}:host :host-context(*:disabled){pointer-events:none}.t-hosted{display:block;border-radius:inherit}.t-textfield{border-radius:inherit;text-align:inherit}.t-icon{pointer-events:auto}.t-icon_small:before{font-size:1rem}.t-button{display:flex;block-size:2.75rem;justify-content:center;box-shadow:inset 0 1px var(--tui-border-normal)}.t-button button{flex:1;text-align:center}.t-native-input{position:absolute;top:0;left:0;inline-size:100%;block-size:100%;opacity:0;pointer-events:auto;font-size:2rem}\n"] }]
|
|
188
|
+
}], propDecorators: { textfield: [{
|
|
189
|
+
type: ViewChild,
|
|
190
|
+
args: [TuiPrimitiveTextfieldComponent]
|
|
191
|
+
}], inputTag: [{
|
|
192
|
+
type: ViewChild,
|
|
193
|
+
args: [TuiInputTagComponent]
|
|
194
|
+
}], min: [{
|
|
195
|
+
type: Input
|
|
196
|
+
}], max: [{
|
|
197
|
+
type: Input
|
|
198
|
+
}], disabledItemHandler: [{
|
|
199
|
+
type: Input
|
|
200
|
+
}], markerHandler: [{
|
|
201
|
+
type: Input
|
|
202
|
+
}], defaultActiveYearMonth: [{
|
|
203
|
+
type: Input
|
|
204
|
+
}], inputHidden: [{
|
|
205
|
+
type: Input
|
|
206
|
+
}], editable: [{
|
|
207
|
+
type: Input
|
|
208
|
+
}], search: [{
|
|
209
|
+
type: Input
|
|
210
|
+
}], placeholder: [{
|
|
211
|
+
type: Input
|
|
212
|
+
}], rows: [{
|
|
213
|
+
type: Input
|
|
214
|
+
}], tagValidator: [{
|
|
215
|
+
type: Input
|
|
216
|
+
}] } });
|
|
217
|
+
|
|
218
|
+
class TuiInputDateMultiModule {
|
|
219
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiInputDateMultiModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
220
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.15", ngImport: i0, type: TuiInputDateMultiModule, declarations: [TuiInputDateMultiComponent], imports: [CommonModule,
|
|
221
|
+
MaskitoDirective,
|
|
222
|
+
PolymorpheusOutlet,
|
|
223
|
+
PolymorpheusTemplate,
|
|
224
|
+
TuiCalendar,
|
|
225
|
+
TuiLink,
|
|
226
|
+
TuiInputTagModule,
|
|
227
|
+
FormsModule,
|
|
228
|
+
TuiMapperPipe,
|
|
229
|
+
TuiTextfieldControllerModule,
|
|
230
|
+
TuiPrimitiveTextfieldModule,
|
|
231
|
+
TuiLegacyDropdownOpenMonitorDirective,
|
|
232
|
+
TuiIcon,
|
|
233
|
+
TuiAppearance, i1$1.TuiDropdownOptionsDirective, i1$1.TuiDropdownDriverDirective, i1$1.TuiDropdownDirective, i1$1.TuiDropdownComponent, i1$1.TuiDropdownOpen, i1$1.TuiDropdownOpenLegacy, i1$1.TuiDropdownPortal, i1$1.TuiDropdownManual, i1$1.TuiDropdownHover, i1$1.TuiDropdownContext, i1$1.TuiDropdownPosition, i1$1.TuiDropdownPositionSided, i1$1.TuiDropdownSelection], exports: [TuiInputDateMultiComponent, i1$1.TuiDropdownOptionsDirective, i1$1.TuiDropdownDriverDirective, i1$1.TuiDropdownDirective, i1$1.TuiDropdownComponent, i1$1.TuiDropdownOpen, i1$1.TuiDropdownOpenLegacy, i1$1.TuiDropdownPortal, i1$1.TuiDropdownManual, i1$1.TuiDropdownHover, i1$1.TuiDropdownContext, i1$1.TuiDropdownPosition, i1$1.TuiDropdownPositionSided, i1$1.TuiDropdownSelection] }); }
|
|
234
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiInputDateMultiModule, imports: [CommonModule,
|
|
235
|
+
TuiCalendar,
|
|
236
|
+
TuiInputTagModule,
|
|
237
|
+
FormsModule,
|
|
238
|
+
TuiTextfieldControllerModule,
|
|
239
|
+
TuiPrimitiveTextfieldModule,
|
|
240
|
+
TuiIcon, i1$1.TuiDropdownComponent] }); }
|
|
241
|
+
}
|
|
242
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiInputDateMultiModule, decorators: [{
|
|
243
|
+
type: NgModule,
|
|
244
|
+
args: [{
|
|
245
|
+
imports: [
|
|
246
|
+
CommonModule,
|
|
247
|
+
MaskitoDirective,
|
|
248
|
+
PolymorpheusOutlet,
|
|
249
|
+
PolymorpheusTemplate,
|
|
250
|
+
TuiCalendar,
|
|
251
|
+
TuiLink,
|
|
252
|
+
TuiInputTagModule,
|
|
253
|
+
FormsModule,
|
|
254
|
+
TuiMapperPipe,
|
|
255
|
+
TuiTextfieldControllerModule,
|
|
256
|
+
TuiPrimitiveTextfieldModule,
|
|
257
|
+
TuiLegacyDropdownOpenMonitorDirective,
|
|
258
|
+
TuiIcon,
|
|
259
|
+
TuiAppearance,
|
|
260
|
+
...TuiDropdown,
|
|
261
|
+
],
|
|
262
|
+
declarations: [TuiInputDateMultiComponent],
|
|
263
|
+
exports: [TuiInputDateMultiComponent, ...TuiDropdown],
|
|
264
|
+
}]
|
|
265
|
+
}] });
|
|
266
|
+
|
|
267
|
+
/**
|
|
268
|
+
* Generated bundle index. Do not edit.
|
|
269
|
+
*/
|
|
270
|
+
|
|
271
|
+
export { TuiInputDateMultiComponent, TuiInputDateMultiModule };
|
|
272
|
+
//# sourceMappingURL=taiga-ui-legacy-components-input-date-multi.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"taiga-ui-legacy-components-input-date-multi.mjs","sources":["../../../projects/legacy/components/input-date-multi/input-date-multi.component.ts","../../../projects/legacy/components/input-date-multi/input-date-multi.template.html","../../../projects/legacy/components/input-date-multi/input-date-multi.module.ts","../../../projects/legacy/components/input-date-multi/taiga-ui-legacy-components-input-date-multi.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n Component,\n inject,\n Input,\n ViewChild,\n} from '@angular/core';\nimport {takeUntilDestroyed} from '@angular/core/rxjs-interop';\nimport {type MaskitoOptions} from '@maskito/core';\nimport {maskitoDateOptionsGenerator} from '@maskito/kit';\nimport {tuiAsControl, type TuiValueTransformer} from '@taiga-ui/cdk/classes';\nimport {TUI_FALSE_HANDLER} from '@taiga-ui/cdk/constants';\nimport {tuiDateClamp, TuiDay, TuiMonth} from '@taiga-ui/cdk/date-time';\nimport {tuiWatch} from '@taiga-ui/cdk/observables';\nimport {TUI_IS_MOBILE} from '@taiga-ui/cdk/tokens';\nimport {type TuiBooleanHandler, type TuiMapper} from '@taiga-ui/cdk/types';\nimport {changeDateSeparator, tuiIsString} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {type TuiMarkerHandler} from '@taiga-ui/core/components/calendar';\nimport {TUI_DATE_FORMAT, TUI_DEFAULT_DATE_FORMAT} from '@taiga-ui/core/tokens';\nimport {type TuiSizeL, type TuiSizeS} from '@taiga-ui/core/types';\nimport {\n TUI_DATE_TEXTS,\n TUI_DATE_VALUE_TRANSFORMER,\n TUI_DONE_WORD,\n TUI_INPUT_DATE_OPTIONS,\n TUI_MOBILE_CALENDAR,\n TUI_MOBILE_CALENDAR_PROVIDER,\n tuiDateStreamWithTransformer,\n type TuiInputDateOptions,\n} from '@taiga-ui/kit/tokens';\nimport {tuiToggleDay} from '@taiga-ui/kit/utils';\nimport {\n AbstractTuiMultipleControl,\n tuiAsControl as tuiAsLegacyControl,\n TuiStringifiableItem,\n} from '@taiga-ui/legacy/classes';\nimport {TuiInputTagComponent} from '@taiga-ui/legacy/components/input-tag';\nimport {TuiPrimitiveTextfieldComponent} from '@taiga-ui/legacy/components/primitive-textfield';\nimport {TUI_TEXTFIELD_SIZE} from '@taiga-ui/legacy/directives';\nimport {\n tuiAsFocusableItemAccessor,\n type TuiFocusableElementAccessor,\n} from '@taiga-ui/legacy/tokens';\nimport {map, type Observable} from 'rxjs';\n\n@Component({\n standalone: false,\n selector: 'tui-input-date[multiple]',\n templateUrl: './input-date-multi.template.html',\n styleUrls: ['../input-date/input-date.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n tuiAsFocusableItemAccessor(TuiInputDateMultiComponent),\n tuiAsControl(TuiInputDateMultiComponent as any),\n tuiAsLegacyControl(TuiInputDateMultiComponent),\n tuiDateStreamWithTransformer(TUI_DATE_VALUE_TRANSFORMER),\n TUI_MOBILE_CALENDAR_PROVIDER,\n ],\n host: {\n '[class._editable]': 'editable',\n '[attr.data-size]': 'size',\n '(click)': 'onClick()',\n },\n})\nexport class TuiInputDateMultiComponent\n extends AbstractTuiMultipleControl<TuiDay>\n implements TuiFocusableElementAccessor\n{\n @ViewChild(TuiPrimitiveTextfieldComponent)\n private readonly textfield?: TuiPrimitiveTextfieldComponent;\n\n @ViewChild(TuiInputTagComponent)\n private readonly inputTag?: TuiInputTagComponent;\n\n private month: TuiMonth | null = null;\n private readonly mobileCalendar = inject(TUI_MOBILE_CALENDAR, {optional: true});\n private readonly options = inject(TUI_INPUT_DATE_OPTIONS);\n private readonly textfieldSize = inject(TUI_TEXTFIELD_SIZE);\n\n protected readonly dateTexts$ = inject(TUI_DATE_TEXTS);\n protected override readonly valueTransformer = inject<\n TuiValueTransformer<readonly TuiDay[]>\n >(TUI_DATE_VALUE_TRANSFORMER, {optional: true});\n\n protected open = false;\n\n protected dateFormat = TUI_DEFAULT_DATE_FORMAT;\n protected readonly isMobile = inject(TUI_IS_MOBILE);\n protected readonly doneWord$ = inject(TUI_DONE_WORD);\n protected readonly filler$: Observable<string> = this.dateTexts$.pipe(\n map((dateTexts) =>\n changeDateSeparator(\n dateTexts[this.dateFormat.mode],\n this.dateFormat.separator,\n ),\n ),\n );\n\n protected readonly dateFormat$ = inject(TUI_DATE_FORMAT)\n .pipe(tuiWatch(this.cdr), takeUntilDestroyed())\n .subscribe((format) => {\n this.dateFormat = format;\n });\n\n @Input()\n public min: TuiDay | null = this.options.min;\n\n @Input()\n public max: TuiDay | null = this.options.max;\n\n @Input()\n public disabledItemHandler: TuiBooleanHandler<TuiDay> = TUI_FALSE_HANDLER;\n\n @Input()\n public markerHandler: TuiMarkerHandler | null = null;\n\n @Input()\n public defaultActiveYearMonth = TuiMonth.currentLocal();\n\n @Input()\n public inputHidden = false;\n\n @Input()\n public editable = true;\n\n @Input()\n public search: string | null = '';\n\n @Input()\n public placeholder = '';\n\n @Input()\n public rows = 1;\n\n public readonly maskitoOptions: MaskitoOptions = maskitoDateOptionsGenerator({\n mode: 'dd/mm/yyyy',\n separator: '.',\n min: this.min?.toLocalNativeDate(),\n max: this.max?.toLocalNativeDate(),\n });\n\n public get nativeFocusableElement(): HTMLInputElement | null {\n return this.textfield?.nativeFocusableElement || null;\n }\n\n public get focused(): boolean {\n return !!this.textfield?.focused;\n }\n\n @Input()\n public tagValidator: TuiBooleanHandler<string> = (tag: TuiDay | string) => {\n const {year, month, day} = tuiIsString(tag)\n ? TuiDay.parseRawDateString(tag)\n : tag;\n const date = new TuiDay(year, month, day);\n\n return (\n (TuiDay.isValidDay(year, month, day) &&\n this.min?.daySameOrBefore(date) &&\n this.max?.daySameOrAfter(date)) ??\n false\n );\n };\n\n public override setDisabledState(): void {\n super.setDisabledState();\n this.open = false;\n }\n\n protected get size(): TuiSizeL | TuiSizeS {\n return this.textfieldSize.size;\n }\n\n protected get nativeDropdownMode(): boolean {\n return this.isMobile && !this.editable;\n }\n\n protected get computedMin(): TuiDay {\n return this.min ?? this.options.min;\n }\n\n protected get computedMax(): TuiDay {\n return this.max ?? this.options.max;\n }\n\n protected get computedMobile(): boolean {\n return this.isMobile && !!this.mobileCalendar;\n }\n\n protected get calendarIcon(): TuiInputDateOptions['icon'] {\n return this.options.icon;\n }\n\n protected get computedActiveYearMonth(): TuiMonth {\n return (\n this.month ||\n this.value[this.value.length - 1] ||\n tuiDateClamp(this.defaultActiveYearMonth, this.computedMin, this.computedMax)\n );\n }\n\n protected onClick(): void {\n if (!this.isMobile && this.interactive) {\n this.open = !this.open;\n }\n }\n\n protected onIconClick(): void {\n if (this.isMobile && this.interactive) {\n this.open = true;\n }\n }\n\n protected readonly disabledItemHandlerWrapper: TuiMapper<\n [TuiBooleanHandler<string> | TuiBooleanHandler<TuiDay>],\n TuiBooleanHandler<TuiStringifiableItem<any> | string>\n > = (handler) => (stringifiable) =>\n tuiIsString(stringifiable) || handler(stringifiable.item);\n\n protected readonly valueMapper: TuiMapper<\n [readonly TuiDay[]],\n ReadonlyArray<TuiStringifiableItem<TuiDay>>\n > = (value) =>\n value.map((item) => new TuiStringifiableItem(item, (item) => String(item)));\n\n protected onEnter(search: string): void {\n if (!this.tagValidator(search)) {\n return;\n }\n\n this.value = tuiToggleDay(this.value, TuiDay.normalizeParse(search));\n\n if (this.inputTag) {\n this.inputTag.search = '';\n }\n\n this.done();\n }\n\n protected onValueChange(value: ReadonlyArray<TuiStringifiableItem<TuiDay>>): void {\n this.control?.updateValueAndValidity({emitEvent: false});\n\n if (!value.length && !this.mobileCalendar) {\n this.onOpenChange(true);\n }\n\n this.value = value.map(({item}) => item);\n }\n\n protected onDayClick(value: TuiDay): void {\n this.value = tuiToggleDay(this.value, value);\n }\n\n protected done(): void {\n this.open = false;\n }\n\n protected onMonthChange(month: TuiMonth): void {\n this.month = month;\n }\n\n protected onOpenChange(open: boolean): void {\n this.open = open;\n }\n\n protected onFocused(focused: boolean): void {\n this.updateFocused(focused);\n }\n}\n","<div\n tuiDropdownOpenMonitor\n class=\"t-hosted\"\n [tuiDropdown]=\"dropdown\"\n [tuiDropdownEnabled]=\"interactive\"\n [tuiDropdownOpen]=\"open && interactive\"\n (tuiDropdownOpenChange)=\"onOpenChange($event)\"\n>\n <tui-input-tag\n #inputTag\n class=\"t-input\"\n [disabled]=\"disabled\"\n [disabledItemHandler]=\"disabledItemHandler | tuiMapper: disabledItemHandlerWrapper\"\n [editable]=\"editable\"\n [inputHidden]=\"inputHidden\"\n [maskito]=\"maskitoOptions\"\n [nativeId]=\"nativeId\"\n [ngModel]=\"value | tuiMapper: valueMapper\"\n [ngModelOptions]=\"{standalone: true}\"\n [placeholder]=\"placeholder\"\n [pseudoFocus]=\"pseudoFocus\"\n [pseudoHover]=\"pseudoHover\"\n [pseudoInvalid]=\"computedInvalid\"\n [readOnly]=\"readOnly\"\n [removable]=\"!nativeDropdownMode\"\n [rows]=\"rows\"\n [tagValidator]=\"tagValidator | tuiMapper: disabledItemHandlerWrapper\"\n [tuiTextfieldFiller]=\"(filler$ | async) || ''\"\n [tuiTextfieldIcon]=\"calendarIcon && iconContent\"\n (keydown.enter)=\"onEnter(inputTag.search || '')\"\n (ngModelChange)=\"onValueChange($event)\"\n >\n <ng-content />\n <ng-content\n ngProjectAs=\"input\"\n select=\"input\"\n />\n </tui-input-tag>\n\n <ng-template #iconContent>\n <tui-icon\n *polymorpheusOutlet=\"calendarIcon as src; context: {$implicit: size}\"\n tuiAppearance=\"icon\"\n [class.t-icon_small]=\"size === 's'\"\n [class.t-icon]=\"!computedDisabled\"\n [icon]=\"src.toString()\"\n (click)=\"onIconClick()\"\n />\n </ng-template>\n\n <ng-template #dropdown>\n <tui-calendar\n [disabledItemHandler]=\"disabledItemHandler\"\n [markerHandler]=\"markerHandler\"\n [max]=\"computedMax\"\n [min]=\"computedMin\"\n [month]=\"computedActiveYearMonth\"\n [value]=\"value\"\n (dayClick)=\"onDayClick($event)\"\n (monthChange)=\"onMonthChange($event)\"\n (mousedown.zoneless.prevent)=\"(0)\"\n />\n <div\n class=\"t-button\"\n (mousedown.zoneless.prevent)=\"(0)\"\n >\n <button\n tuiLink\n type=\"button\"\n (click)=\"done()\"\n >\n {{ doneWord$ | async }}\n </button>\n </div>\n </ng-template>\n</div>\n","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {FormsModule} from '@angular/forms';\nimport {MaskitoDirective} from '@maskito/angular';\nimport {TuiMapperPipe} from '@taiga-ui/cdk/pipes/mapper';\nimport {TuiCalendar} from '@taiga-ui/core/components/calendar';\nimport {TuiIcon} from '@taiga-ui/core/components/icon';\nimport {TuiLink} from '@taiga-ui/core/components/link';\nimport {TuiAppearance} from '@taiga-ui/core/directives/appearance';\nimport {TuiDropdown} from '@taiga-ui/core/directives/dropdown';\nimport {TuiInputTagModule} from '@taiga-ui/legacy/components/input-tag';\nimport {TuiPrimitiveTextfieldModule} from '@taiga-ui/legacy/components/primitive-textfield';\nimport {\n TuiLegacyDropdownOpenMonitorDirective,\n TuiTextfieldControllerModule,\n} from '@taiga-ui/legacy/directives';\nimport {PolymorpheusOutlet, PolymorpheusTemplate} from '@taiga-ui/polymorpheus';\n\nimport {TuiInputDateMultiComponent} from './input-date-multi.component';\n\n@NgModule({\n imports: [\n CommonModule,\n MaskitoDirective,\n PolymorpheusOutlet,\n PolymorpheusTemplate,\n TuiCalendar,\n TuiLink,\n TuiInputTagModule,\n FormsModule,\n TuiMapperPipe,\n TuiTextfieldControllerModule,\n TuiPrimitiveTextfieldModule,\n TuiLegacyDropdownOpenMonitorDirective,\n TuiIcon,\n TuiAppearance,\n ...TuiDropdown,\n ],\n declarations: [TuiInputDateMultiComponent],\n exports: [TuiInputDateMultiComponent, ...TuiDropdown],\n})\nexport class TuiInputDateMultiModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["tuiAsLegacyControl","i6","i1"],"mappings":"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"}
|