@taiga-ui/core 3.29.2 → 3.30.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 (81) hide show
  1. package/bundles/taiga-ui-core-animations.umd.js +2 -10
  2. package/bundles/taiga-ui-core-animations.umd.js.map +1 -1
  3. package/bundles/taiga-ui-core-components-alert.umd.js +10 -15
  4. package/bundles/taiga-ui-core-components-alert.umd.js.map +1 -1
  5. package/bundles/taiga-ui-core-components-error.umd.js +2 -3
  6. package/bundles/taiga-ui-core-components-error.umd.js.map +1 -1
  7. package/bundles/taiga-ui-core-components-hints-host.umd.js +28 -7
  8. package/bundles/taiga-ui-core-components-hints-host.umd.js.map +1 -1
  9. package/bundles/taiga-ui-core-components-root.umd.js +1 -1
  10. package/bundles/taiga-ui-core-components-scroll-controls.umd.js +34 -62
  11. package/bundles/taiga-ui-core-components-scroll-controls.umd.js.map +1 -1
  12. package/bundles/taiga-ui-core-directives-dropdown.umd.js +21 -24
  13. package/bundles/taiga-ui-core-directives-dropdown.umd.js.map +1 -1
  14. package/bundles/taiga-ui-core-directives-hint.umd.js +18 -22
  15. package/bundles/taiga-ui-core-directives-hint.umd.js.map +1 -1
  16. package/bundles/taiga-ui-core-enums.umd.js +1 -0
  17. package/bundles/taiga-ui-core-enums.umd.js.map +1 -1
  18. package/bundles/taiga-ui-core-services.umd.js +4 -3
  19. package/bundles/taiga-ui-core-services.umd.js.map +1 -1
  20. package/bundles/taiga-ui-core-tokens.umd.js +4 -1
  21. package/bundles/taiga-ui-core-tokens.umd.js.map +1 -1
  22. package/bundles/taiga-ui-core-utils-format.umd.js +10 -0
  23. package/bundles/taiga-ui-core-utils-format.umd.js.map +1 -1
  24. package/bundles/taiga-ui-core-utils-mask.umd.js +4 -0
  25. package/bundles/taiga-ui-core-utils-mask.umd.js.map +1 -1
  26. package/components/alert/alert.component.d.ts +2 -9
  27. package/components/error/error.component.d.ts +2 -9
  28. package/components/hints-host/hints-host.component.d.ts +9 -4
  29. package/components/scroll-controls/scroll-controls.component.d.ts +3 -11
  30. package/components/scroll-controls/scrollbar.directive.d.ts +3 -6
  31. package/constants/cache-basting-payload.d.ts +1 -1
  32. package/directives/dropdown/dropdown.component.d.ts +3 -11
  33. package/directives/dropdown/dropdown.directive.d.ts +2 -2
  34. package/directives/hint/hint.component.d.ts +4 -12
  35. package/enums/dropdown-animation.d.ts +1 -0
  36. package/esm2015/animations/animations.js +3 -11
  37. package/esm2015/components/alert/alert.component.js +12 -17
  38. package/esm2015/components/error/error.component.js +3 -4
  39. package/esm2015/components/hints-host/hints-host.component.js +27 -6
  40. package/esm2015/components/root/root.component.js +1 -1
  41. package/esm2015/components/scroll-controls/scroll-controls.component.js +6 -16
  42. package/esm2015/components/scroll-controls/scrollbar.directive.js +19 -39
  43. package/esm2015/directives/dropdown/dropdown.component.js +24 -27
  44. package/esm2015/directives/dropdown/dropdown.directive.js +4 -4
  45. package/esm2015/directives/hint/hint.component.js +19 -23
  46. package/esm2015/enums/dropdown-animation.js +2 -1
  47. package/esm2015/services/position.service.js +5 -3
  48. package/esm2015/tokens/animation-options.js +2 -1
  49. package/esm2015/tokens/scroll-ref.js +6 -3
  50. package/esm2015/utils/format/format-phone.js +11 -1
  51. package/esm2015/utils/mask/create-correction-mask.js +5 -1
  52. package/fesm2015/taiga-ui-core-animations.js +2 -10
  53. package/fesm2015/taiga-ui-core-animations.js.map +1 -1
  54. package/fesm2015/taiga-ui-core-components-alert.js +11 -16
  55. package/fesm2015/taiga-ui-core-components-alert.js.map +1 -1
  56. package/fesm2015/taiga-ui-core-components-error.js +2 -3
  57. package/fesm2015/taiga-ui-core-components-error.js.map +1 -1
  58. package/fesm2015/taiga-ui-core-components-hints-host.js +26 -5
  59. package/fesm2015/taiga-ui-core-components-hints-host.js.map +1 -1
  60. package/fesm2015/taiga-ui-core-components-root.js +1 -1
  61. package/fesm2015/taiga-ui-core-components-scroll-controls.js +23 -51
  62. package/fesm2015/taiga-ui-core-components-scroll-controls.js.map +1 -1
  63. package/fesm2015/taiga-ui-core-directives-dropdown.js +19 -22
  64. package/fesm2015/taiga-ui-core-directives-dropdown.js.map +1 -1
  65. package/fesm2015/taiga-ui-core-directives-hint.js +18 -22
  66. package/fesm2015/taiga-ui-core-directives-hint.js.map +1 -1
  67. package/fesm2015/taiga-ui-core-enums.js +1 -0
  68. package/fesm2015/taiga-ui-core-enums.js.map +1 -1
  69. package/fesm2015/taiga-ui-core-services.js +4 -2
  70. package/fesm2015/taiga-ui-core-services.js.map +1 -1
  71. package/fesm2015/taiga-ui-core-tokens.js +5 -2
  72. package/fesm2015/taiga-ui-core-tokens.js.map +1 -1
  73. package/fesm2015/taiga-ui-core-utils-format.js +10 -0
  74. package/fesm2015/taiga-ui-core-utils-format.js.map +1 -1
  75. package/fesm2015/taiga-ui-core-utils-mask.js +4 -0
  76. package/fesm2015/taiga-ui-core-utils-mask.js.map +1 -1
  77. package/package.json +4 -4
  78. package/services/position.service.d.ts +1 -1
  79. package/styles/theme/wrapper/textfield.less +8 -8
  80. package/utils/format/format-phone.d.ts +10 -0
  81. package/utils/mask/create-correction-mask.d.ts +4 -0
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-core-components-error.js","sources":["../../../projects/core/components/error/error.component.ts","../../../projects/core/components/error/error.template.html","../../../projects/core/components/error/error.module.ts","../../../projects/core/components/error/taiga-ui-core-components-error.ts"],"sourcesContent":["import {AnimationOptions} from '@angular/animations';\nimport {\n ChangeDetectionStrategy,\n Component,\n HostListener,\n Inject,\n Input,\n} from '@angular/core';\nimport {tuiDefaultProp, tuiIsString, TuiValidationError} from '@taiga-ui/cdk';\nimport {tuiFadeIn, tuiHeightCollapse} from '@taiga-ui/core/animations';\nimport {MODE_PROVIDER} from '@taiga-ui/core/providers';\nimport {\n TUI_ANIMATION_OPTIONS,\n TUI_DEFAULT_ERROR_MESSAGE,\n TUI_MODE,\n} from '@taiga-ui/core/tokens';\nimport {TuiBrightness} from '@taiga-ui/core/types';\nimport {Observable} from 'rxjs';\n\n@Component({\n selector: 'tui-error',\n templateUrl: './error.template.html',\n styleUrls: ['./error.style.less'],\n providers: [MODE_PROVIDER],\n changeDetection: ChangeDetectionStrategy.OnPush,\n animations: [tuiHeightCollapse, tuiFadeIn],\n})\nexport class TuiErrorComponent {\n @Input('error')\n @tuiDefaultProp()\n set errorSetter(error: TuiValidationError | string | null) {\n this.error = tuiIsString(error) ? new TuiValidationError(error) : error;\n }\n\n error: TuiValidationError | null = null;\n\n visible = true;\n\n readonly animation = {value: '', ...this.options} as const;\n\n constructor(\n @Inject(TUI_ANIMATION_OPTIONS) private readonly options: AnimationOptions,\n @Inject(TUI_MODE) readonly mode$: Observable<TuiBrightness | null>,\n @Inject(TUI_DEFAULT_ERROR_MESSAGE)\n readonly defaultErrorMessage$: Observable<string>,\n ) {}\n\n @HostListener('animationcancel.self', ['false'])\n @HostListener('animationstart.self', ['true'])\n onAnimation(visible: boolean): void {\n this.visible = visible;\n }\n}\n","<div\n *ngIf=\"error && visible\"\n automation-id=\"tui-error__text\"\n class=\"t-message-text\"\n [@tuiHeightCollapse]=\"animation\"\n [@tuiFadeIn]=\"animation\"\n [class.t-message-text_light]=\"(mode$ | async) === 'onDark'\"\n>\n <ng-container\n *polymorpheusOutlet=\"error.message || (defaultErrorMessage$ | async) as text; context: error.context || {}\"\n >\n {{ text }}\n </ng-container>\n</div>\n","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {PolymorpheusModule} from '@tinkoff/ng-polymorpheus';\n\nimport {TuiErrorComponent} from './error.component';\n\n@NgModule({\n imports: [CommonModule, PolymorpheusModule],\n declarations: [TuiErrorComponent],\n exports: [TuiErrorComponent],\n})\nexport class TuiErrorModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"taiga-ui-core-components-error.js","sources":["../../../projects/core/components/error/error.component.ts","../../../projects/core/components/error/error.template.html","../../../projects/core/components/error/error.module.ts","../../../projects/core/components/error/taiga-ui-core-components-error.ts"],"sourcesContent":["import {AnimationOptions} from '@angular/animations';\nimport {\n ChangeDetectionStrategy,\n Component,\n HostListener,\n Inject,\n Input,\n} from '@angular/core';\nimport {tuiDefaultProp, tuiIsString, TuiValidationError} from '@taiga-ui/cdk';\nimport {tuiFadeIn, tuiHeightCollapse} from '@taiga-ui/core/animations';\nimport {MODE_PROVIDER} from '@taiga-ui/core/providers';\nimport {\n TUI_ANIMATION_OPTIONS,\n TUI_DEFAULT_ERROR_MESSAGE,\n TUI_MODE,\n} from '@taiga-ui/core/tokens';\nimport {TuiBrightness} from '@taiga-ui/core/types';\nimport {Observable} from 'rxjs';\n\n@Component({\n selector: 'tui-error',\n templateUrl: './error.template.html',\n styleUrls: ['./error.style.less'],\n providers: [MODE_PROVIDER],\n changeDetection: ChangeDetectionStrategy.OnPush,\n animations: [tuiHeightCollapse, tuiFadeIn],\n})\nexport class TuiErrorComponent {\n @Input('error')\n @tuiDefaultProp()\n set errorSetter(error: TuiValidationError | string | null) {\n this.error = tuiIsString(error) ? new TuiValidationError(error) : error;\n }\n\n error: TuiValidationError | null = null;\n\n visible = true;\n\n constructor(\n @Inject(TUI_ANIMATION_OPTIONS) readonly animation: AnimationOptions,\n @Inject(TUI_MODE) readonly mode$: Observable<TuiBrightness | null>,\n @Inject(TUI_DEFAULT_ERROR_MESSAGE)\n readonly defaultErrorMessage$: Observable<string>,\n ) {}\n\n @HostListener('animationcancel.self', ['false'])\n @HostListener('animationstart.self', ['true'])\n onAnimation(visible: boolean): void {\n this.visible = visible;\n }\n}\n","<div\n *ngIf=\"error && visible\"\n automation-id=\"tui-error__text\"\n class=\"t-message-text\"\n [@tuiHeightCollapse]=\"animation\"\n [@tuiFadeIn]=\"animation\"\n [class.t-message-text_light]=\"(mode$ | async) === 'onDark'\"\n>\n <ng-container\n *polymorpheusOutlet=\"error.message || (defaultErrorMessage$ | async) as text; context: error.context || {}\"\n >\n {{ text }}\n </ng-container>\n</div>\n","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {PolymorpheusModule} from '@tinkoff/ng-polymorpheus';\n\nimport {TuiErrorComponent} from './error.component';\n\n@NgModule({\n imports: [CommonModule, PolymorpheusModule],\n declarations: [TuiErrorComponent],\n exports: [TuiErrorComponent],\n})\nexport class TuiErrorModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -1,8 +1,9 @@
1
1
  import * as i0 from '@angular/core';
