@taiga-ui/core 3.17.0 → 3.18.0

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.
Files changed (99) hide show
  1. package/bundles/taiga-ui-core-abstract.umd.js +1 -0
  2. package/bundles/taiga-ui-core-abstract.umd.js.map +1 -1
  3. package/bundles/taiga-ui-core-components-dialog.umd.js +189 -167
  4. package/bundles/taiga-ui-core-components-dialog.umd.js.map +1 -1
  5. package/bundles/taiga-ui-core-components-notification.umd.js +2 -2
  6. package/bundles/taiga-ui-core-components-notification.umd.js.map +1 -1
  7. package/bundles/taiga-ui-core-components-primitive-textfield.umd.js +1 -1
  8. package/bundles/taiga-ui-core-components-primitive-textfield.umd.js.map +1 -1
  9. package/bundles/taiga-ui-core-components-root.umd.js +1 -1
  10. package/bundles/taiga-ui-core-components-svg.umd.js +100 -20
  11. package/bundles/taiga-ui-core-components-svg.umd.js.map +1 -1
  12. package/bundles/taiga-ui-core-components-tooltip.umd.js +31 -13
  13. package/bundles/taiga-ui-core-components-tooltip.umd.js.map +1 -1
  14. package/bundles/taiga-ui-core-directives-dropdown.umd.js +45 -25
  15. package/bundles/taiga-ui-core-directives-dropdown.umd.js.map +1 -1
  16. package/bundles/taiga-ui-core-directives-hint.umd.js +67 -63
  17. package/bundles/taiga-ui-core-directives-hint.umd.js.map +1 -1
  18. package/bundles/taiga-ui-core-tokens.umd.js +39 -1
  19. package/bundles/taiga-ui-core-tokens.umd.js.map +1 -1
  20. package/components/dialog/dialog-close.service.d.ts +15 -0
  21. package/components/dialog/dialog.component.d.ts +5 -4
  22. package/components/dialog/dialog.tokens.d.ts +2 -0
  23. package/components/dialog/index.d.ts +1 -1
  24. package/components/notification/notification.component.d.ts +2 -2
  25. package/components/svg/deprecated-icons.d.ts +1 -0
  26. package/components/svg/index.d.ts +2 -0
  27. package/components/svg/svg-options.d.ts +14 -0
  28. package/components/svg/svg.component.d.ts +5 -7
  29. package/components/tooltip/tooltip.component.d.ts +2 -2
  30. package/components/tooltip/tooltip.module.d.ts +5 -4
  31. package/directives/dropdown/dropdown-hover-options.directive.d.ts +9 -0
  32. package/directives/dropdown/dropdown-hover.directive.d.ts +3 -1
  33. package/directives/dropdown/dropdown-position-sided.directive.d.ts +2 -2
  34. package/directives/dropdown/dropdown-position.directive.d.ts +2 -2
  35. package/directives/dropdown/index.d.ts +1 -0
  36. package/directives/hint/hint-hover.directive.d.ts +4 -2
  37. package/directives/hint/hint-position.directive.d.ts +2 -2
  38. package/esm2015/abstract/rect-accessor.js +2 -1
  39. package/esm2015/components/dialog/dialog-close.service.js +51 -0
  40. package/esm2015/components/dialog/dialog.component.js +26 -10
  41. package/esm2015/components/dialog/dialog.tokens.js +5 -1
  42. package/esm2015/components/dialog/index.js +2 -2
  43. package/esm2015/components/notification/notification.component.js +3 -3
  44. package/esm2015/components/primitive-textfield/primitive-textfield.component.js +2 -2
  45. package/esm2015/components/root/root.component.js +1 -1
  46. package/esm2015/components/svg/deprecated-icons.js +59 -0
  47. package/esm2015/components/svg/index.js +3 -1
  48. package/esm2015/components/svg/svg-options.js +29 -0
  49. package/esm2015/components/svg/svg.component.js +13 -18
  50. package/esm2015/components/tooltip/tooltip.component.js +13 -13
  51. package/esm2015/components/tooltip/tooltip.module.js +21 -4
  52. package/esm2015/directives/dropdown/dropdown-hover-options.directive.js +14 -0
  53. package/esm2015/directives/dropdown/dropdown-hover.directive.js +10 -5
  54. package/esm2015/directives/dropdown/dropdown-position-sided.directive.js +12 -12
  55. package/esm2015/directives/dropdown/dropdown-position.directive.js +11 -11
  56. package/esm2015/directives/dropdown/index.js +2 -1
  57. package/esm2015/directives/hint/hint-hover.directive.js +13 -10
  58. package/esm2015/directives/hint/hint-options.directive.js +2 -2
  59. package/esm2015/directives/hint/hint-position.directive.js +12 -11
  60. package/esm2015/directives/hint/hint.component.js +3 -2
  61. package/esm2015/interfaces/dialog-options.js +1 -1
  62. package/esm2015/tokens/icon-place.js +5 -2
  63. package/esm2015/tokens/icons-path.js +4 -1
  64. package/esm2015/tokens/index.js +2 -1
  65. package/esm2015/tokens/svg-content-processor.js +4 -1
  66. package/esm2015/tokens/svg-src-processor.js +4 -1
  67. package/esm2015/tokens/viewport.js +26 -0
  68. package/fesm2015/taiga-ui-core-abstract.js +1 -0
  69. package/fesm2015/taiga-ui-core-abstract.js.map +1 -1
  70. package/fesm2015/taiga-ui-core-components-dialog.js +85 -69
  71. package/fesm2015/taiga-ui-core-components-dialog.js.map +1 -1
  72. package/fesm2015/taiga-ui-core-components-notification.js +2 -2
  73. package/fesm2015/taiga-ui-core-components-notification.js.map +1 -1
  74. package/fesm2015/taiga-ui-core-components-primitive-textfield.js +1 -1
  75. package/fesm2015/taiga-ui-core-components-primitive-textfield.js.map +1 -1
  76. package/fesm2015/taiga-ui-core-components-root.js +1 -1
  77. package/fesm2015/taiga-ui-core-components-svg.js +98 -21
  78. package/fesm2015/taiga-ui-core-components-svg.js.map +1 -1
  79. package/fesm2015/taiga-ui-core-components-tooltip.js +32 -15
  80. package/fesm2015/taiga-ui-core-components-tooltip.js.map +1 -1
  81. package/fesm2015/taiga-ui-core-directives-dropdown.js +42 -25
  82. package/fesm2015/taiga-ui-core-directives-dropdown.js.map +1 -1
  83. package/fesm2015/taiga-ui-core-directives-hint.js +30 -27
  84. package/fesm2015/taiga-ui-core-directives-hint.js.map +1 -1
  85. package/fesm2015/taiga-ui-core-tokens.js +38 -2
  86. package/fesm2015/taiga-ui-core-tokens.js.map +1 -1
  87. package/interfaces/dialog-options.d.ts +4 -3
  88. package/package.json +4 -4
  89. package/styles/mixins/textfield.less +4 -22
  90. package/styles/mixins/textfield.scss +3 -22
  91. package/styles/theme/wrapper/icon.less +17 -27
  92. package/tokens/icon-place.d.ts +3 -0
  93. package/tokens/icons-path.d.ts +3 -0
  94. package/tokens/index.d.ts +1 -0
  95. package/tokens/svg-content-processor.d.ts +3 -0
  96. package/tokens/svg-src-processor.d.ts +3 -0
  97. package/tokens/viewport.d.ts +4 -0
  98. package/components/dialog/dialog.providers.d.ts +0 -5
  99. package/esm2015/components/dialog/dialog.providers.js +0 -51
