@taiga-ui/core 4.52.0-canary.bf9131e → 4.52.0-canary.c91900a
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/classes/accessors.d.ts +1 -1
- package/components/calendar/calendar-sheet.options.d.ts +1 -3
- package/components/calendar/calendar-spin.component.d.ts +1 -0
- package/components/data-list/data-list.component.d.ts +7 -11
- package/components/data-list/data-list.d.ts +2 -4
- package/components/data-list/data-list.tokens.d.ts +1 -5
- package/components/data-list/index.d.ts +0 -2
- package/components/data-list/opt-group.directive.d.ts +2 -2
- package/components/data-list/option/option-content.d.ts +6 -8
- package/components/data-list/option/option.directive.d.ts +7 -8
- package/components/dialog/dialog.component.d.ts +2 -3
- package/components/dialog/dialog.options.d.ts +2 -3
- package/components/dialog/dialog.providers.d.ts +1 -2
- package/components/dialog/index.d.ts +0 -1
- package/components/index.d.ts +0 -2
- package/components/link/link.directive.d.ts +2 -2
- package/components/link/link.options.d.ts +1 -3
- package/components/loader/loader.options.d.ts +1 -3
- package/components/modal/modal.component.d.ts +3 -3
- package/components/modal/modal.service.d.ts +3 -3
- package/components/notification/index.d.ts +3 -0
- package/components/notification/notification.component.d.ts +14 -0
- package/components/notification/notification.d.ts +3 -0
- package/components/notification/notification.directive.d.ts +7 -12
- package/components/notification/notification.options.d.ts +10 -7
- package/components/notification/notification.service.d.ts +17 -0
- package/components/root/root.component.d.ts +1 -1
- package/components/scrollbar/scroll-into-view.directive.d.ts +3 -2
- package/components/scrollbar/scrollbar.component.d.ts +2 -2
- package/components/scrollbar/scrollbar.directive.d.ts +2 -2
- package/components/textfield/textfield-multi/textfield-item.component.d.ts +3 -2
- package/components/textfield/textfield-multi/textfield-multi.component.d.ts +9 -13
- package/components/textfield/textfield.component.d.ts +21 -34
- package/components/textfield/textfield.directive.d.ts +12 -19
- package/directives/{notification/notification.directive.d.ts → alert/alert.directive.d.ts} +3 -3
- package/directives/{notification/notification.service.d.ts → alert/alert.service.d.ts} +3 -3
- package/directives/alert/index.d.ts +2 -0
- package/directives/date-format/date-format.directive.d.ts +3 -7
- package/directives/dropdown/dropdown-hover.directive.d.ts +5 -10
- package/directives/dropdown/dropdown-hover.options.d.ts +1 -3
- package/directives/dropdown/dropdown-manual.directive.d.ts +2 -2
- package/directives/dropdown/dropdown-open.directive.d.ts +9 -12
- package/directives/dropdown/dropdown-position-sided.directive.d.ts +3 -3
- package/directives/dropdown/dropdown-position.directive.d.ts +5 -5
- package/directives/dropdown/dropdown-selection.directive.d.ts +4 -5
- package/directives/dropdown/dropdown.bindings.d.ts +0 -1
- package/directives/dropdown/dropdown.d.ts +1 -2
- package/directives/dropdown/dropdown.directive.d.ts +5 -6
- package/directives/dropdown/index.d.ts +0 -1
- package/directives/group/group.directive.d.ts +7 -7
- package/directives/group/group.options.d.ts +1 -3
- package/directives/index.d.ts +1 -1
- package/directives/number-format/number-format.directive.d.ts +3 -7
- package/fesm2022/taiga-ui-core-classes.mjs +6 -8
- package/fesm2022/taiga-ui-core-classes.mjs.map +1 -1
- package/fesm2022/taiga-ui-core-components-calendar.mjs +14 -21
- package/fesm2022/taiga-ui-core-components-calendar.mjs.map +1 -1
- package/fesm2022/taiga-ui-core-components-data-list.mjs +44 -204
- package/fesm2022/taiga-ui-core-components-data-list.mjs.map +1 -1
- package/fesm2022/taiga-ui-core-components-dialog.mjs +8 -77
- package/fesm2022/taiga-ui-core-components-dialog.mjs.map +1 -1
- package/fesm2022/taiga-ui-core-components-error.mjs +2 -1
- package/fesm2022/taiga-ui-core-components-error.mjs.map +1 -1
- package/fesm2022/taiga-ui-core-components-icon.mjs +1 -2
- package/fesm2022/taiga-ui-core-components-icon.mjs.map +1 -1
- package/fesm2022/taiga-ui-core-components-link.mjs +10 -16
- package/fesm2022/taiga-ui-core-components-link.mjs.map +1 -1
- package/fesm2022/taiga-ui-core-components-loader.mjs +3 -8
- package/fesm2022/taiga-ui-core-components-loader.mjs.map +1 -1
- package/fesm2022/taiga-ui-core-components-modal.mjs +10 -10
- package/fesm2022/taiga-ui-core-components-modal.mjs.map +1 -1
- package/fesm2022/taiga-ui-core-components-notification.mjs +98 -41
- package/fesm2022/taiga-ui-core-components-notification.mjs.map +1 -1
- package/fesm2022/taiga-ui-core-components-root.mjs +5 -7
- package/fesm2022/taiga-ui-core-components-root.mjs.map +1 -1
- package/fesm2022/taiga-ui-core-components-scrollbar.mjs +36 -45
- package/fesm2022/taiga-ui-core-components-scrollbar.mjs.map +1 -1
- package/fesm2022/taiga-ui-core-components-textfield.mjs +114 -224
- package/fesm2022/taiga-ui-core-components-textfield.mjs.map +1 -1
- package/fesm2022/taiga-ui-core-components.mjs +0 -2
- package/fesm2022/taiga-ui-core-components.mjs.map +1 -1
- package/fesm2022/taiga-ui-core-directives-alert.mjs +73 -0
- package/fesm2022/taiga-ui-core-directives-alert.mjs.map +1 -0
- package/fesm2022/taiga-ui-core-directives-appearance.mjs +6 -6
- package/fesm2022/taiga-ui-core-directives-appearance.mjs.map +1 -1
- package/fesm2022/taiga-ui-core-directives-date-format.mjs +24 -18
- package/fesm2022/taiga-ui-core-directives-date-format.mjs.map +1 -1
- package/fesm2022/taiga-ui-core-directives-dropdown.mjs +110 -225
- package/fesm2022/taiga-ui-core-directives-dropdown.mjs.map +1 -1
- package/fesm2022/taiga-ui-core-directives-group.mjs +17 -29
- package/fesm2022/taiga-ui-core-directives-group.mjs.map +1 -1
- package/fesm2022/taiga-ui-core-directives-hint.mjs +7 -9
- package/fesm2022/taiga-ui-core-directives-hint.mjs.map +1 -1
- package/fesm2022/taiga-ui-core-directives-icons.mjs +2 -2
- package/fesm2022/taiga-ui-core-directives-icons.mjs.map +1 -1
- package/fesm2022/taiga-ui-core-directives-items-handlers.mjs +1 -4
- package/fesm2022/taiga-ui-core-directives-items-handlers.mjs.map +1 -1
- package/fesm2022/taiga-ui-core-directives-number-format.mjs +30 -18
- package/fesm2022/taiga-ui-core-directives-number-format.mjs.map +1 -1
- package/fesm2022/taiga-ui-core-directives-popup.mjs +1 -1
- package/fesm2022/taiga-ui-core-directives-popup.mjs.map +1 -1
- package/fesm2022/taiga-ui-core-directives.mjs +1 -1
- package/fesm2022/taiga-ui-core-pipes-auto-color.mjs +23 -4
- package/fesm2022/taiga-ui-core-pipes-auto-color.mjs.map +1 -1
- package/fesm2022/taiga-ui-core-pipes-calendar-sheet.mjs +0 -1
- package/fesm2022/taiga-ui-core-pipes-calendar-sheet.mjs.map +1 -1
- package/fesm2022/taiga-ui-core-pipes-flag.mjs +0 -1
- package/fesm2022/taiga-ui-core-pipes-flag.mjs.map +1 -1
- package/fesm2022/taiga-ui-core-pipes-format-date.mjs +0 -1
- package/fesm2022/taiga-ui-core-pipes-format-date.mjs.map +1 -1
- package/fesm2022/taiga-ui-core-pipes-format-number.mjs +19 -13
- package/fesm2022/taiga-ui-core-pipes-format-number.mjs.map +1 -1
- package/fesm2022/taiga-ui-core-pipes-initials.mjs +0 -1
- package/fesm2022/taiga-ui-core-pipes-initials.mjs.map +1 -1
- package/fesm2022/taiga-ui-core-pipes-order-week-days.mjs +0 -1
- package/fesm2022/taiga-ui-core-pipes-order-week-days.mjs.map +1 -1
- package/fesm2022/taiga-ui-core-pipes.mjs +0 -1
- package/fesm2022/taiga-ui-core-pipes.mjs.map +1 -1
- package/fesm2022/taiga-ui-core-tokens.mjs +22 -21
- package/fesm2022/taiga-ui-core-tokens.mjs.map +1 -1
- package/fesm2022/taiga-ui-core-utils-format.mjs +1 -22
- package/fesm2022/taiga-ui-core-utils-format.mjs.map +1 -1
- package/fesm2022/taiga-ui-core-utils-miscellaneous.mjs +7 -16
- package/fesm2022/taiga-ui-core-utils-miscellaneous.mjs.map +1 -1
- package/package.json +13 -22
- package/{utils/format/string-hash-to-hsl.d.ts → pipes/auto-color/auto-color.d.ts} +1 -1
- package/pipes/auto-color/index.d.ts +1 -0
- package/pipes/format-number/format-number.pipe.d.ts +6 -4
- package/pipes/index.d.ts +0 -1
- package/styles/components/link.less +1 -0
- package/styles/mixins/appearance.less +1 -1
- package/styles/mixins/mixins.less +0 -5
- package/styles/mixins/mixins.scss +0 -5
- package/styles/mixins/slider.scss +1 -2
- package/styles/theme/variables.less +2 -4
- package/tokens/common-icons.d.ts +1 -3
- package/tokens/date-format.d.ts +2 -3
- package/tokens/icons.d.ts +0 -4
- package/tokens/number-format.d.ts +2 -3
- package/types/index.d.ts +0 -2
- package/types/size.d.ts +0 -11
- package/utils/format/index.d.ts +0 -1
- package/utils/miscellaneous/get-duration.d.ts +2 -0
- package/utils/miscellaneous/index.d.ts +1 -1
- package/components/alert/alert.component.d.ts +0 -14
- package/components/alert/alert.directive.d.ts +0 -8
- package/components/alert/alert.interfaces.d.ts +0 -13
- package/components/alert/alert.service.d.ts +0 -11
- package/components/alert/alert.tokens.d.ts +0 -6
- package/components/alert/index.d.ts +0 -5
- package/components/data-list/data-list.directive.d.ts +0 -7
- package/components/data-list/option/option-legacy.component.d.ts +0 -24
- package/components/dialog/active-zone-adapter.directive.d.ts +0 -11
- package/components/dialog/dialogs.component.d.ts +0 -8
- package/components/header/header.directive.d.ts +0 -17
- package/components/header/index.d.ts +0 -1
- package/directives/dropdown/dropdown-open-legacy.directive.d.ts +0 -12
- package/directives/notification/index.d.ts +0 -2
- package/fesm2022/taiga-ui-core-components-alert.mjs +0 -110
- package/fesm2022/taiga-ui-core-components-alert.mjs.map +0 -1
- package/fesm2022/taiga-ui-core-components-header.mjs +0 -42
- package/fesm2022/taiga-ui-core-components-header.mjs.map +0 -1
- package/fesm2022/taiga-ui-core-directives-notification.mjs +0 -73
- package/fesm2022/taiga-ui-core-directives-notification.mjs.map +0 -1
- package/fesm2022/taiga-ui-core-pipes-month.mjs +0 -30
- package/fesm2022/taiga-ui-core-pipes-month.mjs.map +0 -1
- package/pipes/month/index.d.ts +0 -1
- package/pipes/month/month.pipe.d.ts +0 -10
- package/types/range-state.d.ts +0 -4
- package/types/value-content-context.d.ts +0 -4
- package/utils/miscellaneous/to-animation-options.d.ts +0 -4
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { Injectable, Directive, InjectionToken, Optional, Self, SkipSelf, inject, Input,
|
|
3
|
-
import { takeUntilDestroyed, toObservable } from '@angular/core/rxjs-interop';
|
|
2
|
+
import { Injectable, Directive, InjectionToken, Optional, Self, SkipSelf, inject, Input, ChangeDetectorRef, effect, signal, INJECTOR, input, computed, TemplateRef, forwardRef, ChangeDetectionStrategy, Component, PLATFORM_ID, contentChild, ElementRef, model, ViewContainerRef } from '@angular/core';
|
|
3
|
+
import { outputFromObservable, takeUntilDestroyed, toObservable } from '@angular/core/rxjs-interop';
|
|
4
4
|
import { EMPTY_CLIENT_RECT, TUI_TRUE_HANDLER, CHAR_ZERO_WIDTH_SPACE, CHAR_NO_BREAK_SPACE } from '@taiga-ui/cdk/constants';
|
|
5
5
|
import * as i1 from '@taiga-ui/cdk/directives/active-zone';
|
|
6
6
|
import { TuiActiveZone } from '@taiga-ui/cdk/directives/active-zone';
|
|
@@ -8,24 +8,25 @@ import * as i2 from '@taiga-ui/cdk/directives/animated';
|
|
|
8
8
|
import { TuiAnimated } from '@taiga-ui/cdk/directives/animated';
|
|
9
9
|
import { tuiInjectElement, tuiGetActualTarget, tuiPointToClientRect, tuiIsElement, tuiIsHTMLElement, tuiIsElementEditable, tuiIsTextNode, tuiIsTextfield } from '@taiga-ui/cdk/utils/dom';
|
|
10
10
|
import { tuiClamp } from '@taiga-ui/cdk/utils/math';
|
|
11
|
-
import {
|
|
12
|
-
import { TuiDriverDirective, TuiPositionAccessor, tuiFallbackAccessor, TuiRectAccessor,
|
|
11
|
+
import { tuiPx, tuiSetSignal, tuiIsString } from '@taiga-ui/cdk/utils/miscellaneous';
|
|
12
|
+
import { TuiDriverDirective, TuiPositionAccessor, tuiFallbackAccessor, TuiRectAccessor, tuiAsVehicle, tuiPositionAccessorFor, tuiRectAccessorFor, tuiAsDriver, tuiAsRectAccessor, TuiDriver, tuiAsPositionAccessor } from '@taiga-ui/core/classes';
|
|
13
13
|
import { TuiScrollbar } from '@taiga-ui/core/components/scrollbar';
|
|
14
14
|
import { TuiVisualViewportService, TuiPositionService } from '@taiga-ui/core/services';
|
|
15
15
|
import { TUI_VIEWPORT, TUI_DARK_MODE, TUI_SELECTION_STREAM } from '@taiga-ui/core/tokens';
|
|
16
16
|
import { PolymorpheusComponent, PolymorpheusTemplate, PolymorpheusOutlet } from '@taiga-ui/polymorpheus';
|
|
17
|
-
import { BehaviorSubject, Subject, throttleTime, takeWhile, map, merge, filter, fromEvent, switchMap, delay, startWith, takeUntil,
|
|
17
|
+
import { BehaviorSubject, Subject, distinctUntilChanged, throttleTime, takeWhile, map, merge, filter, fromEvent, switchMap, delay, startWith, takeUntil, of, tap, share, combineLatest } from 'rxjs';
|
|
18
18
|
import { coerceArray } from '@angular/cdk/coercion';
|
|
19
19
|
import { tuiZonefreeScheduler, tuiTypedFromEvent, tuiZonefree, tuiIfMap, tuiCloseWatcher, tuiZonefull, tuiWatch, tuiZoneOptimized } from '@taiga-ui/cdk/observables';
|
|
20
20
|
import { TuiPopupService } from '@taiga-ui/core/directives/popup';
|
|
21
21
|
import { tuiOverrideOptions, tuiCheckFixedPosition, tuiGetWordRange } from '@taiga-ui/core/utils';
|
|
22
|
-
import {
|
|
22
|
+
import { tuiProvide, tuiCreateOptions, tuiDirectiveBinding } from '@taiga-ui/cdk/utils/di';
|
|
23
23
|
import { isPlatformBrowser, DOCUMENT } from '@angular/common';
|
|
24
|
-
import {
|
|
24
|
+
import { __decorate } from 'tslib';
|
|
25
|
+
import { TUI_IS_TOUCH } from '@taiga-ui/cdk/tokens';
|
|
25
26
|
import { shouldCall } from '@taiga-ui/event-plugins';
|
|
26
27
|
import * as i1$1 from '@taiga-ui/cdk/directives/obscured';
|
|
27
28
|
import { TuiObscured } from '@taiga-ui/cdk/directives/obscured';
|
|
28
|
-
import {
|
|
29
|
+
import { tuiIsFocusable, tuiGetClosestFocusable, tuiIsFocusedIn, tuiGetFocused } from '@taiga-ui/cdk/utils/focus';
|
|
29
30
|
import { tuiIsEditingKey, tuiOverrideOptions as tuiOverrideOptions$1 } from '@taiga-ui/core/utils/miscellaneous';
|
|
30
31
|
|
|
31
32
|
class TuiDropdownDriver extends BehaviorSubject {
|
|
@@ -48,10 +49,7 @@ class TuiDropdownDriverDirective extends TuiDriverDirective {
|
|
|
48
49
|
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.15", type: TuiDropdownDriverDirective, isStandalone: true, usesInheritance: true, ngImport: i0 }); }
|
|
49
50
|
}
|
|
50
51
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiDropdownDriverDirective, decorators: [{
|
|
51
|
-
type: Directive
|
|
52
|
-
args: [{
|
|
53
|
-
standalone: true,
|
|
54
|
-
}]
|
|
52
|
+
type: Directive
|
|
55
53
|
}] });
|
|
56
54
|
|
|
57
55
|
/**
|
|
@@ -103,7 +101,6 @@ class TuiDropdownOptionsDirective {
|
|
|
103
101
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiDropdownOptionsDirective, decorators: [{
|
|
104
102
|
type: Directive,
|
|
105
103
|
args: [{
|
|
106
|
-
standalone: true,
|
|
107
104
|
selector: '[tuiDropdownAlign], [tuiDropdownAppearance], [tuiDropdownDirection], [tuiDropdownLimitWidth], [tuiDropdownMinHeight], [tuiDropdownMaxHeight], [tuiDropdownOffset]',
|
|
108
105
|
providers: [tuiProvide(TUI_DROPDOWN_OPTIONS, TuiDropdownOptionsDirective)],
|
|
109
106
|
}]
|
|
@@ -136,18 +133,16 @@ class TuiDropdownPosition extends TuiPositionAccessor {
|
|
|
136
133
|
this.el = tuiInjectElement();
|
|
137
134
|
this.options = inject(TUI_DROPDOWN_OPTIONS);
|
|
138
135
|
this.viewport = inject(TUI_VIEWPORT);
|
|
139
|
-
this.
|
|
136
|
+
this.direction = new Subject();
|
|
140
137
|
this.type = 'dropdown';
|
|
141
|
-
this.accessor = tuiFallbackAccessor('dropdown')(inject(TuiRectAccessor
|
|
142
|
-
|
|
143
|
-
emitDirection(direction) {
|
|
144
|
-
this.directionChange.emit(direction);
|
|
138
|
+
this.accessor = tuiFallbackAccessor('dropdown')(inject(TuiRectAccessor, { optional: true }), { getClientRect: () => this.el.getBoundingClientRect() });
|
|
139
|
+
this.tuiDropdownDirectionChange = outputFromObservable(this.direction.pipe(distinctUntilChanged()));
|
|
145
140
|
}
|
|
146
141
|
getPosition({ width, height }) {
|
|
147
142
|
if (!width && !height) {
|
|
148
143
|
this.previous = undefined;
|
|
149
144
|
}
|
|
150
|
-
const hostRect = this.accessor
|
|
145
|
+
const hostRect = this.accessor.getClientRect();
|
|
151
146
|
const viewportRect = this.viewport.getClientRect();
|
|
152
147
|
const { minHeight, direction, offset, limitWidth } = this.options;
|
|
153
148
|
const align = this.getAlign(this.options.align);
|
|
@@ -177,11 +172,11 @@ class TuiDropdownPosition extends TuiPositionAccessor {
|
|
|
177
172
|
const better = available.top > available.bottom ? 'top' : 'bottom';
|
|
178
173
|
if ((available[previous] > minHeight && direction) ||
|
|
179
174
|
available[previous] > height) {
|
|
180
|
-
this.
|
|
175
|
+
this.direction.next(previous);
|
|
181
176
|
return [position[previous], position[align]];
|
|
182
177
|
}
|
|
183
178
|
this.previous = better;
|
|
184
|
-
this.
|
|
179
|
+
this.direction.next(better);
|
|
185
180
|
return [position[better], position[align]];
|
|
186
181
|
}
|
|
187
182
|
getAlign(align) {
|
|
@@ -192,27 +187,17 @@ class TuiDropdownPosition extends TuiPositionAccessor {
|
|
|
192
187
|
return rtl && align === 'right' ? 'left' : align;
|
|
193
188
|
}
|
|
194
189
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiDropdownPosition, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
|
|
195
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.15", type: TuiDropdownPosition, isStandalone: true, outputs: {
|
|
190
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.15", type: TuiDropdownPosition, isStandalone: true, outputs: { tuiDropdownDirectionChange: "tuiDropdownDirectionChange" }, usesInheritance: true, ngImport: i0 }); }
|
|
196
191
|
}
|
|
197
|
-
__decorate([
|
|
198
|
-
tuiPure
|
|
199
|
-
], TuiDropdownPosition.prototype, "emitDirection", null);
|
|
200
192
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiDropdownPosition, decorators: [{
|
|
201
|
-
type: Directive
|
|
202
|
-
|
|
203
|
-
standalone: true,
|
|
204
|
-
}]
|
|
205
|
-
}], propDecorators: { directionChange: [{
|
|
206
|
-
type: Output,
|
|
207
|
-
args: ['tuiDropdownDirectionChange']
|
|
208
|
-
}], emitDirection: [] } });
|
|
193
|
+
type: Directive
|
|
194
|
+
}] });
|
|
209
195
|
|
|
210
196
|
class TuiDropdownDirective {
|
|
211
197
|
constructor() {
|
|
212
198
|
this.refresh$ = new Subject();
|
|
213
199
|
this.service = inject(TuiPopupService);
|
|
214
200
|
this.cdr = inject(ChangeDetectorRef);
|
|
215
|
-
// TODO: think of a better solution later
|
|
216
201
|
this.drivers = coerceArray(inject(TuiDropdownDriver, { self: true, optional: true }));
|
|
217
202
|
this.sub = this.refresh$
|
|
218
203
|
.pipe(throttleTime(0, tuiZonefreeScheduler()), takeUntilDestroyed())
|
|
@@ -220,33 +205,25 @@ class TuiDropdownDirective {
|
|
|
220
205
|
this.ref()?.changeDetectorRef.detectChanges();
|
|
221
206
|
this.ref()?.changeDetectorRef.markForCheck();
|
|
222
207
|
});
|
|
208
|
+
this.autoClose = effect(() => {
|
|
209
|
+
if (!this.content()) {
|
|
210
|
+
this.toggle(false);
|
|
211
|
+
}
|
|
212
|
+
});
|
|
213
|
+
this.ref = signal(null);
|
|
223
214
|
this.el = tuiInjectElement();
|
|
224
215
|
this.type = 'dropdown';
|
|
225
216
|
this.component = new PolymorpheusComponent(inject(TUI_DROPDOWN_COMPONENT), inject(INJECTOR));
|
|
226
|
-
this.
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
this._content.set(content instanceof TemplateRef
|
|
233
|
-
? new PolymorpheusTemplate(content, this.cdr)
|
|
234
|
-
: content);
|
|
235
|
-
if (!this._content()) {
|
|
236
|
-
this.toggle(false);
|
|
237
|
-
}
|
|
217
|
+
this.tuiDropdown = input();
|
|
218
|
+
this.content = computed((content = this.tuiDropdown()) => {
|
|
219
|
+
return content instanceof TemplateRef
|
|
220
|
+
? new PolymorpheusTemplate(content, this.cdr)
|
|
221
|
+
: content;
|
|
222
|
+
});
|
|
238
223
|
}
|
|
239
224
|
get position() {
|
|
240
225
|
return tuiCheckFixedPosition(this.el) ? 'fixed' : 'absolute';
|
|
241
226
|
}
|
|
242
|
-
// TODO(v5): delete
|
|
243
|
-
get content() {
|
|
244
|
-
return this._content();
|
|
245
|
-
}
|
|
246
|
-
// TODO(v5): delete
|
|
247
|
-
set content(x) {
|
|
248
|
-
this._content.set(x);
|
|
249
|
-
}
|
|
250
227
|
ngAfterViewChecked() {
|
|
251
228
|
this.refresh$.next();
|
|
252
229
|
}
|
|
@@ -258,32 +235,25 @@ class TuiDropdownDirective {
|
|
|
258
235
|
}
|
|
259
236
|
toggle(show) {
|
|
260
237
|
const ref = this.ref();
|
|
261
|
-
if (show && this.
|
|
238
|
+
if (show && this.content() && !ref) {
|
|
262
239
|
this.ref.set(this.service.add(this.component));
|
|
263
240
|
}
|
|
264
241
|
else if (!show && ref) {
|
|
265
242
|
this.ref.set(null);
|
|
266
243
|
ref.destroy();
|
|
267
244
|
}
|
|
268
|
-
this.drivers.forEach((driver) => driver?.next(show));
|
|
269
245
|
// TODO: Remove in v5, only needed in Angular 16
|
|
270
246
|
this.cdr.markForCheck();
|
|
247
|
+
this.drivers.forEach((driver) => driver?.next(show));
|
|
271
248
|
}
|
|
272
249
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiDropdownDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
273
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "
|
|
274
|
-
tuiAsRectAccessor(TuiDropdownDirective),
|
|
275
|
-
tuiAsVehicle(TuiDropdownDirective),
|
|
276
|
-
], exportAs: ["tuiDropdown"], hostDirectives: [{ directive: TuiDropdownDriverDirective }, { directive: TuiDropdownPosition, outputs: ["tuiDropdownDirectionChange", "tuiDropdownDirectionChange"] }], ngImport: i0 }); }
|
|
250
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "19.2.15", type: TuiDropdownDirective, isStandalone: true, selector: "[tuiDropdown]:not(ng-container):not(ng-template)", inputs: { tuiDropdown: { classPropertyName: "tuiDropdown", publicName: "tuiDropdown", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class.tui-dropdown-open": "ref()" } }, providers: [tuiAsVehicle(TuiDropdownDirective)], exportAs: ["tuiDropdown"], hostDirectives: [{ directive: TuiDropdownDriverDirective }, { directive: TuiDropdownPosition, outputs: ["tuiDropdownDirectionChange", "tuiDropdownDirectionChange"] }], ngImport: i0 }); }
|
|
277
251
|
}
|
|
278
252
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiDropdownDirective, decorators: [{
|
|
279
253
|
type: Directive,
|
|
280
254
|
args: [{
|
|
281
|
-
standalone: true,
|
|
282
255
|
selector: '[tuiDropdown]:not(ng-container):not(ng-template)',
|
|
283
|
-
providers: [
|
|
284
|
-
tuiAsRectAccessor(TuiDropdownDirective),
|
|
285
|
-
tuiAsVehicle(TuiDropdownDirective),
|
|
286
|
-
],
|
|
256
|
+
providers: [tuiAsVehicle(TuiDropdownDirective)],
|
|
287
257
|
exportAs: 'tuiDropdown',
|
|
288
258
|
hostDirectives: [
|
|
289
259
|
TuiDropdownDriverDirective,
|
|
@@ -296,9 +266,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImpo
|
|
|
296
266
|
'[class.tui-dropdown-open]': 'ref()',
|
|
297
267
|
},
|
|
298
268
|
}]
|
|
299
|
-
}]
|
|
300
|
-
type: Input
|
|
301
|
-
}] } });
|
|
269
|
+
}] });
|
|
302
270
|
|
|
303
271
|
/**
|
|
304
272
|
* @description:
|
|
@@ -355,32 +323,32 @@ class TuiDropdownComponent {
|
|
|
355
323
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.15", type: TuiDropdownComponent, isStandalone: true, selector: "tui-dropdown", host: { properties: { "attr.data-appearance": "options.appearance", "attr.tuiTheme": "theme()" } }, providers: [
|
|
356
324
|
TuiPositionService,
|
|
357
325
|
tuiPositionAccessorFor('dropdown', TuiDropdownPosition),
|
|
358
|
-
tuiRectAccessorFor('dropdown', TuiDropdownDirective),
|
|
359
|
-
], hostDirectives: [{ directive: i1.TuiActiveZone }, { directive: i2.TuiAnimated }], ngImport: i0, template: "<tui-scrollbar class=\"t-scroll\">\n <div\n *polymorpheusOutlet=\"directive.
|
|
326
|
+
tuiRectAccessorFor('dropdown', forwardRef(() => TuiDropdownDirective)),
|
|
327
|
+
], hostDirectives: [{ directive: i1.TuiActiveZone }, { directive: i2.TuiAnimated }], ngImport: i0, template: "<tui-scrollbar class=\"t-scroll\">\n <div\n *polymorpheusOutlet=\"directive.content() as text; context: {$implicit: close}\"\n class=\"t-primitive\"\n >\n {{ text }}\n </div>\n</tui-scrollbar>\n", styles: [":host{position:absolute;display:flex;box-shadow:var(--tui-shadow-medium);color:var(--tui-text-primary);background:var(--tui-background-elevation-3);border-radius:var(--tui-radius-m);overflow:hidden;border:1px solid var(--tui-border-normal);box-sizing:border-box;isolation:isolate;pointer-events:auto;--tui-from: translateY(-1rem)}:host.tui-enter,:host.tui-leave{animation-name:tuiFade,tuiSlide}:host:not([style*=top]){visibility:hidden}.t-scroll{flex-grow:1;max-inline-size:100%;inline-size:max-content;overscroll-behavior:none}.t-primitive{padding:1rem}\n"], dependencies: [{ kind: "directive", type: PolymorpheusOutlet, selector: "[polymorpheusOutlet]", inputs: ["polymorpheusOutlet", "polymorpheusOutletContext"] }, { kind: "component", type: TuiScrollbar, selector: "tui-scrollbar", inputs: ["hidden"] }], changeDetection: i0.ChangeDetectionStrategy.Default }); }
|
|
360
328
|
}
|
|
361
329
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiDropdownComponent, decorators: [{
|
|
362
330
|
type: Component,
|
|
363
331
|
args: [{ selector: 'tui-dropdown', imports: [PolymorpheusOutlet, TuiScrollbar], changeDetection: ChangeDetectionStrategy.Default, providers: [
|
|
364
332
|
TuiPositionService,
|
|
365
333
|
tuiPositionAccessorFor('dropdown', TuiDropdownPosition),
|
|
366
|
-
tuiRectAccessorFor('dropdown', TuiDropdownDirective),
|
|
334
|
+
tuiRectAccessorFor('dropdown', forwardRef(() => TuiDropdownDirective)),
|
|
367
335
|
], hostDirectives: [TuiActiveZone, TuiAnimated], host: {
|
|
368
336
|
'[attr.data-appearance]': 'options.appearance',
|
|
369
337
|
'[attr.tuiTheme]': 'theme()',
|
|
370
|
-
}, template: "<tui-scrollbar class=\"t-scroll\">\n <div\n *polymorpheusOutlet=\"directive.
|
|
338
|
+
}, template: "<tui-scrollbar class=\"t-scroll\">\n <div\n *polymorpheusOutlet=\"directive.content() as text; context: {$implicit: close}\"\n class=\"t-primitive\"\n >\n {{ text }}\n </div>\n</tui-scrollbar>\n", styles: [":host{position:absolute;display:flex;box-shadow:var(--tui-shadow-medium);color:var(--tui-text-primary);background:var(--tui-background-elevation-3);border-radius:var(--tui-radius-m);overflow:hidden;border:1px solid var(--tui-border-normal);box-sizing:border-box;isolation:isolate;pointer-events:auto;--tui-from: translateY(-1rem)}:host.tui-enter,:host.tui-leave{animation-name:tuiFade,tuiSlide}:host:not([style*=top]){visibility:hidden}.t-scroll{flex-grow:1;max-inline-size:100%;inline-size:max-content;overscroll-behavior:none}.t-primitive{padding:1rem}\n"] }]
|
|
371
339
|
}] });
|
|
372
340
|
|
|
373
341
|
class TuiDropdownContent {
|
|
374
342
|
constructor() {
|
|
375
343
|
this.directive = inject(TuiDropdownDirective);
|
|
376
|
-
this.directive.tuiDropdown
|
|
344
|
+
tuiSetSignal(this.directive.tuiDropdown, inject(TemplateRef));
|
|
377
345
|
if (isPlatformBrowser(inject(PLATFORM_ID)) &&
|
|
378
346
|
this.directive.el.matches(':focus-within')) {
|
|
379
347
|
this.directive.toggle(true);
|
|
380
348
|
}
|
|
381
349
|
}
|
|
382
350
|
ngOnDestroy() {
|
|
383
|
-
this.directive.tuiDropdown
|
|
351
|
+
tuiSetSignal(this.directive.tuiDropdown, null);
|
|
384
352
|
}
|
|
385
353
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiDropdownContent, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
386
354
|
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.15", type: TuiDropdownContent, isStandalone: true, selector: "ng-template[tuiDropdown]", ngImport: i0 }); }
|
|
@@ -388,7 +356,6 @@ class TuiDropdownContent {
|
|
|
388
356
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiDropdownContent, decorators: [{
|
|
389
357
|
type: Directive,
|
|
390
358
|
args: [{
|
|
391
|
-
standalone: true,
|
|
392
359
|
selector: 'ng-template[tuiDropdown]',
|
|
393
360
|
}]
|
|
394
361
|
}], ctorParameters: () => [] });
|
|
@@ -436,7 +403,6 @@ __decorate([
|
|
|
436
403
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiDropdownContext, decorators: [{
|
|
437
404
|
type: Directive,
|
|
438
405
|
args: [{
|
|
439
|
-
standalone: true,
|
|
440
406
|
selector: '[tuiDropdownContext]',
|
|
441
407
|
providers: [
|
|
442
408
|
TuiActiveZone,
|
|
@@ -462,48 +428,40 @@ const TUI_DROPDOWN_HOVER_DEFAULT_OPTIONS = {
|
|
|
462
428
|
/**
|
|
463
429
|
* Default parameters for dropdown hover directive
|
|
464
430
|
*/
|
|
465
|
-
const TUI_DROPDOWN_HOVER_OPTIONS =
|
|
466
|
-
factory: () => TUI_DROPDOWN_HOVER_DEFAULT_OPTIONS,
|
|
467
|
-
});
|
|
468
|
-
function tuiDropdownHoverOptionsProvider(options) {
|
|
469
|
-
return tuiProvideOptions(TUI_DROPDOWN_HOVER_OPTIONS, options, TUI_DROPDOWN_HOVER_DEFAULT_OPTIONS);
|
|
470
|
-
}
|
|
431
|
+
const [TUI_DROPDOWN_HOVER_OPTIONS, tuiDropdownHoverOptionsProvider] = tuiCreateOptions(TUI_DROPDOWN_HOVER_DEFAULT_OPTIONS);
|
|
471
432
|
|
|
472
433
|
function shouldClose(event) {
|
|
473
434
|
return (
|
|
474
435
|
// @ts-ignore
|
|
475
436
|
typeof CloseWatcher === 'undefined' &&
|
|
476
|
-
// ?. for
|
|
437
|
+
// ?. for autofill events
|
|
477
438
|
event.key?.toLowerCase() === 'escape' &&
|
|
478
|
-
this.
|
|
479
|
-
|
|
439
|
+
this.enabled() &&
|
|
440
|
+
this.open() &&
|
|
480
441
|
!this['dropdown']()?.nextElementSibling);
|
|
481
442
|
}
|
|
482
443
|
class TuiDropdownOpen {
|
|
483
444
|
constructor() {
|
|
445
|
+
this.dropdownHost = contentChild('tuiDropdownHost', {
|
|
446
|
+
descendants: true,
|
|
447
|
+
read: ElementRef,
|
|
448
|
+
});
|
|
484
449
|
this.directive = inject(TuiDropdownDirective);
|
|
485
450
|
this.el = tuiInjectElement();
|
|
486
451
|
this.obscured = inject(TuiObscured);
|
|
487
452
|
this.activeZone = inject(TuiActiveZone);
|
|
488
|
-
this.dropdown = computed(() => this.directive.ref()?.location.nativeElement);
|
|
489
|
-
this.tuiDropdownEnabled = true;
|
|
490
|
-
this.tuiDropdownOpen = false;
|
|
491
|
-
this.tuiDropdownOpenChange = new EventEmitter();
|
|
492
|
-
// TODO: make it private when all legacy controls will be deleted from @taiga-ui/legacy (5.0)
|
|
493
453
|
this.driver = inject(TuiDropdownDriver);
|
|
494
|
-
this.
|
|
495
|
-
|
|
454
|
+
this.dropdown = computed(() => this.directive.ref()?.location.nativeElement);
|
|
455
|
+
this.enabled = input(true, { alias: 'tuiDropdownEnabled' });
|
|
456
|
+
this.open = model(false, { alias: 'tuiDropdownOpen' });
|
|
457
|
+
this.driveEffect = effect(() => this.drive(this.open()));
|
|
458
|
+
this.syncSub = this.driver
|
|
459
|
+
.pipe(filter((open) => open !== this.open()), takeUntilDestroyed())
|
|
460
|
+
.subscribe((open) => this.update(open));
|
|
461
|
+
this.closeSub = this.driver
|
|
462
|
+
.pipe(tuiIfMap(() => merge(tuiCloseWatcher(), this.obscured.tuiObscured$.pipe(filter(Boolean)), this.activeZone.tuiActiveZoneChange.pipe(filter((a) => !a)), fromEvent(this.el, 'focusin').pipe(filter((event) => !this.host.contains(tuiGetActualTarget(event)) ||
|
|
496
463
|
!this.directive.ref())))), tuiZonefull(), tuiWatch(), takeUntilDestroyed())
|
|
497
464
|
.subscribe(() => this.toggle(false));
|
|
498
|
-
this.sync = this.driver.pipe(takeUntilDestroyed()).subscribe((open) => {
|
|
499
|
-
if (open !== this.tuiDropdownOpen) {
|
|
500
|
-
this.update(open);
|
|
501
|
-
}
|
|
502
|
-
});
|
|
503
|
-
}
|
|
504
|
-
ngOnChanges() {
|
|
505
|
-
this.drive(!!this.tuiDropdownOpen);
|
|
506
|
-
this.tuiDropdownOpenChange.emit(!!this.tuiDropdownOpen);
|
|
507
465
|
}
|
|
508
466
|
toggle(open) {
|
|
509
467
|
if (this.focused && !open) {
|
|
@@ -517,14 +475,14 @@ class TuiDropdownOpen {
|
|
|
517
475
|
}
|
|
518
476
|
onClick(target) {
|
|
519
477
|
if (!this.editable && this.host.contains(target)) {
|
|
520
|
-
this.update(!this.
|
|
478
|
+
this.update(!this.open());
|
|
521
479
|
}
|
|
522
480
|
}
|
|
523
481
|
onArrow(event, up) {
|
|
524
482
|
if (!tuiIsElement(event.target) ||
|
|
525
483
|
!this.host.contains(event.target) ||
|
|
526
|
-
!this.
|
|
527
|
-
!this.directive.
|
|
484
|
+
!this.enabled() ||
|
|
485
|
+
!this.directive.content()) {
|
|
528
486
|
return;
|
|
529
487
|
}
|
|
530
488
|
event.preventDefault();
|
|
@@ -542,11 +500,11 @@ class TuiDropdownOpen {
|
|
|
542
500
|
}
|
|
543
501
|
}
|
|
544
502
|
get host() {
|
|
545
|
-
const initial = this.dropdownHost?.nativeElement || this.el;
|
|
546
|
-
const focusable =
|
|
503
|
+
const initial = this.dropdownHost()?.nativeElement || this.el;
|
|
504
|
+
const focusable = tuiIsFocusable(initial)
|
|
547
505
|
? initial
|
|
548
506
|
: tuiGetClosestFocusable({ initial, root: this.el });
|
|
549
|
-
return this.dropdownHost?.nativeElement || focusable || this.el;
|
|
507
|
+
return this.dropdownHost()?.nativeElement || focusable || this.el;
|
|
550
508
|
}
|
|
551
509
|
get editable() {
|
|
552
510
|
return tuiIsElementEditable(this.host);
|
|
@@ -555,15 +513,14 @@ class TuiDropdownOpen {
|
|
|
555
513
|
return tuiIsFocusedIn(this.host) || tuiIsFocusedIn(this.dropdown());
|
|
556
514
|
}
|
|
557
515
|
update(open) {
|
|
558
|
-
if (open && !this.
|
|
516
|
+
if (open && !this.enabled()) {
|
|
559
517
|
return this.drive();
|
|
560
518
|
}
|
|
561
|
-
this.
|
|
562
|
-
this.tuiDropdownOpenChange.emit(open);
|
|
519
|
+
this.open.set(open);
|
|
563
520
|
this.drive();
|
|
564
521
|
}
|
|
565
|
-
drive(open =
|
|
566
|
-
this.obscured.tuiObscuredEnabled
|
|
522
|
+
drive(open = this.open() && this.enabled()) {
|
|
523
|
+
tuiSetSignal(this.obscured.tuiObscuredEnabled, open);
|
|
567
524
|
this.driver.next(open);
|
|
568
525
|
}
|
|
569
526
|
focusDropdown(previous) {
|
|
@@ -580,7 +537,7 @@ class TuiDropdownOpen {
|
|
|
580
537
|
focusable?.focus();
|
|
581
538
|
}
|
|
582
539
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiDropdownOpen, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
583
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "
|
|
540
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.2.0", version: "19.2.15", type: TuiDropdownOpen, isStandalone: true, selector: "[tuiDropdown][tuiDropdownAuto],[tuiDropdown][tuiDropdownOpen],[tuiDropdown][tuiDropdownOpenChange]", inputs: { enabled: { classPropertyName: "enabled", publicName: "tuiDropdownEnabled", isSignal: true, isRequired: false, transformFunction: null }, open: { classPropertyName: "open", publicName: "tuiDropdownOpen", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { open: "tuiDropdownOpenChange" }, host: { listeners: { "click": "onClick($event.target)", "keydown.arrowDown": "onArrow($event, false)", "keydown.arrowUp": "onArrow($event, true)", "document:keydown.zoneless.capture": "onEsc($event)", "document:keydown.zoneless": "onKeydown($event)", "tuiActiveZoneChange": "0" } }, providers: [TuiDropdownDriver, tuiAsDriver(TuiDropdownDriver)], queries: [{ propertyName: "dropdownHost", first: true, predicate: ["tuiDropdownHost"], descendants: true, read: ElementRef, isSignal: true }], hostDirectives: [{ directive: i1$1.TuiObscured }, { directive: i1.TuiActiveZone, inputs: ["tuiActiveZoneParent", "tuiActiveZoneParent"], outputs: ["tuiActiveZoneChange", "tuiActiveZoneChange"] }], ngImport: i0 }); }
|
|
584
541
|
}
|
|
585
542
|
__decorate([
|
|
586
543
|
shouldCall(shouldClose)
|
|
@@ -588,8 +545,7 @@ __decorate([
|
|
|
588
545
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiDropdownOpen, decorators: [{
|
|
589
546
|
type: Directive,
|
|
590
547
|
args: [{
|
|
591
|
-
|
|
592
|
-
selector: '[tuiDropdown][tuiDropdownOpen],[tuiDropdown][tuiDropdownOpenChange]',
|
|
548
|
+
selector: '[tuiDropdown][tuiDropdownAuto],[tuiDropdown][tuiDropdownOpen],[tuiDropdown][tuiDropdownOpenChange]',
|
|
593
549
|
providers: [TuiDropdownDriver, tuiAsDriver(TuiDropdownDriver)],
|
|
594
550
|
hostDirectives: [
|
|
595
551
|
TuiObscured,
|
|
@@ -609,37 +565,32 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImpo
|
|
|
609
565
|
'(tuiActiveZoneChange)': '0',
|
|
610
566
|
},
|
|
611
567
|
}]
|
|
612
|
-
}], propDecorators: {
|
|
613
|
-
type: ContentChild,
|
|
614
|
-
args: ['tuiDropdownHost', { descendants: true, read: ElementRef }]
|
|
615
|
-
}], tuiDropdownEnabled: [{
|
|
616
|
-
type: Input
|
|
617
|
-
}], tuiDropdownOpen: [{
|
|
618
|
-
type: Input
|
|
619
|
-
}], tuiDropdownOpenChange: [{
|
|
620
|
-
type: Output
|
|
621
|
-
}], onEsc: [] } });
|
|
568
|
+
}], propDecorators: { onEsc: [] } });
|
|
622
569
|
|
|
623
570
|
class TuiDropdownHover extends TuiDriver {
|
|
624
571
|
constructor() {
|
|
625
572
|
super((subscriber) => this.stream$.subscribe(subscriber));
|
|
573
|
+
this.dropdownHost = contentChild('tuiDropdownHost', {
|
|
574
|
+
descendants: true,
|
|
575
|
+
read: ElementRef,
|
|
576
|
+
});
|
|
577
|
+
this.hovered = false;
|
|
626
578
|
this.el = tuiInjectElement();
|
|
627
579
|
this.doc = inject(DOCUMENT);
|
|
628
580
|
this.options = inject(TUI_DROPDOWN_HOVER_OPTIONS);
|
|
629
581
|
this.activeZone = inject(TuiActiveZone);
|
|
630
582
|
this.open = inject(TuiDropdownOpen, { optional: true });
|
|
583
|
+
this.stream$ = merge(
|
|
631
584
|
/**
|
|
632
585
|
* Dropdown can be removed not only via click/touch –
|
|
633
586
|
* swipe on mobile devices removes dropdown sheet without triggering new mouseover / mouseout events.
|
|
634
587
|
*/
|
|
635
|
-
|
|
636
|
-
this.stream$ = merge(this.dropdownExternalRemoval$.pipe(switchMap(() => tuiTypedFromEvent(this.doc, 'pointerdown').pipe(map(tuiGetActualTarget), delay(this.hideDelay), startWith(null), takeUntil(fromEvent(this.doc, 'mouseover'))))), tuiTypedFromEvent(this.doc, 'mouseover').pipe(map(tuiGetActualTarget)), tuiTypedFromEvent(this.doc, 'mouseout').pipe(map((e) => e.relatedTarget))).pipe(map((element) => tuiIsElement(element) && this.isHovered(element)), distinctUntilChanged(), switchMap((v) => of(v).pipe(delay(v ? this.showDelay : this.hideDelay))), tuiZoneOptimized(), tap((hovered) => {
|
|
588
|
+
toObservable(inject(TuiDropdownDirective).ref).pipe(filter((x) => !x && this.hovered), switchMap(() => tuiTypedFromEvent(this.doc, 'pointerdown').pipe(map(tuiGetActualTarget), delay(this.tuiDropdownHideDelay()), startWith(null), takeUntil(fromEvent(this.doc, 'mouseover'))))), tuiTypedFromEvent(this.doc, 'mouseover').pipe(map(tuiGetActualTarget)), tuiTypedFromEvent(this.doc, 'mouseout').pipe(map((e) => e.relatedTarget))).pipe(map((element) => tuiIsElement(element) && this.isHovered(element)), distinctUntilChanged(), switchMap((v) => of(v).pipe(delay(v ? this.tuiDropdownShowDelay() : this.tuiDropdownHideDelay()))), tuiZoneOptimized(), tap((hovered) => {
|
|
637
589
|
this.hovered = hovered;
|
|
638
590
|
this.open?.toggle(hovered);
|
|
639
591
|
}), share());
|
|
640
|
-
this.
|
|
641
|
-
this.
|
|
642
|
-
this.hovered = false;
|
|
592
|
+
this.tuiDropdownShowDelay = input(this.options.showDelay);
|
|
593
|
+
this.tuiDropdownHideDelay = input(this.options.hideDelay);
|
|
643
594
|
this.type = 'dropdown';
|
|
644
595
|
}
|
|
645
596
|
onClick(event) {
|
|
@@ -648,85 +599,43 @@ class TuiDropdownHover extends TuiDriver {
|
|
|
648
599
|
}
|
|
649
600
|
}
|
|
650
601
|
isHovered(element) {
|
|
651
|
-
const host = this.dropdownHost?.nativeElement || this.el;
|
|
602
|
+
const host = this.dropdownHost()?.nativeElement || this.el;
|
|
652
603
|
const hovered = host.contains(element);
|
|
653
604
|
const child = !this.el.contains(element) && this.activeZone.contains(element);
|
|
654
605
|
return hovered || child;
|
|
655
606
|
}
|
|
656
607
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiDropdownHover, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
657
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "
|
|
608
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.2.0", version: "19.2.15", type: TuiDropdownHover, isStandalone: true, selector: "[tuiDropdownHover]", inputs: { tuiDropdownShowDelay: { classPropertyName: "tuiDropdownShowDelay", publicName: "tuiDropdownShowDelay", isSignal: true, isRequired: false, transformFunction: null }, tuiDropdownHideDelay: { classPropertyName: "tuiDropdownHideDelay", publicName: "tuiDropdownHideDelay", isSignal: true, isRequired: false, transformFunction: null } }, host: { listeners: { "click.capture": "onClick($event)" } }, providers: [TuiActiveZone, tuiAsDriver(TuiDropdownHover)], queries: [{ propertyName: "dropdownHost", first: true, predicate: ["tuiDropdownHost"], descendants: true, read: ElementRef, isSignal: true }], usesInheritance: true, ngImport: i0 }); }
|
|
658
609
|
}
|
|
659
610
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiDropdownHover, decorators: [{
|
|
660
611
|
type: Directive,
|
|
661
612
|
args: [{
|
|
662
|
-
standalone: true,
|
|
663
613
|
selector: '[tuiDropdownHover]',
|
|
664
614
|
providers: [TuiActiveZone, tuiAsDriver(TuiDropdownHover)],
|
|
665
615
|
host: {
|
|
666
616
|
'(click.capture)': 'onClick($event)',
|
|
667
617
|
},
|
|
668
618
|
}]
|
|
669
|
-
}], ctorParameters: () => []
|
|
670
|
-
type: ContentChild,
|
|
671
|
-
args: ['tuiDropdownHost', { descendants: true, read: ElementRef }]
|
|
672
|
-
}], showDelay: [{
|
|
673
|
-
type: Input,
|
|
674
|
-
args: ['tuiDropdownShowDelay']
|
|
675
|
-
}], hideDelay: [{
|
|
676
|
-
type: Input,
|
|
677
|
-
args: ['tuiDropdownHideDelay']
|
|
678
|
-
}] } });
|
|
619
|
+
}], ctorParameters: () => [] });
|
|
679
620
|
|
|
680
621
|
class TuiDropdownManual {
|
|
681
622
|
constructor() {
|
|
682
623
|
this.driver = inject(TuiDropdownDriver);
|
|
683
|
-
this.tuiDropdownManual = false;
|
|
624
|
+
this.tuiDropdownManual = input(false);
|
|
684
625
|
}
|
|
685
626
|
ngOnChanges() {
|
|
686
|
-
this.driver.next(!!this.tuiDropdownManual);
|
|
627
|
+
this.driver.next(!!this.tuiDropdownManual());
|
|
687
628
|
}
|
|
688
629
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiDropdownManual, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
689
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "
|
|
630
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "19.2.15", type: TuiDropdownManual, isStandalone: true, selector: "[tuiDropdownManual]", inputs: { tuiDropdownManual: { classPropertyName: "tuiDropdownManual", publicName: "tuiDropdownManual", isSignal: true, isRequired: false, transformFunction: null } }, providers: [TuiDropdownDriver, tuiAsDriver(TuiDropdownDriver)], usesOnChanges: true, ngImport: i0 }); }
|
|
690
631
|
}
|
|
691
632
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiDropdownManual, decorators: [{
|
|
692
633
|
type: Directive,
|
|
693
634
|
args: [{
|
|
694
|
-
standalone: true,
|
|
695
635
|
selector: '[tuiDropdownManual]',
|
|
696
636
|
providers: [TuiDropdownDriver, tuiAsDriver(TuiDropdownDriver)],
|
|
697
637
|
}]
|
|
698
|
-
}]
|
|
699
|
-
type: Input
|
|
700
|
-
}] } });
|
|
701
|
-
|
|
702
|
-
/**
|
|
703
|
-
* @deprecated TODO: remove in v.5 when legacy controls are dropped
|
|
704
|
-
*/
|
|
705
|
-
class TuiDropdownOpenLegacy {
|
|
706
|
-
constructor() {
|
|
707
|
-
this.openStateSub = new Subject();
|
|
708
|
-
this.tuiDropdownOpenChange = this.openStateSub.pipe(distinctUntilChanged());
|
|
709
|
-
}
|
|
710
|
-
set tuiDropdownOpen(open) {
|
|
711
|
-
this.emitOpenChange(open);
|
|
712
|
-
}
|
|
713
|
-
emitOpenChange(open) {
|
|
714
|
-
this.openStateSub.next(open);
|
|
715
|
-
}
|
|
716
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiDropdownOpenLegacy, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
717
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.15", type: TuiDropdownOpenLegacy, isStandalone: true, selector: "[tuiDropdownOpen]:not([tuiDropdown]),[tuiDropdownOpenChange]:not([tuiDropdown])", inputs: { tuiDropdownOpen: "tuiDropdownOpen" }, outputs: { tuiDropdownOpenChange: "tuiDropdownOpenChange" }, ngImport: i0 }); }
|
|
718
|
-
}
|
|
719
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiDropdownOpenLegacy, decorators: [{
|
|
720
|
-
type: Directive,
|
|
721
|
-
args: [{
|
|
722
|
-
standalone: true,
|
|
723
|
-
selector: '[tuiDropdownOpen]:not([tuiDropdown]),[tuiDropdownOpenChange]:not([tuiDropdown])',
|
|
724
|
-
}]
|
|
725
|
-
}], propDecorators: { tuiDropdownOpenChange: [{
|
|
726
|
-
type: Output
|
|
727
|
-
}], tuiDropdownOpen: [{
|
|
728
|
-
type: Input
|
|
729
|
-
}] } });
|
|
638
|
+
}] });
|
|
730
639
|
|
|
731
640
|
class TuiDropdownPositionSided extends TuiPositionAccessor {
|
|
732
641
|
constructor() {
|
|
@@ -735,12 +644,12 @@ class TuiDropdownPositionSided extends TuiPositionAccessor {
|
|
|
735
644
|
this.viewport = inject(TUI_VIEWPORT);
|
|
736
645
|
this.vertical = inject(TuiDropdownPosition);
|
|
737
646
|
this.previous = this.options.direction || 'bottom';
|
|
738
|
-
this.tuiDropdownSided = '';
|
|
739
|
-
this.tuiDropdownSidedOffset = 4;
|
|
647
|
+
this.tuiDropdownSided = input('');
|
|
648
|
+
this.tuiDropdownSidedOffset = input(4);
|
|
740
649
|
this.type = 'dropdown';
|
|
741
650
|
}
|
|
742
651
|
getPosition(rect) {
|
|
743
|
-
if (this.tuiDropdownSided === false) {
|
|
652
|
+
if (this.tuiDropdownSided() === false) {
|
|
744
653
|
return this.vertical.getPosition(rect);
|
|
745
654
|
}
|
|
746
655
|
const { height, width } = rect;
|
|
@@ -756,38 +665,33 @@ class TuiDropdownPositionSided extends TuiPositionAccessor {
|
|
|
756
665
|
bottom: viewport.bottom - hostRect.top,
|
|
757
666
|
};
|
|
758
667
|
const position = {
|
|
759
|
-
top: hostRect.bottom - height + this.tuiDropdownSidedOffset + 1, // 1 for border
|
|
668
|
+
top: hostRect.bottom - height + this.tuiDropdownSidedOffset() + 1, // 1 for border
|
|
760
669
|
left: hostRect.left - width - offset,
|
|
761
670
|
right: hostRect.right + offset,
|
|
762
|
-
bottom: hostRect.top - this.tuiDropdownSidedOffset - 1, // 1 for border
|
|
671
|
+
bottom: hostRect.top - this.tuiDropdownSidedOffset() - 1, // 1 for border
|
|
763
672
|
};
|
|
764
673
|
const better = available.top > available.bottom ? 'top' : 'bottom';
|
|
765
674
|
const maxLeft = available.left > available.right ? position.left : position.right;
|
|
766
675
|
const left = available[align] > width ? position[align] : maxLeft;
|
|
767
676
|
if ((available[this.previous] > height && direction) ||
|
|
768
677
|
this.previous === better) {
|
|
769
|
-
this.vertical.
|
|
678
|
+
this.vertical.direction.next(this.previous);
|
|
770
679
|
return [position[this.previous], left];
|
|
771
680
|
}
|
|
772
681
|
this.previous = better;
|
|
773
|
-
this.vertical.
|
|
682
|
+
this.vertical.direction.next(better);
|
|
774
683
|
return [position[better], left];
|
|
775
684
|
}
|
|
776
685
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiDropdownPositionSided, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
|
|
777
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "
|
|
686
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "19.2.15", type: TuiDropdownPositionSided, isStandalone: true, selector: "[tuiDropdownSided]", inputs: { tuiDropdownSided: { classPropertyName: "tuiDropdownSided", publicName: "tuiDropdownSided", isSignal: true, isRequired: false, transformFunction: null }, tuiDropdownSidedOffset: { classPropertyName: "tuiDropdownSidedOffset", publicName: "tuiDropdownSidedOffset", isSignal: true, isRequired: false, transformFunction: null } }, providers: [TuiDropdownPosition, tuiAsPositionAccessor(TuiDropdownPositionSided)], usesInheritance: true, ngImport: i0 }); }
|
|
778
687
|
}
|
|
779
688
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiDropdownPositionSided, decorators: [{
|
|
780
689
|
type: Directive,
|
|
781
690
|
args: [{
|
|
782
|
-
standalone: true,
|
|
783
691
|
selector: '[tuiDropdownSided]',
|
|
784
692
|
providers: [TuiDropdownPosition, tuiAsPositionAccessor(TuiDropdownPositionSided)],
|
|
785
693
|
}]
|
|
786
|
-
}]
|
|
787
|
-
type: Input
|
|
788
|
-
}], tuiDropdownSidedOffset: [{
|
|
789
|
-
type: Input
|
|
790
|
-
}] } });
|
|
694
|
+
}] });
|
|
791
695
|
|
|
792
696
|
class TuiDropdownSelection extends TuiDriver {
|
|
793
697
|
constructor() {
|
|
@@ -796,9 +700,9 @@ class TuiDropdownSelection extends TuiDriver {
|
|
|
796
700
|
this.vcr = inject(ViewContainerRef);
|
|
797
701
|
this.dropdown = inject(TuiDropdownDirective);
|
|
798
702
|
this.el = tuiInjectElement();
|
|
799
|
-
this.handler
|
|
703
|
+
this.handler = computed((visible = this.tuiDropdownSelection()) => tuiIsString(visible) ? TUI_TRUE_HANDLER : visible);
|
|
800
704
|
this.stream$ = combineLatest([
|
|
801
|
-
this.handler
|
|
705
|
+
toObservable(this.handler),
|
|
802
706
|
inject(TUI_SELECTION_STREAM).pipe(map(() => this.getRange()), filter((range) => this.isValid(range)), distinctUntilChanged((x, y) => x.startOffset === y.startOffset &&
|
|
803
707
|
x.endOffset === y.endOffset &&
|
|
804
708
|
x.commonAncestorContainer === y.commonAncestorContainer)),
|
|
@@ -810,17 +714,15 @@ class TuiDropdownSelection extends TuiDriver {
|
|
|
810
714
|
: this.range;
|
|
811
715
|
return (contained && handler(this.range)) || this.inDropdown(range);
|
|
812
716
|
}));
|
|
813
|
-
this.range = inject(
|
|
814
|
-
|
|
717
|
+
this.range = isPlatformBrowser(inject(PLATFORM_ID))
|
|
718
|
+
? new Range()
|
|
719
|
+
: {};
|
|
815
720
|
this.type = 'dropdown';
|
|
816
|
-
|
|
817
|
-
|
|
818
|
-
if (!tuiIsString(visible)) {
|
|
819
|
-
this.handler$.next(visible);
|
|
820
|
-
}
|
|
721
|
+
this.tuiDropdownSelection = input('');
|
|
722
|
+
this.tuiDropdownSelectionPosition = input('selection');
|
|
821
723
|
}
|
|
822
724
|
getClientRect() {
|
|
823
|
-
switch (this.
|
|
725
|
+
switch (this.tuiDropdownSelectionPosition()) {
|
|
824
726
|
case 'tag': {
|
|
825
727
|
const { commonAncestorContainer } = this.range;
|
|
826
728
|
const element = tuiIsElement(commonAncestorContainer)
|
|
@@ -912,7 +814,7 @@ class TuiDropdownSelection extends TuiDriver {
|
|
|
912
814
|
return ghost;
|
|
913
815
|
}
|
|
914
816
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiDropdownSelection, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
915
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "
|
|
817
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "19.2.15", type: TuiDropdownSelection, isStandalone: true, selector: "[tuiDropdownSelection]", inputs: { tuiDropdownSelection: { classPropertyName: "tuiDropdownSelection", publicName: "tuiDropdownSelection", isSignal: true, isRequired: false, transformFunction: null }, tuiDropdownSelectionPosition: { classPropertyName: "tuiDropdownSelectionPosition", publicName: "tuiDropdownSelectionPosition", isSignal: true, isRequired: false, transformFunction: null } }, providers: [
|
|
916
818
|
tuiAsDriver(TuiDropdownSelection),
|
|
917
819
|
tuiAsRectAccessor(TuiDropdownSelection),
|
|
918
820
|
], usesInheritance: true, ngImport: i0 }); }
|
|
@@ -920,19 +822,13 @@ class TuiDropdownSelection extends TuiDriver {
|
|
|
920
822
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiDropdownSelection, decorators: [{
|
|
921
823
|
type: Directive,
|
|
922
824
|
args: [{
|
|
923
|
-
standalone: true,
|
|
924
825
|
selector: '[tuiDropdownSelection]',
|
|
925
826
|
providers: [
|
|
926
827
|
tuiAsDriver(TuiDropdownSelection),
|
|
927
828
|
tuiAsRectAccessor(TuiDropdownSelection),
|
|
928
829
|
],
|
|
929
830
|
}]
|
|
930
|
-
}], ctorParameters: () => []
|
|
931
|
-
type: Input,
|
|
932
|
-
args: ['tuiDropdownSelectionPosition']
|
|
933
|
-
}], tuiDropdownSelection: [{
|
|
934
|
-
type: Input
|
|
935
|
-
}] } });
|
|
831
|
+
}], ctorParameters: () => [] });
|
|
936
832
|
|
|
937
833
|
const TuiDropdown = [
|
|
938
834
|
TuiDropdownOptionsDirective,
|
|
@@ -940,7 +836,6 @@ const TuiDropdown = [
|
|
|
940
836
|
TuiDropdownDirective,
|
|
941
837
|
TuiDropdownComponent,
|
|
942
838
|
TuiDropdownOpen,
|
|
943
|
-
TuiDropdownOpenLegacy,
|
|
944
839
|
TuiDropdownManual,
|
|
945
840
|
TuiDropdownHover,
|
|
946
841
|
TuiDropdownContent,
|
|
@@ -954,14 +849,7 @@ function tuiDropdown(value) {
|
|
|
954
849
|
return tuiDirectiveBinding(TuiDropdownDirective, 'tuiDropdown', value, {});
|
|
955
850
|
}
|
|
956
851
|
function tuiDropdownEnabled(value) {
|
|
957
|
-
return tuiDirectiveBinding(TuiDropdownOpen, '
|
|
958
|
-
}
|
|
959
|
-
function tuiDropdownOpen() {
|
|
960
|
-
const open = tuiDirectiveBinding(TuiDropdownOpen, 'tuiDropdownOpen', false, {});
|
|
961
|
-
inject(TuiDropdownOpen)
|
|
962
|
-
.tuiDropdownOpenChange.pipe(takeUntilDestroyed())
|
|
963
|
-
.subscribe((value) => open.set(value));
|
|
964
|
-
return open;
|
|
852
|
+
return tuiDirectiveBinding(TuiDropdownOpen, 'enabled', value, {});
|
|
965
853
|
}
|
|
966
854
|
|
|
967
855
|
class TuiDropdownFixed {
|
|
@@ -975,7 +863,6 @@ class TuiDropdownFixed {
|
|
|
975
863
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiDropdownFixed, decorators: [{
|
|
976
864
|
type: Directive,
|
|
977
865
|
args: [{
|
|
978
|
-
standalone: true,
|
|
979
866
|
providers: [tuiDropdownOptionsProvider({})],
|
|
980
867
|
}]
|
|
981
868
|
}], ctorParameters: () => [] });
|
|
@@ -991,8 +878,7 @@ class TuiDropdownAuto {
|
|
|
991
878
|
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.15", type: TuiDropdownAuto, isStandalone: true, ngImport: i0 }); }
|
|
992
879
|
}
|
|
993
880
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiDropdownAuto, decorators: [{
|
|
994
|
-
type: Directive
|
|
995
|
-
args: [{ standalone: true }]
|
|
881
|
+
type: Directive
|
|
996
882
|
}], ctorParameters: () => [] });
|
|
997
883
|
|
|
998
884
|
class TuiWithDropdownOpen {
|
|
@@ -1002,7 +888,6 @@ class TuiWithDropdownOpen {
|
|
|
1002
888
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiWithDropdownOpen, decorators: [{
|
|
1003
889
|
type: Directive,
|
|
1004
890
|
args: [{
|
|
1005
|
-
standalone: true,
|
|
1006
891
|
hostDirectives: [
|
|
1007
892
|
{
|
|
1008
893
|
directive: TuiDropdownOpen,
|
|
@@ -1017,5 +902,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImpo
|
|
|
1017
902
|
* Generated bundle index. Do not edit.
|
|
1018
903
|
*/
|
|
1019
904
|
|
|
1020
|
-
export { TUI_DROPDOWN_COMPONENT, TUI_DROPDOWN_CONTEXT, TUI_DROPDOWN_DEFAULT_OPTIONS, TUI_DROPDOWN_HOVER_DEFAULT_OPTIONS, TUI_DROPDOWN_HOVER_OPTIONS, TUI_DROPDOWN_OPTIONS, TuiDropdown, TuiDropdownAuto, TuiDropdownComponent, TuiDropdownContent, TuiDropdownContext, TuiDropdownDirective, TuiDropdownDriver, TuiDropdownDriverDirective, TuiDropdownFixed, TuiDropdownHover, TuiDropdownManual, TuiDropdownOpen,
|
|
905
|
+
export { TUI_DROPDOWN_COMPONENT, TUI_DROPDOWN_CONTEXT, TUI_DROPDOWN_DEFAULT_OPTIONS, TUI_DROPDOWN_HOVER_DEFAULT_OPTIONS, TUI_DROPDOWN_HOVER_OPTIONS, TUI_DROPDOWN_OPTIONS, TuiDropdown, TuiDropdownAuto, TuiDropdownComponent, TuiDropdownContent, TuiDropdownContext, TuiDropdownDirective, TuiDropdownDriver, TuiDropdownDriverDirective, TuiDropdownFixed, TuiDropdownHover, TuiDropdownManual, TuiDropdownOpen, TuiDropdownOptionsDirective, TuiDropdownPosition, TuiDropdownPositionSided, TuiDropdownSelection, TuiWithDropdownOpen, tuiDropdown, tuiDropdownEnabled, tuiDropdownHoverOptionsProvider, tuiDropdownOptionsProvider };
|
|
1021
906
|
//# sourceMappingURL=taiga-ui-core-directives-dropdown.mjs.map
|