2
- import { Component, ChangeDetectionStrategy, Inject, NgModule } from '@angular/core';
2
+ import { ChangeDetectorRef, Component, ChangeDetectionStrategy, Inject, Self, NgModule } from '@angular/core';
3
3
  import * as i2 from '@taiga-ui/cdk';
4
- import { TUI_PARENT_ANIMATION, TuiActiveZoneModule } from '@taiga-ui/cdk';
4
+ import { TuiDestroyService, TUI_PARENT_ANIMATION, TuiActiveZoneModule } from '@taiga-ui/cdk';
5
5
  import { TuiHintService } from '@taiga-ui/core/services';
6
+ import { takeUntil } from 'rxjs/operators';
6
7
  import * as i1 from '@angular/common';
7
8
  import { CommonModule } from '@angular/common';
8
9
  import * as i3 from '@tinkoff/ng-polymorpheus';
@@ -10,12 +11,23 @@ import { PolymorpheusModule } from '@tinkoff/ng-polymorpheus';
10
11
  import * as i4 from 'rxjs';
11
12
 
12
13
  class TuiHintsHostComponent {
13
- constructor(hints$) {
14
+ constructor(hints$, destroy$, cdr) {
14
15
  this.hints$ = hints$;
16
+ this.destroy$ = destroy$;
17
+ this.cdr = cdr;
18
+ this.hints = [];
19
+ }
20
+ ngOnInit() {
21
+ // Due to this view being parallel to app content, `markForCheck` from `async` pipe
22
+ // can happen after view was checked, so calling `detectChanges` instead
23
+ this.hints$.pipe(takeUntil(this.destroy$)).subscribe(hints => {
24
+ this.hints = hints;
25
+ this.cdr.detectChanges();
26
+ });
15
27
  }
16
28
  }
17
- TuiHintsHostComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiHintsHostComponent, deps: [{ token: TuiHintService }], target: i0.ɵɵFactoryTarget.Component });
18
- TuiHintsHostComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: TuiHintsHostComponent, selector: "tui-hints-host", host: { attributes: { "aria-live": "polite" } }, ngImport: i0, template: "<div\n *ngFor=\"let hint of hints$ | async\"\n role=\"tooltip\"\n @tuiParentAnimation\n [tuiActiveZoneParent]=\"hint.activeZone || null\"\n>\n <ng-container *polymorpheusOutlet=\"hint.component; context: {$implicit: hint}\"></ng-container>\n</div>\n", styles: [":host{position:fixed;top:0;left:0;width:100%;height:0}\n"], directives: [{ type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i2.TuiActiveZoneDirective, selector: "[tuiActiveZone]:not(ng-container), [tuiActiveZoneChange]:not(ng-container), [tuiActiveZoneParent]:not(ng-container)", inputs: ["tuiActiveZoneParent"], outputs: ["tuiActiveZoneChange"], exportAs: ["tuiActiveZone"] }, { type: i3.PolymorpheusOutletDirective, selector: "[polymorpheusOutlet]", inputs: ["polymorpheusOutlet", "polymorpheusOutletContext"] }], pipes: { "async": i1.AsyncPipe }, animations: [TUI_PARENT_ANIMATION], changeDetection: i0.ChangeDetectionStrategy.Default });
29
+ TuiHintsHostComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiHintsHostComponent, deps: [{ token: TuiHintService }, { token: TuiDestroyService, self: true }, { token: ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
30
+ TuiHintsHostComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: TuiHintsHostComponent, selector: "tui-hints-host", host: { attributes: { "aria-live": "polite" } }, providers: [TuiDestroyService], ngImport: i0, template: "<div\n *ngFor=\"let hint of hints\"\n role=\"tooltip\"\n @tuiParentAnimation\n [tuiActiveZoneParent]=\"hint.activeZone || null\"\n>\n <ng-container *polymorpheusOutlet=\"hint.component; context: {$implicit: hint}\"></ng-container>\n</div>\n", styles: [":host{position:fixed;top:0;left:0;width:100%;height:0}\n"], directives: [{ type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i2.TuiActiveZoneDirective, selector: "[tuiActiveZone]:not(ng-container), [tuiActiveZoneChange]:not(ng-container), [tuiActiveZoneParent]:not(ng-container)", inputs: ["tuiActiveZoneParent"], outputs: ["tuiActiveZoneChange"], exportAs: ["tuiActiveZone"] }, { type: i3.PolymorpheusOutletDirective, selector: "[polymorpheusOutlet]", inputs: ["polymorpheusOutlet", "polymorpheusOutletContext"] }], animations: [TUI_PARENT_ANIMATION], changeDetection: i0.ChangeDetectionStrategy.Default });
19
31
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiHintsHostComponent, decorators: [{
20
32
  type: Component,
21
33
  args: [{
@@ -25,6 +37,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
25
37
  // So that we do not force OnPush on custom hints
26
38
  // eslint-disable-next-line @angular-eslint/prefer-on-push-component-change-detection
27
39
  changeDetection: ChangeDetectionStrategy.Default,
40
+ providers: [TuiDestroyService],
28
41
  animations: [TUI_PARENT_ANIMATION],
29
42
  host: {
30
43
  'aria-live': 'polite',
@@ -33,6 +46,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
33
46
  }], ctorParameters: function () { return [{ type: i4.Observable, decorators: [{
34
47
  type: Inject,
35
48
  args: [TuiHintService]
49
+ }] }, { type: i4.Observable, decorators: [{
50
+ type: Self
51
+ }, {
52
+ type: Inject,
53
+ args: [TuiDestroyService]
54
+ }] }, { type: i0.ChangeDetectorRef, decorators: [{
55
+ type: Inject,
56
+ args: [ChangeDetectorRef]
36
57
  }] }]; } });
37
58
 
38
59
  class TuiHintsHostModule {
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-core-components-hints-host.js","sources":["../../../projects/core/components/hints-host/hints-host.component.ts","../../../projects/core/components/hints-host/hints-host.template.html","../../../projects/core/components/hints-host/hints-host.module.ts","../../../projects/core/components/hints-host/taiga-ui-core-components-hints-host.ts"],"sourcesContent":["import {ChangeDetectionStrategy, Component, Inject} from '@angular/core';\nimport {TUI_PARENT_ANIMATION} from '@taiga-ui/cdk';\nimport {TuiPortalItem} from '@taiga-ui/core/interfaces';\nimport {TuiHintService} from '@taiga-ui/core/services';\nimport {Observable} from 'rxjs';\n\n@Component({\n selector: 'tui-hints-host',\n templateUrl: './hints-host.template.html',\n styleUrls: ['./hints-host.style.less'],\n // So that we do not force OnPush on custom hints\n // eslint-disable-next-line @angular-eslint/prefer-on-push-component-change-detection\n changeDetection: ChangeDetectionStrategy.Default,\n animations: [TUI_PARENT_ANIMATION],\n host: {\n 'aria-live': 'polite',\n },\n})\nexport class TuiHintsHostComponent {\n constructor(\n @Inject(TuiHintService) readonly hints$: Observable<readonly TuiPortalItem[]>,\n ) {}\n}\n","<div\n *ngFor=\"let hint of hints$ | async\"\n role=\"tooltip\"\n @tuiParentAnimation\n [tuiActiveZoneParent]=\"hint.activeZone || null\"\n>\n <ng-container *polymorpheusOutlet=\"hint.component; context: {$implicit: hint}\"></ng-container>\n</div>\n","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {TuiActiveZoneModule} from '@taiga-ui/cdk';\nimport {PolymorpheusModule} from '@tinkoff/ng-polymorpheus';\n\nimport {TuiHintsHostComponent} from './hints-host.component';\n\n@NgModule({\n imports: [CommonModule, PolymorpheusModule, TuiActiveZoneModule],\n declarations: [TuiHintsHostComponent],\n exports: [TuiHintsHostComponent],\n})\nexport class TuiHintsHostModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"taiga-ui-core-components-hints-host.js","sources":["../../../projects/core/components/hints-host/hints-host.component.ts","../../../projects/core/components/hints-host/hints-host.template.html","../../../projects/core/components/hints-host/hints-host.module.ts","../../../projects/core/components/hints-host/taiga-ui-core-components-hints-host.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n Inject,\n OnInit,\n Self,\n} from '@angular/core';\nimport {TUI_PARENT_ANIMATION, TuiDestroyService} from '@taiga-ui/cdk';\nimport {TuiPortalItem} from '@taiga-ui/core/interfaces';\nimport {TuiHintService} from '@taiga-ui/core/services';\nimport {Observable} from 'rxjs';\nimport {takeUntil} from 'rxjs/operators';\n\n@Component({\n selector: 'tui-hints-host',\n templateUrl: './hints-host.template.html',\n styleUrls: ['./hints-host.style.less'],\n // So that we do not force OnPush on custom hints\n // eslint-disable-next-line @angular-eslint/prefer-on-push-component-change-detection\n changeDetection: ChangeDetectionStrategy.Default,\n providers: [TuiDestroyService],\n animations: [TUI_PARENT_ANIMATION],\n host: {\n 'aria-live': 'polite',\n },\n})\nexport class TuiHintsHostComponent implements OnInit {\n hints: readonly TuiPortalItem[] = [];\n\n constructor(\n @Inject(TuiHintService)\n private readonly hints$: Observable<readonly TuiPortalItem[]>,\n @Self() @Inject(TuiDestroyService) private readonly destroy$: Observable<void>,\n @Inject(ChangeDetectorRef) private readonly cdr: ChangeDetectorRef,\n ) {}\n\n ngOnInit(): void {\n // Due to this view being parallel to app content, `markForCheck` from `async` pipe\n // can happen after view was checked, so calling `detectChanges` instead\n this.hints$.pipe(takeUntil(this.destroy$)).subscribe(hints => {\n this.hints = hints;\n this.cdr.detectChanges();\n });\n }\n}\n","<div\n *ngFor=\"let hint of hints\"\n role=\"tooltip\"\n @tuiParentAnimation\n [tuiActiveZoneParent]=\"hint.activeZone || null\"\n>\n <ng-container *polymorpheusOutlet=\"hint.component; context: {$implicit: hint}\"></ng-container>\n</div>\n","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {TuiActiveZoneModule} from '@taiga-ui/cdk';\nimport {PolymorpheusModule} from '@tinkoff/ng-polymorpheus';\n\nimport {TuiHintsHostComponent} from './hints-host.component';\n\n@NgModule({\n imports: [CommonModule, PolymorpheusModule, TuiActiveZoneModule],\n declarations: [TuiHintsHostComponent],\n exports: [TuiHintsHostComponent],\n})\nexport class TuiHintsHostModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -30,7 +30,7 @@ class TuiRootComponent {
30
30
  }
31
31
  }
32
32
  TuiRootComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiRootComponent, deps: [{ token: TUI_ANIMATIONS_DURATION }, { token: TUI_DIALOGS }, { token: TUI_IS_MOBILE }, { token: TUI_IS_MOBILE_RES }, { token: DOCUMENT }, { token: TUI_THEME }], target: i0.ɵɵFactoryTarget.Component });