@@ -2,28 +2,27 @@ import { __decorate } from 'tslib';
2
2
  import * as i0 from '@angular/core';
3
3
  import { Component, ChangeDetectionStrategy, Self, Inject, ViewChild, Input, HostBinding, HostListener, NgModule } from '@angular/core';
4
4
  import { TuiDestroyService, TUI_IS_MOBILE, tuiDefaultProp } from '@taiga-ui/cdk';
5
- import { TuiDriver } from '@taiga-ui/core/abstract';
6
- import { TuiHintOptionsDirective, TUI_HINT_OPTIONS } from '@taiga-ui/core/directives';
5
+ import { TuiHintOptionsDirective, TUI_HINT_OPTIONS, TuiHintHoverDirective } from '@taiga-ui/core/directives';
7
6
  import { MODE_PROVIDER } from '@taiga-ui/core/providers';
8
7
  import { TUI_MODE } from '@taiga-ui/core/tokens';
9
- import * as i5 from 'rxjs';
10
- import { EMPTY } from 'rxjs';
11
8
  import { takeUntil } from 'rxjs/operators';
12
9
  import * as i1 from '@taiga-ui/core/components/svg';
13
10
  import { TuiSvgModule } from '@taiga-ui/core/components/svg';
14
- import * as i2 from '@taiga-ui/core/directives/hint';
11
+ import * as i2 from '@taiga-ui/core/directives/wrapper';
12
+ import { TuiWrapperModule } from '@taiga-ui/core/directives/wrapper';
13
+ import * as i3 from '@taiga-ui/core/directives/hint';
15
14
  import { TuiHintModule } from '@taiga-ui/core/directives/hint';
16
- import * as i3 from '@tinkoff/ng-polymorpheus';
15
+ import * as i4 from '@tinkoff/ng-polymorpheus';
17
16
  import { PolymorpheusModule } from '@tinkoff/ng-polymorpheus';
18
- import * as i4 from '@angular/common';
17
+ import * as i5 from '@angular/common';
19
18
  import { CommonModule } from '@angular/common';
19
+ import * as i6 from 'rxjs';
20
20
 
