@taiga-ui/core 3.29.2 → 3.30.0-dev.main-acad351

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 (84) 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 +13 -3
  10. package/bundles/taiga-ui-core-components-root.umd.js.map +1 -1
  11. package/bundles/taiga-ui-core-components-scroll-controls.umd.js +34 -62
  12. package/bundles/taiga-ui-core-components-scroll-controls.umd.js.map +1 -1
  13. package/bundles/taiga-ui-core-directives-dropdown.umd.js +21 -24
  14. package/bundles/taiga-ui-core-directives-dropdown.umd.js.map +1 -1
  15. package/bundles/taiga-ui-core-directives-hint.umd.js +18 -22
  16. package/bundles/taiga-ui-core-directives-hint.umd.js.map +1 -1
  17. package/bundles/taiga-ui-core-enums.umd.js +1 -0
  18. package/bundles/taiga-ui-core-enums.umd.js.map +1 -1
  19. package/bundles/taiga-ui-core-services.umd.js +4 -3
  20. package/bundles/taiga-ui-core-services.umd.js.map +1 -1
  21. package/bundles/taiga-ui-core-tokens.umd.js +4 -1
  22. package/bundles/taiga-ui-core-tokens.umd.js.map +1 -1
  23. package/bundles/taiga-ui-core-utils-format.umd.js +10 -0
  24. package/bundles/taiga-ui-core-utils-format.umd.js.map +1 -1
  25. package/bundles/taiga-ui-core-utils-mask.umd.js +4 -0
  26. package/bundles/taiga-ui-core-utils-mask.umd.js.map +1 -1
  27. package/components/alert/alert.component.d.ts +2 -9
  28. package/components/error/error.component.d.ts +2 -9
  29. package/components/hints-host/hints-host.component.d.ts +9 -4
  30. package/components/root/root.component.d.ts +3 -1
  31. package/components/scroll-controls/scroll-controls.component.d.ts +3 -11
  32. package/components/scroll-controls/scrollbar.directive.d.ts +3 -6
  33. package/constants/cache-basting-payload.d.ts +1 -1
  34. package/directives/dropdown/dropdown.component.d.ts +3 -11
  35. package/directives/dropdown/dropdown.directive.d.ts +2 -2
  36. package/directives/hint/hint.component.d.ts +4 -12
  37. package/enums/dropdown-animation.d.ts +1 -0
  38. package/esm2015/animations/animations.js +3 -11
  39. package/esm2015/components/alert/alert.component.js +12 -17
  40. package/esm2015/components/error/error.component.js +3 -4
  41. package/esm2015/components/hints-host/hints-host.component.js +27 -6
  42. package/esm2015/components/root/root.component.js +15 -5
  43. package/esm2015/components/scroll-controls/scroll-controls.component.js +6 -16
  44. package/esm2015/components/scroll-controls/scrollbar.directive.js +19 -39
  45. package/esm2015/directives/dropdown/dropdown.component.js +24 -27
  46. package/esm2015/directives/dropdown/dropdown.directive.js +4 -4
  47. package/esm2015/directives/hint/hint.component.js +19 -23
  48. package/esm2015/enums/dropdown-animation.js +2 -1
  49. package/esm2015/services/position.service.js +5 -3
  50. package/esm2015/tokens/animation-options.js +2 -1
  51. package/esm2015/tokens/scroll-ref.js +6 -3
  52. package/esm2015/utils/format/format-phone.js +11 -1
  53. package/esm2015/utils/mask/create-correction-mask.js +5 -1
  54. package/fesm2015/taiga-ui-core-animations.js +2 -10
  55. package/fesm2015/taiga-ui-core-animations.js.map +1 -1
  56. package/fesm2015/taiga-ui-core-components-alert.js +11 -16
  57. package/fesm2015/taiga-ui-core-components-alert.js.map +1 -1
  58. package/fesm2015/taiga-ui-core-components-error.js +2 -3
  59. package/fesm2015/taiga-ui-core-components-error.js.map +1 -1
  60. package/fesm2015/taiga-ui-core-components-hints-host.js +26 -5
  61. package/fesm2015/taiga-ui-core-components-hints-host.js.map +1 -1
  62. package/fesm2015/taiga-ui-core-components-root.js +14 -4
  63. package/fesm2015/taiga-ui-core-components-root.js.map +1 -1
  64. package/fesm2015/taiga-ui-core-components-scroll-controls.js +23 -51
  65. package/fesm2015/taiga-ui-core-components-scroll-controls.js.map +1 -1
  66. package/fesm2015/taiga-ui-core-directives-dropdown.js +19 -22
  67. package/fesm2015/taiga-ui-core-directives-dropdown.js.map +1 -1
  68. package/fesm2015/taiga-ui-core-directives-hint.js +18 -22
  69. package/fesm2015/taiga-ui-core-directives-hint.js.map +1 -1
  70. package/fesm2015/taiga-ui-core-enums.js +1 -0
  71. package/fesm2015/taiga-ui-core-enums.js.map +1 -1
  72. package/fesm2015/taiga-ui-core-services.js +4 -2
  73. package/fesm2015/taiga-ui-core-services.js.map +1 -1
  74. package/fesm2015/taiga-ui-core-tokens.js +5 -2
  75. package/fesm2015/taiga-ui-core-tokens.js.map +1 -1
  76. package/fesm2015/taiga-ui-core-utils-format.js +10 -0
  77. package/fesm2015/taiga-ui-core-utils-format.js.map +1 -1
  78. package/fesm2015/taiga-ui-core-utils-mask.js +4 -0
  79. package/fesm2015/taiga-ui-core-utils-mask.js.map +1 -1
  80. package/package.json +4 -4
  81. package/services/position.service.d.ts +1 -1
  82. package/styles/theme/wrapper/textfield.less +8 -8
  83. package/utils/format/format-phone.d.ts +10 -0
  84. package/utils/mask/create-correction-mask.d.ts +4 -0
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-core-components-alert.js","sources":["../../../projects/core/components/alert/alert.component.ts","../../../projects/core/components/alert/alert.template.html","../../../projects/core/components/alert/alert.service.ts","../../../projects/core/components/alert/alert.module.ts","../../../projects/core/components/alert/taiga-ui-core-components-alert.ts"],"sourcesContent":["import {AnimationOptions} from '@angular/animations';\nimport {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n HostBinding,\n Inject,\n OnInit,\n Self,\n} from '@angular/core';\nimport {TuiDestroyService, TuiDialog, tuiIsNumber} from '@taiga-ui/cdk';\nimport {tuiFadeIn, tuiHeightCollapse, tuiSlideInRight} from '@taiga-ui/core/animations';\nimport {TuiAlertOptions} from '@taiga-ui/core/interfaces';\nimport {\n TUI_ANIMATION_OPTIONS,\n TUI_NOTIFICATION_OPTIONS,\n TuiNotificationDefaultOptions,\n} from '@taiga-ui/core/tokens';\nimport {POLYMORPHEUS_CONTEXT} from '@tinkoff/ng-polymorpheus';\nimport {fromEvent, timer} from 'rxjs';\nimport {repeatWhen, takeUntil} from 'rxjs/operators';\n\n// TODO: get rid of $any in template\n@Component({\n selector: 'tui-alert',\n templateUrl: './alert.template.html',\n styleUrls: ['./alert.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [TuiDestroyService],\n animations: [tuiFadeIn, tuiSlideInRight, tuiHeightCollapse],\n host: {role: 'alert'},\n})\nexport class TuiAlertComponent<O, I> implements OnInit {\n private readonly autoClose =\n typeof this.item.autoClose === 'function'\n ? this.item.autoClose(this.item.status)\n : this.item.autoClose;\n\n @HostBinding('@tuiFadeIn')\n @HostBinding('@tuiSlideInRight')\n @HostBinding('@tuiHeightCollapse')\n readonly animation = {value: '', ...this.animationOptions} as const;\n\n constructor(\n @Inject(ElementRef) private readonly el: ElementRef<HTMLElement>,\n @Self() @Inject(TuiDestroyService) private readonly destroy$: TuiDestroyService,\n @Inject(TUI_NOTIFICATION_OPTIONS)\n private readonly options: TuiNotificationDefaultOptions,\n @Inject(TUI_ANIMATION_OPTIONS)\n private readonly animationOptions: AnimationOptions,\n @Inject(POLYMORPHEUS_CONTEXT) readonly item: TuiDialog<TuiAlertOptions<I>, O>,\n ) {}\n\n ngOnInit(): void {\n this.initAutoClose();\n }\n\n closeNotification(): void {\n this.item.$implicit.complete();\n }\n\n private initAutoClose(): void {\n if (!this.autoClose) {\n return;\n }\n\n timer(\n tuiIsNumber(this.autoClose)\n ? this.autoClose\n : this.options.defaultAutoCloseTime,\n )\n .pipe(\n takeUntil(fromEvent(this.el.nativeElement, 'mouseenter')),\n /**\n * TODO: replace to\n * repeat({\n * delay: () => fromEvent(this.el.nativeElement, 'mouseleave'),\n * })\n *\n * in RxJS 7\n */\n // eslint-disable-next-line rxjs/no-ignored-notifier\n repeatWhen(() => fromEvent(this.el.nativeElement, 'mouseleave')),\n takeUntil(this.destroy$),\n )\n .subscribe(() => this.closeNotification());\n }\n}\n","<tui-notification\n [status]=\"item.status\"\n [hasIcon]=\"item.hasIcon\"\n [hideClose]=\"!item.hasCloseButton\"\n (close)=\"closeNotification()\"\n>\n <label\n *ngIf=\"item.label\"\n automation-id=\"tui-notification-alert__heading\"\n class=\"t-heading\"\n >\n <!-- TODO: Polymorpheus fix type -->\n <ng-container *polymorpheusOutlet=\"$any(item.label) as text; context: item\">\n {{ text }}\n </ng-container>\n </label>\n <div\n automation-id=\"tui-notification-alert__content\"\n class=\"t-content\"\n >\n <!-- TODO: Polymorpheus fix type -->\n <div\n *polymorpheusOutlet=\"item.content as text; context: $any(item)\"\n [innerHTML]=\"text\"\n ></div>\n </div>\n</tui-notification>\n","import {Inject, Injectable} from '@angular/core';\nimport {AbstractTuiDialogService, TuiIdService} from '@taiga-ui/cdk';\nimport {TuiAlertOptions} from '@taiga-ui/core/interfaces';\nimport {TUI_NOTIFICATION_OPTIONS} from '@taiga-ui/core/tokens';\nimport {PolymorpheusComponent} from '@tinkoff/ng-polymorpheus';\n\nimport {TuiAlertComponent} from './alert.component';\n\n@Injectable({providedIn: `root`})\nexport class TuiAlertService extends AbstractTuiDialogService<TuiAlertOptions<any>> {\n protected readonly component = new PolymorpheusComponent(TuiAlertComponent);\n\n constructor(\n @Inject(TUI_NOTIFICATION_OPTIONS)\n protected readonly defaultOptions: TuiAlertOptions<any>,\n @Inject(TuiIdService) idService: TuiIdService,\n ) {\n super(idService);\n }\n}\n","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {tuiAsAlerts} from '@taiga-ui/cdk';\nimport {TuiNotificationModule} from '@taiga-ui/core/components/notification';\nimport {PolymorpheusModule} from '@tinkoff/ng-polymorpheus';\n\nimport {TuiAlertComponent} from './alert.component';\nimport {TuiAlertService} from './alert.service';\n\n@NgModule({\n imports: [CommonModule, PolymorpheusModule, TuiNotificationModule],\n declarations: [TuiAlertComponent],\n exports: [TuiAlertComponent],\n providers: [tuiAsAlerts(TuiAlertService)],\n})\nexport class TuiAlertModule {}\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-alert.js","sources":["../../../projects/core/components/alert/alert.component.ts","../../../projects/core/components/alert/alert.template.html","../../../projects/core/components/alert/alert.service.ts","../../../projects/core/components/alert/alert.module.ts","../../../projects/core/components/alert/taiga-ui-core-components-alert.ts"],"sourcesContent":["import {AnimationOptions} from '@angular/animations';\nimport {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n Inject,\n OnInit,\n Self,\n} from '@angular/core';\nimport {TuiDestroyService, TuiDialog, tuiIsNumber} from '@taiga-ui/cdk';\nimport {tuiFadeIn, tuiHeightCollapse, tuiSlideInRight} from '@taiga-ui/core/animations';\nimport {TuiAlertOptions} from '@taiga-ui/core/interfaces';\nimport {\n TUI_ANIMATION_OPTIONS,\n TUI_NOTIFICATION_OPTIONS,\n TuiNotificationDefaultOptions,\n} from '@taiga-ui/core/tokens';\nimport {POLYMORPHEUS_CONTEXT} from '@tinkoff/ng-polymorpheus';\nimport {fromEvent, timer} from 'rxjs';\nimport {repeatWhen, takeUntil} from 'rxjs/operators';\n\n// TODO: get rid of $any in template\n@Component({\n selector: 'tui-alert',\n templateUrl: './alert.template.html',\n styleUrls: ['./alert.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [TuiDestroyService],\n animations: [tuiFadeIn, tuiSlideInRight, tuiHeightCollapse],\n host: {\n role: 'alert',\n '[@tuiFadeIn]': 'animation',\n '[@tuiSlideInRight]': 'animation',\n '[@tuiHeightCollapse]': 'animation',\n },\n})\nexport class TuiAlertComponent<O, I> implements OnInit {\n private readonly autoClose =\n typeof this.item.autoClose === 'function'\n ? this.item.autoClose(this.item.status)\n : this.item.autoClose;\n\n constructor(\n @Inject(ElementRef) private readonly el: ElementRef<HTMLElement>,\n @Self() @Inject(TuiDestroyService) private readonly destroy$: TuiDestroyService,\n @Inject(TUI_NOTIFICATION_OPTIONS)\n private readonly options: TuiNotificationDefaultOptions,\n @Inject(TUI_ANIMATION_OPTIONS) readonly animation: AnimationOptions,\n @Inject(POLYMORPHEUS_CONTEXT) readonly item: TuiDialog<TuiAlertOptions<I>, O>,\n ) {}\n\n ngOnInit(): void {\n this.initAutoClose();\n }\n\n closeNotification(): void {\n this.item.$implicit.complete();\n }\n\n private initAutoClose(): void {\n if (!this.autoClose) {\n return;\n }\n\n timer(\n tuiIsNumber(this.autoClose)\n ? this.autoClose\n : this.options.defaultAutoCloseTime,\n )\n .pipe(\n takeUntil(fromEvent(this.el.nativeElement, 'mouseenter')),\n /**\n * TODO: replace to\n * repeat({\n * delay: () => fromEvent(this.el.nativeElement, 'mouseleave'),\n * })\n *\n * in RxJS 7\n */\n // eslint-disable-next-line rxjs/no-ignored-notifier\n repeatWhen(() => fromEvent(this.el.nativeElement, 'mouseleave')),\n takeUntil(this.destroy$),\n )\n .subscribe(() => this.closeNotification());\n }\n}\n","<tui-notification\n [status]=\"item.status\"\n [hasIcon]=\"item.hasIcon\"\n [hideClose]=\"!item.hasCloseButton\"\n (close)=\"closeNotification()\"\n>\n <label\n *ngIf=\"item.label\"\n automation-id=\"tui-notification-alert__heading\"\n class=\"t-heading\"\n >\n <!-- TODO: Polymorpheus fix type -->\n <ng-container *polymorpheusOutlet=\"$any(item.label) as text; context: item\">\n {{ text }}\n </ng-container>\n </label>\n <div\n automation-id=\"tui-notification-alert__content\"\n class=\"t-content\"\n >\n <!-- TODO: Polymorpheus fix type -->\n <div\n *polymorpheusOutlet=\"item.content as text; context: $any(item)\"\n [innerHTML]=\"text\"\n ></div>\n </div>\n</tui-notification>\n","import {Inject, Injectable} from '@angular/core';\nimport {AbstractTuiDialogService, TuiIdService} from '@taiga-ui/cdk';\nimport {TuiAlertOptions} from '@taiga-ui/core/interfaces';\nimport {TUI_NOTIFICATION_OPTIONS} from '@taiga-ui/core/tokens';\nimport {PolymorpheusComponent} from '@tinkoff/ng-polymorpheus';\n\nimport {TuiAlertComponent} from './alert.component';\n\n@Injectable({providedIn: `root`})\nexport class TuiAlertService extends AbstractTuiDialogService<TuiAlertOptions<any>> {\n protected readonly component = new PolymorpheusComponent(TuiAlertComponent);\n\n constructor(\n @Inject(TUI_NOTIFICATION_OPTIONS)\n protected readonly defaultOptions: TuiAlertOptions<any>,\n @Inject(TuiIdService) idService: TuiIdService,\n ) {\n super(idService);\n }\n}\n","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {tuiAsAlerts} from '@taiga-ui/cdk';\nimport {TuiNotificationModule} from '@taiga-ui/core/components/notification';\nimport {PolymorpheusModule} from '@tinkoff/ng-polymorpheus';\n\nimport {TuiAlertComponent} from './alert.component';\nimport {TuiAlertService} from './alert.service';\n\n@NgModule({\n imports: [CommonModule, PolymorpheusModule, TuiNotificationModule],\n declarations: [TuiAlertComponent],\n exports: [TuiAlertComponent],\n providers: [tuiAsAlerts(TuiAlertService)],\n})\nexport class TuiAlertModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -12,13 +12,12 @@ import { PolymorpheusModule } from '@tinkoff/ng-polymorpheus';
12
12
  import * as i3 from 'rxjs';