33
- TuiRootComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: TuiRootComponent, selector: "tui-root", host: { attributes: { "data-tui-version": "3.29.2" }, listeners: { "$.class._mobile": "isMobileRes$" }, properties: { "style.--tui-duration.ms": "duration" } }, providers: [TUI_IS_MOBILE_RES_PROVIDER], ngImport: i0, template: "<tui-scroll-controls\n *ngIf=\"scrollbars$ | async\"\n class=\"t-root-scrollbar\"\n></tui-scroll-controls>\n<tui-svg-defs-host></tui-svg-defs-host>\n<tui-dropdown-host>\n <div class=\"t-root-content\">\n <ng-content></ng-content>\n </div>\n <ng-content select=\"tuiOverContent\"></ng-content>\n <tui-dialog-host></tui-dialog-host>\n <ng-content select=\"tuiOverDialogs\"></ng-content>\n <tui-alert-host></tui-alert-host>\n <ng-content select=\"tuiOverAlerts\"></ng-content>\n</tui-dropdown-host>\n<ng-content select=\"tuiOverPortals\"></ng-content>\n<tui-hints-host></tui-hints-host>\n<ng-content select=\"tuiOverHints\"></ng-content>\n", styles: ["@keyframes tuiPresent{to{content:\"1\"}}html,.tui-zero-scrollbar{scrollbar-width:none;-ms-overflow-style:none}html::-webkit-scrollbar,.tui-zero-scrollbar::-webkit-scrollbar,html::-webkit-scrollbar-thumb,.tui-zero-scrollbar::-webkit-scrollbar-thumb{background:transparent;width:0;height:0}body{font:var(--tui-font-text-s);color:var(--tui-text-01);margin:0}tui-root{position:relative;display:block;flex:1;-webkit-tap-highlight-color:transparent}tui-root>.t-root-scrollbar{position:fixed;top:0;left:0;bottom:0;right:0;margin:0}.t-root-content{position:relative;z-index:0;height:100%}\n"], components: [{ type: i1.TuiScrollControlsComponent, selector: "tui-scroll-controls" }, { type: i2.TuiSvgDefsHostComponent, selector: "tui-svg-defs-host" }, { type: i3.TuiDropdownHostComponent, selector: "tui-dropdown-host" }, { type: i3.TuiDialogHostComponent, selector: "tui-dialog-host" }, { type: i3.TuiAlertHostComponent, selector: "tui-alert-host" }, { type: i4.TuiHintsHostComponent, selector: "tui-hints-host" }], directives: [{ type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "async": i5.AsyncPipe }, changeDetection: i0.ChangeDetectionStrategy.Default, encapsulation: i0.ViewEncapsulation.None });
33
+ TuiRootComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: TuiRootComponent, selector: "tui-root", host: { attributes: { "data-tui-version": "3.30.0" }, listeners: { "$.class._mobile": "isMobileRes$" }, properties: { "style.--tui-duration.ms": "duration" } }, providers: [TUI_IS_MOBILE_RES_PROVIDER], ngImport: i0, template: "<tui-scroll-controls\n *ngIf=\"scrollbars$ | async\"\n class=\"t-root-scrollbar\"\n></tui-scroll-controls>\n<tui-svg-defs-host></tui-svg-defs-host>\n<tui-dropdown-host>\n <div class=\"t-root-content\">\n <ng-content></ng-content>\n </div>\n <ng-content select=\"tuiOverContent\"></ng-content>\n <tui-dialog-host></tui-dialog-host>\n <ng-content select=\"tuiOverDialogs\"></ng-content>\n <tui-alert-host></tui-alert-host>\n <ng-content select=\"tuiOverAlerts\"></ng-content>\n</tui-dropdown-host>\n<ng-content select=\"tuiOverPortals\"></ng-content>\n<tui-hints-host></tui-hints-host>\n<ng-content select=\"tuiOverHints\"></ng-content>\n", styles: ["@keyframes tuiPresent{to{content:\"1\"}}html,.tui-zero-scrollbar{scrollbar-width:none;-ms-overflow-style:none}html::-webkit-scrollbar,.tui-zero-scrollbar::-webkit-scrollbar,html::-webkit-scrollbar-thumb,.tui-zero-scrollbar::-webkit-scrollbar-thumb{background:transparent;width:0;height:0}body{font:var(--tui-font-text-s);color:var(--tui-text-01);margin:0}tui-root{position:relative;display:block;flex:1;-webkit-tap-highlight-color:transparent}tui-root>.t-root-scrollbar{position:fixed;top:0;left:0;bottom:0;right:0;margin:0}.t-root-content{position:relative;z-index:0;height:100%}\n"], components: [{ type: i1.TuiScrollControlsComponent, selector: "tui-scroll-controls" }, { type: i2.TuiSvgDefsHostComponent, selector: "tui-svg-defs-host" }, { type: i3.TuiDropdownHostComponent, selector: "tui-dropdown-host" }, { type: i3.TuiDialogHostComponent, selector: "tui-dialog-host" }, { type: i3.TuiAlertHostComponent, selector: "tui-alert-host" }, { type: i4.TuiHintsHostComponent, selector: "tui-hints-host" }], directives: [{ type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "async": i5.AsyncPipe }, changeDetection: i0.ChangeDetectionStrategy.Default, encapsulation: i0.ViewEncapsulation.None });
34
34
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiRootComponent, decorators: [{
35
35
  type: Component,
36
36
  args: [{
@@ -1,15 +1,15 @@
1
- import * as i1$1 from '@angular/common';
2
- import { DOCUMENT, ViewportScroller, CommonModule } from '@angular/common';
3
1
  import * as i0 from '@angular/core';
4
- import { ElementRef, Directive, NgZone, Renderer2, Inject, Self, Optional, Input, Component, ChangeDetectionStrategy, NgModule } from '@angular/core';
5
- import { ANIMATION_FRAME, WINDOW } from '@ng-web-apis/common';
6
- import { tuiTypedFromEvent, tuiPreventDefault, tuiStopPropagation, tuiZonefree, POLLING_TIME, TuiDestroyService, tuiZoneOptimized, TuiLetModule } from '@taiga-ui/cdk';
2
+ import { ElementRef, Directive, NgZone, Renderer2, Inject, Self, Input, Component, ChangeDetectionStrategy, NgModule } from '@angular/core';
3
+ import { ANIMATION_FRAME } from '@ng-web-apis/common';
4
+ import { tuiTypedFromEvent, tuiPreventDefault, tuiStopPropagation, tuiZonefree, POLLING_TIME, tuiScrollFrom, TuiDestroyService, tuiZoneOptimized, TuiLetModule } from '@taiga-ui/cdk';
7
5
  import { tuiFadeIn } from '@taiga-ui/core/animations';
8
6
  import { MODE_PROVIDER } from '@taiga-ui/core/providers';
9
7
  import { TUI_ELEMENT_REF, TUI_SCROLL_REF, TUI_ANIMATION_OPTIONS, TUI_MODE } from '@taiga-ui/core/tokens';
10
8
  import { map, switchMap, takeUntil, throttleTime, startWith, distinctUntilChanged } from 'rxjs/operators';
9
+ import * as i1$1 from '@angular/common';
10
+ import { DOCUMENT, CommonModule } from '@angular/common';
11
11
  import * as i1 from 'rxjs';
12
- import { merge, fromEvent } from 'rxjs';
12
+ import { merge } from 'rxjs';
13
13
 
14
14
  class TuiScrollbarWrapperDirective {
15
15
  }
@@ -35,19 +35,17 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
35
35
 
36
36
  const MIN_WIDTH = 24;
37
37
  class TuiScrollbarDirective {
38
- constructor(ngZone, renderer, destroy$, animationFrame$, wrapper, container, doc, win, el, viewportScroller) {
38
+ constructor(ngZone, renderer, destroy$, animationFrame$, wrapper, container, doc, el) {
39
39
  this.wrapper = wrapper;
40
40
  this.container = container;
41
41
  this.doc = doc;
42
- this.win = win;
43
42
  this.el = el;
44
- this.viewportScroller = viewportScroller;
45
43
  this.tuiScrollbar = 'vertical';
46
44
  const { nativeElement } = this.el;
47
45
  const mousedown$ = tuiTypedFromEvent(nativeElement, 'mousedown');
48
46
  const mousemove$ = tuiTypedFromEvent(this.doc, 'mousemove');
49
47
  const mouseup$ = tuiTypedFromEvent(this.doc, 'mouseup');
50
- const mousedownWrapper$ = tuiTypedFromEvent(wrapper.nativeElement, 'mousedown');
48
+ const mousedownWrapper$ = tuiTypedFromEvent(this.wrapper.nativeElement, 'mousedown');
51
49
  merge(mousedownWrapper$.pipe(tuiPreventDefault(), map(event => this.getScrolled(event, 0.5, 0.5))), mousedown$.pipe(tuiPreventDefault(), tuiStopPropagation(), switchMap(event => {
52
50
  const rect = nativeElement.getBoundingClientRect();
53
51
  const vertical = getOffsetVertical(event, rect);
@@ -56,22 +54,14 @@ class TuiScrollbarDirective {
56
54
  })))
57
55
  .pipe(tuiZonefree(ngZone), takeUntil(destroy$))
58
56
  .subscribe(([scrollTop, scrollLeft]) => {
59
- const [x, y] = this.viewportScroller.getScrollPosition();
60
- if (!this.container) {
61
- this.viewportScroller.scrollToPosition([
62
- this.tuiScrollbar === 'vertical' ? x : scrollLeft,
63
- this.tuiScrollbar === 'vertical' ? scrollTop : y,
64
- ]);
65
- return;
66
- }
67
57
  if (this.tuiScrollbar === 'vertical') {
68
- renderer.setProperty(this.container.nativeElement, 'scrollTop', scrollTop);
58
+ renderer.setProperty(this.element, 'scrollTop', scrollTop);
69
59
  }
70
60
  else {
71
- renderer.setProperty(this.container.nativeElement, 'scrollLeft', scrollLeft);
61
+ renderer.setProperty(this.element, 'scrollLeft', scrollLeft);
72
62
  }
73
63
  });
74
- merge(fromEvent(this.container ? this.container.nativeElement : this.win, 'scroll'), animationFrame$.pipe(throttleTime(POLLING_TIME)))
64
+ merge(animationFrame$.pipe(throttleTime(POLLING_TIME)), tuiScrollFrom(this.element))
75
65
  .pipe(tuiZonefree(ngZone), takeUntil(destroy$))
76
66
  .subscribe(() => {
77
67
  if (this.tuiScrollbar === 'vertical') {
@@ -85,13 +75,13 @@ class TuiScrollbarDirective {
85
75
  });
86
76
  }
87
77
  get scrolled() {
88
- const { scrollTop, scrollHeight, clientHeight, scrollLeft, scrollWidth, clientWidth, } = this.computedContainer;
78
+ const { scrollTop, scrollHeight, clientHeight, scrollLeft, scrollWidth, clientWidth, } = this.element;
89
79
  return this.tuiScrollbar === 'vertical'
90
80
  ? scrollTop / (scrollHeight - clientHeight)
91
81
  : scrollLeft / (scrollWidth - clientWidth);
92
82
  }
93
83
  get compensation() {
94
- const { clientHeight, scrollHeight, clientWidth, scrollWidth } = this.computedContainer;
84
+ const { clientHeight, scrollHeight, clientWidth, scrollWidth } = this.element;
95
85
  if (((clientHeight * clientHeight) / scrollHeight > MIN_WIDTH &&
96
86
  this.tuiScrollbar === 'vertical') ||
97
87
  ((clientWidth * clientWidth) / scrollWidth > MIN_WIDTH &&
@@ -107,26 +97,25 @@ class TuiScrollbarDirective {
107
97
  return this.scrolled * (1 - compensation);
108
98
  }
109
99
  get view() {
110
- const { clientHeight, scrollHeight, clientWidth, scrollWidth } = this.computedContainer;
100
+ const { clientHeight, scrollHeight, clientWidth, scrollWidth } = this.element;
111
101
  return this.tuiScrollbar === 'vertical'
112
102
  ? Math.ceil((clientHeight / scrollHeight) * 100) / 100
113
103
  : Math.ceil((clientWidth / scrollWidth) * 100) / 100;
114
104
  }
115
- get computedContainer() {
116
- var _a;
117
- return ((_a = this.container) === null || _a === void 0 ? void 0 : _a.nativeElement) || this.doc.documentElement;
105
+ get element() {
106
+ return this.container.nativeElement;
118
107
  }
119
108
  getScrolled({ clientY, clientX }, offsetVertical, offsetHorizontal) {
120
109
  const { offsetHeight, offsetWidth } = this.el.nativeElement;
121
110
  const { top, left, width, height } = this.wrapper.nativeElement.getBoundingClientRect();
122
- const maxTop = this.computedContainer.scrollHeight - height;
123
- const maxLeft = this.computedContainer.scrollWidth - width;
111
+ const maxTop = this.element.scrollHeight - height;
112
+ const maxLeft = this.element.scrollWidth - width;
124
113
  const scrolledTop = (clientY - top - offsetHeight * offsetVertical) / (height - offsetHeight);
125
114
  const scrolledLeft = (clientX - left - offsetWidth * offsetHorizontal) / (width - offsetWidth);
126
115
  return [maxTop * scrolledTop, maxLeft * scrolledLeft];
127
116
  }
128
117
  }
129
- TuiScrollbarDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiScrollbarDirective, deps: [{ token: NgZone }, { token: Renderer2 }, { token: TuiDestroyService, self: true }, { token: ANIMATION_FRAME }, { token: TUI_ELEMENT_REF }, { token: TUI_SCROLL_REF, optional: true }, { token: DOCUMENT }, { token: WINDOW }, { token: ElementRef }, { token: ViewportScroller }], target: i0.ɵɵFactoryTarget.Directive });
118
+ TuiScrollbarDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiScrollbarDirective, deps: [{ token: NgZone }, { token: Renderer2 }, { token: TuiDestroyService, self: true }, { token: ANIMATION_FRAME }, { token: TUI_ELEMENT_REF }, { token: TUI_SCROLL_REF }, { token: DOCUMENT }, { token: ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
130
119
  TuiScrollbarDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.17", type: TuiScrollbarDirective, selector: "[tuiScrollbar]", inputs: { tuiScrollbar: "tuiScrollbar" }, providers: [TuiDestroyService], ngImport: i0 });
131
120
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiScrollbarDirective, decorators: [{
132
121
  type: Directive,
@@ -152,22 +141,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
152
141
  type: Inject,
153
142
  args: [TUI_ELEMENT_REF]
154
143
  }] }, { type: i0.ElementRef, decorators: [{
155
- type: Optional
156
- }, {
157
144
  type: Inject,
158
145
  args: [TUI_SCROLL_REF]
159
146
  }] }, { type: Document, decorators: [{
160
147
  type: Inject,
161
148
  args: [DOCUMENT]
162
- }] }, { type: Window, decorators: [{
163
- type: Inject,
164
- args: [WINDOW]
165
149
  }] }, { type: i0.ElementRef, decorators: [{
166
150
  type: Inject,
167
151
  args: [ElementRef]
168
- }] }, { type: i1$1.ViewportScroller, decorators: [{
169
- type: Inject,
170
- args: [ViewportScroller]
171
152
  }] }]; }, propDecorators: { tuiScrollbar: [{
172
153
  type: Input
173
154
  }] } });
@@ -179,27 +160,23 @@ function getOffsetHorizontal({ clientX }, { left, width }) {
179
160
  }
180
161
 
181
162
  class TuiScrollControlsComponent {
182
- constructor(options, ngZone, doc, scrollRef, animationFrame$, mode$) {
183
- this.options = options;
163
+ constructor(animation, ngZone, scrollRef, animationFrame$, mode$) {
164
+ this.animation = animation;
184
165
  this.ngZone = ngZone;
185
- this.doc = doc;
186
166
  this.scrollRef = scrollRef;
187
167
  this.animationFrame$ = animationFrame$;
188
168
  this.mode$ = mode$;
189
169
  this.refresh$ = this.animationFrame$.pipe(throttleTime(300), map(() => this.scrollbars), startWith([false, false]), distinctUntilChanged((a, b) => a[0] === b[0] && a[1] === b[1]), tuiZoneOptimized(this.ngZone));
190
- this.animation = Object.assign({ value: '' }, this.options);
191
170
  }
192
171
  get scrollbars() {
193
- const { clientHeight, scrollHeight, clientWidth, scrollWidth } = this.scrollRef
194
- ? this.scrollRef.nativeElement
195
- : this.doc.documentElement;
172
+ const { clientHeight, scrollHeight, clientWidth, scrollWidth } = this.scrollRef.nativeElement;
196
173
  return [
197
174
  Math.ceil((clientHeight / scrollHeight) * 100) < 100,
198
175
  Math.ceil((clientWidth / scrollWidth) * 100) < 100,
199
176
  ];
200
177
  }
201
178
  }
202
- TuiScrollControlsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiScrollControlsComponent, deps: [{ token: TUI_ANIMATION_OPTIONS }, { token: NgZone }, { token: DOCUMENT }, { token: TUI_SCROLL_REF, optional: true }, { token: ANIMATION_FRAME }, { token: TUI_MODE }], target: i0.ɵɵFactoryTarget.Component });
179
+ TuiScrollControlsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiScrollControlsComponent, deps: [{ token: TUI_ANIMATION_OPTIONS }, { token: NgZone }, { token: TUI_SCROLL_REF }, { token: ANIMATION_FRAME }, { token: TUI_MODE }], target: i0.ɵɵFactoryTarget.Component });
203
180
  TuiScrollControlsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: TuiScrollControlsComponent, selector: "tui-scroll-controls", host: { listeners: { "$.data-mode.attr": "mode$" } }, providers: [MODE_PROVIDER], ngImport: i0, template: "<ng-container *ngIf=\"refresh$ | async as bars\">\n <div\n *ngIf=\"bars[0]\"\n tuiScrollbarWrapper\n class=\"t-bar t-bar_vertical\"\n [@tuiFadeIn]=\"animation\"\n [class.t-bar_has-horizontal]=\"bars[1]\"\n >\n <div\n tuiScrollbar=\"vertical\"\n class=\"t-thumb\"\n ></div>\n </div>\n <div\n *ngIf=\"bars[1]\"\n tuiScrollbarWrapper\n class=\"t-bar t-bar_horizontal\"\n [@tuiFadeIn]=\"animation\"\n [class.t-bar_has-vertical]=\"bars[0]\"\n >\n <div\n tuiScrollbar=\"horizontal\"\n class=\"t-thumb\"\n ></div>\n </div>\n</ng-container>\n", styles: [":host{position:-webkit-sticky;position:sticky;top:0;left:0;z-index:1;min-width:calc(100% - 1px);min-height:calc(100% - 1px);max-width:calc(100% - 1px);max-height:calc(100% - 1px);float:left;margin-right:calc(-100% + 1px);-webkit-margin-start:0;margin-inline-start:0;-webkit-margin-end:calc(-100% + 1px);margin-inline-end:calc(-100% + 1px);pointer-events:none}.t-bar{position:absolute;right:0;bottom:0;pointer-events:auto}.t-bar_vertical{top:0;width:.875rem}.t-bar_horizontal{left:0;height:.875rem}.t-bar_has-horizontal{bottom:.5rem}.t-bar_has-vertical{right:.5rem}.t-thumb{transition-property:all;transition-duration:.15s;transition-timing-function:ease-in-out;position:absolute;border-radius:6.25rem;border:.25rem solid transparent;cursor:pointer;pointer-events:auto;background:var(--tui-text-01);background-clip:content-box;box-sizing:border-box;transition-property:width,height;opacity:.2}.t-thumb:hover{opacity:.24}.t-thumb:active{opacity:.48}:host[data-mode=onDark] .t-thumb{background-color:var(--tui-text-01-night)}.t-bar_vertical .t-thumb{right:0;width:.75rem;min-height:1.25rem}.t-bar_vertical:hover .t-thumb,.t-bar_vertical .t-thumb:active{width:.875rem}.t-bar_horizontal .t-thumb{bottom:0;height:.75rem;min-width:1.25rem}.t-bar_horizontal:hover .t-thumb,.t-bar_horizontal .t-thumb:active{height:.875rem}\n"], directives: [{ type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: TuiScrollbarWrapperDirective, selector: "[tuiScrollbarWrapper]" }, { type: TuiScrollbarDirective, selector: "[tuiScrollbar]", inputs: ["tuiScrollbar"] }], pipes: { "async": i1$1.AsyncPipe }, animations: [tuiFadeIn], changeDetection: i0.ChangeDetectionStrategy.OnPush });
204
181
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiScrollControlsComponent, decorators: [{
205
182
  type: Component,
@@ -220,12 +197,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
220
197
  }] }, { type: i0.NgZone, decorators: [{
221
198
  type: Inject,
222
199
  args: [NgZone]
223
- }] }, { type: Document, decorators: [{
224
- type: Inject,
225
- args: [DOCUMENT]
226
200
  }] }, { type: i0.ElementRef, decorators: [{
227
- type: Optional
228
- }, {
229
201
  type: Inject,
230
202
  args: [TUI_SCROLL_REF]
231
203
  }] }, { type: i1.Observable, decorators: [{
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-core-components-scroll-controls.js","sources":["../../../projects/core/components/scroll-controls/scrollbar-wrapper.directive.ts","../../../projects/core/components/scroll-controls/scrollbar.directive.ts","../../../projects/core/components/scroll-controls/scroll-controls.component.ts","../../../projects/core/components/scroll-controls/scroll-controls.template.html","../../../projects/core/components/scroll-controls/scroll-controls.module.ts","../../../projects/core/components/scroll-controls/taiga-ui-core-components-scroll-controls.ts"],"sourcesContent":["import {Directive, ElementRef} from '@angular/core';\nimport {TUI_ELEMENT_REF} from '@taiga-ui/core/tokens';\n\n@Directive({\n selector: '[tuiScrollbarWrapper]',\n providers: [\n {\n provide: TUI_ELEMENT_REF,\n useExisting: ElementRef,\n },\n ],\n})\nexport class TuiScrollbarWrapperDirective {}\n","import {DOCUMENT, ViewportScroller} from '@angular/common';\nimport {\n Directive,\n ElementRef,\n Inject,\n Input,\n NgZone,\n Optional,\n Renderer2,\n Self,\n} from '@angular/core';\nimport {ANIMATION_FRAME, WINDOW} from '@ng-web-apis/common';\nimport {\n POLLING_TIME,\n TuiDestroyService,\n tuiPreventDefault,\n tuiStopPropagation,\n tuiTypedFromEvent,\n tuiZonefree,\n} from '@taiga-ui/cdk';\nimport {TUI_ELEMENT_REF, TUI_SCROLL_REF} from '@taiga-ui/core/tokens';\nimport {TuiOrientation} from '@taiga-ui/core/types';\nimport {fromEvent, merge, Observable} from 'rxjs';\nimport {map, switchMap, takeUntil, throttleTime} from 'rxjs/operators';\n\nconst MIN_WIDTH = 24;\n\n@Directive({\n selector: '[tuiScrollbar]',\n providers: [TuiDestroyService],\n})\nexport class TuiScrollbarDirective {\n @Input()\n tuiScrollbar: TuiOrientation = 'vertical';\n\n constructor(\n @Inject(NgZone) ngZone: NgZone,\n @Inject(Renderer2) renderer: Renderer2,\n @Self() @Inject(TuiDestroyService) destroy$: Observable<void>,\n @Inject(ANIMATION_FRAME) animationFrame$: Observable<number>,\n @Inject(TUI_ELEMENT_REF) private readonly wrapper: ElementRef<HTMLElement>,\n @Optional()\n @Inject(TUI_SCROLL_REF)\n private readonly container: ElementRef<HTMLElement> | null,\n @Inject(DOCUMENT) private readonly doc: Document,\n @Inject(WINDOW) private readonly win: Window,\n @Inject(ElementRef) private readonly el: ElementRef<HTMLElement>,\n @Inject(ViewportScroller) private readonly viewportScroller: ViewportScroller,\n ) {\n const {nativeElement} = this.el;\n const mousedown$ = tuiTypedFromEvent(nativeElement, 'mousedown');\n const mousemove$ = tuiTypedFromEvent(this.doc, 'mousemove');\n const mouseup$ = tuiTypedFromEvent(this.doc, 'mouseup');\n const mousedownWrapper$ = tuiTypedFromEvent(wrapper.nativeElement, 'mousedown');\n\n merge(\n mousedownWrapper$.pipe(\n tuiPreventDefault(),\n map(event => this.getScrolled(event, 0.5, 0.5)),\n ),\n mousedown$.pipe(\n tuiPreventDefault(),\n tuiStopPropagation(),\n switchMap(event => {\n const rect = nativeElement.getBoundingClientRect();\n const vertical = getOffsetVertical(event, rect);\n const horizontal = getOffsetHorizontal(event, rect);\n\n return mousemove$.pipe(\n map(event => this.getScrolled(event, vertical, horizontal)),\n takeUntil(mouseup$),\n );\n }),\n ),\n )\n .pipe(tuiZonefree(ngZone), takeUntil(destroy$))\n .subscribe(([scrollTop, scrollLeft]) => {\n const [x, y] = this.viewportScroller.getScrollPosition();\n\n if (!this.container) {\n this.viewportScroller.scrollToPosition([\n this.tuiScrollbar === 'vertical' ? x : scrollLeft,\n this.tuiScrollbar === 'vertical' ? scrollTop : y,\n ]);\n\n return;\n }\n\n if (this.tuiScrollbar === 'vertical') {\n renderer.setProperty(\n this.container.nativeElement,\n 'scrollTop',\n scrollTop,\n );\n } else {\n renderer.setProperty(\n this.container.nativeElement,\n 'scrollLeft',\n scrollLeft,\n );\n }\n });\n\n merge(\n fromEvent(this.container ? this.container.nativeElement : this.win, 'scroll'),\n animationFrame$.pipe(throttleTime(POLLING_TIME)),\n )\n .pipe(tuiZonefree(ngZone), takeUntil(destroy$))\n .subscribe(() => {\n if (this.tuiScrollbar === 'vertical') {\n renderer.setStyle(nativeElement, 'top', `${this.thumb * 100}%`);\n renderer.setStyle(nativeElement, 'height', `${this.view * 100}%`);\n } else {\n renderer.setStyle(nativeElement, 'left', `${this.thumb * 100}%`);\n renderer.setStyle(nativeElement, 'width', `${this.view * 100}%`);\n }\n });\n }\n\n private get scrolled(): number {\n const {\n scrollTop,\n scrollHeight,\n clientHeight,\n scrollLeft,\n scrollWidth,\n clientWidth,\n } = this.computedContainer;\n\n return this.tuiScrollbar === 'vertical'\n ? scrollTop / (scrollHeight - clientHeight)\n : scrollLeft / (scrollWidth - clientWidth);\n }\n\n private get compensation(): number {\n const {clientHeight, scrollHeight, clientWidth, scrollWidth} =\n this.computedContainer;\n\n if (\n ((clientHeight * clientHeight) / scrollHeight > MIN_WIDTH &&\n this.tuiScrollbar === 'vertical') ||\n ((clientWidth * clientWidth) / scrollWidth > MIN_WIDTH &&\n this.tuiScrollbar === 'horizontal')\n ) {\n return 0;\n }\n\n return this.tuiScrollbar === 'vertical'\n ? MIN_WIDTH / clientHeight\n : MIN_WIDTH / clientWidth;\n }\n\n private get thumb(): number {\n const compensation = this.compensation || this.view;\n\n return this.scrolled * (1 - compensation);\n }\n\n private get view(): number {\n const {clientHeight, scrollHeight, clientWidth, scrollWidth} =\n this.computedContainer;\n\n return this.tuiScrollbar === 'vertical'\n ? Math.ceil((clientHeight / scrollHeight) * 100) / 100\n : Math.ceil((clientWidth / scrollWidth) * 100) / 100;\n }\n\n private get computedContainer(): Element {\n return this.container?.nativeElement || this.doc.documentElement;\n }\n\n private getScrolled(\n {clientY, clientX}: MouseEvent,\n offsetVertical: number,\n offsetHorizontal: number,\n ): [number, number] {\n const {offsetHeight, offsetWidth} = this.el.nativeElement;\n const {top, left, width, height} =\n this.wrapper.nativeElement.getBoundingClientRect();\n\n const maxTop = this.computedContainer.scrollHeight - height;\n const maxLeft = this.computedContainer.scrollWidth - width;\n const scrolledTop =\n (clientY - top - offsetHeight * offsetVertical) / (height - offsetHeight);\n const scrolledLeft =\n (clientX - left - offsetWidth * offsetHorizontal) / (width - offsetWidth);\n\n return [maxTop * scrolledTop, maxLeft * scrolledLeft];\n }\n}\n\nfunction getOffsetVertical({clientY}: MouseEvent, {top, height}: ClientRect): number {\n return (clientY - top) / height;\n}\n\nfunction getOffsetHorizontal({clientX}: MouseEvent, {left, width}: ClientRect): number {\n return (clientX - left) / width;\n}\n","import {AnimationOptions} from '@angular/animations';\nimport {DOCUMENT} from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n Inject,\n NgZone,\n Optional,\n} from '@angular/core';\nimport {ANIMATION_FRAME} from '@ng-web-apis/common';\nimport {tuiZoneOptimized} from '@taiga-ui/cdk';\nimport {tuiFadeIn} from '@taiga-ui/core/animations';\nimport {MODE_PROVIDER} from '@taiga-ui/core/providers';\nimport {TUI_ANIMATION_OPTIONS, TUI_MODE, TUI_SCROLL_REF} from '@taiga-ui/core/tokens';\nimport {TuiBrightness} from '@taiga-ui/core/types';\nimport {Observable} from 'rxjs';\nimport {distinctUntilChanged, map, startWith, throttleTime} from 'rxjs/operators';\n\n@Component({\n selector: 'tui-scroll-controls',\n templateUrl: './scroll-controls.template.html',\n styleUrls: ['./scroll-controls.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n animations: [tuiFadeIn],\n providers: [MODE_PROVIDER],\n host: {\n '($.data-mode.attr)': 'mode$',\n },\n})\nexport class TuiScrollControlsComponent {\n readonly refresh$ = this.animationFrame$.pipe(\n throttleTime(300),\n map(() => this.scrollbars),\n startWith([false, false]),\n distinctUntilChanged((a, b) => a[0] === b[0] && a[1] === b[1]),\n tuiZoneOptimized(this.ngZone),\n );\n\n readonly animation = {\n value: '',\n ...this.options,\n } as const;\n\n constructor(\n @Inject(TUI_ANIMATION_OPTIONS) private readonly options: AnimationOptions,\n @Inject(NgZone) private readonly ngZone: NgZone,\n @Inject(DOCUMENT) private readonly doc: Document,\n @Optional()\n @Inject(TUI_SCROLL_REF)\n private readonly scrollRef: ElementRef<HTMLElement> | null,\n @Inject(ANIMATION_FRAME) private readonly animationFrame$: Observable<number>,\n @Inject(TUI_MODE) readonly mode$: Observable<TuiBrightness | null>,\n ) {}\n\n private get scrollbars(): [boolean, boolean] {\n const {clientHeight, scrollHeight, clientWidth, scrollWidth} = this.scrollRef\n ? this.scrollRef.nativeElement\n : this.doc.documentElement;\n\n return [\n Math.ceil((clientHeight / scrollHeight) * 100) < 100,\n Math.ceil((clientWidth / scrollWidth) * 100) < 100,\n ];\n }\n}\n","<ng-container *ngIf=\"refresh$ | async as bars\">\n <div\n *ngIf=\"bars[0]\"\n tuiScrollbarWrapper\n class=\"t-bar t-bar_vertical\"\n [@tuiFadeIn]=\"animation\"\n [class.t-bar_has-horizontal]=\"bars[1]\"\n >\n <div\n tuiScrollbar=\"vertical\"\n class=\"t-thumb\"\n ></div>\n </div>\n <div\n *ngIf=\"bars[1]\"\n tuiScrollbarWrapper\n class=\"t-bar t-bar_horizontal\"\n [@tuiFadeIn]=\"animation\"\n [class.t-bar_has-vertical]=\"bars[0]\"\n >\n <div\n tuiScrollbar=\"horizontal\"\n class=\"t-thumb\"\n ></div>\n </div>\n</ng-container>\n","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {TuiLetModule} from '@taiga-ui/cdk';\n\nimport {TuiScrollControlsComponent} from './scroll-controls.component';\nimport {TuiScrollbarDirective} from './scrollbar.directive';\nimport {TuiScrollbarWrapperDirective} from './scrollbar-wrapper.directive';\n\n@NgModule({\n imports: [CommonModule, TuiLetModule],\n declarations: [\n TuiScrollbarDirective,\n TuiScrollbarWrapperDirective,\n TuiScrollControlsComponent,\n ],\n exports: [TuiScrollControlsComponent],\n})\nexport class TuiScrollControlsModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1","i2.TuiScrollbarWrapperDirective","i3.TuiScrollbarDirective"],"mappings":";;;;;;;;;;;;;MAYa,4BAA4B,CAAA;;0HAA5B,4BAA4B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA5B,4BAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,4BAA4B,EAP1B,QAAA,EAAA,uBAAA,EAAA,SAAA,EAAA;AACP,QAAA;AACI,YAAA,OAAO,EAAE,eAAe;AACxB,YAAA,WAAW,EAAE,UAAU;AAC1B,SAAA;AACJ,KAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;4FAEQ,4BAA4B,EAAA,UAAA,EAAA,CAAA;kBATxC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,uBAAuB;AACjC,oBAAA,SAAS,EAAE;AACP,wBAAA;AACI,4BAAA,OAAO,EAAE,eAAe;AACxB,4BAAA,WAAW,EAAE,UAAU;AAC1B,yBAAA;AACJ,qBAAA;AACJ,iBAAA,CAAA;;;ACcD,MAAM,SAAS,GAAG,EAAE,CAAC;MAMR,qBAAqB,CAAA;AAI9B,IAAA,WAAA,CACoB,MAAc,EACX,QAAmB,EACH,QAA0B,EACpC,eAAmC,EAClB,OAAgC,EAGzD,SAAyC,EACvB,GAAa,EACf,GAAW,EACP,EAA2B,EACrB,gBAAkC,EAAA;QAPnC,IAAO,CAAA,OAAA,GAAP,OAAO,CAAyB;QAGzD,IAAS,CAAA,SAAA,GAAT,SAAS,CAAgC;QACvB,IAAG,CAAA,GAAA,GAAH,GAAG,CAAU;QACf,IAAG,CAAA,GAAA,GAAH,GAAG,CAAQ;QACP,IAAE,CAAA,EAAA,GAAF,EAAE,CAAyB;QACrB,IAAgB,CAAA,gBAAA,GAAhB,gBAAgB,CAAkB;QAdjF,IAAY,CAAA,YAAA,GAAmB,UAAU,CAAC;AAgBtC,QAAA,MAAM,EAAC,aAAa,EAAC,GAAG,IAAI,CAAC,EAAE,CAAC;QAChC,MAAM,UAAU,GAAG,iBAAiB,CAAC,aAAa,EAAE,WAAW,CAAC,CAAC;QACjE,MAAM,UAAU,GAAG,iBAAiB,CAAC,IAAI,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;QAC5D,MAAM,QAAQ,GAAG,iBAAiB,CAAC,IAAI,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;QACxD,MAAM,iBAAiB,GAAG,iBAAiB,CAAC,OAAO,CAAC,aAAa,EAAE,WAAW,CAAC,CAAC;AAEhF,QAAA,KAAK,CACD,iBAAiB,CAAC,IAAI,CAClB,iBAAiB,EAAE,EACnB,GAAG,CAAC,KAAK,IAAI,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAClD,EACD,UAAU,CAAC,IAAI,CACX,iBAAiB,EAAE,EACnB,kBAAkB,EAAE,EACpB,SAAS,CAAC,KAAK,IAAG;AACd,YAAA,MAAM,IAAI,GAAG,aAAa,CAAC,qBAAqB,EAAE,CAAC;YACnD,MAAM,QAAQ,GAAG,iBAAiB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;YAChD,MAAM,UAAU,GAAG,mBAAmB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;YAEpD,OAAO,UAAU,CAAC,IAAI,CAClB,GAAG,CAAC,KAAK,IAAI,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC,EAC3D,SAAS,CAAC,QAAQ,CAAC,CACtB,CAAC;SACL,CAAC,CACL,CACJ;aACI,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,SAAS,CAAC,QAAQ,CAAC,CAAC;aAC9C,SAAS,CAAC,CAAC,CAAC,SAAS,EAAE,UAAU,CAAC,KAAI;AACnC,YAAA,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,gBAAgB,CAAC,iBAAiB,EAAE,CAAC;AAEzD,YAAA,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;AACjB,gBAAA,IAAI,CAAC,gBAAgB,CAAC,gBAAgB,CAAC;oBACnC,IAAI,CAAC,YAAY,KAAK,UAAU,GAAG,CAAC,GAAG,UAAU;oBACjD,IAAI,CAAC,YAAY,KAAK,UAAU,GAAG,SAAS,GAAG,CAAC;AACnD,iBAAA,CAAC,CAAC;gBAEH,OAAO;AACV,aAAA;AAED,YAAA,IAAI,IAAI,CAAC,YAAY,KAAK,UAAU,EAAE;AAClC,gBAAA,QAAQ,CAAC,WAAW,CAChB,IAAI,CAAC,SAAS,CAAC,aAAa,EAC5B,WAAW,EACX,SAAS,CACZ,CAAC;AACL,aAAA;AAAM,iBAAA;AACH,gBAAA,QAAQ,CAAC,WAAW,CAChB,IAAI,CAAC,SAAS,CAAC,aAAa,EAC5B,YAAY,EACZ,UAAU,CACb,CAAC;AACL,aAAA;AACL,SAAC,CAAC,CAAC;AAEP,QAAA,KAAK,CACD,SAAS,CAAC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,aAAa,GAAG,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC,EAC7E,eAAe,CAAC,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC,CACnD;aACI,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,SAAS,CAAC,QAAQ,CAAC,CAAC;aAC9C,SAAS,CAAC,MAAK;AACZ,YAAA,IAAI,IAAI,CAAC,YAAY,KAAK,UAAU,EAAE;AAClC,gBAAA,QAAQ,CAAC,QAAQ,CAAC,aAAa,EAAE,KAAK,EAAE,CAAG,EAAA,IAAI,CAAC,KAAK,GAAG,GAAG,CAAA,CAAA,CAAG,CAAC,CAAC;AAChE,gBAAA,QAAQ,CAAC,QAAQ,CAAC,aAAa,EAAE,QAAQ,EAAE,CAAG,EAAA,IAAI,CAAC,IAAI,GAAG,GAAG,CAAA,CAAA,CAAG,CAAC,CAAC;AACrE,aAAA;AAAM,iBAAA;AACH,gBAAA,QAAQ,CAAC,QAAQ,CAAC,aAAa,EAAE,MAAM,EAAE,CAAG,EAAA,IAAI,CAAC,KAAK,GAAG,GAAG,CAAA,CAAA,CAAG,CAAC,CAAC;AACjE,gBAAA,QAAQ,CAAC,QAAQ,CAAC,aAAa,EAAE,OAAO,EAAE,CAAG,EAAA,IAAI,CAAC,IAAI,GAAG,GAAG,CAAA,CAAA,CAAG,CAAC,CAAC;AACpE,aAAA;AACL,SAAC,CAAC,CAAC;KACV;AAED,IAAA,IAAY,QAAQ,GAAA;AAChB,QAAA,MAAM,EACF,SAAS,EACT,YAAY,EACZ,YAAY,EACZ,UAAU,EACV,WAAW,EACX,WAAW,GACd,GAAG,IAAI,CAAC,iBAAiB,CAAC;AAE3B,QAAA,OAAO,IAAI,CAAC,YAAY,KAAK,UAAU;AACnC,cAAE,SAAS,IAAI,YAAY,GAAG,YAAY,CAAC;cACzC,UAAU,IAAI,WAAW,GAAG,WAAW,CAAC,CAAC;KAClD;AAED,IAAA,IAAY,YAAY,GAAA;AACpB,QAAA,MAAM,EAAC,YAAY,EAAE,YAAY,EAAE,WAAW,EAAE,WAAW,EAAC,GACxD,IAAI,CAAC,iBAAiB,CAAC;QAE3B,IACI,CAAC,CAAC,YAAY,GAAG,YAAY,IAAI,YAAY,GAAG,SAAS;AACrD,YAAA,IAAI,CAAC,YAAY,KAAK,UAAU;aACnC,CAAC,WAAW,GAAG,WAAW,IAAI,WAAW,GAAG,SAAS;AAClD,gBAAA,IAAI,CAAC,YAAY,KAAK,YAAY,CAAC,EACzC;AACE,YAAA,OAAO,CAAC,CAAC;AACZ,SAAA;AAED,QAAA,OAAO,IAAI,CAAC,YAAY,KAAK,UAAU;cACjC,SAAS,GAAG,YAAY;AAC1B,cAAE,SAAS,GAAG,WAAW,CAAC;KACjC;AAED,IAAA,IAAY,KAAK,GAAA;QACb,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,IAAI,CAAC;QAEpD,OAAO,IAAI,CAAC,QAAQ,IAAI,CAAC,GAAG,YAAY,CAAC,CAAC;KAC7C;AAED,IAAA,IAAY,IAAI,GAAA;AACZ,QAAA,MAAM,EAAC,YAAY,EAAE,YAAY,EAAE,WAAW,EAAE,WAAW,EAAC,GACxD,IAAI,CAAC,iBAAiB,CAAC;AAE3B,QAAA,OAAO,IAAI,CAAC,YAAY,KAAK,UAAU;AACnC,cAAE,IAAI,CAAC,IAAI,CAAC,CAAC,YAAY,GAAG,YAAY,IAAI,GAAG,CAAC,GAAG,GAAG;AACtD,cAAE,IAAI,CAAC,IAAI,CAAC,CAAC,WAAW,GAAG,WAAW,IAAI,GAAG,CAAC,GAAG,GAAG,CAAC;KAC5D;AAED,IAAA,IAAY,iBAAiB,GAAA;;AACzB,QAAA,OAAO,CAAA,CAAA,EAAA,GAAA,IAAI,CAAC,SAAS,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,aAAa,KAAI,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC;KACpE;IAEO,WAAW,CACf,EAAC,OAAO,EAAE,OAAO,EAAa,EAC9B,cAAsB,EACtB,gBAAwB,EAAA;QAExB,MAAM,EAAC,YAAY,EAAE,WAAW,EAAC,GAAG,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC;AAC1D,QAAA,MAAM,EAAC,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAC,GAC5B,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,qBAAqB,EAAE,CAAC;QAEvD,MAAM,MAAM,GAAG,IAAI,CAAC,iBAAiB,CAAC,YAAY,GAAG,MAAM,CAAC;QAC5D,MAAM,OAAO,GAAG,IAAI,CAAC,iBAAiB,CAAC,WAAW,GAAG,KAAK,CAAC;AAC3D,QAAA,MAAM,WAAW,GACb,CAAC,OAAO,GAAG,GAAG,GAAG,YAAY,GAAG,cAAc,KAAK,MAAM,GAAG,YAAY,CAAC,CAAC;AAC9E,QAAA,MAAM,YAAY,GACd,CAAC,OAAO,GAAG,IAAI,GAAG,WAAW,GAAG,gBAAgB,KAAK,KAAK,GAAG,WAAW,CAAC,CAAC;QAE9E,OAAO,CAAC,MAAM,GAAG,WAAW,EAAE,OAAO,GAAG,YAAY,CAAC,CAAC;KACzD;;AA7JQ,qBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,qBAAqB,kBAKlB,MAAM,EAAA,EAAA,EAAA,KAAA,EACN,SAAS,EACD,EAAA,EAAA,KAAA,EAAA,iBAAiB,yBACzB,eAAe,EAAA,EAAA,EAAA,KAAA,EACf,eAAe,EAEf,EAAA,EAAA,KAAA,EAAA,cAAc,6BAEd,QAAQ,EAAA,EAAA,EAAA,KAAA,EACR,MAAM,EACN,EAAA,EAAA,KAAA,EAAA,UAAU,aACV,gBAAgB,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;uGAhBnB,qBAAqB,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,EAAA,YAAA,EAAA,cAAA,EAAA,EAAA,SAAA,EAFnB,CAAC,iBAAiB,CAAC,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;4FAErB,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAJjC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,gBAAgB;oBAC1B,SAAS,EAAE,CAAC,iBAAiB,CAAC;AACjC,iBAAA,CAAA;;0BAMQ,MAAM;2BAAC,MAAM,CAAA;;0BACb,MAAM;2BAAC,SAAS,CAAA;;0BAChB,IAAI;;0BAAI,MAAM;2BAAC,iBAAiB,CAAA;;0BAChC,MAAM;2BAAC,eAAe,CAAA;;0BACtB,MAAM;2BAAC,eAAe,CAAA;;0BACtB,QAAQ;;0BACR,MAAM;2BAAC,cAAc,CAAA;8BAEkB,QAAQ,EAAA,UAAA,EAAA,CAAA;0BAA/C,MAAM;2BAAC,QAAQ,CAAA;8BACsB,MAAM,EAAA,UAAA,EAAA,CAAA;0BAA3C,MAAM;2BAAC,MAAM,CAAA;;0BACb,MAAM;2BAAC,UAAU,CAAA;;0BACjB,MAAM;2BAAC,gBAAgB,CAAA;4CAd5B,YAAY,EAAA,CAAA;sBADX,KAAK;;AA+JV,SAAS,iBAAiB,CAAC,EAAC,OAAO,EAAa,EAAE,EAAC,GAAG,EAAE,MAAM,EAAa,EAAA;AACvE,IAAA,OAAO,CAAC,OAAO,GAAG,GAAG,IAAI,MAAM,CAAC;AACpC,CAAC;AAED,SAAS,mBAAmB,CAAC,EAAC,OAAO,EAAa,EAAE,EAAC,IAAI,EAAE,KAAK,EAAa,EAAA;AACzE,IAAA,OAAO,CAAC,OAAO,GAAG,IAAI,IAAI,KAAK,CAAC;AACpC;;MCvKa,0BAA0B,CAAA;IAcnC,WACoD,CAAA,OAAyB,EACxC,MAAc,EACZ,GAAa,EAG/B,SAAyC,EAChB,eAAmC,EAClD,KAAuC,EAAA;QAPlB,IAAO,CAAA,OAAA,GAAP,OAAO,CAAkB;QACxC,IAAM,CAAA,MAAA,GAAN,MAAM,CAAQ;QACZ,IAAG,CAAA,GAAA,GAAH,GAAG,CAAU;QAG/B,IAAS,CAAA,SAAA,GAAT,SAAS,CAAgC;QAChB,IAAe,CAAA,eAAA,GAAf,eAAe,CAAoB;QAClD,IAAK,CAAA,KAAA,GAAL,KAAK,CAAkC;AArB7D,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CACzC,YAAY,CAAC,GAAG,CAAC,EACjB,GAAG,CAAC,MAAM,IAAI,CAAC,UAAU,CAAC,EAC1B,SAAS,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,EACzB,oBAAoB,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAC9D,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,CAChC,CAAC;QAEO,IAAS,CAAA,SAAA,GAAG,MACjB,CAAA,MAAA,CAAA,EAAA,KAAK,EAAE,EAAE,IACN,IAAI,CAAC,OAAO,CACT,CAAC;KAWP;AAEJ,IAAA,IAAY,UAAU,GAAA;AAClB,QAAA,MAAM,EAAC,YAAY,EAAE,YAAY,EAAE,WAAW,EAAE,WAAW,EAAC,GAAG,IAAI,CAAC,SAAS;AACzE,cAAE,IAAI,CAAC,SAAS,CAAC,aAAa;AAC9B,cAAE,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC;QAE/B,OAAO;AACH,YAAA,IAAI,CAAC,IAAI,CAAC,CAAC,YAAY,GAAG,YAAY,IAAI,GAAG,CAAC,GAAG,GAAG;AACpD,YAAA,IAAI,CAAC,IAAI,CAAC,CAAC,WAAW,GAAG,WAAW,IAAI,GAAG,CAAC,GAAG,GAAG;SACrD,CAAC;KACL;;wHAlCQ,0BAA0B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAevB,qBAAqB,EAAA,EAAA,EAAA,KAAA,EACrB,MAAM,EAAA,EAAA,EAAA,KAAA,EACN,QAAQ,EAAA,EAAA,EAAA,KAAA,EAER,cAAc,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,KAAA,EAEd,eAAe,EAAA,EAAA,EAAA,KAAA,EACf,QAAQ,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;4GAtBX,0BAA0B,EAAA,QAAA,EAAA,qBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,kBAAA,EAAA,OAAA,EAAA,EAAA,EAAA,SAAA,EALxB,CAAC,aAAa,CAAC,0BCzB9B,wrBA0BA,EAAA,MAAA,EAAA,CAAA,syCAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAC,4BAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,EAAA,EAAA,IAAA,EAAAC,qBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,cAAA,CAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,OAAA,EAAAF,IAAA,CAAA,SAAA,EAAA,EAAA,UAAA,EDFgB,CAAC,SAAS,CAAC,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;4FAMd,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBAXtC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,qBAAqB;AAC/B,oBAAA,WAAW,EAAE,iCAAiC;oBAC9C,SAAS,EAAE,CAAC,8BAA8B,CAAC;oBAC3C,eAAe,EAAE,uBAAuB,CAAC,MAAM;oBAC/C,UAAU,EAAE,CAAC,SAAS,CAAC;oBACvB,SAAS,EAAE,CAAC,aAAa,CAAC;AAC1B,oBAAA,IAAI,EAAE;AACF,wBAAA,oBAAoB,EAAE,OAAO;AAChC,qBAAA;AACJ,iBAAA,CAAA;;0BAgBQ,MAAM;2BAAC,qBAAqB,CAAA;;0BAC5B,MAAM;2BAAC,MAAM,CAAA;8BAC0B,QAAQ,EAAA,UAAA,EAAA,CAAA;0BAA/C,MAAM;2BAAC,QAAQ,CAAA;;0BACf,QAAQ;;0BACR,MAAM;2BAAC,cAAc,CAAA;;0BAErB,MAAM;2BAAC,eAAe,CAAA;;0BACtB,MAAM;2BAAC,QAAQ,CAAA;;;MEnCX,uBAAuB,CAAA;;qHAAvB,uBAAuB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAvB,uBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,uBAAuB,iBAN5B,qBAAqB;QACrB,4BAA4B;AAC5B,QAAA,0BAA0B,CAJpB,EAAA,OAAA,EAAA,CAAA,YAAY,EAAE,YAAY,aAM1B,0BAA0B,CAAA,EAAA,CAAA,CAAA;AAE3B,uBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,uBAAuB,EARvB,OAAA,EAAA,CAAA,CAAC,YAAY,EAAE,YAAY,CAAC,CAAA,EAAA,CAAA,CAAA;4FAQ5B,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBATnC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACN,oBAAA,OAAO,EAAE,CAAC,YAAY,EAAE,YAAY,CAAC;AACrC,oBAAA,YAAY,EAAE;wBACV,qBAAqB;wBACrB,4BAA4B;wBAC5B,0BAA0B;AAC7B,qBAAA;oBACD,OAAO,EAAE,CAAC,0BAA0B,CAAC;AACxC,iBAAA,CAAA;;;AChBD;;AAEG;;;;"}
1
+ {"version":3,"file":"taiga-ui-core-components-scroll-controls.js","sources":["../../../projects/core/components/scroll-controls/scrollbar-wrapper.directive.ts","../../../projects/core/components/scroll-controls/scrollbar.directive.ts","../../../projects/core/components/scroll-controls/scroll-controls.component.ts","../../../projects/core/components/scroll-controls/scroll-controls.template.html","../../../projects/core/components/scroll-controls/scroll-controls.module.ts","../../../projects/core/components/scroll-controls/taiga-ui-core-components-scroll-controls.ts"],"sourcesContent":["import {Directive, ElementRef} from '@angular/core';\nimport {TUI_ELEMENT_REF} from '@taiga-ui/core/tokens';\n\n@Directive({\n selector: '[tuiScrollbarWrapper]',\n providers: [\n {\n provide: TUI_ELEMENT_REF,\n useExisting: ElementRef,\n },\n ],\n})\nexport class TuiScrollbarWrapperDirective {}\n","import {DOCUMENT} from '@angular/common';\nimport {\n Directive,\n ElementRef,\n Inject,\n Input,\n NgZone,\n Renderer2,\n Self,\n} from '@angular/core';\nimport {ANIMATION_FRAME} from '@ng-web-apis/common';\nimport {\n POLLING_TIME,\n TuiDestroyService,\n tuiPreventDefault,\n tuiScrollFrom,\n tuiStopPropagation,\n tuiTypedFromEvent,\n tuiZonefree,\n} from '@taiga-ui/cdk';\nimport {TUI_ELEMENT_REF, TUI_SCROLL_REF} from '@taiga-ui/core/tokens';\nimport {TuiOrientation} from '@taiga-ui/core/types';\nimport {merge, Observable} from 'rxjs';\nimport {map, switchMap, takeUntil, throttleTime} from 'rxjs/operators';\n\nconst MIN_WIDTH = 24;\n\n@Directive({\n selector: '[tuiScrollbar]',\n providers: [TuiDestroyService],\n})\nexport class TuiScrollbarDirective {\n @Input()\n tuiScrollbar: TuiOrientation = 'vertical';\n\n constructor(\n @Inject(NgZone) ngZone: NgZone,\n @Inject(Renderer2) renderer: Renderer2,\n @Self() @Inject(TuiDestroyService) destroy$: Observable<void>,\n @Inject(ANIMATION_FRAME) animationFrame$: Observable<number>,\n @Inject(TUI_ELEMENT_REF) private readonly wrapper: ElementRef<HTMLElement>,\n @Inject(TUI_SCROLL_REF) private readonly container: ElementRef<HTMLElement>,\n @Inject(DOCUMENT) private readonly doc: Document,\n @Inject(ElementRef) private readonly el: ElementRef<HTMLElement>,\n ) {\n const {nativeElement} = this.el;\n const mousedown$ = tuiTypedFromEvent(nativeElement, 'mousedown');\n const mousemove$ = tuiTypedFromEvent(this.doc, 'mousemove');\n const mouseup$ = tuiTypedFromEvent(this.doc, 'mouseup');\n const mousedownWrapper$ = tuiTypedFromEvent(\n this.wrapper.nativeElement,\n 'mousedown',\n );\n\n merge(\n mousedownWrapper$.pipe(\n tuiPreventDefault(),\n map(event => this.getScrolled(event, 0.5, 0.5)),\n ),\n mousedown$.pipe(\n tuiPreventDefault(),\n tuiStopPropagation(),\n switchMap(event => {\n const rect = nativeElement.getBoundingClientRect();\n const vertical = getOffsetVertical(event, rect);\n const horizontal = getOffsetHorizontal(event, rect);\n\n return mousemove$.pipe(\n map(event => this.getScrolled(event, vertical, horizontal)),\n takeUntil(mouseup$),\n );\n }),\n ),\n )\n .pipe(tuiZonefree(ngZone), takeUntil(destroy$))\n .subscribe(([scrollTop, scrollLeft]) => {\n if (this.tuiScrollbar === 'vertical') {\n renderer.setProperty(this.element, 'scrollTop', scrollTop);\n } else {\n renderer.setProperty(this.element, 'scrollLeft', scrollLeft);\n }\n });\n\n merge(\n animationFrame$.pipe(throttleTime(POLLING_TIME)),\n tuiScrollFrom(this.element),\n )\n .pipe(tuiZonefree(ngZone), takeUntil(destroy$))\n .subscribe(() => {\n if (this.tuiScrollbar === 'vertical') {\n renderer.setStyle(nativeElement, 'top', `${this.thumb * 100}%`);\n renderer.setStyle(nativeElement, 'height', `${this.view * 100}%`);\n } else {\n renderer.setStyle(nativeElement, 'left', `${this.thumb * 100}%`);\n renderer.setStyle(nativeElement, 'width', `${this.view * 100}%`);\n }\n });\n }\n\n private get scrolled(): number {\n const {\n scrollTop,\n scrollHeight,\n clientHeight,\n scrollLeft,\n scrollWidth,\n clientWidth,\n } = this.element;\n\n return this.tuiScrollbar === 'vertical'\n ? scrollTop / (scrollHeight - clientHeight)\n : scrollLeft / (scrollWidth - clientWidth);\n }\n\n private get compensation(): number {\n const {clientHeight, scrollHeight, clientWidth, scrollWidth} = this.element;\n\n if (\n ((clientHeight * clientHeight) / scrollHeight > MIN_WIDTH &&\n this.tuiScrollbar === 'vertical') ||\n ((clientWidth * clientWidth) / scrollWidth > MIN_WIDTH &&\n this.tuiScrollbar === 'horizontal')\n ) {\n return 0;\n }\n\n return this.tuiScrollbar === 'vertical'\n ? MIN_WIDTH / clientHeight\n : MIN_WIDTH / clientWidth;\n }\n\n private get thumb(): number {\n const compensation = this.compensation || this.view;\n\n return this.scrolled * (1 - compensation);\n }\n\n private get view(): number {\n const {clientHeight, scrollHeight, clientWidth, scrollWidth} = this.element;\n\n return this.tuiScrollbar === 'vertical'\n ? Math.ceil((clientHeight / scrollHeight) * 100) / 100\n : Math.ceil((clientWidth / scrollWidth) * 100) / 100;\n }\n\n private get element(): Element {\n return this.container.nativeElement;\n }\n\n private getScrolled(\n {clientY, clientX}: MouseEvent,\n offsetVertical: number,\n offsetHorizontal: number,\n ): [number, number] {\n const {offsetHeight, offsetWidth} = this.el.nativeElement;\n const {top, left, width, height} =\n this.wrapper.nativeElement.getBoundingClientRect();\n\n const maxTop = this.element.scrollHeight - height;\n const maxLeft = this.element.scrollWidth - width;\n const scrolledTop =\n (clientY - top - offsetHeight * offsetVertical) / (height - offsetHeight);\n const scrolledLeft =\n (clientX - left - offsetWidth * offsetHorizontal) / (width - offsetWidth);\n\n return [maxTop * scrolledTop, maxLeft * scrolledLeft];\n }\n}\n\nfunction getOffsetVertical({clientY}: MouseEvent, {top, height}: ClientRect): number {\n return (clientY - top) / height;\n}\n\nfunction getOffsetHorizontal({clientX}: MouseEvent, {left, width}: ClientRect): number {\n return (clientX - left) / width;\n}\n","import {AnimationOptions} from '@angular/animations';\nimport {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n Inject,\n NgZone,\n} from '@angular/core';\nimport {ANIMATION_FRAME} from '@ng-web-apis/common';\nimport {tuiZoneOptimized} from '@taiga-ui/cdk';\nimport {tuiFadeIn} from '@taiga-ui/core/animations';\nimport {MODE_PROVIDER} from '@taiga-ui/core/providers';\nimport {TUI_ANIMATION_OPTIONS, TUI_MODE, TUI_SCROLL_REF} from '@taiga-ui/core/tokens';\nimport {TuiBrightness} from '@taiga-ui/core/types';\nimport {Observable} from 'rxjs';\nimport {distinctUntilChanged, map, startWith, throttleTime} from 'rxjs/operators';\n\n@Component({\n selector: 'tui-scroll-controls',\n templateUrl: './scroll-controls.template.html',\n styleUrls: ['./scroll-controls.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n animations: [tuiFadeIn],\n providers: [MODE_PROVIDER],\n host: {\n '($.data-mode.attr)': 'mode$',\n },\n})\nexport class TuiScrollControlsComponent {\n readonly refresh$ = this.animationFrame$.pipe(\n throttleTime(300),\n map(() => this.scrollbars),\n startWith([false, false]),\n distinctUntilChanged((a, b) => a[0] === b[0] && a[1] === b[1]),\n tuiZoneOptimized(this.ngZone),\n );\n\n constructor(\n @Inject(TUI_ANIMATION_OPTIONS) readonly animation: AnimationOptions,\n @Inject(NgZone) private readonly ngZone: NgZone,\n @Inject(TUI_SCROLL_REF) private readonly scrollRef: ElementRef<HTMLElement>,\n @Inject(ANIMATION_FRAME) private readonly animationFrame$: Observable<number>,\n @Inject(TUI_MODE) readonly mode$: Observable<TuiBrightness | null>,\n ) {}\n\n private get scrollbars(): [boolean, boolean] {\n const {clientHeight, scrollHeight, clientWidth, scrollWidth} =\n this.scrollRef.nativeElement;\n\n return [\n Math.ceil((clientHeight / scrollHeight) * 100) < 100,\n Math.ceil((clientWidth / scrollWidth) * 100) < 100,\n ];\n }\n}\n","<ng-container *ngIf=\"refresh$ | async as bars\">\n <div\n *ngIf=\"bars[0]\"\n tuiScrollbarWrapper\n class=\"t-bar t-bar_vertical\"\n [@tuiFadeIn]=\"animation\"\n [class.t-bar_has-horizontal]=\"bars[1]\"\n >\n <div\n tuiScrollbar=\"vertical\"\n class=\"t-thumb\"\n ></div>\n </div>\n <div\n *ngIf=\"bars[1]\"\n tuiScrollbarWrapper\n class=\"t-bar t-bar_horizontal\"\n [@tuiFadeIn]=\"animation\"\n [class.t-bar_has-vertical]=\"bars[0]\"\n >\n <div\n tuiScrollbar=\"horizontal\"\n class=\"t-thumb\"\n ></div>\n </div>\n</ng-container>\n","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {TuiLetModule} from '@taiga-ui/cdk';\n\nimport {TuiScrollControlsComponent} from './scroll-controls.component';\nimport {TuiScrollbarDirective} from './scrollbar.directive';\nimport {TuiScrollbarWrapperDirective} from './scrollbar-wrapper.directive';\n\n@NgModule({\n imports: [CommonModule, TuiLetModule],\n declarations: [\n TuiScrollbarDirective,\n TuiScrollbarWrapperDirective,\n TuiScrollControlsComponent,\n ],\n exports: [TuiScrollControlsComponent],\n})\nexport class TuiScrollControlsModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1","i2.TuiScrollbarWrapperDirective","i3.TuiScrollbarDirective"],"mappings":"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"}
@@ -1,13 +1,13 @@
1
1
  import * as i0 from '@angular/core';
2
- import { InjectionToken, ElementRef, INJECTOR, Directive, Inject, Input, Optional, SkipSelf, forwardRef, Component, ChangeDetectionStrategy, Self, HostBinding, HostListener, ViewContainerRef, NgModule } from '@angular/core';
2
+ import { InjectionToken, ElementRef, INJECTOR, Directive, Inject, Input, Optional, SkipSelf, forwardRef, Component, ChangeDetectionStrategy, Self, HostListener, ViewContainerRef, NgModule } from '@angular/core';
3
3
  import { WINDOW } from '@ng-web-apis/common';
4
4
  import * as i2 from '@taiga-ui/cdk';
5
5
  import { TuiDropdownPortalService, tuiPure, TuiHoveredService, tuiDefaultProp, tuiPx, tuiGetClosestFocusable, TuiDestroyService, AbstractTuiPortalHostComponent, EMPTY_CLIENT_RECT, tuiPointToClientRect, TuiActiveZoneDirective, ALWAYS_TRUE_HANDLER, tuiIsTextNode, tuiIsString, tuiIsElement, tuiGetNativeFocused, tuiIsTextfield, CHAR_ZERO_WIDTH_SPACE, CHAR_NO_BREAK_SPACE, TUI_RANGE, TuiActiveZoneModule, TuiOverscrollModule, TuiHoveredModule } from '@taiga-ui/cdk';
6
6
  import * as i1$2 from '@taiga-ui/core/abstract';
7
7
  import { tuiAsRectAccessor, tuiAsVehicle, TuiDriver, tuiAsDriver, TuiRectAccessor, tuiPositionAccessorFor, tuiRectAccessorFor, AbstractTuiDriverDirective, TuiVehicle, TuiPositionAccessor, tuiFallbackRectAccessor, tuiAsPositionAccessor } from '@taiga-ui/core/abstract';
8
8
  import { tuiDropdownAnimation } from '@taiga-ui/core/animations';
9
- import * as i9 from '@taiga-ui/core/services';
10
- import { TuiPositionService, TuiVisualViewportService } from '@taiga-ui/core/services';
9
+ import * as i5 from '@taiga-ui/core/services';
10
+ import { TuiVisualViewportService, TuiPositionService } from '@taiga-ui/core/services';
11
11
  import { TUI_ANIMATION_OPTIONS, TUI_VIEWPORT, TUI_SELECTION_STREAM } from '@taiga-ui/core/tokens';
12
12
  import { switchMap, delay, tap, share, map, takeUntil, distinctUntilChanged } from 'rxjs/operators';
13
13
  import { __decorate } from 'tslib';
@@ -31,14 +31,14 @@ const TUI_DROPDOWN_COMPONENT = new InjectionToken(`[TUI_DROPDOWN_COMPONENT]`, {
31
31
  });
32
32
 
33
33
  class TuiDropdownDirective {
34
- constructor(el, hapica, injector, dropdownService) {
34
+ constructor(el, dropdown, injector, dropdownService) {
35
35
  this.el = el;
36
- this.hapica = hapica;
36
+ this.dropdown = dropdown;
37
37
  this.injector = injector;
38
38
  this.dropdownService = dropdownService;
39
39
  this.dropdownBoxRef = null;
40
40
  this.type = 'dropdown';
41
- this.component = new PolymorpheusComponent(this.hapica, this.injector);
41
+ this.component = new PolymorpheusComponent(this.dropdown, this.injector);
42
42
  }
43
43
  get position() {
44
44
  return tuiCheckFixedPosition(this.el.nativeElement) ? 'fixed' : 'absolute';
@@ -267,16 +267,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
267
267
  * using default style of white rounded box with a shadow
268
268
  */
269
269
  class TuiDropdownComponent {
270
- constructor(position$, destroy$, directive, el, host, accessor, win, animationOptions, options, hoverDirective, visualViewportService) {
270
+ constructor(visualViewportService, position$, destroy$, directive, animation, el, host, accessor, win, options, hoverDirective) {
271
271
  this.directive = directive;
272
+ this.animation = animation;
272
273
  this.el = el;
273
274
  this.host = host;
274
275
  this.accessor = accessor;
275
276
  this.win = win;
276
- this.animationOptions = animationOptions;
277
277
  this.options = options;
278
278
  this.hoverDirective = hoverDirective;
279
- this.dropdownAnimation = Object.assign({ value: "fadeInTop" /* FadeInTop */ }, this.animationOptions);
280
279
  position$
281
280
  .pipe(map(point => this.directive.position === 'fixed'
282
281
  ? visualViewportService.correct(point)
@@ -348,8 +347,8 @@ class TuiDropdownComponent {
348
347
  focusable === null || focusable === void 0 ? void 0 : focusable.focus();
349
348
  }
350
349
  }
351
- TuiDropdownComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiDropdownComponent, deps: [{ token: TuiPositionService }, { token: TuiDestroyService, self: true }, { token: TuiDropdownDirective }, { token: ElementRef }, { token: AbstractTuiPortalHostComponent }, { token: TuiRectAccessor }, { token: WINDOW }, { token: TUI_ANIMATION_OPTIONS }, { token: TUI_DROPDOWN_OPTIONS }, { token: TuiDropdownHoverDirective, optional: true }, { token: TuiVisualViewportService }], target: i0.ɵɵFactoryTarget.Component });
352
- TuiDropdownComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: TuiDropdownComponent, selector: "tui-dropdown", host: { properties: { "@tuiDropdownAnimation": "this.dropdownAnimation" } }, providers: [
350
+ TuiDropdownComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiDropdownComponent, deps: [{ token: TuiVisualViewportService }, { token: TuiPositionService }, { token: TuiDestroyService, self: true }, { token: TuiDropdownDirective }, { token: TUI_ANIMATION_OPTIONS }, { token: ElementRef }, { token: AbstractTuiPortalHostComponent }, { token: TuiRectAccessor }, { token: WINDOW }, { token: TUI_DROPDOWN_OPTIONS }, { token: TuiDropdownHoverDirective, optional: true }], target: i0.ɵɵFactoryTarget.Component });
351
+ TuiDropdownComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: TuiDropdownComponent, selector: "tui-dropdown", host: { properties: { "@tuiDropdownAnimation": "animation" } }, providers: [
353
352
  TuiDestroyService,
354
353
  TuiPositionService,
355
354
  tuiPositionAccessorFor('dropdown'),
@@ -368,11 +367,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
368
367
  tuiRectAccessorFor('dropdown', TuiDropdownDirective),
369
368
  ],
370
369
  animations: [tuiDropdownAnimation],
370
+ host: { '[@tuiDropdownAnimation]': 'animation' },
371
371
  // @bad TODO: OnPush
372
372
  // eslint-disable-next-line @angular-eslint/prefer-on-push-component-change-detection
373
373
  changeDetection: ChangeDetectionStrategy.Default,
374
374
  }]
375
- }], ctorParameters: function () { return [{ type: i1.Observable, decorators: [{
375
+ }], ctorParameters: function () { return [{ type: i5.TuiVisualViewportService, decorators: [{
376
+ type: Inject,
377
+ args: [TuiVisualViewportService]
378
+ }] }, { type: i1.Observable, decorators: [{
376
379
  type: Inject,
377
380
  args: [TuiPositionService]
378
381
  }] }, { type: i1.Observable, decorators: [{
@@ -383,6 +386,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
383
386
  }] }, { type: TuiDropdownDirective, decorators: [{
384
387
  type: Inject,
385
388
  args: [TuiDropdownDirective]
389
+ }] }, { type: undefined, decorators: [{
390
+ type: Inject,
391
+ args: [TUI_ANIMATION_OPTIONS]
386
392
  }] }, { type: i0.ElementRef, decorators: [{
387
393
  type: Inject,
388
394
  args: [ElementRef]
@@ -395,9 +401,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
395
401
  }] }, { type: Window, decorators: [{
396
402
  type: Inject,
397
403
  args: [WINDOW]
398
- }] }, { type: undefined, decorators: [{
399
- type: Inject,
400
- args: [TUI_ANIMATION_OPTIONS]
401
404
  }] }, { type: undefined, decorators: [{
402
405
  type: Inject,
403
406
  args: [TUI_DROPDOWN_OPTIONS]
@@ -406,13 +409,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
406
409
  }, {
407
410
  type: Inject,
408
411
  args: [TuiDropdownHoverDirective]
409
- }] }, { type: i9.TuiVisualViewportService, decorators: [{
410
- type: Inject,
411
- args: [TuiVisualViewportService]
412
- }] }]; }, propDecorators: { dropdownAnimation: [{
413
- type: HostBinding,
414
- args: ['@tuiDropdownAnimation']
415
- }] } });
412
+ }] }]; } });
416
413
 
417
414
  function activeZoneFilter(target) {
418
415
  return !this.activeZone.contains(target);