21
21
  class TuiTooltipComponent extends TuiHintOptionsDirective {
22
22
  constructor(destroy$, mode$, options, isMobile) {
23
23
  super(options);
24
24
  this.isMobile = isMobile;
25
25
  this.mode = null;
26
- this.driver$ = EMPTY;
27
26
  this.describeId = '';
28
27
  mode$.pipe(takeUntil(destroy$)).subscribe(mode => {
29
28
  this.mode = mode;
@@ -33,14 +32,16 @@ class TuiTooltipComponent extends TuiHintOptionsDirective {
33
32
  return this.appearance || this.mode || '';
34
33
  }
35
34
  stopOnMobile(event) {
35
+ var _a;
36
36
  if (this.isMobile) {
37
37
  event.preventDefault();
38
38
  event.stopPropagation();
39
39
  }
40
+ (_a = this.driver$) === null || _a === void 0 ? void 0 : _a.toggle(true);
40
41
  }
41
42
  }
42
43
  TuiTooltipComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: TuiTooltipComponent, deps: [{ token: TuiDestroyService, self: true }, { token: TUI_MODE }, { token: TUI_HINT_OPTIONS }, { token: TUI_IS_MOBILE }], target: i0.ɵɵFactoryTarget.Component });
43
- TuiTooltipComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: TuiTooltipComponent, selector: "tui-tooltip", inputs: { content: "content", direction: "direction", appearance: "appearance", showDelay: "showDelay", hideDelay: "hideDelay", describeId: "describeId" }, host: { listeners: { "mousedown": "stopOnMobile($event)", "click": "stopOnMobile($event)" }, properties: { "attr.data-appearance": "this.computedAppearance" } }, providers: [TuiDestroyService, MODE_PROVIDER], viewQueries: [{ propertyName: "driver$", first: true, predicate: TuiDriver, descendants: true }], usesInheritance: true, ngImport: i0, template: "<span\n automation-id=\"tui-tooltip__icon\"\n class=\"t-tooltip-icon\"\n [class.t-icon_hovered]=\"driver$ | async\"\n [tuiHint]=\"content\"\n [tuiHintDescribe]=\"describeId\"\n [tuiHintDirection]=\"direction\"\n [tuiHintShowDelay]=\"showDelay\"\n [tuiHintHideDelay]=\"hideDelay\"\n [tuiHintAppearance]=\"computedAppearance\"\n>\n <tui-svg\n *polymorpheusOutlet=\"icon as src\"\n [src]=\"src\"\n ></tui-svg>\n</span>\n", styles: [":host{transition-property:color;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;position:relative;display:inline-block;width:1.5rem;height:1.5rem;vertical-align:middle;font-size:0;line-height:0;cursor:pointer;color:var(--tui-text-03)}:host:hover{color:var(--tui-text-02)}:host[data-appearance=onDark]{color:var(--tui-text-01-night)}:host[data-appearance=onLight]{color:var(--tui-text-01)}:host[data-appearance=error]{color:var(--tui-error-fill)}.t-tooltip-icon{transition-property:opacity,color;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;display:inline-block;width:100%;height:100%}:host:not([data-appearance]) .t-tooltip-icon_hovered{color:var(--tui-text-02)}:host[data-appearance=onLight] .t-tooltip-icon,:host[data-appearance=onDark] .t-tooltip-icon{opacity:var(--tui-disabled-opacity)}:host[data-appearance=onLight] .t-tooltip-icon_hovered,:host[data-appearance=onDark] .t-tooltip-icon_hovered{opacity:1}\n"], components: [{ type: i1.TuiSvgComponent, selector: "tui-svg", inputs: ["src"] }], directives: [{ type: i2.TuiHintDirective, selector: "[tuiHint]:not(ng-container)", inputs: ["tuiHint", "tuiHintContext", "tuiHintAppearance"] }, { type: i2.TuiHintDriverDirective, selector: "[tuiHint]" }, { type: i2.TuiHintHoverDirective, selector: "[tuiHint]:not(ng-container)", inputs: ["tuiHintShowDelay", "tuiHintHideDelay"] }, { type: i2.TuiHintPositionDirective, selector: "[tuiHint]:not([tuiHintCustomPosition])", inputs: ["tuiHintDirection"] }, { type: i2.TuiHintDescribeDirective, selector: "[tuiHintDescribe]", inputs: ["tuiHintDescribe"] }, { type: i3.PolymorpheusOutletDirective, selector: "[polymorpheusOutlet]", inputs: ["polymorpheusOutlet", "polymorpheusOutletContext"] }], pipes: { "async": i4.AsyncPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
44
+ TuiTooltipComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: TuiTooltipComponent, selector: "tui-tooltip", inputs: { content: "content", direction: "direction", appearance: "appearance", showDelay: "showDelay", hideDelay: "hideDelay", describeId: "describeId" }, host: { listeners: { "mousedown": "stopOnMobile($event)", "click": "stopOnMobile($event)" }, properties: { "attr.data-appearance": "this.computedAppearance" } }, providers: [TuiDestroyService, MODE_PROVIDER], viewQueries: [{ propertyName: "driver$", first: true, predicate: TuiHintHoverDirective, descendants: true }], usesInheritance: true, ngImport: i0, template: "<span\n #driver=\"tuiHintHover\"\n automation-id=\"tui-tooltip__icon\"\n tuiWrapper\n appearance=\"icon\"\n class=\"t-tooltip-icon\"\n [hover]=\"(driver | async) || null\"\n [tuiHint]=\"content\"\n [tuiHintDescribe]=\"describeId\"\n [tuiHintDirection]=\"direction\"\n [tuiHintShowDelay]=\"showDelay\"\n [tuiHintHideDelay]=\"hideDelay\"\n [tuiHintAppearance]=\"computedAppearance\"\n>\n <tui-svg\n *polymorpheusOutlet=\"icon as src\"\n [src]=\"src\"\n ></tui-svg>\n</span>\n", styles: [":host{transition-property:color;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;position:relative;display:inline-block;width:1.5rem;height:1.5rem;vertical-align:middle;font-size:0;line-height:0;cursor:pointer;color:var(--tui-text-01)}:host[data-appearance=error]{color:var(--tui-error-fill)}.t-tooltip-icon{display:inline-block;width:100%;height:100%;color:inherit}\n"], components: [{ type: i1.TuiSvgComponent, selector: "tui-svg", inputs: ["src"] }], directives: [{ type: i2.TuiWrapperDirective, selector: "[tuiWrapper]", inputs: ["disabled", "readOnly", "hover", "active", "focus", "invalid", "appearance"] }, { type: i3.TuiHintDirective, selector: "[tuiHint]:not(ng-container)", inputs: ["tuiHint", "tuiHintContext", "tuiHintAppearance"] }, { type: i3.TuiHintDriverDirective, selector: "[tuiHint]" }, { type: i3.TuiHintHoverDirective, selector: "[tuiHint]:not(ng-container)", inputs: ["tuiHintShowDelay", "tuiHintHideDelay"], exportAs: ["tuiHintHover"] }, { type: i3.TuiHintPositionDirective, selector: "[tuiHint]:not([tuiHintCustomPosition])", inputs: ["tuiHintDirection"] }, { type: i3.TuiHintDescribeDirective, selector: "[tuiHintDescribe]", inputs: ["tuiHintDescribe"] }, { type: i4.PolymorpheusOutletDirective, selector: "[polymorpheusOutlet]", inputs: ["polymorpheusOutlet", "polymorpheusOutletContext"] }], pipes: { "async": i5.AsyncPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
44
45
  __decorate([
45
46
  tuiDefaultProp()
46
47
  ], TuiTooltipComponent.prototype, "describeId", void 0);
@@ -54,12 +55,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
54
55
  providers: [TuiDestroyService, MODE_PROVIDER],
55
56
  inputs: ['content', 'direction', 'appearance', 'showDelay', 'hideDelay'],
56
57
  }]
57
- }], ctorParameters: function () { return [{ type: i5.Observable, decorators: [{
58
+ }], ctorParameters: function () { return [{ type: i6.Observable, decorators: [{
58
59
  type: Self
59
60
  }, {
60
61
  type: Inject,
61
62
  args: [TuiDestroyService]
62
- }] }, { type: i5.Observable, decorators: [{
63
+ }] }, { type: i6.Observable, decorators: [{
63
64
  type: Inject,
64
65
  args: [TUI_MODE]
65
66
  }] }, { type: undefined, decorators: [{
@@ -70,7 +71,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
70
71
  args: [TUI_IS_MOBILE]
71
72
  }] }]; }, propDecorators: { driver$: [{
72
73
  type: ViewChild,
73
- args: [TuiDriver]
74
+ args: [TuiHintHoverDirective]
74
75
  }], describeId: [{
75
76
  type: Input
76
77
  }], computedAppearance: [{
@@ -87,12 +88,28 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
87
88
  class TuiTooltipModule {
88
89
  }
89
90
  TuiTooltipModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: TuiTooltipModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
90
- TuiTooltipModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: TuiTooltipModule, declarations: [TuiTooltipComponent], imports: [CommonModule, TuiSvgModule, TuiHintModule, PolymorpheusModule], exports: [TuiTooltipComponent] });
91
- TuiTooltipModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: TuiTooltipModule, imports: [[CommonModule, TuiSvgModule, TuiHintModule, PolymorpheusModule]] });
91
+ TuiTooltipModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: TuiTooltipModule, declarations: [TuiTooltipComponent], imports: [CommonModule,
92
+ TuiWrapperModule,
93
+ TuiSvgModule,
94
+ TuiHintModule,
95
+ PolymorpheusModule], exports: [TuiTooltipComponent] });
96
+ TuiTooltipModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: TuiTooltipModule, imports: [[
97
+ CommonModule,
98
+ TuiWrapperModule,
99
+ TuiSvgModule,
100
+ TuiHintModule,
101
+ PolymorpheusModule,
102
+ ]] });
92
103
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: TuiTooltipModule, decorators: [{
93
104
  type: NgModule,
94
105
  args: [{
95
- imports: [CommonModule, TuiSvgModule, TuiHintModule, PolymorpheusModule],
106
+ imports: [
107
+ CommonModule,
108
+ TuiWrapperModule,
109
+ TuiSvgModule,
110
+ TuiHintModule,
111
+ PolymorpheusModule,
112
+ ],
96
113
  declarations: [TuiTooltipComponent],
97
114
  exports: [TuiTooltipComponent],
98
115
  }]
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-core-components-tooltip.js","sources":["../../../projects/core/components/tooltip/tooltip.component.ts","../../../projects/core/components/tooltip/tooltip.template.html","../../../projects/core/components/tooltip/tooltip.module.ts","../../../projects/core/components/tooltip/taiga-ui-core-components-tooltip.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n Component,\n HostBinding,\n HostListener,\n Inject,\n Input,\n Self,\n ViewChild,\n} from '@angular/core';\nimport {TUI_IS_MOBILE, tuiDefaultProp, TuiDestroyService} from '@taiga-ui/cdk';\nimport {TuiDriver} from '@taiga-ui/core/abstract';\nimport {\n TUI_HINT_OPTIONS,\n TuiHintOptions,\n TuiHintOptionsDirective,\n} from '@taiga-ui/core/directives';\nimport {MODE_PROVIDER} from '@taiga-ui/core/providers';\nimport {TUI_MODE} from '@taiga-ui/core/tokens';\nimport {TuiBrightness} from '@taiga-ui/core/types';\nimport {EMPTY, Observable} from 'rxjs';\nimport {takeUntil} from 'rxjs/operators';\n\n@Component({\n selector: 'tui-tooltip',\n templateUrl: './tooltip.template.html',\n styleUrls: ['./tooltip.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [TuiDestroyService, MODE_PROVIDER],\n inputs: ['content', 'direction', 'appearance', 'showDelay', 'hideDelay'],\n})\nexport class TuiTooltipComponent extends TuiHintOptionsDirective {\n private mode: TuiBrightness | null = null;\n\n @ViewChild(TuiDriver)\n readonly driver$: Observable<boolean> = EMPTY;\n\n @Input()\n @tuiDefaultProp()\n describeId = '';\n\n constructor(\n @Self() @Inject(TuiDestroyService) destroy$: Observable<unknown>,\n @Inject(TUI_MODE) mode$: Observable<TuiBrightness | null>,\n @Inject(TUI_HINT_OPTIONS) options: TuiHintOptions,\n @Inject(TUI_IS_MOBILE) private readonly isMobile: boolean,\n ) {\n super(options);\n\n mode$.pipe(takeUntil(destroy$)).subscribe(mode => {\n this.mode = mode;\n });\n }\n\n @HostBinding('attr.data-appearance')\n get computedAppearance(): string {\n return this.appearance || this.mode || '';\n }\n\n @HostListener('mousedown', ['$event'])\n @HostListener('click', ['$event'])\n stopOnMobile(event: MouseEvent): void {\n if (this.isMobile) {\n event.preventDefault();\n event.stopPropagation();\n }\n }\n}\n","<span\n automation-id=\"tui-tooltip__icon\"\n class=\"t-tooltip-icon\"\n [class.t-icon_hovered]=\"driver$ | async\"\n [tuiHint]=\"content\"\n [tuiHintDescribe]=\"describeId\"\n [tuiHintDirection]=\"direction\"\n [tuiHintShowDelay]=\"showDelay\"\n [tuiHintHideDelay]=\"hideDelay\"\n [tuiHintAppearance]=\"computedAppearance\"\n>\n <tui-svg\n *polymorpheusOutlet=\"icon as src\"\n [src]=\"src\"\n ></tui-svg>\n</span>\n","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {TuiSvgModule} from '@taiga-ui/core/components/svg';\nimport {TuiHintModule} from '@taiga-ui/core/directives/hint';\nimport {PolymorpheusModule} from '@tinkoff/ng-polymorpheus';\n\nimport {TuiTooltipComponent} from './tooltip.component';\n\n@NgModule({\n imports: [CommonModule, TuiSvgModule, TuiHintModule, PolymorpheusModule],\n declarations: [TuiTooltipComponent],\n exports: [TuiTooltipComponent],\n})\nexport class TuiTooltipModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;AA+BM,MAAO,mBAAoB,SAAQ,uBAAuB,CAAA;AAU5D,IAAA,WAAA,CACuC,QAA6B,EAC9C,KAAuC,EAC/B,OAAuB,EACT,QAAiB,EAAA;QAEzD,KAAK,CAAC,OAAO,CAAC,CAAC;QAFyB,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAS;QAbrD,IAAI,CAAA,IAAA,GAAyB,IAAI,CAAC;QAGjC,IAAO,CAAA,OAAA,GAAwB,KAAK,CAAC;QAI9C,IAAU,CAAA,UAAA,GAAG,EAAE,CAAC;AAUZ,QAAA,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,IAAG;AAC7C,YAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;AACrB,SAAC,CAAC,CAAC;KACN;AAED,IAAA,IACI,kBAAkB,GAAA;QAClB,OAAO,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC;KAC7C;AAID,IAAA,YAAY,CAAC,KAAiB,EAAA;QAC1B,IAAI,IAAI,CAAC,QAAQ,EAAE;YACf,KAAK,CAAC,cAAc,EAAE,CAAC;YACvB,KAAK,CAAC,eAAe,EAAE,CAAC;AAC3B,SAAA;KACJ;;AAnCQ,mBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,mBAAmB,kBAWR,iBAAiB,EAAA,IAAA,EAAA,IAAA,EAAA,EAAA,EAAA,KAAA,EACzB,QAAQ,EACR,EAAA,EAAA,KAAA,EAAA,gBAAgB,aAChB,aAAa,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;qGAdhB,mBAAmB,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,SAAA,EAAA,WAAA,EAAA,UAAA,EAAA,YAAA,EAAA,SAAA,EAAA,WAAA,EAAA,SAAA,EAAA,WAAA,EAAA,UAAA,EAAA,YAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,WAAA,EAAA,sBAAA,EAAA,OAAA,EAAA,sBAAA,EAAA,EAAA,UAAA,EAAA,EAAA,sBAAA,EAAA,yBAAA,EAAA,EAAA,EAAA,SAAA,EAHjB,CAAC,iBAAiB,EAAE,aAAa,CAAC,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,SAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAMlC,SAAS,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EClCxB,kdAgBA,EAAA,MAAA,EAAA,CAAA,69BAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,KAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,6BAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,gBAAA,EAAA,mBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,CAAA,sBAAA,EAAA,QAAA,EAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,CAAA,qBAAA,EAAA,QAAA,EAAA,6BAAA,EAAA,MAAA,EAAA,CAAA,kBAAA,EAAA,kBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,CAAA,wBAAA,EAAA,QAAA,EAAA,wCAAA,EAAA,MAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,CAAA,wBAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,CAAA,2BAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,oBAAA,EAAA,2BAAA,CAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,OAAA,EAAA,EAAA,CAAA,SAAA,EAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;ADuBI,UAAA,CAAA;AADC,IAAA,cAAc,EAAE;AACD,CAAA,EAAA,mBAAA,CAAA,SAAA,EAAA,YAAA,EAAA,KAAA,CAAA,CAAA,CAAA;4FARP,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAR/B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,aAAa;AACvB,oBAAA,WAAW,EAAE,yBAAyB;oBACtC,SAAS,EAAE,CAAC,sBAAsB,CAAC;oBACnC,eAAe,EAAE,uBAAuB,CAAC,MAAM;AAC/C,oBAAA,SAAS,EAAE,CAAC,iBAAiB,EAAE,aAAa,CAAC;oBAC7C,MAAM,EAAE,CAAC,SAAS,EAAE,WAAW,EAAE,YAAY,EAAE,WAAW,EAAE,WAAW,CAAC;AAC3E,iBAAA,CAAA;;0BAYQ,IAAI;;0BAAI,MAAM;2BAAC,iBAAiB,CAAA;;0BAChC,MAAM;2BAAC,QAAQ,CAAA;;0BACf,MAAM;2BAAC,gBAAgB,CAAA;;0BACvB,MAAM;2BAAC,aAAa,CAAA;4CAVhB,OAAO,EAAA,CAAA;sBADf,SAAS;uBAAC,SAAS,CAAA;gBAKpB,UAAU,EAAA,CAAA;sBAFT,KAAK;gBAkBF,kBAAkB,EAAA,CAAA;sBADrB,WAAW;uBAAC,sBAAsB,CAAA;gBAOnC,YAAY,EAAA,CAAA;sBAFX,YAAY;uBAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,CAAA;;sBACpC,YAAY;uBAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,CAAA;;;ME/CxB,gBAAgB,CAAA;;8GAAhB,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;+GAAhB,gBAAgB,EAAA,YAAA,EAAA,CAHV,mBAAmB,CAAA,EAAA,OAAA,EAAA,CADxB,YAAY,EAAE,YAAY,EAAE,aAAa,EAAE,kBAAkB,CAAA,EAAA,OAAA,EAAA,CAE7D,mBAAmB,CAAA,EAAA,CAAA,CAAA;+GAEpB,gBAAgB,EAAA,OAAA,EAAA,CAJhB,CAAC,YAAY,EAAE,YAAY,EAAE,aAAa,EAAE,kBAAkB,CAAC,CAAA,EAAA,CAAA,CAAA;4FAI/D,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAL5B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACN,OAAO,EAAE,CAAC,YAAY,EAAE,YAAY,EAAE,aAAa,EAAE,kBAAkB,CAAC;oBACxE,YAAY,EAAE,CAAC,mBAAmB,CAAC;oBACnC,OAAO,EAAE,CAAC,mBAAmB,CAAC;AACjC,iBAAA,CAAA;;;ACZD;;AAEG;;;;"}
1
+ {"version":3,"file":"taiga-ui-core-components-tooltip.js","sources":["../../../projects/core/components/tooltip/tooltip.component.ts","../../../projects/core/components/tooltip/tooltip.template.html","../../../projects/core/components/tooltip/tooltip.module.ts","../../../projects/core/components/tooltip/taiga-ui-core-components-tooltip.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n Component,\n HostBinding,\n HostListener,\n Inject,\n Input,\n Self,\n ViewChild,\n} from '@angular/core';\nimport {TUI_IS_MOBILE, tuiDefaultProp, TuiDestroyService} from '@taiga-ui/cdk';\nimport {\n TUI_HINT_OPTIONS,\n TuiHintHoverDirective,\n TuiHintOptions,\n TuiHintOptionsDirective,\n} from '@taiga-ui/core/directives';\nimport {MODE_PROVIDER} from '@taiga-ui/core/providers';\nimport {TUI_MODE} from '@taiga-ui/core/tokens';\nimport {TuiBrightness} from '@taiga-ui/core/types';\nimport {Observable} from 'rxjs';\nimport {takeUntil} from 'rxjs/operators';\n\n@Component({\n selector: 'tui-tooltip',\n templateUrl: './tooltip.template.html',\n styleUrls: ['./tooltip.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [TuiDestroyService, MODE_PROVIDER],\n inputs: ['content', 'direction', 'appearance', 'showDelay', 'hideDelay'],\n})\nexport class TuiTooltipComponent extends TuiHintOptionsDirective {\n private mode: TuiBrightness | null = null;\n\n @ViewChild(TuiHintHoverDirective)\n readonly driver$?: TuiHintHoverDirective;\n\n @Input()\n @tuiDefaultProp()\n describeId = '';\n\n constructor(\n @Self() @Inject(TuiDestroyService) destroy$: Observable<unknown>,\n @Inject(TUI_MODE) mode$: Observable<TuiBrightness | null>,\n @Inject(TUI_HINT_OPTIONS) options: TuiHintOptions,\n @Inject(TUI_IS_MOBILE) private readonly isMobile: boolean,\n ) {\n super(options);\n\n mode$.pipe(takeUntil(destroy$)).subscribe(mode => {\n this.mode = mode;\n });\n }\n\n @HostBinding('attr.data-appearance')\n get computedAppearance(): string {\n return this.appearance || this.mode || '';\n }\n\n @HostListener('mousedown', ['$event'])\n @HostListener('click', ['$event'])\n stopOnMobile(event: MouseEvent): void {\n if (this.isMobile) {\n event.preventDefault();\n event.stopPropagation();\n }\n\n this.driver$?.toggle(true);\n }\n}\n","<span\n #driver=\"tuiHintHover\"\n automation-id=\"tui-tooltip__icon\"\n tuiWrapper\n appearance=\"icon\"\n class=\"t-tooltip-icon\"\n [hover]=\"(driver | async) || null\"\n [tuiHint]=\"content\"\n [tuiHintDescribe]=\"describeId\"\n [tuiHintDirection]=\"direction\"\n [tuiHintShowDelay]=\"showDelay\"\n [tuiHintHideDelay]=\"hideDelay\"\n [tuiHintAppearance]=\"computedAppearance\"\n>\n <tui-svg\n *polymorpheusOutlet=\"icon as src\"\n [src]=\"src\"\n ></tui-svg>\n</span>\n","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {TuiSvgModule} from '@taiga-ui/core/components/svg';\nimport {TuiHintModule} from '@taiga-ui/core/directives/hint';\nimport {TuiWrapperModule} from '@taiga-ui/core/directives/wrapper';\nimport {PolymorpheusModule} from '@tinkoff/ng-polymorpheus';\n\nimport {TuiTooltipComponent} from './tooltip.component';\n\n@NgModule({\n imports: [\n CommonModule,\n TuiWrapperModule,\n TuiSvgModule,\n TuiHintModule,\n PolymorpheusModule,\n ],\n declarations: [TuiTooltipComponent],\n exports: [TuiTooltipComponent],\n})\nexport class TuiTooltipModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -7,7 +7,7 @@ import * as i1$2 from '@taiga-ui/core/abstract';
7
7
  import { tuiAsRectAccessor, tuiAsVehicle, TuiDriver, tuiAsDriver, TuiRectAccessor, AbstractTuiDriverDirective, tuiAsPositionAccessor } from '@taiga-ui/core/abstract';
8
8
  import { tuiDropdownAnimation } from '@taiga-ui/core/animations';
9
9
  import { TuiPositionService } from '@taiga-ui/core/services';
10
- import { TUI_ANIMATION_OPTIONS, TUI_SELECTION_STREAM } from '@taiga-ui/core/tokens';
10
+ import { TUI_ANIMATION_OPTIONS, TUI_VIEWPORT, TUI_SELECTION_STREAM } from '@taiga-ui/core/tokens';
11
11
  import { switchMap, delay, tap, share, takeUntil, map, distinctUntilChanged } from 'rxjs/operators';
12
12
  import { __decorate } from 'tslib';
13
13
  import { tuiCheckFixedPosition, tuiOverrideOptions, tuiGetWordRange } from '@taiga-ui/core/utils';
@@ -110,23 +110,37 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
110
110
  args: ['tuiDropdown']
111
111
  }], position: [] } });
112
112
 
113
+ /** Default values for hint options */
114
+ const TUI_DROPDOWN_HOVER_DEFAULT_OPTIONS = {
115
+ showDelay: 200,
116
+ hideDelay: 500,
117
+ };
118
+ const TUI_DROPDOWN_HOVER_OPTIONS = new InjectionToken('[TUI_DROPDOWN_HOVER_OPTIONS] Default parameters for dropdown hover directive', {
119
+ factory: () => TUI_DROPDOWN_HOVER_DEFAULT_OPTIONS,
120
+ });
121
+ const tuiDropdownHoverOptionsProvider = (options) => ({
122
+ provide: TUI_DROPDOWN_HOVER_DEFAULT_OPTIONS,
123
+ useValue: Object.assign(Object.assign({}, TUI_DROPDOWN_HOVER_DEFAULT_OPTIONS), options),
124
+ });
125
+
113
126
  class TuiDropdownHoverDirective extends TuiDriver {
114
- constructor(hovered$) {
127
+ constructor(hovered$, options) {
115
128
  super(subscriber => this.stream$.subscribe(subscriber));
116
129
  this.hovered$ = hovered$;
130
+ this.options = options;
117
131
  this.toggle$ = new Subject();
118
132
  this.stream$ = merge(this.toggle$, this.hovered$).pipe(switchMap(visible => of(visible).pipe(delay(visible ? this.showDelay : this.hideDelay))), tap(visible => {
119
133
  this.hovered = visible;
120
134
  }), share());
121
- this.showDelay = 200;
122
- this.hideDelay = 500;
135
+ this.showDelay = this.options.showDelay;
136
+ this.hideDelay = this.options.hideDelay;
123
137
  this.hovered = false;
124
138
  }
125
139
  toggle(visible) {
126
140
  this.toggle$.next(visible);
127
141
  }
128
142
  }
129
- TuiDropdownHoverDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: TuiDropdownHoverDirective, deps: [{ token: TuiHoveredService }], target: i0.ɵɵFactoryTarget.Directive });
143
+ TuiDropdownHoverDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: TuiDropdownHoverDirective, deps: [{ token: TuiHoveredService }, { token: TUI_DROPDOWN_HOVER_OPTIONS }], target: i0.ɵɵFactoryTarget.Directive });
130
144
  TuiDropdownHoverDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.16", type: TuiDropdownHoverDirective, selector: "[tuiDropdownHover]:not(ng-container)", inputs: { showDelay: ["tuiDropdownShowDelay", "showDelay"], hideDelay: ["tuiDropdownHideDelay", "hideDelay"] }, providers: [tuiAsDriver(TuiDropdownHoverDirective), TuiHoveredService], usesInheritance: true, ngImport: i0 });