13
13
 
14
14
  class TuiErrorComponent {
15
- constructor(options, mode$, defaultErrorMessage$) {
16
- this.options = options;
15
+ constructor(animation, mode$, defaultErrorMessage$) {
16
+ this.animation = animation;
17
17
  this.mode$ = mode$;
18
18
  this.defaultErrorMessage$ = defaultErrorMessage$;
19
19
  this.error = null;
20
20
  this.visible = true;
21
- this.animation = Object.assign({ value: '' }, this.options);
22
21
  }
23
22
  set errorSetter(error) {
24
23
  this.error = tuiIsString(error) ? new TuiValidationError(error) : error;
@@ -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":";;;;;;;;;;;MAkBa,qBAAqB,CAAA;AAC9B,IAAA,WAAA,CACqC,MAA4C,EAAA;QAA5C,IAAM,CAAA,MAAA,GAAN,MAAM,CAAsC;KAC7E;;AAHK,qBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,qBAAqB,kBAElB,cAAc,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAFjB,qBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,qBAAqB,EClBlC,QAAA,EAAA,gBAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,WAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,0QAQA,EDKgB,MAAA,EAAA,CAAA,0DAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,CAAA,sBAAA,EAAA,QAAA,EAAA,qHAAA,EAAA,MAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,eAAA,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,UAAA,EAAA,CAAC,oBAAoB,CAAC,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,OAAA,EAAA,CAAA,CAAA;4FAKzB,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAZjC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,gBAAgB;AAC1B,oBAAA,WAAW,EAAE,4BAA4B;oBACzC,SAAS,EAAE,CAAC,yBAAyB,CAAC;;;oBAGtC,eAAe,EAAE,uBAAuB,CAAC,OAAO;oBAChD,UAAU,EAAE,CAAC,oBAAoB,CAAC;AAClC,oBAAA,IAAI,EAAE;AACF,wBAAA,WAAW,EAAE,QAAQ;AACxB,qBAAA;AACJ,iBAAA,CAAA;;0BAGQ,MAAM;2BAAC,cAAc,CAAA;;;MERjB,kBAAkB,CAAA;;gHAAlB,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;iHAAlB,kBAAkB,EAAA,YAAA,EAAA,CAHZ,qBAAqB,CAD1B,EAAA,OAAA,EAAA,CAAA,YAAY,EAAE,kBAAkB,EAAE,mBAAmB,CAAA,EAAA,OAAA,EAAA,CAErD,qBAAqB,CAAA,EAAA,CAAA,CAAA;AAEtB,kBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,kBAAkB,YAJlB,CAAC,YAAY,EAAE,kBAAkB,EAAE,mBAAmB,CAAC,CAAA,EAAA,CAAA,CAAA;4FAIvD,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAL9B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACN,oBAAA,OAAO,EAAE,CAAC,YAAY,EAAE,kBAAkB,EAAE,mBAAmB,CAAC;oBAChE,YAAY,EAAE,CAAC,qBAAqB,CAAC;oBACrC,OAAO,EAAE,CAAC,qBAAqB,CAAC;AACnC,iBAAA,CAAA;;;ACXD;;AAEG;;;;"}
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":";;;;;;;;;;;;MA2Ba,qBAAqB,CAAA;AAG9B,IAAA,WAAA,CAEqB,MAA4C,EACT,QAA0B,EAClC,GAAsB,EAAA;QAFjD,IAAM,CAAA,MAAA,GAAN,MAAM,CAAsC;QACT,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAkB;QAClC,IAAG,CAAA,GAAA,GAAH,GAAG,CAAmB;QANtE,IAAK,CAAA,KAAA,GAA6B,EAAE,CAAC;KAOjC;IAEJ,QAAQ,GAAA;;;AAGJ,QAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,IAAG;AACzD,YAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;AACnB,YAAA,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;AAC7B,SAAC,CAAC,CAAC;KACN;;AAjBQ,qBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,qBAAqB,EAIlB,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,cAAc,EAEN,EAAA,EAAA,KAAA,EAAA,iBAAiB,yBACzB,iBAAiB,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;uGAPpB,qBAAqB,EAAA,QAAA,EAAA,gBAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,WAAA,EAAA,QAAA,EAAA,EAAA,EAAA,SAAA,EANnB,CAAC,iBAAiB,CAAC,0BCrBlC,iQAQA,EAAA,MAAA,EAAA,CAAA,0DAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,CAAA,sBAAA,EAAA,QAAA,EAAA,qHAAA,EAAA,MAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,CAAA,2BAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,oBAAA,EAAA,2BAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EDcgB,CAAC,oBAAoB,CAAC,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,OAAA,EAAA,CAAA,CAAA;4FAKzB,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAbjC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,gBAAgB;AAC1B,oBAAA,WAAW,EAAE,4BAA4B;oBACzC,SAAS,EAAE,CAAC,yBAAyB,CAAC;;;oBAGtC,eAAe,EAAE,uBAAuB,CAAC,OAAO;oBAChD,SAAS,EAAE,CAAC,iBAAiB,CAAC;oBAC9B,UAAU,EAAE,CAAC,oBAAoB,CAAC;AAClC,oBAAA,IAAI,EAAE;AACF,wBAAA,WAAW,EAAE,QAAQ;AACxB,qBAAA;AACJ,iBAAA,CAAA;;0BAKQ,MAAM;2BAAC,cAAc,CAAA;;0BAErB,IAAI;;0BAAI,MAAM;2BAAC,iBAAiB,CAAA;;0BAChC,MAAM;2BAAC,iBAAiB,CAAA;;;MEtBpB,kBAAkB,CAAA;;gHAAlB,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;iHAAlB,kBAAkB,EAAA,YAAA,EAAA,CAHZ,qBAAqB,CAD1B,EAAA,OAAA,EAAA,CAAA,YAAY,EAAE,kBAAkB,EAAE,mBAAmB,CAAA,EAAA,OAAA,EAAA,CAErD,qBAAqB,CAAA,EAAA,CAAA,CAAA;AAEtB,kBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,kBAAkB,YAJlB,CAAC,YAAY,EAAE,kBAAkB,EAAE,mBAAmB,CAAC,CAAA,EAAA,CAAA,CAAA;4FAIvD,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAL9B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACN,oBAAA,OAAO,EAAE,CAAC,YAAY,EAAE,kBAAkB,EAAE,mBAAmB,CAAC;oBAChE,YAAY,EAAE,CAAC,qBAAqB,CAAC;oBACrC,OAAO,EAAE,CAAC,qBAAqB,CAAC;AACnC,iBAAA,CAAA;;;ACXD;;AAEG;;;;"}
@@ -3,7 +3,7 @@ import { DOCUMENT, CommonModule } from '@angular/common';
3
3
  import * as i0 from '@angular/core';
4
4
  import { Component, ChangeDetectionStrategy, ViewEncapsulation, Inject, NgModule } from '@angular/core';
5
5
  import * as i3 from '@taiga-ui/cdk';
6
- import { TUI_DIALOGS, TUI_IS_MOBILE, TUI_VERSION, TuiDragModule, TuiDropdownHostModule, TuiDialogHostModule, TuiAlertHostModule } from '@taiga-ui/cdk';
6
+ import { TUI_DIALOGS, TUI_IS_MOBILE, TUI_IS_IOS, TUI_IS_ANDROID, TUI_VERSION, TuiDragModule, TuiDropdownHostModule, TuiDialogHostModule, TuiAlertHostModule } from '@taiga-ui/cdk';
7
7
  import { TUI_IS_MOBILE_RES_PROVIDER } from '@taiga-ui/core/providers';
8
8
  import { TUI_ANIMATIONS_DURATION, TUI_IS_MOBILE_RES, TUI_THEME } from '@taiga-ui/core/tokens';
9
9
  import * as i6 from 'rxjs';
@@ -18,19 +18,21 @@ import { TuiHintsHostModule } from '@taiga-ui/core/components/hints-host';
18
18
  import { EventPluginsModule } from '@tinkoff/ng-event-plugins';
19
19
 
20
20
  class TuiRootComponent {
21
- constructor(duration, dialogs, isMobile, isMobileRes$, { body }, theme) {
21
+ constructor(duration, dialogs, isMobile, isMobileRes$, isIOS, isAndroid, { body }, theme) {
22
22
  this.duration = duration;
23
23
  this.dialogs = dialogs;
24
24
  this.isMobile = isMobile;
25
25
  this.isMobileRes$ = isMobileRes$;
26
+ this.isIOS = isIOS;
27
+ this.isAndroid = isAndroid;
26
28
  this.scrollbars$ = this.dialogs.length && !this.isMobile
27
29
  ? combineLatest([...this.dialogs]).pipe(map(dialogs => !dialogs.some(({ length }) => length)))
28
30
  : of(!this.isMobile);
29
31
  body.setAttribute('data-tui-theme', theme.toLowerCase());
30
32
  }
31
33
  }
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 });
34
+ 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: TUI_IS_IOS }, { token: TUI_IS_ANDROID }, { token: DOCUMENT }, { token: TUI_THEME }], target: i0.ɵɵFactoryTarget.Component });
35
+ 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", "class._ios": "isIOS", "class._android": "isAndroid" } }, 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
36
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiRootComponent, decorators: [{
35
37
  type: Component,
36
38
  args: [{
@@ -45,6 +47,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
45
47
  host: {
46
48
  'data-tui-version': TUI_VERSION,
47
49
  '[style.--tui-duration.ms]': 'duration',
50
+ '[class._ios]': 'isIOS',
51
+ '[class._android]': 'isAndroid',
48
52
  '($.class._mobile)': 'isMobileRes$',
49
53
  },
50
54
  }]
@@ -60,6 +64,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
60
64
  }] }, { type: i6.Observable, decorators: [{
61
65
  type: Inject,
62
66
  args: [TUI_IS_MOBILE_RES]
67
+ }] }, { type: undefined, decorators: [{
68
+ type: Inject,
69
+ args: [TUI_IS_IOS]
70
+ }] }, { type: undefined, decorators: [{
71
+ type: Inject,
72
+ args: [TUI_IS_ANDROID]
63
73
  }] }, { type: Document, decorators: [{
64
74
  type: Inject,
65
75
  args: [DOCUMENT]
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-core-components-root.js","sources":["../../../projects/core/components/root/root.component.ts","../../../projects/core/components/root/root.template.html","../../../projects/core/components/root/root.module.ts","../../../projects/core/components/root/taiga-ui-core-components-root.ts"],"sourcesContent":["import {DOCUMENT} from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n Inject,\n ViewEncapsulation,\n} from '@angular/core';\nimport {TUI_DIALOGS, TUI_IS_MOBILE, TUI_VERSION} from '@taiga-ui/cdk';\nimport {TUI_IS_MOBILE_RES_PROVIDER} from '@taiga-ui/core/providers';\nimport {\n TUI_ANIMATIONS_DURATION,\n TUI_IS_MOBILE_RES,\n TUI_THEME,\n} from '@taiga-ui/core/tokens';\nimport {combineLatest, Observable, of} from 'rxjs';\nimport {map} from 'rxjs/operators';\n\n@Component({\n selector: 'tui-root',\n templateUrl: './root.template.html',\n styleUrls: ['./root.style.less'],\n // So that we do not force OnPush on custom dialogs\n // eslint-disable-next-line @angular-eslint/prefer-on-push-component-change-detection\n changeDetection: ChangeDetectionStrategy.Default,\n providers: [TUI_IS_MOBILE_RES_PROVIDER],\n encapsulation: ViewEncapsulation.None,\n host: {\n 'data-tui-version': TUI_VERSION,\n '[style.--tui-duration.ms]': 'duration',\n '($.class._mobile)': 'isMobileRes$',\n },\n})\nexport class TuiRootComponent {\n readonly scrollbars$: Observable<boolean> =\n this.dialogs.length && !this.isMobile\n ? combineLatest([...this.dialogs]).pipe(\n map(dialogs => !dialogs.some(({length}) => length)),\n )\n : of(!this.isMobile);\n\n constructor(\n @Inject(TUI_ANIMATIONS_DURATION) readonly duration: number,\n @Inject(TUI_DIALOGS)\n readonly dialogs: ReadonlyArray<Observable<readonly unknown[]>>,\n @Inject(TUI_IS_MOBILE) private readonly isMobile: boolean,\n @Inject(TUI_IS_MOBILE_RES) readonly isMobileRes$: Observable<boolean>,\n @Inject(DOCUMENT) {body}: Document,\n @Inject(TUI_THEME) theme: string,\n ) {\n body.setAttribute('data-tui-theme', theme.toLowerCase());\n }\n}\n","<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","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {\n TuiAlertHostModule,\n TuiDialogHostModule,\n TuiDragModule,\n TuiDropdownHostModule,\n} from '@taiga-ui/cdk';\nimport {TuiHintsHostModule} from '@taiga-ui/core/components/hints-host';\nimport {TuiScrollControlsModule} from '@taiga-ui/core/components/scroll-controls';\nimport {TuiSvgDefsHostModule} from '@taiga-ui/core/internal/svg-defs-host';\nimport {EventPluginsModule} from '@tinkoff/ng-event-plugins';\n\nimport {TuiRootComponent} from './root.component';\n\n@NgModule({\n imports: [\n CommonModule,\n EventPluginsModule,\n TuiDragModule,\n TuiDropdownHostModule,\n TuiSvgDefsHostModule,\n TuiHintsHostModule,\n TuiDialogHostModule,\n TuiAlertHostModule,\n TuiScrollControlsModule,\n ],\n declarations: [TuiRootComponent],\n exports: [TuiRootComponent],\n})\nexport class TuiRootModule {}\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-root.js","sources":["../../../projects/core/components/root/root.component.ts","../../../projects/core/components/root/root.template.html","../../../projects/core/components/root/root.module.ts","../../../projects/core/components/root/taiga-ui-core-components-root.ts"],"sourcesContent":["import {DOCUMENT} from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n Inject,\n ViewEncapsulation,\n} from '@angular/core';\nimport {\n TUI_DIALOGS,\n TUI_IS_ANDROID,\n TUI_IS_IOS,\n TUI_IS_MOBILE,\n TUI_VERSION,\n} from '@taiga-ui/cdk';\nimport {TUI_IS_MOBILE_RES_PROVIDER} from '@taiga-ui/core/providers';\nimport {\n TUI_ANIMATIONS_DURATION,\n TUI_IS_MOBILE_RES,\n TUI_THEME,\n} from '@taiga-ui/core/tokens';\nimport {combineLatest, Observable, of} from 'rxjs';\nimport {map} from 'rxjs/operators';\n\n@Component({\n selector: 'tui-root',\n templateUrl: './root.template.html',\n styleUrls: ['./root.style.less'],\n // So that we do not force OnPush on custom dialogs\n // eslint-disable-next-line @angular-eslint/prefer-on-push-component-change-detection\n changeDetection: ChangeDetectionStrategy.Default,\n providers: [TUI_IS_MOBILE_RES_PROVIDER],\n encapsulation: ViewEncapsulation.None,\n host: {\n 'data-tui-version': TUI_VERSION,\n '[style.--tui-duration.ms]': 'duration',\n '[class._ios]': 'isIOS',\n '[class._android]': 'isAndroid',\n '($.class._mobile)': 'isMobileRes$',\n },\n})\nexport class TuiRootComponent {\n readonly scrollbars$: Observable<boolean> =\n this.dialogs.length && !this.isMobile\n ? combineLatest([...this.dialogs]).pipe(\n map(dialogs => !dialogs.some(({length}) => length)),\n )\n : of(!this.isMobile);\n\n constructor(\n @Inject(TUI_ANIMATIONS_DURATION) readonly duration: number,\n @Inject(TUI_DIALOGS)\n readonly dialogs: ReadonlyArray<Observable<readonly unknown[]>>,\n @Inject(TUI_IS_MOBILE) private readonly isMobile: boolean,\n @Inject(TUI_IS_MOBILE_RES) readonly isMobileRes$: Observable<boolean>,\n @Inject(TUI_IS_IOS) readonly isIOS: boolean,\n @Inject(TUI_IS_ANDROID) readonly isAndroid: boolean,\n @Inject(DOCUMENT) {body}: Document,\n @Inject(TUI_THEME) theme: string,\n ) {\n body.setAttribute('data-tui-theme', theme.toLowerCase());\n }\n}\n","<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","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {\n TuiAlertHostModule,\n TuiDialogHostModule,\n TuiDragModule,\n TuiDropdownHostModule,\n} from '@taiga-ui/cdk';\nimport {TuiHintsHostModule} from '@taiga-ui/core/components/hints-host';\nimport {TuiScrollControlsModule} from '@taiga-ui/core/components/scroll-controls';\nimport {TuiSvgDefsHostModule} from '@taiga-ui/core/internal/svg-defs-host';\nimport {EventPluginsModule} from '@tinkoff/ng-event-plugins';\n\nimport {TuiRootComponent} from './root.component';\n\n@NgModule({\n imports: [\n CommonModule,\n EventPluginsModule,\n TuiDragModule,\n TuiDropdownHostModule,\n TuiSvgDefsHostModule,\n TuiHintsHostModule,\n TuiDialogHostModule,\n TuiAlertHostModule,\n TuiScrollControlsModule,\n ],\n declarations: [TuiRootComponent],\n exports: [TuiRootComponent],\n})\nexport class TuiRootModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -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: [{