@taiga-ui/core 4.52.0-canary.ece97e9 → 4.52.0-canary.efbd0d4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/classes/accessors.d.ts +2 -2
- package/components/calendar/calendar-sheet.component.d.ts +1 -1
- package/components/calendar/calendar-sheet.options.d.ts +1 -3
- package/{pipes/calendar-sheet → components/calendar}/calendar-sheet.pipe.d.ts +2 -2
- package/components/calendar/calendar-spin.component.d.ts +1 -0
- package/components/calendar/calendar-year.component.d.ts +1 -1
- package/components/calendar/calendar.options.d.ts +9 -0
- package/components/calendar/index.d.ts +3 -0
- package/{pipes/order-week-days → components/calendar}/order-week-days.pipe.d.ts +1 -1
- package/components/data-list/data-list.component.d.ts +7 -11
- package/components/data-list/data-list.d.ts +3 -4
- package/components/data-list/data-list.tokens.d.ts +1 -23
- package/components/data-list/index.d.ts +3 -4
- package/components/data-list/opt-group.directive.d.ts +2 -2
- package/components/data-list/option-content.directive.d.ts +14 -0
- package/components/data-list/option-with-value.directive.d.ts +9 -0
- package/components/data-list/option.directive.d.ts +19 -0
- package/components/icon/icon.component.d.ts +2 -2
- package/components/index.d.ts +2 -4
- package/components/input/index.d.ts +2 -0
- package/components/input/input.d.ts +5 -0
- package/components/input/input.directive.d.ts +29 -0
- package/components/label/label.directive.d.ts +1 -1
- package/components/link/index.d.ts +0 -1
- package/components/link/link.directive.d.ts +8 -6
- package/components/loader/loader.options.d.ts +1 -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 +4 -5
- 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-ref.directive.d.ts +2 -0
- package/components/scrollbar/scrollbar.component.d.ts +1 -5
- package/components/spin-button/spin-button.component.d.ts +1 -1
- package/components/textfield/index.d.ts +0 -1
- package/components/textfield/textfield-multi/textfield-item.component.d.ts +3 -2
- package/components/textfield/textfield-multi/textfield-multi.component.d.ts +8 -13
- package/components/textfield/textfield.component.d.ts +20 -32
- package/components/textfield/textfield.d.ts +2 -3
- package/directives/date-format/date-format.directive.d.ts +3 -7
- package/directives/group/group.directive.d.ts +7 -7
- package/directives/group/group.options.d.ts +1 -3
- package/directives/index.d.ts +0 -5
- package/directives/items-handlers/items-handlers.directive.d.ts +5 -9
- package/directives/items-handlers/items-handlers.tokens.d.ts +4 -4
- package/directives/number-format/number-format.directive.d.ts +3 -7
- package/fesm2022/taiga-ui-core-classes.mjs +9 -11
- package/fesm2022/taiga-ui-core-classes.mjs.map +1 -1
- package/fesm2022/taiga-ui-core-components-button.mjs +7 -7
- package/fesm2022/taiga-ui-core-components-button.mjs.map +1 -1
- package/fesm2022/taiga-ui-core-components-calendar.mjs +137 -32
- package/fesm2022/taiga-ui-core-components-calendar.mjs.map +1 -1
- package/fesm2022/taiga-ui-core-components-cell.mjs +7 -7
- package/fesm2022/taiga-ui-core-components-cell.mjs.map +1 -1
- package/fesm2022/taiga-ui-core-components-data-list.mjs +110 -279
- package/fesm2022/taiga-ui-core-components-data-list.mjs.map +1 -1
- package/fesm2022/taiga-ui-core-components-error.mjs +12 -11
- package/fesm2022/taiga-ui-core-components-error.mjs.map +1 -1
- package/fesm2022/taiga-ui-core-components-expand.mjs +3 -3
- package/fesm2022/taiga-ui-core-components-icon.mjs +10 -11
- package/fesm2022/taiga-ui-core-components-icon.mjs.map +1 -1
- package/fesm2022/taiga-ui-core-components-input.mjs +103 -0
- package/fesm2022/taiga-ui-core-components-input.mjs.map +1 -0
- package/fesm2022/taiga-ui-core-components-label.mjs +11 -13
- package/fesm2022/taiga-ui-core-components-label.mjs.map +1 -1
- package/fesm2022/taiga-ui-core-components-link.mjs +13 -28
- package/fesm2022/taiga-ui-core-components-link.mjs.map +1 -1
- package/fesm2022/taiga-ui-core-components-loader.mjs +7 -12
- package/fesm2022/taiga-ui-core-components-loader.mjs.map +1 -1
- package/fesm2022/taiga-ui-core-components-notification.mjs +99 -29
- package/fesm2022/taiga-ui-core-components-notification.mjs.map +1 -1
- package/fesm2022/taiga-ui-core-components-root.mjs +9 -13
- package/fesm2022/taiga-ui-core-components-root.mjs.map +1 -1
- package/fesm2022/taiga-ui-core-components-scrollbar.mjs +42 -51
- package/fesm2022/taiga-ui-core-components-scrollbar.mjs.map +1 -1
- package/fesm2022/taiga-ui-core-components-spin-button.mjs +6 -6
- package/fesm2022/taiga-ui-core-components-spin-button.mjs.map +1 -1
- package/fesm2022/taiga-ui-core-components-textfield.mjs +100 -262
- package/fesm2022/taiga-ui-core-components-textfield.mjs.map +1 -1
- package/fesm2022/{taiga-ui-core-directives-title.mjs → taiga-ui-core-components-title.mjs} +8 -8
- package/fesm2022/{taiga-ui-core-directives-title.mjs.map → taiga-ui-core-components-title.mjs.map} +1 -1
- package/fesm2022/taiga-ui-core-components.mjs +2 -4
- package/fesm2022/taiga-ui-core-components.mjs.map +1 -1
- package/fesm2022/taiga-ui-core-directives-appearance.mjs +16 -16
- package/fesm2022/taiga-ui-core-directives-appearance.mjs.map +1 -1
- package/fesm2022/taiga-ui-core-directives-date-format.mjs +26 -20
- package/fesm2022/taiga-ui-core-directives-date-format.mjs.map +1 -1
- package/fesm2022/taiga-ui-core-directives-group.mjs +23 -35
- package/fesm2022/taiga-ui-core-directives-group.mjs.map +1 -1
- package/fesm2022/taiga-ui-core-directives-icons.mjs +12 -12
- package/fesm2022/taiga-ui-core-directives-icons.mjs.map +1 -1
- package/fesm2022/taiga-ui-core-directives-items-handlers.mjs +16 -40
- package/fesm2022/taiga-ui-core-directives-items-handlers.mjs.map +1 -1
- package/fesm2022/taiga-ui-core-directives-number-format.mjs +32 -20
- package/fesm2022/taiga-ui-core-directives-number-format.mjs.map +1 -1
- package/fesm2022/taiga-ui-core-directives.mjs +0 -5
- package/fesm2022/taiga-ui-core-directives.mjs.map +1 -1
- package/fesm2022/taiga-ui-core-pipes-format-number.mjs +21 -15
- package/fesm2022/taiga-ui-core-pipes-format-number.mjs.map +1 -1
- package/fesm2022/taiga-ui-core-pipes.mjs +0 -7
- package/fesm2022/taiga-ui-core-pipes.mjs.map +1 -1
- package/fesm2022/taiga-ui-core-portals-alert.mjs +73 -0
- package/fesm2022/taiga-ui-core-portals-alert.mjs.map +1 -0
- package/fesm2022/taiga-ui-core-portals-dialog.mjs +158 -0
- package/fesm2022/taiga-ui-core-portals-dialog.mjs.map +1 -0
- package/fesm2022/{taiga-ui-core-directives-dropdown.mjs → taiga-ui-core-portals-dropdown.mjs} +171 -302
- package/fesm2022/taiga-ui-core-portals-dropdown.mjs.map +1 -0
- package/fesm2022/{taiga-ui-core-directives-hint.mjs → taiga-ui-core-portals-hint.mjs} +67 -69
- package/fesm2022/taiga-ui-core-portals-hint.mjs.map +1 -0
- package/fesm2022/taiga-ui-core-portals-modal.mjs +89 -0
- package/fesm2022/taiga-ui-core-portals-modal.mjs.map +1 -0
- package/fesm2022/{taiga-ui-core-directives-popup.mjs → taiga-ui-core-portals-popup.mjs} +11 -11
- package/fesm2022/taiga-ui-core-portals-popup.mjs.map +1 -0
- package/fesm2022/taiga-ui-core-portals.mjs +11 -0
- package/fesm2022/taiga-ui-core-portals.mjs.map +1 -0
- package/fesm2022/taiga-ui-core-services.mjs +15 -79
- package/fesm2022/taiga-ui-core-services.mjs.map +1 -1
- package/fesm2022/taiga-ui-core-tokens.mjs +51 -60
- 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 +19 -19
- package/fesm2022/taiga-ui-core-utils-miscellaneous.mjs.map +1 -1
- package/fesm2022/taiga-ui-core.mjs +1 -1
- package/index.d.ts +1 -1
- package/package.json +65 -95
- package/pipes/format-number/format-number.pipe.d.ts +6 -4
- package/pipes/index.d.ts +0 -7
- package/{directives/notification/notification.directive.d.ts → portals/alert/alert.directive.d.ts} +3 -3
- package/{directives/notification/notification.service.d.ts → portals/alert/alert.service.d.ts} +3 -3
- package/portals/alert/index.d.ts +2 -0
- package/{components → portals}/dialog/dialog.component.d.ts +2 -3
- package/{components → portals}/dialog/dialog.options.d.ts +2 -3
- package/{components → portals}/dialog/dialog.providers.d.ts +1 -2
- package/{components → portals}/dialog/dialog.service.d.ts +1 -1
- package/{components → portals}/dialog/index.d.ts +0 -1
- package/{directives → portals}/dropdown/dropdown-hover.directive.d.ts +5 -10
- package/{directives → portals}/dropdown/dropdown-hover.options.d.ts +1 -3
- package/{directives → portals}/dropdown/dropdown-manual.directive.d.ts +2 -2
- package/portals/dropdown/dropdown-open.directive.d.ts +30 -0
- package/{directives → portals}/dropdown/dropdown-options.directive.d.ts +0 -4
- package/{directives → portals}/dropdown/dropdown-position-sided.directive.d.ts +3 -3
- package/{directives → portals}/dropdown/dropdown-position.directive.d.ts +5 -5
- package/{directives → portals}/dropdown/dropdown-selection.directive.d.ts +4 -5
- package/{directives → portals}/dropdown/dropdown.bindings.d.ts +0 -1
- package/{directives → portals}/dropdown/dropdown.d.ts +1 -2
- package/{directives → portals}/dropdown/dropdown.directive.d.ts +5 -6
- package/{directives → portals}/dropdown/index.d.ts +0 -1
- package/{directives → portals}/hint/hint-position.directive.d.ts +3 -3
- package/{directives → portals}/hint/hint.directive.d.ts +1 -1
- package/portals/index.d.ts +6 -0
- package/{components → portals}/modal/modal.component.d.ts +3 -3
- package/{components → portals}/modal/modal.service.d.ts +3 -3
- package/services/index.d.ts +0 -3
- package/styles/components/appearance.less +5 -0
- package/styles/components/button.less +10 -20
- package/styles/components/icon.less +11 -0
- package/styles/components/icons.less +2 -1
- package/styles/components/label.less +3 -12
- package/styles/components/link.less +9 -24
- package/styles/components/notification.less +21 -22
- package/styles/components/textfield.less +129 -211
- package/styles/components/title.less +8 -8
- package/styles/mixins/appearance.less +10 -26
- package/styles/mixins/appearance.scss +8 -24
- package/styles/mixins/date-picker.less +1 -1
- package/styles/mixins/mixins.less +0 -5
- package/styles/mixins/mixins.scss +0 -5
- package/styles/mixins/picker.less +1 -1
- package/styles/mixins/picker.scss +1 -1
- package/styles/mixins/slider.less +1 -1
- package/styles/mixins/slider.scss +2 -3
- package/styles/taiga-ui-local.less +0 -1
- package/styles/taiga-ui-local.scss +0 -1
- package/styles/taiga-ui-theme.less +0 -1
- package/styles/theme/appearance/outline.less +9 -18
- package/styles/theme/appearance/primary.less +2 -4
- package/styles/theme/appearance/secondary.less +6 -14
- package/styles/theme/appearance/status.less +0 -4
- package/styles/theme/appearance/table.less +36 -35
- package/styles/theme/appearance/textfield.less +30 -27
- package/styles/theme/appearance.less +0 -1
- package/styles/theme/variables.less +16 -19
- package/tokens/breakpoint.d.ts +4 -0
- package/tokens/common-icons.d.ts +3 -3
- package/tokens/date-format.d.ts +2 -3
- package/tokens/icons.d.ts +0 -4
- package/tokens/index.d.ts +1 -4
- package/tokens/number-format.d.ts +2 -3
- package/types/index.d.ts +0 -2
- package/types/point.d.ts +1 -1
- package/types/size.d.ts +0 -11
- package/utils/format/index.d.ts +0 -1
- package/utils/miscellaneous/font-scaling.d.ts +2 -1
- package/utils/miscellaneous/get-duration.d.ts +2 -0
- package/utils/miscellaneous/index.d.ts +1 -1
- package/animations/animations.d.ts +0 -109
- package/animations/index.d.ts +0 -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-content.d.ts +0 -16
- package/components/data-list/option/option-legacy.component.d.ts +0 -24
- package/components/data-list/option/option.directive.d.ts +0 -27
- 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/components/link/link.options.d.ts +0 -12
- package/components/textfield/textfield.directive.d.ts +0 -35
- package/directives/dropdown/dropdown-open-legacy.directive.d.ts +0 -12
- package/directives/dropdown/dropdown-open.directive.d.ts +0 -33
- package/directives/notification/index.d.ts +0 -2
- package/fesm2022/taiga-ui-core-animations.mjs +0 -370
- package/fesm2022/taiga-ui-core-animations.mjs.map +0 -1
- 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-dialog.mjs +0 -227
- package/fesm2022/taiga-ui-core-components-dialog.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-components-modal.mjs +0 -89
- package/fesm2022/taiga-ui-core-components-modal.mjs.map +0 -1
- package/fesm2022/taiga-ui-core-directives-dropdown.mjs.map +0 -1
- package/fesm2022/taiga-ui-core-directives-hint.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-directives-popup.mjs.map +0 -1
- package/fesm2022/taiga-ui-core-pipes-auto-color.mjs +0 -25
- package/fesm2022/taiga-ui-core-pipes-auto-color.mjs.map +0 -1
- package/fesm2022/taiga-ui-core-pipes-calendar-sheet.mjs +0 -94
- package/fesm2022/taiga-ui-core-pipes-calendar-sheet.mjs.map +0 -1
- package/fesm2022/taiga-ui-core-pipes-flag.mjs +0 -32
- package/fesm2022/taiga-ui-core-pipes-flag.mjs.map +0 -1
- package/fesm2022/taiga-ui-core-pipes-format-date.mjs +0 -28
- package/fesm2022/taiga-ui-core-pipes-format-date.mjs.map +0 -1
- package/fesm2022/taiga-ui-core-pipes-initials.mjs +0 -29
- package/fesm2022/taiga-ui-core-pipes-initials.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/fesm2022/taiga-ui-core-pipes-order-week-days.mjs +0 -36
- package/fesm2022/taiga-ui-core-pipes-order-week-days.mjs.map +0 -1
- package/pipes/auto-color/auto-color.pipe.d.ts +0 -7
- package/pipes/auto-color/index.d.ts +0 -1
- package/pipes/calendar-sheet/index.d.ts +0 -1
- package/pipes/calendar-sheet/utils.d.ts +0 -20
- package/pipes/flag/flag.pipe.d.ts +0 -14
- package/pipes/flag/index.d.ts +0 -1
- package/pipes/format-date/format-date.pipe.d.ts +0 -9
- package/pipes/format-date/index.d.ts +0 -1
- package/pipes/initials/index.d.ts +0 -1
- package/pipes/initials/initials.pipe.d.ts +0 -7
- package/pipes/month/index.d.ts +0 -1
- package/pipes/month/month.pipe.d.ts +0 -10
- package/pipes/order-week-days/index.d.ts +0 -1
- package/services/breakpoint.service.d.ts +0 -16
- package/services/dark-theme.service.d.ts +0 -10
- package/services/format-date.service.d.ts +0 -8
- package/styles/mixins/wrapper.less +0 -64
- package/styles/mixins/wrapper.scss +0 -61
- package/styles/theme/appearance/opposite.less +0 -17
- package/styles/theme/wrapper.less +0 -211
- package/tokens/day-type-handler.d.ts +0 -7
- package/tokens/first-day-of-week.d.ts +0 -5
- package/tokens/scroll-ref.d.ts +0 -2
- package/tokens/spin-icons.d.ts +0 -6
- package/types/range-state.d.ts +0 -4
- package/types/value-content-context.d.ts +0 -4
- package/utils/format/string-hash-to-hsl.d.ts +0 -6
- package/utils/miscellaneous/to-animation-options.d.ts +0 -4
- /package/{directives → components}/title/index.d.ts +0 -0
- /package/{directives → components}/title/title.directive.d.ts +0 -0
- /package/{components → portals}/dialog/dialog.directive.d.ts +0 -0
- /package/{components → portals}/dialog/dialog.factory.d.ts +0 -0
- /package/{directives → portals}/dropdown/dropdown-content.directive.d.ts +0 -0
- /package/{directives → portals}/dropdown/dropdown-context.directive.d.ts +0 -0
- /package/{directives → portals}/dropdown/dropdown-limit-width.d.ts +0 -0
- /package/{directives → portals}/dropdown/dropdown.component.d.ts +0 -0
- /package/{directives → portals}/dropdown/dropdown.driver.d.ts +0 -0
- /package/{directives → portals}/dropdown/dropdown.providers.d.ts +0 -0
- /package/{directives → portals}/dropdown/with-dropdown-open.directive.d.ts +0 -0
- /package/{directives → portals}/hint/hint-describe.directive.d.ts +0 -0
- /package/{directives → portals}/hint/hint-driver.directive.d.ts +0 -0
- /package/{directives → portals}/hint/hint-host.directive.d.ts +0 -0
- /package/{directives → portals}/hint/hint-hover.directive.d.ts +0 -0
- /package/{directives → portals}/hint/hint-manual.directive.d.ts +0 -0
- /package/{directives → portals}/hint/hint-options.directive.d.ts +0 -0
- /package/{directives → portals}/hint/hint-overflow.directive.d.ts +0 -0
- /package/{directives → portals}/hint/hint-pointer.directive.d.ts +0 -0
- /package/{directives → portals}/hint/hint-unstyled.component.d.ts +0 -0
- /package/{directives → portals}/hint/hint.component.d.ts +0 -0
- /package/{directives → portals}/hint/hint.d.ts +0 -0
- /package/{directives → portals}/hint/hint.providers.d.ts +0 -0
- /package/{directives → portals}/hint/index.d.ts +0 -0
- /package/{components → portals}/modal/index.d.ts +0 -0
- /package/{directives → portals}/popup/index.d.ts +0 -0
- /package/{directives → portals}/popup/popup.directive.d.ts +0 -0
- /package/{directives → portals}/popup/popup.service.d.ts +0 -0
- /package/{directives → portals}/popup/popups.component.d.ts +0 -0
package/fesm2022/{taiga-ui-core-directives-dropdown.mjs → taiga-ui-core-portals-dropdown.mjs}
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { Injectable, Directive, InjectionToken, Optional, Self, SkipSelf, inject,
|
|
3
|
-
import { takeUntilDestroyed, toObservable } from '@angular/core/rxjs-interop';
|
|
2
|
+
import { Injectable, Directive, InjectionToken, Optional, Self, SkipSelf, inject, 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,35 +8,36 @@ 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
|
-
import { TuiPopupService } from '@taiga-ui/core/
|
|
21
|
-
import {
|
|
22
|
-
import {
|
|
20
|
+
import { TuiPopupService } from '@taiga-ui/core/portals/popup';
|
|
21
|
+
import { tuiCheckFixedPosition, tuiGetWordRange } from '@taiga-ui/core/utils/dom';
|
|
22
|
+
import { tuiProvide, tuiCreateOptions, tuiDirectiveBinding } from '@taiga-ui/cdk/utils/di';
|
|
23
|
+
import { tuiOverrideOptions, tuiIsEditingKey } from '@taiga-ui/core/utils/miscellaneous';
|
|
23
24
|
import { isPlatformBrowser, DOCUMENT } from '@angular/common';
|
|
24
|
-
import {
|
|
25
|
+
import { __decorate } from 'tslib';
|
|
26
|
+
import { TUI_IS_TOUCH } from '@taiga-ui/cdk/tokens';
|
|
25
27
|
import { shouldCall } from '@taiga-ui/event-plugins';
|
|
26
28
|
import * as i1$1 from '@taiga-ui/cdk/directives/obscured';
|
|
27
29
|
import { TuiObscured } from '@taiga-ui/cdk/directives/obscured';
|
|
28
|
-
import {
|
|
29
|
-
import { tuiIsEditingKey, tuiOverrideOptions as tuiOverrideOptions$1 } from '@taiga-ui/core/utils/miscellaneous';
|
|
30
|
+
import { tuiIsFocusable, tuiGetClosestFocusable, tuiIsFocusedIn, tuiGetFocused } from '@taiga-ui/cdk/utils/focus';
|
|
30
31
|
|
|
31
32
|
class TuiDropdownDriver extends BehaviorSubject {
|
|
32
33
|
constructor() {
|
|
33
34
|
super(false);
|
|
34
35
|
this.type = 'dropdown';
|
|
35
36
|
}
|
|
36
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
37
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.
|
|
37
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TuiDropdownDriver, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
38
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TuiDropdownDriver }); }
|
|
38
39
|
}
|
|
39
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
40
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TuiDropdownDriver, decorators: [{
|
|
40
41
|
type: Injectable
|
|
41
42
|
}], ctorParameters: () => [] });
|
|
42
43
|
class TuiDropdownDriverDirective extends TuiDriverDirective {
|
|
@@ -44,14 +45,11 @@ class TuiDropdownDriverDirective extends TuiDriverDirective {
|
|
|
44
45
|
super(...arguments);
|
|
45
46
|
this.type = 'dropdown';
|
|
46
47
|
}
|
|
47
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
48
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.
|
|
48
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TuiDropdownDriverDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
|
|
49
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.17", type: TuiDropdownDriverDirective, isStandalone: true, usesInheritance: true, ngImport: i0 }); }
|
|
49
50
|
}
|
|
50
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
51
|
-
type: Directive
|
|
52
|
-
args: [{
|
|
53
|
-
standalone: true,
|
|
54
|
-
}]
|
|
51
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TuiDropdownDriverDirective, decorators: [{
|
|
52
|
+
type: Directive
|
|
55
53
|
}] });
|
|
56
54
|
|
|
57
55
|
/**
|
|
@@ -62,7 +60,6 @@ const TUI_DROPDOWN_COMPONENT = new InjectionToken(ngDevMode ? 'TUI_DROPDOWN_COMP
|
|
|
62
60
|
});
|
|
63
61
|
const TUI_DROPDOWN_CONTEXT = new InjectionToken(ngDevMode ? 'TUI_DROPDOWN_CONTEXT' : '');
|
|
64
62
|
|
|
65
|
-
/** Default values for dropdown options */
|
|
66
63
|
const TUI_DROPDOWN_DEFAULT_OPTIONS = {
|
|
67
64
|
align: 'left',
|
|
68
65
|
direction: null,
|
|
@@ -72,9 +69,6 @@ const TUI_DROPDOWN_DEFAULT_OPTIONS = {
|
|
|
72
69
|
offset: 4,
|
|
73
70
|
appearance: '',
|
|
74
71
|
};
|
|
75
|
-
/**
|
|
76
|
-
* Default parameters for dropdown directive
|
|
77
|
-
*/
|
|
78
72
|
const TUI_DROPDOWN_OPTIONS = new InjectionToken(ngDevMode ? 'TUI_DROPDOWN_OPTIONS' : '', {
|
|
79
73
|
factory: () => TUI_DROPDOWN_DEFAULT_OPTIONS,
|
|
80
74
|
});
|
|
@@ -97,38 +91,25 @@ class TuiDropdownOptionsDirective {
|
|
|
97
91
|
this.maxHeight = this.options.maxHeight;
|
|
98
92
|
this.offset = this.options.offset;
|
|
99
93
|
}
|
|
100
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
101
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.
|
|
94
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TuiDropdownOptionsDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
95
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.17", type: TuiDropdownOptionsDirective, isStandalone: true, selector: "[tuiDropdownAlign], [tuiDropdownAppearance], [tuiDropdownDirection], [tuiDropdownLimitWidth], [tuiDropdownMinHeight], [tuiDropdownMaxHeight], [tuiDropdownOffset]", inputs: { align: ["tuiDropdownAlign", "align"], appearance: ["tuiDropdownAppearance", "appearance"], direction: ["tuiDropdownDirection", "direction"], limitWidth: ["tuiDropdownLimitWidth", "limitWidth"], minHeight: ["tuiDropdownMinHeight", "minHeight"], maxHeight: ["tuiDropdownMaxHeight", "maxHeight"], offset: ["tuiDropdownOffset", "offset"] }, providers: [tuiProvide(TUI_DROPDOWN_OPTIONS, TuiDropdownOptionsDirective)], ngImport: i0 }); }
|
|
102
96
|
}
|
|
103
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
97
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TuiDropdownOptionsDirective, decorators: [{
|
|
104
98
|
type: Directive,
|
|
105
99
|
args: [{
|
|
106
|
-
standalone: true,
|
|
107
100
|
selector: '[tuiDropdownAlign], [tuiDropdownAppearance], [tuiDropdownDirection], [tuiDropdownLimitWidth], [tuiDropdownMinHeight], [tuiDropdownMaxHeight], [tuiDropdownOffset]',
|
|
101
|
+
inputs: [
|
|
102
|
+
'align: tuiDropdownAlign',
|
|
103
|
+
'appearance: tuiDropdownAppearance',
|
|
104
|
+
'direction: tuiDropdownDirection',
|
|
105
|
+
'limitWidth: tuiDropdownLimitWidth',
|
|
106
|
+
'minHeight: tuiDropdownMinHeight',
|
|
107
|
+
'maxHeight: tuiDropdownMaxHeight',
|
|
108
|
+
'offset: tuiDropdownOffset',
|
|
109
|
+
],
|
|
108
110
|
providers: [tuiProvide(TUI_DROPDOWN_OPTIONS, TuiDropdownOptionsDirective)],
|
|
109
111
|
}]
|
|
110
|
-
}]
|
|
111
|
-
type: Input,
|
|
112
|
-
args: ['tuiDropdownAlign']
|
|
113
|
-
}], appearance: [{
|
|
114
|
-
type: Input,
|
|
115
|
-
args: ['tuiDropdownAppearance']
|
|
116
|
-
}], direction: [{
|
|
117
|
-
type: Input,
|
|
118
|
-
args: ['tuiDropdownDirection']
|
|
119
|
-
}], limitWidth: [{
|
|
120
|
-
type: Input,
|
|
121
|
-
args: ['tuiDropdownLimitWidth']
|
|
122
|
-
}], minHeight: [{
|
|
123
|
-
type: Input,
|
|
124
|
-
args: ['tuiDropdownMinHeight']
|
|
125
|
-
}], maxHeight: [{
|
|
126
|
-
type: Input,
|
|
127
|
-
args: ['tuiDropdownMaxHeight']
|
|
128
|
-
}], offset: [{
|
|
129
|
-
type: Input,
|
|
130
|
-
args: ['tuiDropdownOffset']
|
|
131
|
-
}] } });
|
|
112
|
+
}] });
|
|
132
113
|
|
|
133
114
|
class TuiDropdownPosition extends TuiPositionAccessor {
|
|
134
115
|
constructor() {
|
|
@@ -136,18 +117,16 @@ class TuiDropdownPosition extends TuiPositionAccessor {
|
|
|
136
117
|
this.el = tuiInjectElement();
|
|
137
118
|
this.options = inject(TUI_DROPDOWN_OPTIONS);
|
|
138
119
|
this.viewport = inject(TUI_VIEWPORT);
|
|
139
|
-
this.
|
|
120
|
+
this.direction = new Subject();
|
|
140
121
|
this.type = 'dropdown';
|
|
141
|
-
this.accessor = tuiFallbackAccessor('dropdown')(inject(TuiRectAccessor
|
|
142
|
-
|
|
143
|
-
emitDirection(direction) {
|
|
144
|
-
this.directionChange.emit(direction);
|
|
122
|
+
this.accessor = tuiFallbackAccessor('dropdown')(inject(TuiRectAccessor, { optional: true }), { getClientRect: () => this.el.getBoundingClientRect() });
|
|
123
|
+
this.tuiDropdownDirectionChange = outputFromObservable(this.direction.pipe(distinctUntilChanged()));
|
|
145
124
|
}
|
|
146
125
|
getPosition({ width, height }) {
|
|
147
126
|
if (!width && !height) {
|
|
148
127
|
this.previous = undefined;
|
|
149
128
|
}
|
|
150
|
-
const hostRect = this.accessor
|
|
129
|
+
const hostRect = this.accessor.getClientRect();
|
|
151
130
|
const viewportRect = this.viewport.getClientRect();
|
|
152
131
|
const { minHeight, direction, offset, limitWidth } = this.options;
|
|
153
132
|
const align = this.getAlign(this.options.align);
|
|
@@ -177,12 +156,12 @@ class TuiDropdownPosition extends TuiPositionAccessor {
|
|
|
177
156
|
const better = available.top > available.bottom ? 'top' : 'bottom';
|
|
178
157
|
if ((available[previous] > minHeight && direction) ||
|
|
179
158
|
available[previous] > height) {
|
|
180
|
-
this.
|
|
181
|
-
return [position[
|
|
159
|
+
this.direction.next(previous);
|
|
160
|
+
return [position[align], position[previous]];
|
|
182
161
|
}
|
|
183
162
|
this.previous = better;
|
|
184
|
-
this.
|
|
185
|
-
return [position[
|
|
163
|
+
this.direction.next(better);
|
|
164
|
+
return [position[align], position[better]];
|
|
186
165
|
}
|
|
187
166
|
getAlign(align) {
|
|
188
167
|
const rtl = this.el.matches('[dir="rtl"] :scope');
|
|
@@ -191,28 +170,18 @@ class TuiDropdownPosition extends TuiPositionAccessor {
|
|
|
191
170
|
}
|
|
192
171
|
return rtl && align === 'right' ? 'left' : align;
|
|
193
172
|
}
|
|
194
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
195
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.
|
|
173
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TuiDropdownPosition, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
|
|
174
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.17", type: TuiDropdownPosition, isStandalone: true, outputs: { tuiDropdownDirectionChange: "tuiDropdownDirectionChange" }, usesInheritance: true, ngImport: i0 }); }
|
|
196
175
|
}
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
]
|
|
200
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiDropdownPosition, decorators: [{
|
|
201
|
-
type: Directive,
|
|
202
|
-
args: [{
|
|
203
|
-
standalone: true,
|
|
204
|
-
}]
|
|
205
|
-
}], propDecorators: { directionChange: [{
|
|
206
|
-
type: Output,
|
|
207
|
-
args: ['tuiDropdownDirectionChange']
|
|
208
|
-
}], emitDirection: [] } });
|
|
176
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TuiDropdownPosition, decorators: [{
|
|
177
|
+
type: Directive
|
|
178
|
+
}] });
|
|
209
179
|
|
|
210
180
|
class TuiDropdownDirective {
|
|
211
181
|
constructor() {
|
|
212
182
|
this.refresh$ = new Subject();
|
|
213
183
|
this.service = inject(TuiPopupService);
|
|
214
184
|
this.cdr = inject(ChangeDetectorRef);
|
|
215
|
-
// TODO: think of a better solution later
|
|
216
185
|
this.drivers = coerceArray(inject(TuiDropdownDriver, { self: true, optional: true }));
|
|
217
186
|
this.sub = this.refresh$
|
|
218
187
|
.pipe(throttleTime(0, tuiZonefreeScheduler()), takeUntilDestroyed())
|
|
@@ -220,33 +189,25 @@ class TuiDropdownDirective {
|
|
|
220
189
|
this.ref()?.changeDetectorRef.detectChanges();
|
|
221
190
|
this.ref()?.changeDetectorRef.markForCheck();
|
|
222
191
|
});
|
|
192
|
+
this.autoClose = effect(() => {
|
|
193
|
+
if (!this.content()) {
|
|
194
|
+
this.toggle(false);
|
|
195
|
+
}
|
|
196
|
+
});
|
|
197
|
+
this.ref = signal(null);
|
|
223
198
|
this.el = tuiInjectElement();
|
|
224
199
|
this.type = 'dropdown';
|
|
225
200
|
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
|
-
}
|
|
201
|
+
this.tuiDropdown = input();
|
|
202
|
+
this.content = computed((content = this.tuiDropdown()) => {
|
|
203
|
+
return content instanceof TemplateRef
|
|
204
|
+
? new PolymorpheusTemplate(content, this.cdr)
|
|
205
|
+
: content;
|
|
206
|
+
});
|
|
238
207
|
}
|
|
239
208
|
get position() {
|
|
240
209
|
return tuiCheckFixedPosition(this.el) ? 'fixed' : 'absolute';
|
|
241
210
|
}
|
|
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
211
|
ngAfterViewChecked() {
|
|
251
212
|
this.refresh$.next();
|
|
252
213
|
}
|
|
@@ -258,32 +219,25 @@ class TuiDropdownDirective {
|
|
|
258
219
|
}
|
|
259
220
|
toggle(show) {
|
|
260
221
|
const ref = this.ref();
|
|
261
|
-
if (show && this.
|
|
222
|
+
if (show && this.content() && !ref) {
|
|
262
223
|
this.ref.set(this.service.add(this.component));
|
|
263
224
|
}
|
|
264
225
|
else if (!show && ref) {
|
|
265
226
|
this.ref.set(null);
|
|
266
227
|
ref.destroy();
|
|
267
228
|
}
|
|
268
|
-
this.drivers.forEach((driver) => driver?.next(show));
|
|
269
229
|
// TODO: Remove in v5, only needed in Angular 16
|
|
270
230
|
this.cdr.markForCheck();
|
|
231
|
+
this.drivers.forEach((driver) => driver?.next(show));
|
|
271
232
|
}
|
|
272
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
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 }); }
|
|
233
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TuiDropdownDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
234
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "19.2.17", 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
235
|
}
|
|
278
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
236
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TuiDropdownDirective, decorators: [{
|
|
279
237
|
type: Directive,
|
|
280
238
|
args: [{
|
|
281
|
-
standalone: true,
|
|
282
239
|
selector: '[tuiDropdown]:not(ng-container):not(ng-template)',
|
|
283
|
-
providers: [
|
|
284
|
-
tuiAsRectAccessor(TuiDropdownDirective),
|
|
285
|
-
tuiAsVehicle(TuiDropdownDirective),
|
|
286
|
-
],
|
|
240
|
+
providers: [tuiAsVehicle(TuiDropdownDirective)],
|
|
287
241
|
exportAs: 'tuiDropdown',
|
|
288
242
|
hostDirectives: [
|
|
289
243
|
TuiDropdownDriverDirective,
|
|
@@ -296,9 +250,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImpo
|
|
|
296
250
|
'[class.tui-dropdown-open]': 'ref()',
|
|
297
251
|
},
|
|
298
252
|
}]
|
|
299
|
-
}]
|
|
300
|
-
type: Input
|
|
301
|
-
}] } });
|
|
253
|
+
}] });
|
|
302
254
|
|
|
303
255
|
/**
|
|
304
256
|
* @description:
|
|
@@ -312,7 +264,7 @@ class TuiDropdownComponent {
|
|
|
312
264
|
this.viewport = inject(TUI_VIEWPORT);
|
|
313
265
|
this.vvs = inject(TuiVisualViewportService);
|
|
314
266
|
this.styles$ = inject(TuiPositionService).pipe(takeWhile(() => this.directive.el.isConnected &&
|
|
315
|
-
!!this.directive.el.getBoundingClientRect().height), map((v) => (this.position === 'fixed' ? this.vvs.correct(v) : v)), map((
|
|
267
|
+
!!this.directive.el.getBoundingClientRect().height), map((v) => (this.position === 'fixed' ? this.vvs.correct(v) : v)), map((point) => this.getStyles(...point)), takeUntilDestroyed());
|
|
316
268
|
this.options = inject(TUI_DROPDOWN_OPTIONS);
|
|
317
269
|
this.directive = inject(TuiDropdownDirective);
|
|
318
270
|
this.context = inject(TUI_DROPDOWN_CONTEXT, { optional: true });
|
|
@@ -351,44 +303,43 @@ class TuiDropdownComponent {
|
|
|
351
303
|
maxWidth: tuiPx(Math.round(viewport.width) - 16), // 8px min gap from each side
|
|
352
304
|
};
|
|
353
305
|
}
|
|
354
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
355
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.
|
|
306
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TuiDropdownComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
307
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.17", type: TuiDropdownComponent, isStandalone: true, selector: "tui-dropdown", host: { properties: { "attr.data-appearance": "options.appearance", "attr.tuiTheme": "theme()" } }, providers: [
|
|
356
308
|
TuiPositionService,
|
|
357
309
|
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.
|
|
310
|
+
tuiRectAccessorFor('dropdown', forwardRef(() => TuiDropdownDirective)),
|
|
311
|
+
], 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" }], changeDetection: i0.ChangeDetectionStrategy.Default }); }
|
|
360
312
|
}
|
|
361
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
313
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TuiDropdownComponent, decorators: [{
|
|
362
314
|
type: Component,
|
|
363
315
|
args: [{ selector: 'tui-dropdown', imports: [PolymorpheusOutlet, TuiScrollbar], changeDetection: ChangeDetectionStrategy.Default, providers: [
|
|
364
316
|
TuiPositionService,
|
|
365
317
|
tuiPositionAccessorFor('dropdown', TuiDropdownPosition),
|
|
366
|
-
tuiRectAccessorFor('dropdown', TuiDropdownDirective),
|
|
318
|
+
tuiRectAccessorFor('dropdown', forwardRef(() => TuiDropdownDirective)),
|
|
367
319
|
], hostDirectives: [TuiActiveZone, TuiAnimated], host: {
|
|
368
320
|
'[attr.data-appearance]': 'options.appearance',
|
|
369
321
|
'[attr.tuiTheme]': 'theme()',
|
|
370
|
-
}, template: "<tui-scrollbar class=\"t-scroll\">\n <div\n *polymorpheusOutlet=\"directive.
|
|
322
|
+
}, 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
323
|
}] });
|
|
372
324
|
|
|
373
325
|
class TuiDropdownContent {
|
|
374
326
|
constructor() {
|
|
375
327
|
this.directive = inject(TuiDropdownDirective);
|
|
376
|
-
this.directive.tuiDropdown
|
|
328
|
+
tuiSetSignal(this.directive.tuiDropdown, inject(TemplateRef));
|
|
377
329
|
if (isPlatformBrowser(inject(PLATFORM_ID)) &&
|
|
378
330
|
this.directive.el.matches(':focus-within')) {
|
|
379
331
|
this.directive.toggle(true);
|
|
380
332
|
}
|
|
381
333
|
}
|
|
382
334
|
ngOnDestroy() {
|
|
383
|
-
this.directive.tuiDropdown
|
|
335
|
+
tuiSetSignal(this.directive.tuiDropdown, null);
|
|
384
336
|
}
|
|
385
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
386
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.
|
|
337
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TuiDropdownContent, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
338
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.17", type: TuiDropdownContent, isStandalone: true, selector: "ng-template[tuiDropdown]", ngImport: i0 }); }
|
|
387
339
|
}
|
|
388
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
340
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TuiDropdownContent, decorators: [{
|
|
389
341
|
type: Directive,
|
|
390
342
|
args: [{
|
|
391
|
-
standalone: true,
|
|
392
343
|
selector: 'ng-template[tuiDropdown]',
|
|
393
344
|
}]
|
|
394
345
|
}], ctorParameters: () => [] });
|
|
@@ -422,8 +373,8 @@ class TuiDropdownContext extends TuiRectAccessor {
|
|
|
422
373
|
this.currentRect = tuiPointToClientRect(x, y);
|
|
423
374
|
this.driver.next(true);
|
|
424
375
|
}
|
|
425
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
426
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.
|
|
376
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TuiDropdownContext, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
|
|
377
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.17", type: TuiDropdownContext, isStandalone: true, selector: "[tuiDropdownContext]", host: { listeners: { "document:keydown.esc": "closeDropdown()", "longtap": "onContextMenu($event.detail.clientX, $event.detail.clientY)" }, properties: { "style.user-select": "userSelect()", "style.-webkit-user-select": "userSelect()", "style.-webkit-touch-callout": "userSelect()" } }, providers: [
|
|
427
378
|
TuiActiveZone,
|
|
428
379
|
TuiDropdownDriver,
|
|
429
380
|
tuiAsDriver(TuiDropdownDriver),
|
|
@@ -433,10 +384,9 @@ class TuiDropdownContext extends TuiRectAccessor {
|
|
|
433
384
|
__decorate([
|
|
434
385
|
shouldCall(activeZoneFilter)
|
|
435
386
|
], TuiDropdownContext.prototype, "closeDropdown", null);
|
|
436
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
387
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TuiDropdownContext, decorators: [{
|
|
437
388
|
type: Directive,
|
|
438
389
|
args: [{
|
|
439
|
-
standalone: true,
|
|
440
390
|
selector: '[tuiDropdownContext]',
|
|
441
391
|
providers: [
|
|
442
392
|
TuiActiveZone,
|
|
@@ -462,48 +412,40 @@ const TUI_DROPDOWN_HOVER_DEFAULT_OPTIONS = {
|
|
|
462
412
|
/**
|
|
463
413
|
* Default parameters for dropdown hover directive
|
|
464
414
|
*/
|
|
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
|
-
}
|
|
415
|
+
const [TUI_DROPDOWN_HOVER_OPTIONS, tuiDropdownHoverOptionsProvider] = tuiCreateOptions(TUI_DROPDOWN_HOVER_DEFAULT_OPTIONS);
|
|
471
416
|
|
|
472
417
|
function shouldClose(event) {
|
|
473
418
|
return (
|
|
474
419
|
// @ts-ignore
|
|
475
420
|
typeof CloseWatcher === 'undefined' &&
|
|
476
|
-
// ?. for
|
|
421
|
+
// ?. for autofill events
|
|
477
422
|
event.key?.toLowerCase() === 'escape' &&
|
|
478
|
-
this.
|
|
479
|
-
|
|
423
|
+
this.enabled() &&
|
|
424
|
+
this.open() &&
|
|
480
425
|
!this['dropdown']()?.nextElementSibling);
|
|
481
426
|
}
|
|
482
427
|
class TuiDropdownOpen {
|
|
483
428
|
constructor() {
|
|
429
|
+
this.dropdownHost = contentChild('tuiDropdownHost', {
|
|
430
|
+
descendants: true,
|
|
431
|
+
read: ElementRef,
|
|
432
|
+
});
|
|
484
433
|
this.directive = inject(TuiDropdownDirective);
|
|
485
434
|
this.el = tuiInjectElement();
|
|
486
435
|
this.obscured = inject(TuiObscured);
|
|
487
436
|
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
437
|
this.driver = inject(TuiDropdownDriver);
|
|
494
|
-
this.
|
|
495
|
-
|
|
438
|
+
this.dropdown = computed(() => this.directive.ref()?.location.nativeElement);
|
|
439
|
+
this.enabled = input(true, { alias: 'tuiDropdownEnabled' });
|
|
440
|
+
this.open = model(false, { alias: 'tuiDropdownOpen' });
|
|
441
|
+
this.driveEffect = effect(() => this.drive(this.open()));
|
|
442
|
+
this.syncSub = this.driver
|
|
443
|
+
.pipe(filter((open) => open !== this.open()), takeUntilDestroyed())
|
|
444
|
+
.subscribe((open) => this.update(open));
|
|
445
|
+
this.closeSub = this.driver
|
|
446
|
+
.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
447
|
!this.directive.ref())))), tuiZonefull(), tuiWatch(), takeUntilDestroyed())
|
|
497
448
|
.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
449
|
}
|
|
508
450
|
toggle(open) {
|
|
509
451
|
if (this.focused && !open) {
|
|
@@ -517,14 +459,14 @@ class TuiDropdownOpen {
|
|
|
517
459
|
}
|
|
518
460
|
onClick(target) {
|
|
519
461
|
if (!this.editable && this.host.contains(target)) {
|
|
520
|
-
this.update(!this.
|
|
462
|
+
this.update(!this.open());
|
|
521
463
|
}
|
|
522
464
|
}
|
|
523
465
|
onArrow(event, up) {
|
|
524
466
|
if (!tuiIsElement(event.target) ||
|
|
525
467
|
!this.host.contains(event.target) ||
|
|
526
|
-
!this.
|
|
527
|
-
!this.directive.
|
|
468
|
+
!this.enabled() ||
|
|
469
|
+
!this.directive.content()) {
|
|
528
470
|
return;
|
|
529
471
|
}
|
|
530
472
|
event.preventDefault();
|
|
@@ -542,11 +484,11 @@ class TuiDropdownOpen {
|
|
|
542
484
|
}
|
|
543
485
|
}
|
|
544
486
|
get host() {
|
|
545
|
-
const initial = this.dropdownHost?.nativeElement || this.el;
|
|
546
|
-
const focusable =
|
|
487
|
+
const initial = this.dropdownHost()?.nativeElement || this.el;
|
|
488
|
+
const focusable = tuiIsFocusable(initial)
|
|
547
489
|
? initial
|
|
548
490
|
: tuiGetClosestFocusable({ initial, root: this.el });
|
|
549
|
-
return this.dropdownHost?.nativeElement || focusable || this.el;
|
|
491
|
+
return this.dropdownHost()?.nativeElement || focusable || this.el;
|
|
550
492
|
}
|
|
551
493
|
get editable() {
|
|
552
494
|
return tuiIsElementEditable(this.host);
|
|
@@ -555,15 +497,14 @@ class TuiDropdownOpen {
|
|
|
555
497
|
return tuiIsFocusedIn(this.host) || tuiIsFocusedIn(this.dropdown());
|
|
556
498
|
}
|
|
557
499
|
update(open) {
|
|
558
|
-
if (open && !this.
|
|
500
|
+
if (open && !this.enabled()) {
|
|
559
501
|
return this.drive();
|
|
560
502
|
}
|
|
561
|
-
this.
|
|
562
|
-
this.tuiDropdownOpenChange.emit(open);
|
|
503
|
+
this.open.set(open);
|
|
563
504
|
this.drive();
|
|
564
505
|
}
|
|
565
|
-
drive(open =
|
|
566
|
-
this.obscured.tuiObscuredEnabled
|
|
506
|
+
drive(open = this.open() && this.enabled()) {
|
|
507
|
+
tuiSetSignal(this.obscured.tuiObscuredEnabled, open);
|
|
567
508
|
this.driver.next(open);
|
|
568
509
|
}
|
|
569
510
|
focusDropdown(previous) {
|
|
@@ -579,17 +520,16 @@ class TuiDropdownOpen {
|
|
|
579
520
|
child.remove();
|
|
580
521
|
focusable?.focus();
|
|
581
522
|
}
|
|
582
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
583
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "
|
|
523
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TuiDropdownOpen, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
524
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.2.0", version: "19.2.17", 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
525
|
}
|
|
585
526
|
__decorate([
|
|
586
527
|
shouldCall(shouldClose)
|
|
587
528
|
], TuiDropdownOpen.prototype, "onEsc", null);
|
|
588
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
529
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TuiDropdownOpen, decorators: [{
|
|
589
530
|
type: Directive,
|
|
590
531
|
args: [{
|
|
591
|
-
|
|
592
|
-
selector: '[tuiDropdown][tuiDropdownOpen],[tuiDropdown][tuiDropdownOpenChange]',
|
|
532
|
+
selector: '[tuiDropdown][tuiDropdownAuto],[tuiDropdown][tuiDropdownOpen],[tuiDropdown][tuiDropdownOpenChange]',
|
|
593
533
|
providers: [TuiDropdownDriver, tuiAsDriver(TuiDropdownDriver)],
|
|
594
534
|
hostDirectives: [
|
|
595
535
|
TuiObscured,
|
|
@@ -609,37 +549,32 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImpo
|
|
|
609
549
|
'(tuiActiveZoneChange)': '0',
|
|
610
550
|
},
|
|
611
551
|
}]
|
|
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: [] } });
|
|
552
|
+
}], propDecorators: { onEsc: [] } });
|
|
622
553
|
|
|
623
554
|
class TuiDropdownHover extends TuiDriver {
|
|
624
555
|
constructor() {
|
|
625
556
|
super((subscriber) => this.stream$.subscribe(subscriber));
|
|
557
|
+
this.dropdownHost = contentChild('tuiDropdownHost', {
|
|
558
|
+
descendants: true,
|
|
559
|
+
read: ElementRef,
|
|
560
|
+
});
|
|
561
|
+
this.hovered = false;
|
|
626
562
|
this.el = tuiInjectElement();
|
|
627
563
|
this.doc = inject(DOCUMENT);
|
|
628
564
|
this.options = inject(TUI_DROPDOWN_HOVER_OPTIONS);
|
|
629
565
|
this.activeZone = inject(TuiActiveZone);
|
|
630
566
|
this.open = inject(TuiDropdownOpen, { optional: true });
|
|
567
|
+
this.stream$ = merge(
|
|
631
568
|
/**
|
|
632
569
|
* Dropdown can be removed not only via click/touch –
|
|
633
570
|
* swipe on mobile devices removes dropdown sheet without triggering new mouseover / mouseout events.
|
|
634
571
|
*/
|
|
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) => {
|
|
572
|
+
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
573
|
this.hovered = hovered;
|
|
638
574
|
this.open?.toggle(hovered);
|
|
639
575
|
}), share());
|
|
640
|
-
this.
|
|
641
|
-
this.
|
|
642
|
-
this.hovered = false;
|
|
576
|
+
this.tuiDropdownShowDelay = input(this.options.showDelay);
|
|
577
|
+
this.tuiDropdownHideDelay = input(this.options.hideDelay);
|
|
643
578
|
this.type = 'dropdown';
|
|
644
579
|
}
|
|
645
580
|
onClick(event) {
|
|
@@ -648,85 +583,43 @@ class TuiDropdownHover extends TuiDriver {
|
|
|
648
583
|
}
|
|
649
584
|
}
|
|
650
585
|
isHovered(element) {
|
|
651
|
-
const host = this.dropdownHost?.nativeElement || this.el;
|
|
586
|
+
const host = this.dropdownHost()?.nativeElement || this.el;
|
|
652
587
|
const hovered = host.contains(element);
|
|
653
588
|
const child = !this.el.contains(element) && this.activeZone.contains(element);
|
|
654
589
|
return hovered || child;
|
|
655
590
|
}
|
|
656
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
657
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "
|
|
591
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TuiDropdownHover, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
592
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.2.0", version: "19.2.17", 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
593
|
}
|
|
659
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
594
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TuiDropdownHover, decorators: [{
|
|
660
595
|
type: Directive,
|
|
661
596
|
args: [{
|
|
662
|
-
standalone: true,
|
|
663
597
|
selector: '[tuiDropdownHover]',
|
|
664
598
|
providers: [TuiActiveZone, tuiAsDriver(TuiDropdownHover)],
|
|
665
599
|
host: {
|
|
666
600
|
'(click.capture)': 'onClick($event)',
|
|
667
601
|
},
|
|
668
602
|
}]
|
|
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
|
-
}] } });
|
|
603
|
+
}], ctorParameters: () => [] });
|
|
679
604
|
|
|
680
605
|
class TuiDropdownManual {
|
|
681
606
|
constructor() {
|
|
682
607
|
this.driver = inject(TuiDropdownDriver);
|
|
683
|
-
this.tuiDropdownManual = false;
|
|
608
|
+
this.tuiDropdownManual = input(false);
|
|
684
609
|
}
|
|
685
610
|
ngOnChanges() {
|
|
686
|
-
this.driver.next(!!this.tuiDropdownManual);
|
|
611
|
+
this.driver.next(!!this.tuiDropdownManual());
|
|
687
612
|
}
|
|
688
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
689
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "
|
|
613
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TuiDropdownManual, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
614
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "19.2.17", 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
615
|
}
|
|
691
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
616
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TuiDropdownManual, decorators: [{
|
|
692
617
|
type: Directive,
|
|
693
618
|
args: [{
|
|
694
|
-
standalone: true,
|
|
695
619
|
selector: '[tuiDropdownManual]',
|
|
696
620
|
providers: [TuiDropdownDriver, tuiAsDriver(TuiDropdownDriver)],
|
|
697
621
|
}]
|
|
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
|
-
}] } });
|
|
622
|
+
}] });
|
|
730
623
|
|
|
731
624
|
class TuiDropdownPositionSided extends TuiPositionAccessor {
|
|
732
625
|
constructor() {
|
|
@@ -735,12 +628,12 @@ class TuiDropdownPositionSided extends TuiPositionAccessor {
|
|
|
735
628
|
this.viewport = inject(TUI_VIEWPORT);
|
|
736
629
|
this.vertical = inject(TuiDropdownPosition);
|
|
737
630
|
this.previous = this.options.direction || 'bottom';
|
|
738
|
-
this.tuiDropdownSided = '';
|
|
739
|
-
this.tuiDropdownSidedOffset = 4;
|
|
631
|
+
this.tuiDropdownSided = input('');
|
|
632
|
+
this.tuiDropdownSidedOffset = input(4);
|
|
740
633
|
this.type = 'dropdown';
|
|
741
634
|
}
|
|
742
635
|
getPosition(rect) {
|
|
743
|
-
if (this.tuiDropdownSided === false) {
|
|
636
|
+
if (this.tuiDropdownSided() === false) {
|
|
744
637
|
return this.vertical.getPosition(rect);
|
|
745
638
|
}
|
|
746
639
|
const { height, width } = rect;
|
|
@@ -756,38 +649,33 @@ class TuiDropdownPositionSided extends TuiPositionAccessor {
|
|
|
756
649
|
bottom: viewport.bottom - hostRect.top,
|
|
757
650
|
};
|
|
758
651
|
const position = {
|
|
759
|
-
top: hostRect.bottom - height + this.tuiDropdownSidedOffset + 1, // 1 for border
|
|
652
|
+
top: hostRect.bottom - height + this.tuiDropdownSidedOffset() + 1, // 1 for border
|
|
760
653
|
left: hostRect.left - width - offset,
|
|
761
654
|
right: hostRect.right + offset,
|
|
762
|
-
bottom: hostRect.top - this.tuiDropdownSidedOffset - 1, // 1 for border
|
|
655
|
+
bottom: hostRect.top - this.tuiDropdownSidedOffset() - 1, // 1 for border
|
|
763
656
|
};
|
|
764
657
|
const better = available.top > available.bottom ? 'top' : 'bottom';
|
|
765
658
|
const maxLeft = available.left > available.right ? position.left : position.right;
|
|
766
659
|
const left = available[align] > width ? position[align] : maxLeft;
|
|
767
660
|
if ((available[this.previous] > height && direction) ||
|
|
768
661
|
this.previous === better) {
|
|
769
|
-
this.vertical.
|
|
770
|
-
return [position[this.previous]
|
|
662
|
+
this.vertical.direction.next(this.previous);
|
|
663
|
+
return [left, position[this.previous]];
|
|
771
664
|
}
|
|
772
665
|
this.previous = better;
|
|
773
|
-
this.vertical.
|
|
774
|
-
return [position[better]
|
|
666
|
+
this.vertical.direction.next(better);
|
|
667
|
+
return [left, position[better]];
|
|
775
668
|
}
|
|
776
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
777
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "
|
|
669
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TuiDropdownPositionSided, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
|
|
670
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "19.2.17", 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
671
|
}
|
|
779
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
672
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TuiDropdownPositionSided, decorators: [{
|
|
780
673
|
type: Directive,
|
|
781
674
|
args: [{
|
|
782
|
-
standalone: true,
|
|
783
675
|
selector: '[tuiDropdownSided]',
|
|
784
676
|
providers: [TuiDropdownPosition, tuiAsPositionAccessor(TuiDropdownPositionSided)],
|
|
785
677
|
}]
|
|
786
|
-
}]
|
|
787
|
-
type: Input
|
|
788
|
-
}], tuiDropdownSidedOffset: [{
|
|
789
|
-
type: Input
|
|
790
|
-
}] } });
|
|
678
|
+
}] });
|
|
791
679
|
|
|
792
680
|
class TuiDropdownSelection extends TuiDriver {
|
|
793
681
|
constructor() {
|
|
@@ -796,9 +684,9 @@ class TuiDropdownSelection extends TuiDriver {
|
|
|
796
684
|
this.vcr = inject(ViewContainerRef);
|
|
797
685
|
this.dropdown = inject(TuiDropdownDirective);
|
|
798
686
|
this.el = tuiInjectElement();
|
|
799
|
-
this.handler
|
|
687
|
+
this.handler = computed((visible = this.tuiDropdownSelection()) => tuiIsString(visible) ? TUI_TRUE_HANDLER : visible);
|
|
800
688
|
this.stream$ = combineLatest([
|
|
801
|
-
this.handler
|
|
689
|
+
toObservable(this.handler),
|
|
802
690
|
inject(TUI_SELECTION_STREAM).pipe(map(() => this.getRange()), filter((range) => this.isValid(range)), distinctUntilChanged((x, y) => x.startOffset === y.startOffset &&
|
|
803
691
|
x.endOffset === y.endOffset &&
|
|
804
692
|
x.commonAncestorContainer === y.commonAncestorContainer)),
|
|
@@ -810,17 +698,15 @@ class TuiDropdownSelection extends TuiDriver {
|
|
|
810
698
|
: this.range;
|
|
811
699
|
return (contained && handler(this.range)) || this.inDropdown(range);
|
|
812
700
|
}));
|
|
813
|
-
this.range = inject(
|
|
814
|
-
|
|
701
|
+
this.range = isPlatformBrowser(inject(PLATFORM_ID))
|
|
702
|
+
? new Range()
|
|
703
|
+
: {};
|
|
815
704
|
this.type = 'dropdown';
|
|
816
|
-
|
|
817
|
-
|
|
818
|
-
if (!tuiIsString(visible)) {
|
|
819
|
-
this.handler$.next(visible);
|
|
820
|
-
}
|
|
705
|
+
this.tuiDropdownSelection = input('');
|
|
706
|
+
this.tuiDropdownSelectionPosition = input('selection');
|
|
821
707
|
}
|
|
822
708
|
getClientRect() {
|
|
823
|
-
switch (this.
|
|
709
|
+
switch (this.tuiDropdownSelectionPosition()) {
|
|
824
710
|
case 'tag': {
|
|
825
711
|
const { commonAncestorContainer } = this.range;
|
|
826
712
|
const element = tuiIsElement(commonAncestorContainer)
|
|
@@ -911,28 +797,22 @@ class TuiDropdownSelection extends TuiDriver {
|
|
|
911
797
|
this.ghost = ghost;
|
|
912
798
|
return ghost;
|
|
913
799
|
}
|
|
914
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
915
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "
|
|
800
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TuiDropdownSelection, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
801
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "19.2.17", 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
802
|
tuiAsDriver(TuiDropdownSelection),
|
|
917
803
|
tuiAsRectAccessor(TuiDropdownSelection),
|
|
918
804
|
], usesInheritance: true, ngImport: i0 }); }
|
|
919
805
|
}
|
|
920
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
806
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TuiDropdownSelection, decorators: [{
|
|
921
807
|
type: Directive,
|
|
922
808
|
args: [{
|
|
923
|
-
standalone: true,
|
|
924
809
|
selector: '[tuiDropdownSelection]',
|
|
925
810
|
providers: [
|
|
926
811
|
tuiAsDriver(TuiDropdownSelection),
|
|
927
812
|
tuiAsRectAccessor(TuiDropdownSelection),
|
|
928
813
|
],
|
|
929
814
|
}]
|
|
930
|
-
}], ctorParameters: () => []
|
|
931
|
-
type: Input,
|
|
932
|
-
args: ['tuiDropdownSelectionPosition']
|
|
933
|
-
}], tuiDropdownSelection: [{
|
|
934
|
-
type: Input
|
|
935
|
-
}] } });
|
|
815
|
+
}], ctorParameters: () => [] });
|
|
936
816
|
|
|
937
817
|
const TuiDropdown = [
|
|
938
818
|
TuiDropdownOptionsDirective,
|
|
@@ -940,7 +820,6 @@ const TuiDropdown = [
|
|
|
940
820
|
TuiDropdownDirective,
|
|
941
821
|
TuiDropdownComponent,
|
|
942
822
|
TuiDropdownOpen,
|
|
943
|
-
TuiDropdownOpenLegacy,
|
|
944
823
|
TuiDropdownManual,
|
|
945
824
|
TuiDropdownHover,
|
|
946
825
|
TuiDropdownContent,
|
|
@@ -954,28 +833,20 @@ function tuiDropdown(value) {
|
|
|
954
833
|
return tuiDirectiveBinding(TuiDropdownDirective, 'tuiDropdown', value, {});
|
|
955
834
|
}
|
|
956
835
|
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;
|
|
836
|
+
return tuiDirectiveBinding(TuiDropdownOpen, 'enabled', value, {});
|
|
965
837
|
}
|
|
966
838
|
|
|
967
839
|
class TuiDropdownFixed {
|
|
968
840
|
constructor() {
|
|
969
|
-
const override = tuiOverrideOptions
|
|
841
|
+
const override = tuiOverrideOptions({ limitWidth: 'fixed' }, TUI_DROPDOWN_DEFAULT_OPTIONS);
|
|
970
842
|
override(inject(TUI_DROPDOWN_OPTIONS, { self: true, optional: true }), null);
|
|
971
843
|
}
|
|
972
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
973
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.
|
|
844
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TuiDropdownFixed, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
845
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.17", type: TuiDropdownFixed, isStandalone: true, providers: [tuiDropdownOptionsProvider({})], ngImport: i0 }); }
|
|
974
846
|
}
|
|
975
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
847
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TuiDropdownFixed, decorators: [{
|
|
976
848
|
type: Directive,
|
|
977
849
|
args: [{
|
|
978
|
-
standalone: true,
|
|
979
850
|
providers: [tuiDropdownOptionsProvider({})],
|
|
980
851
|
}]
|
|
981
852
|
}], ctorParameters: () => [] });
|
|
@@ -987,22 +858,20 @@ class TuiDropdownAuto {
|
|
|
987
858
|
*/
|
|
988
859
|
inject(TUI_DROPDOWN_OPTIONS).limitWidth = 'auto';
|
|
989
860
|
}
|
|
990
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
991
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.
|
|
861
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TuiDropdownAuto, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
862
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.17", type: TuiDropdownAuto, isStandalone: true, ngImport: i0 }); }
|
|
992
863
|
}
|
|
993
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
994
|
-
type: Directive
|
|
995
|
-
args: [{ standalone: true }]
|
|
864
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TuiDropdownAuto, decorators: [{
|
|
865
|
+
type: Directive
|
|
996
866
|
}], ctorParameters: () => [] });
|
|
997
867
|
|
|
998
868
|
class TuiWithDropdownOpen {
|
|
999
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
1000
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.
|
|
869
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TuiWithDropdownOpen, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
870
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.17", type: TuiWithDropdownOpen, isStandalone: true, hostDirectives: [{ directive: TuiDropdownOpen, inputs: ["tuiDropdownOpen", "open", "tuiDropdownEnabled", "tuiDropdownEnabled"], outputs: ["tuiDropdownOpenChange", "openChange"] }], ngImport: i0 }); }
|
|
1001
871
|
}
|
|
1002
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
872
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TuiWithDropdownOpen, decorators: [{
|
|
1003
873
|
type: Directive,
|
|
1004
874
|
args: [{
|
|
1005
|
-
standalone: true,
|
|
1006
875
|
hostDirectives: [
|
|
1007
876
|
{
|
|
1008
877
|
directive: TuiDropdownOpen,
|
|
@@ -1017,5 +886,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImpo
|
|
|
1017
886
|
* Generated bundle index. Do not edit.
|
|
1018
887
|
*/
|
|
1019
888
|
|
|
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,
|
|
1021
|
-
//# sourceMappingURL=taiga-ui-core-
|
|
889
|
+
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 };
|
|
890
|
+
//# sourceMappingURL=taiga-ui-core-portals-dropdown.mjs.map
|