131
145
  __decorate([
132
146
  tuiDefaultProp()
@@ -143,6 +157,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
143
157
  }], ctorParameters: function () { return [{ type: i5.Observable, decorators: [{
144
158
  type: Inject,
145
159
  args: [TuiHoveredService]
160
+ }] }, { type: undefined, decorators: [{
161
+ type: Inject,
162
+ args: [TUI_DROPDOWN_HOVER_OPTIONS]
146
163
  }] }]; }, propDecorators: { showDelay: [{
147
164
  type: Input,
148
165
  args: ['tuiDropdownShowDelay']
@@ -488,26 +505,26 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
488
505
  }] } });
489
506
 
490
507
  class TuiDropdownPositionDirective {
491
- constructor(options, windowRef, accessor) {
508
+ constructor(options, viewport, accessor) {
492
509
  this.options = options;
493
- this.windowRef = windowRef;
510
+ this.viewport = viewport;
494
511
  this.accessor = accessor;
495
512
  }
496
513
  getPosition({ width, height }) {
497
514
  const hostRect = this.accessor.getClientRect();
498
- const { innerHeight, innerWidth } = this.windowRef;
515
+ const viewport = this.viewport.getClientRect();
499
516
  const { minHeight, align, direction, offset } = this.options;
500
517
  const previous = this.previous || direction || 'bottom';
501
518
  const right = Math.max(hostRect.right - width, offset);
502
519
  const available = {
503
- top: hostRect.top - 2 * offset,
504
- bottom: innerHeight - hostRect.bottom - 2 * offset,
520
+ top: hostRect.top - 2 * offset - viewport.top,
521
+ bottom: viewport.bottom - hostRect.bottom - 2 * offset,
505
522
  };
506
523
  const position = {
507
524
  top: hostRect.top - offset - height,
508
525
  bottom: hostRect.bottom + offset,
509
526
  right,
510
- left: hostRect.left + width < innerWidth - offset ? hostRect.left : right,
527
+ left: hostRect.left + width < viewport.right - offset ? hostRect.left : right,
511
528
  };
512
529
  const better = available.top > available.bottom ? 'top' : 'bottom';
513
530
  if ((available[previous] > minHeight && direction) ||
@@ -518,7 +535,7 @@ class TuiDropdownPositionDirective {
518
535
  return [position[better], position[align]];
519
536
  }
520
537
  }
521
- TuiDropdownPositionDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: TuiDropdownPositionDirective, deps: [{ token: TUI_DROPDOWN_OPTIONS }, { token: WINDOW }, { token: TuiRectAccessor }], target: i0.ɵɵFactoryTarget.Directive });
538
+ TuiDropdownPositionDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: TuiDropdownPositionDirective, deps: [{ token: TUI_DROPDOWN_OPTIONS }, { token: TUI_VIEWPORT }, { token: TuiRectAccessor }], target: i0.ɵɵFactoryTarget.Directive });
522
539
  TuiDropdownPositionDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.16", type: TuiDropdownPositionDirective, selector: "[tuiDropdown]:not([tuiDropdownCustomPosition]):not([tuiDropdownSided])", providers: [tuiAsPositionAccessor(TuiDropdownPositionDirective)], ngImport: i0 });
523
540
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: TuiDropdownPositionDirective, decorators: [{
524
541
  type: Directive,
@@ -529,18 +546,18 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
529
546
  }], ctorParameters: function () { return [{ type: undefined, decorators: [{
530
547
  type: Inject,
531
548
  args: [TUI_DROPDOWN_OPTIONS]
532
- }] }, { type: Window, decorators: [{
549
+ }] }, { type: i1$2.TuiRectAccessor, decorators: [{
533
550
  type: Inject,
534
- args: [WINDOW]
551
+ args: [TUI_VIEWPORT]
535
552
  }] }, { type: i1$2.TuiRectAccessor, decorators: [{
536
553
  type: Inject,
537
554
  args: [TuiRectAccessor]
538
555
  }] }]; } });
539
556
 
540
557
  class TuiDropdownPositionSidedDirective {
541
- constructor(options, windowRef, accessor, vertical) {
558
+ constructor(options, viewport, accessor, vertical) {
542
559
  this.options = options;
543
- this.windowRef = windowRef;
560
+ this.viewport = viewport;
544
561
  this.accessor = accessor;
545
562
  this.vertical = vertical;
546
563
  this.previous = this.options.direction || 'bottom';
@@ -553,13 +570,13 @@ class TuiDropdownPositionSidedDirective {
553
570
  }
554
571
  const { height, width } = rect;
555
572
  const hostRect = this.accessor.getClientRect();
556
- const { innerHeight, innerWidth } = this.windowRef;
573
+ const viewport = this.viewport.getClientRect();
557
574
  const { align, direction, minHeight, offset } = this.options;
558
575
  const available = {
559
- top: hostRect.bottom,
560
- left: hostRect.left - offset,
561
- right: innerWidth - hostRect.right - offset,
562
- bottom: innerHeight - hostRect.top,
576
+ top: hostRect.bottom - viewport.top,
577
+ left: hostRect.left - offset - viewport.left,
578
+ right: viewport.right - hostRect.right - offset,
579
+ bottom: viewport.bottom - hostRect.top,
563
580
  };
564
581
  const position = {
565
582
  top: hostRect.bottom - height + this.tuiDropdownSidedOffset + 1,
@@ -578,7 +595,7 @@ class TuiDropdownPositionSidedDirective {
578
595
  return [position[better], left];
579
596
  }
580
597
  }
581
- TuiDropdownPositionSidedDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: TuiDropdownPositionSidedDirective, deps: [{ token: TUI_DROPDOWN_OPTIONS }, { token: WINDOW }, { token: TuiRectAccessor }, { token: TuiDropdownPositionDirective }], target: i0.ɵɵFactoryTarget.Directive });
598
+ TuiDropdownPositionSidedDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: TuiDropdownPositionSidedDirective, deps: [{ token: TUI_DROPDOWN_OPTIONS }, { token: TUI_VIEWPORT }, { token: TuiRectAccessor }, { token: TuiDropdownPositionDirective }], target: i0.ɵɵFactoryTarget.Directive });
582
599
  TuiDropdownPositionSidedDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.16", type: TuiDropdownPositionSidedDirective, selector: "[tuiDropdownSided]", inputs: { tuiDropdownSided: "tuiDropdownSided", tuiDropdownSidedOffset: "tuiDropdownSidedOffset" }, providers: [
583
600
  TuiDropdownPositionDirective,
584
601
  tuiAsPositionAccessor(TuiDropdownPositionSidedDirective),
@@ -595,9 +612,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
595
612
  }], ctorParameters: function () { return [{ type: undefined, decorators: [{
596
613
  type: Inject,
597
614
  args: [TUI_DROPDOWN_OPTIONS]
598
- }] }, { type: Window, decorators: [{
615
+ }] }, { type: i1$2.TuiRectAccessor, decorators: [{
599
616
  type: Inject,
600
- args: [WINDOW]
617
+ args: [TUI_VIEWPORT]
601
618
  }] }, { type: i1$2.TuiRectAccessor, decorators: [{
602
619
  type: Inject,
603
620
  args: [TuiRectAccessor]
@@ -845,5 +862,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
845
862
  * Generated bundle index. Do not edit.
846
863
  */
847
864
 
848
- export { TUI_DROPDOWN_COMPONENT, TUI_DROPDOWN_DEFAULT_OPTIONS, TUI_DROPDOWN_OPTIONS, TuiDropdownComponent, TuiDropdownContextDirective, TuiDropdownDirective, TuiDropdownDriverDirective, TuiDropdownHostDirective, TuiDropdownHoverDirective, TuiDropdownManualDirective, TuiDropdownModule, TuiDropdownOptionsDirective, TuiDropdownPositionDirective, TuiDropdownPositionSidedDirective, TuiDropdownSelectionDirective, tuiDropdownOptionsProvider };
865
+ export { TUI_DROPDOWN_COMPONENT, TUI_DROPDOWN_DEFAULT_OPTIONS, TUI_DROPDOWN_HOVER_DEFAULT_OPTIONS, TUI_DROPDOWN_HOVER_OPTIONS, TUI_DROPDOWN_OPTIONS, TuiDropdownComponent, TuiDropdownContextDirective, TuiDropdownDirective, TuiDropdownDriverDirective, TuiDropdownHostDirective, TuiDropdownHoverDirective, TuiDropdownManualDirective, TuiDropdownModule, TuiDropdownOptionsDirective, TuiDropdownPositionDirective, TuiDropdownPositionSidedDirective, TuiDropdownSelectionDirective, tuiDropdownHoverOptionsProvider, tuiDropdownOptionsProvider };
849
866
  //# sourceMappingURL=taiga-ui-core-directives-dropdown.js.map