@taiga-ui/core 4.5.0-canary.50decb3 → 4.5.0-canary.538706d

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.
@@ -1,7 +1,7 @@
1
1
  import { AsyncPipe, NgIf } from '@angular/common';
2
2
  import { ChangeDetectionStrategy, Component, inject } from '@angular/core';
3
3
  import { WA_ANIMATION_FRAME } from '@ng-web-apis/common';
4
- import { tuiZoneOptimized } from '@taiga-ui/cdk/observables';
4
+ import { tuiZonefreeScheduler, tuiZoneOptimized } from '@taiga-ui/cdk/observables';
5
5
  import { tuiFadeIn } from '@taiga-ui/core/animations';
6
6
  import { TUI_ANIMATIONS_SPEED, TUI_SCROLL_REF } from '@taiga-ui/core/tokens';
7
7
  import { tuiToAnimationOptions } from '@taiga-ui/core/utils';
@@ -12,7 +12,7 @@ class TuiScrollControls {
12
12
  constructor() {
13
13
  this.scrollRef = inject(TUI_SCROLL_REF).nativeElement;
14
14
  this.options = tuiToAnimationOptions(inject(TUI_ANIMATIONS_SPEED));
15
- this.refresh$ = inject(WA_ANIMATION_FRAME).pipe(throttleTime(300), map(() => this.scrollbars), startWith([false, false]), distinctUntilChanged((a, b) => a[0] === b[0] && a[1] === b[1]), tuiZoneOptimized());
15
+ this.refresh$ = inject(WA_ANIMATION_FRAME).pipe(throttleTime(300, tuiZonefreeScheduler()), map(() => this.scrollbars), startWith([false, false]), distinctUntilChanged((a, b) => a[0] === b[0] && a[1] === b[1]), tuiZoneOptimized());
16
16
  }
17
17
  get scrollbars() {
18
18
  const { clientHeight, scrollHeight, clientWidth, scrollWidth } = this.scrollRef;
@@ -29,4 +29,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
29
29
  type: Component,
30
30
  args: [{ standalone: true, selector: 'tui-scroll-controls', imports: [NgIf, AsyncPipe, TuiScrollbarDirective], changeDetection: ChangeDetectionStrategy.OnPush, animations: [tuiFadeIn], template: "<ng-container *ngIf=\"refresh$ | async as bars\">\n <div\n *ngIf=\"bars[0]\"\n class=\"t-bar t-bar_vertical\"\n [@tuiFadeIn]=\"options\"\n [class.t-bar_has-horizontal]=\"bars[1]\"\n (mousedown.capture.prevent)=\"(0)\"\n >\n <div\n tuiScrollbar=\"vertical\"\n class=\"t-thumb\"\n ></div>\n </div>\n <div\n *ngIf=\"bars[1]\"\n class=\"t-bar t-bar_horizontal\"\n [@tuiFadeIn]=\"options\"\n [class.t-bar_has-vertical]=\"bars[0]\"\n (mousedown.capture.prevent)=\"(0)\"\n >\n <div\n tuiScrollbar=\"horizontal\"\n class=\"t-thumb\"\n ></div>\n </div>\n</ng-container>\n", styles: [":host{position:sticky;top:0;left:0;z-index:1;min-inline-size:calc(100% - 1px);min-block-size:calc(100% - 1px);max-inline-size:calc(100% - 1px);max-block-size:calc(100% - 1px);float:inline-start;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;inline-size:.875rem}.t-bar_horizontal{left:0;block-size:.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;-webkit-user-select:none;user-select:none;background:currentColor;background-clip:content-box;box-sizing:border-box;transition-property:width,height,opacity;opacity:.2}.t-thumb:hover{opacity:.24}.t-thumb:active{opacity:.48}.t-bar_vertical .t-thumb{right:0;inline-size:.75rem;min-block-size:1.25rem}.t-bar_vertical:hover .t-thumb,.t-bar_vertical .t-thumb:active{inline-size:.875rem}.t-bar_horizontal .t-thumb{bottom:0;block-size:.75rem;min-inline-size:1.25rem}.t-bar_horizontal:hover .t-thumb,.t-bar_horizontal .t-thumb:active{block-size:.875rem}\n"] }]
31
31
  }] });
32
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Nyb2xsLWNvbnRyb2xzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvY29tcG9uZW50cy9zY3JvbGxiYXIvc2Nyb2xsLWNvbnRyb2xzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvY29tcG9uZW50cy9zY3JvbGxiYXIvc2Nyb2xsLWNvbnRyb2xzLnRlbXBsYXRlLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxJQUFJLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUNoRCxPQUFPLEVBQUMsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN6RSxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUN2RCxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSwyQkFBMkIsQ0FBQztBQUMzRCxPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sMkJBQTJCLENBQUM7QUFDcEQsT0FBTyxFQUFDLG9CQUFvQixFQUFFLGNBQWMsRUFBQyxNQUFNLHVCQUF1QixDQUFDO0FBQzNFLE9BQU8sRUFBQyxxQkFBcUIsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBQzNELE9BQU8sRUFBQyxvQkFBb0IsRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUV4RSxPQUFPLEVBQUMscUJBQXFCLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQzs7QUFFNUQsTUFTYSxpQkFBaUI7SUFUOUI7UUFVcUIsY0FBUyxHQUFHLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQyxhQUFhLENBQUM7UUFFL0MsWUFBTyxHQUFHLHFCQUFxQixDQUFDLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLENBQUM7UUFDOUQsYUFBUSxHQUFHLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLElBQUksQ0FDekQsWUFBWSxDQUFDLEdBQUcsQ0FBQyxFQUNqQixHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxFQUMxQixTQUFTLENBQUMsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsRUFDekIsb0JBQW9CLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFDOUQsZ0JBQWdCLEVBQUUsQ0FDckIsQ0FBQztLQVVMO0lBUkcsSUFBWSxVQUFVO1FBQ2xCLE1BQU0sRUFBQyxZQUFZLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFBRSxXQUFXLEVBQUMsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDO1FBRTlFLE9BQU87WUFDSCxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsWUFBWSxHQUFHLFlBQVksQ0FBQyxHQUFHLEdBQUcsQ0FBQyxHQUFHLEdBQUc7WUFDcEQsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLFdBQVcsR0FBRyxXQUFXLENBQUMsR0FBRyxHQUFHLENBQUMsR0FBRyxHQUFHO1NBQ3JELENBQUM7SUFDTixDQUFDOytHQW5CUSxpQkFBaUI7bUdBQWpCLGlCQUFpQiwrRUNwQjlCLG90QkEwQkEsMHZDRFpjLElBQUksd0ZBQUUsU0FBUyw4Q0FBRSxxQkFBcUIsdUVBSXBDLENBQUMsU0FBUyxDQUFDOztTQUVkLGlCQUFpQjs0RkFBakIsaUJBQWlCO2tCQVQ3QixTQUFTO2lDQUNNLElBQUksWUFDTixxQkFBcUIsV0FDdEIsQ0FBQyxJQUFJLEVBQUUsU0FBUyxFQUFFLHFCQUFxQixDQUFDLG1CQUdoQyx1QkFBdUIsQ0FBQyxNQUFNLGNBQ25DLENBQUMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtBc3luY1BpcGUsIE5nSWZ9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge0NoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIGluamVjdH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1dBX0FOSU1BVElPTl9GUkFNRX0gZnJvbSAnQG5nLXdlYi1hcGlzL2NvbW1vbic7XG5pbXBvcnQge3R1aVpvbmVPcHRpbWl6ZWR9IGZyb20gJ0B0YWlnYS11aS9jZGsvb2JzZXJ2YWJsZXMnO1xuaW1wb3J0IHt0dWlGYWRlSW59IGZyb20gJ0B0YWlnYS11aS9jb3JlL2FuaW1hdGlvbnMnO1xuaW1wb3J0IHtUVUlfQU5JTUFUSU9OU19TUEVFRCwgVFVJX1NDUk9MTF9SRUZ9IGZyb20gJ0B0YWlnYS11aS9jb3JlL3Rva2Vucyc7XG5pbXBvcnQge3R1aVRvQW5pbWF0aW9uT3B0aW9uc30gZnJvbSAnQHRhaWdhLXVpL2NvcmUvdXRpbHMnO1xuaW1wb3J0IHtkaXN0aW5jdFVudGlsQ2hhbmdlZCwgbWFwLCBzdGFydFdpdGgsIHRocm90dGxlVGltZX0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7VHVpU2Nyb2xsYmFyRGlyZWN0aXZlfSBmcm9tICcuL3Njcm9sbGJhci5kaXJlY3RpdmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHNlbGVjdG9yOiAndHVpLXNjcm9sbC1jb250cm9scycsXG4gICAgaW1wb3J0czogW05nSWYsIEFzeW5jUGlwZSwgVHVpU2Nyb2xsYmFyRGlyZWN0aXZlXSxcbiAgICB0ZW1wbGF0ZVVybDogJy4vc2Nyb2xsLWNvbnRyb2xzLnRlbXBsYXRlLmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL3Njcm9sbC1jb250cm9scy5zdHlsZS5sZXNzJ10sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgYW5pbWF0aW9uczogW3R1aUZhZGVJbl0sXG59KVxuZXhwb3J0IGNsYXNzIFR1aVNjcm9sbENvbnRyb2xzIHtcbiAgICBwcml2YXRlIHJlYWRvbmx5IHNjcm9sbFJlZiA9IGluamVjdChUVUlfU0NST0xMX1JFRikubmF0aXZlRWxlbWVudDtcblxuICAgIHByb3RlY3RlZCByZWFkb25seSBvcHRpb25zID0gdHVpVG9BbmltYXRpb25PcHRpb25zKGluamVjdChUVUlfQU5JTUFUSU9OU19TUEVFRCkpO1xuICAgIHByb3RlY3RlZCByZWFkb25seSByZWZyZXNoJCA9IGluamVjdChXQV9BTklNQVRJT05fRlJBTUUpLnBpcGUoXG4gICAgICAgIHRocm90dGxlVGltZSgzMDApLFxuICAgICAgICBtYXAoKCkgPT4gdGhpcy5zY3JvbGxiYXJzKSxcbiAgICAgICAgc3RhcnRXaXRoKFtmYWxzZSwgZmFsc2VdKSxcbiAgICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKGEsIGIpID0+IGFbMF0gPT09IGJbMF0gJiYgYVsxXSA9PT0gYlsxXSksXG4gICAgICAgIHR1aVpvbmVPcHRpbWl6ZWQoKSxcbiAgICApO1xuXG4gICAgcHJpdmF0ZSBnZXQgc2Nyb2xsYmFycygpOiBbYm9vbGVhbiwgYm9vbGVhbl0ge1xuICAgICAgICBjb25zdCB7Y2xpZW50SGVpZ2h0LCBzY3JvbGxIZWlnaHQsIGNsaWVudFdpZHRoLCBzY3JvbGxXaWR0aH0gPSB0aGlzLnNjcm9sbFJlZjtcblxuICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgTWF0aC5jZWlsKChjbGllbnRIZWlnaHQgLyBzY3JvbGxIZWlnaHQpICogMTAwKSA8IDEwMCxcbiAgICAgICAgICAgIE1hdGguY2VpbCgoY2xpZW50V2lkdGggLyBzY3JvbGxXaWR0aCkgKiAxMDApIDwgMTAwLFxuICAgICAgICBdO1xuICAgIH1cbn1cbiIsIjxuZy1jb250YWluZXIgKm5nSWY9XCJyZWZyZXNoJCB8IGFzeW5jIGFzIGJhcnNcIj5cbiAgICA8ZGl2XG4gICAgICAgICpuZ0lmPVwiYmFyc1swXVwiXG4gICAgICAgIGNsYXNzPVwidC1iYXIgdC1iYXJfdmVydGljYWxcIlxuICAgICAgICBbQHR1aUZhZGVJbl09XCJvcHRpb25zXCJcbiAgICAgICAgW2NsYXNzLnQtYmFyX2hhcy1ob3Jpem9udGFsXT1cImJhcnNbMV1cIlxuICAgICAgICAobW91c2Vkb3duLmNhcHR1cmUucHJldmVudCk9XCIoMClcIlxuICAgID5cbiAgICAgICAgPGRpdlxuICAgICAgICAgICAgdHVpU2Nyb2xsYmFyPVwidmVydGljYWxcIlxuICAgICAgICAgICAgY2xhc3M9XCJ0LXRodW1iXCJcbiAgICAgICAgPjwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxkaXZcbiAgICAgICAgKm5nSWY9XCJiYXJzWzFdXCJcbiAgICAgICAgY2xhc3M9XCJ0LWJhciB0LWJhcl9ob3Jpem9udGFsXCJcbiAgICAgICAgW0B0dWlGYWRlSW5dPVwib3B0aW9uc1wiXG4gICAgICAgIFtjbGFzcy50LWJhcl9oYXMtdmVydGljYWxdPVwiYmFyc1swXVwiXG4gICAgICAgIChtb3VzZWRvd24uY2FwdHVyZS5wcmV2ZW50KT1cIigwKVwiXG4gICAgPlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgICB0dWlTY3JvbGxiYXI9XCJob3Jpem9udGFsXCJcbiAgICAgICAgICAgIGNsYXNzPVwidC10aHVtYlwiXG4gICAgICAgID48L2Rpdj5cbiAgICA8L2Rpdj5cbjwvbmctY29udGFpbmVyPlxuIl19
32
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Nyb2xsLWNvbnRyb2xzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvY29tcG9uZW50cy9zY3JvbGxiYXIvc2Nyb2xsLWNvbnRyb2xzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvY29tcG9uZW50cy9zY3JvbGxiYXIvc2Nyb2xsLWNvbnRyb2xzLnRlbXBsYXRlLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxJQUFJLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUNoRCxPQUFPLEVBQUMsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN6RSxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUN2RCxPQUFPLEVBQUMsb0JBQW9CLEVBQUUsZ0JBQWdCLEVBQUMsTUFBTSwyQkFBMkIsQ0FBQztBQUNqRixPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sMkJBQTJCLENBQUM7QUFDcEQsT0FBTyxFQUFDLG9CQUFvQixFQUFFLGNBQWMsRUFBQyxNQUFNLHVCQUF1QixDQUFDO0FBQzNFLE9BQU8sRUFBQyxxQkFBcUIsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBQzNELE9BQU8sRUFBQyxvQkFBb0IsRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUV4RSxPQUFPLEVBQUMscUJBQXFCLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQzs7QUFFNUQsTUFTYSxpQkFBaUI7SUFUOUI7UUFVcUIsY0FBUyxHQUFHLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQyxhQUFhLENBQUM7UUFFL0MsWUFBTyxHQUFHLHFCQUFxQixDQUFDLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLENBQUM7UUFDOUQsYUFBUSxHQUFHLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLElBQUksQ0FDekQsWUFBWSxDQUFDLEdBQUcsRUFBRSxvQkFBb0IsRUFBRSxDQUFDLEVBQ3pDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEVBQzFCLFNBQVMsQ0FBQyxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxFQUN6QixvQkFBb0IsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUM5RCxnQkFBZ0IsRUFBRSxDQUNyQixDQUFDO0tBVUw7SUFSRyxJQUFZLFVBQVU7UUFDbEIsTUFBTSxFQUFDLFlBQVksRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBQyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUM7UUFFOUUsT0FBTztZQUNILElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxZQUFZLEdBQUcsWUFBWSxDQUFDLEdBQUcsR0FBRyxDQUFDLEdBQUcsR0FBRztZQUNwRCxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsV0FBVyxHQUFHLFdBQVcsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxHQUFHLEdBQUc7U0FDckQsQ0FBQztJQUNOLENBQUM7K0dBbkJRLGlCQUFpQjttR0FBakIsaUJBQWlCLCtFQ3BCOUIsb3RCQTBCQSwwdkNEWmMsSUFBSSx3RkFBRSxTQUFTLDhDQUFFLHFCQUFxQix1RUFJcEMsQ0FBQyxTQUFTLENBQUM7O1NBRWQsaUJBQWlCOzRGQUFqQixpQkFBaUI7a0JBVDdCLFNBQVM7aUNBQ00sSUFBSSxZQUNOLHFCQUFxQixXQUN0QixDQUFDLElBQUksRUFBRSxTQUFTLEVBQUUscUJBQXFCLENBQUMsbUJBR2hDLHVCQUF1QixDQUFDLE1BQU0sY0FDbkMsQ0FBQyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0FzeW5jUGlwZSwgTmdJZn0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7Q2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgaW5qZWN0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7V0FfQU5JTUFUSU9OX0ZSQU1FfSBmcm9tICdAbmctd2ViLWFwaXMvY29tbW9uJztcbmltcG9ydCB7dHVpWm9uZWZyZWVTY2hlZHVsZXIsIHR1aVpvbmVPcHRpbWl6ZWR9IGZyb20gJ0B0YWlnYS11aS9jZGsvb2JzZXJ2YWJsZXMnO1xuaW1wb3J0IHt0dWlGYWRlSW59IGZyb20gJ0B0YWlnYS11aS9jb3JlL2FuaW1hdGlvbnMnO1xuaW1wb3J0IHtUVUlfQU5JTUFUSU9OU19TUEVFRCwgVFVJX1NDUk9MTF9SRUZ9IGZyb20gJ0B0YWlnYS11aS9jb3JlL3Rva2Vucyc7XG5pbXBvcnQge3R1aVRvQW5pbWF0aW9uT3B0aW9uc30gZnJvbSAnQHRhaWdhLXVpL2NvcmUvdXRpbHMnO1xuaW1wb3J0IHtkaXN0aW5jdFVudGlsQ2hhbmdlZCwgbWFwLCBzdGFydFdpdGgsIHRocm90dGxlVGltZX0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7VHVpU2Nyb2xsYmFyRGlyZWN0aXZlfSBmcm9tICcuL3Njcm9sbGJhci5kaXJlY3RpdmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHNlbGVjdG9yOiAndHVpLXNjcm9sbC1jb250cm9scycsXG4gICAgaW1wb3J0czogW05nSWYsIEFzeW5jUGlwZSwgVHVpU2Nyb2xsYmFyRGlyZWN0aXZlXSxcbiAgICB0ZW1wbGF0ZVVybDogJy4vc2Nyb2xsLWNvbnRyb2xzLnRlbXBsYXRlLmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL3Njcm9sbC1jb250cm9scy5zdHlsZS5sZXNzJ10sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgYW5pbWF0aW9uczogW3R1aUZhZGVJbl0sXG59KVxuZXhwb3J0IGNsYXNzIFR1aVNjcm9sbENvbnRyb2xzIHtcbiAgICBwcml2YXRlIHJlYWRvbmx5IHNjcm9sbFJlZiA9IGluamVjdChUVUlfU0NST0xMX1JFRikubmF0aXZlRWxlbWVudDtcblxuICAgIHByb3RlY3RlZCByZWFkb25seSBvcHRpb25zID0gdHVpVG9BbmltYXRpb25PcHRpb25zKGluamVjdChUVUlfQU5JTUFUSU9OU19TUEVFRCkpO1xuICAgIHByb3RlY3RlZCByZWFkb25seSByZWZyZXNoJCA9IGluamVjdChXQV9BTklNQVRJT05fRlJBTUUpLnBpcGUoXG4gICAgICAgIHRocm90dGxlVGltZSgzMDAsIHR1aVpvbmVmcmVlU2NoZWR1bGVyKCkpLFxuICAgICAgICBtYXAoKCkgPT4gdGhpcy5zY3JvbGxiYXJzKSxcbiAgICAgICAgc3RhcnRXaXRoKFtmYWxzZSwgZmFsc2VdKSxcbiAgICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKGEsIGIpID0+IGFbMF0gPT09IGJbMF0gJiYgYVsxXSA9PT0gYlsxXSksXG4gICAgICAgIHR1aVpvbmVPcHRpbWl6ZWQoKSxcbiAgICApO1xuXG4gICAgcHJpdmF0ZSBnZXQgc2Nyb2xsYmFycygpOiBbYm9vbGVhbiwgYm9vbGVhbl0ge1xuICAgICAgICBjb25zdCB7Y2xpZW50SGVpZ2h0LCBzY3JvbGxIZWlnaHQsIGNsaWVudFdpZHRoLCBzY3JvbGxXaWR0aH0gPSB0aGlzLnNjcm9sbFJlZjtcblxuICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgTWF0aC5jZWlsKChjbGllbnRIZWlnaHQgLyBzY3JvbGxIZWlnaHQpICogMTAwKSA8IDEwMCxcbiAgICAgICAgICAgIE1hdGguY2VpbCgoY2xpZW50V2lkdGggLyBzY3JvbGxXaWR0aCkgKiAxMDApIDwgMTAwLFxuICAgICAgICBdO1xuICAgIH1cbn1cbiIsIjxuZy1jb250YWluZXIgKm5nSWY9XCJyZWZyZXNoJCB8IGFzeW5jIGFzIGJhcnNcIj5cbiAgICA8ZGl2XG4gICAgICAgICpuZ0lmPVwiYmFyc1swXVwiXG4gICAgICAgIGNsYXNzPVwidC1iYXIgdC1iYXJfdmVydGljYWxcIlxuICAgICAgICBbQHR1aUZhZGVJbl09XCJvcHRpb25zXCJcbiAgICAgICAgW2NsYXNzLnQtYmFyX2hhcy1ob3Jpem9udGFsXT1cImJhcnNbMV1cIlxuICAgICAgICAobW91c2Vkb3duLmNhcHR1cmUucHJldmVudCk9XCIoMClcIlxuICAgID5cbiAgICAgICAgPGRpdlxuICAgICAgICAgICAgdHVpU2Nyb2xsYmFyPVwidmVydGljYWxcIlxuICAgICAgICAgICAgY2xhc3M9XCJ0LXRodW1iXCJcbiAgICAgICAgPjwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxkaXZcbiAgICAgICAgKm5nSWY9XCJiYXJzWzFdXCJcbiAgICAgICAgY2xhc3M9XCJ0LWJhciB0LWJhcl9ob3Jpem9udGFsXCJcbiAgICAgICAgW0B0dWlGYWRlSW5dPVwib3B0aW9uc1wiXG4gICAgICAgIFtjbGFzcy50LWJhcl9oYXMtdmVydGljYWxdPVwiYmFyc1swXVwiXG4gICAgICAgIChtb3VzZWRvd24uY2FwdHVyZS5wcmV2ZW50KT1cIigwKVwiXG4gICAgPlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgICB0dWlTY3JvbGxiYXI9XCJob3Jpem9udGFsXCJcbiAgICAgICAgICAgIGNsYXNzPVwidC10aHVtYlwiXG4gICAgICAgID48L2Rpdj5cbiAgICA8L2Rpdj5cbjwvbmctY29udGFpbmVyPlxuIl19
@@ -1,7 +1,7 @@
1
1
  import { Directive, inject, Input } from '@angular/core';
2
2
  import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
3
3
  import { WA_ANIMATION_FRAME } from '@ng-web-apis/common';
4
- import { tuiScrollFrom, tuiZonefree } from '@taiga-ui/cdk/observables';
4
+ import { tuiScrollFrom, tuiZonefree, tuiZonefreeScheduler, } from '@taiga-ui/cdk/observables';
5
5
  import { tuiInjectElement } from '@taiga-ui/cdk/utils/dom';
6
6
  import { TUI_SCROLL_REF } from '@taiga-ui/core/tokens';
7
7
  import { merge, throttleTime } from 'rxjs';
@@ -19,7 +19,7 @@ class TuiScrollbarDirective {
19
19
  this.el.scrollTo({ top, left });
20
20
  this.el.style.scrollBehavior = '';
21
21
  });
22
- this.styleSub = merge(inject(WA_ANIMATION_FRAME).pipe(throttleTime(100)), tuiScrollFrom(this.el))
22
+ this.styleSub = merge(inject(WA_ANIMATION_FRAME).pipe(throttleTime(100, tuiZonefreeScheduler())), tuiScrollFrom(this.el))
23
23
  .pipe(tuiZonefree(), takeUntilDestroyed())
24
24
  .subscribe(() => {
25
25
  const dimension = {
@@ -84,4 +84,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
84
84
  }], propDecorators: { tuiScrollbar: [{
85
85
  type: Input
86
86
  }] } });
87
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Nyb2xsYmFyLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvY29tcG9uZW50cy9zY3JvbGxiYXIvc2Nyb2xsYmFyLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDdkQsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sNEJBQTRCLENBQUM7QUFDOUQsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFDdkQsT0FBTyxFQUFDLGFBQWEsRUFBRSxXQUFXLEVBQUMsTUFBTSwyQkFBMkIsQ0FBQztBQUNyRSxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RCxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sdUJBQXVCLENBQUM7QUFDckQsT0FBTyxFQUFDLEtBQUssRUFBRSxZQUFZLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFFekMsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0scUJBQXFCLENBQUM7O0FBRXhELE1BQU0sU0FBUyxHQUFHLEVBQUUsQ0FBQztBQVdyQixNQUthLHFCQUFxQjtJQUxsQztRQU1xQixPQUFFLEdBQUcsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDLGFBQWEsQ0FBQztRQUMxQyxVQUFLLEdBQUcsZ0JBQWdCLEVBQUUsQ0FBQyxLQUFLLENBQUM7UUFFL0IsY0FBUyxHQUFHLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQzthQUNyRCxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQzthQUMxQixTQUFTLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFFO1lBQ3ZCLElBQUksQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLGNBQWMsR0FBRyxNQUFNLENBQUM7WUFDdEMsSUFB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LGVBQWUsQ0FBQyxTQUFTLENBQUMsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBRWhGLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxZQUFZLENBQUMsQ0FBQztJQUM1RCxDQUFDO0lBRU8sT0FBTyxDQUFDLFNBQTRCO1FBQ3hDLE9BQU8sSUFBSSxDQUFDLFlBQVksS0FBSyxVQUFVO1lBQ25DLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsU0FBUyxDQUFDLFlBQVksR0FBRyxTQUFTLENBQUMsWUFBWSxDQUFDLEdBQUcsR0FBRyxDQUFDLEdBQUcsR0FBRztZQUMxRSxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLFNBQVMsQ0FBQyxXQUFXLEdBQUcsU0FBUyxDQUFDLFdBQVcsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxHQUFHLEdBQUcsQ0FBQztJQUNqRixDQUFDOytHQTNFUSxxQkFBcUI7bUdBQXJCLHFCQUFxQix1R0FGbkIsQ0FBQyxtQkFBbUIsQ0FBQzs7U0FFdkIscUJBQXFCOzRGQUFyQixxQkFBcUI7a0JBTGpDLFNBQVM7bUJBQUM7b0JBQ1AsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLFFBQVEsRUFBRSxnQkFBZ0I7b0JBQzFCLFNBQVMsRUFBRSxDQUFDLG1CQUFtQixDQUFDO2lCQUNuQzs4QkF5Q1UsWUFBWTtzQkFEbEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7RGlyZWN0aXZlLCBpbmplY3QsIElucHV0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7dGFrZVVudGlsRGVzdHJveWVkfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQge1dBX0FOSU1BVElPTl9GUkFNRX0gZnJvbSAnQG5nLXdlYi1hcGlzL2NvbW1vbic7XG5pbXBvcnQge3R1aVNjcm9sbEZyb20sIHR1aVpvbmVmcmVlfSBmcm9tICdAdGFpZ2EtdWkvY2RrL29ic2VydmFibGVzJztcbmltcG9ydCB7dHVpSW5qZWN0RWxlbWVudH0gZnJvbSAnQHRhaWdhLXVpL2Nkay91dGlscy9kb20nO1xuaW1wb3J0IHtUVUlfU0NST0xMX1JFRn0gZnJvbSAnQHRhaWdhLXVpL2NvcmUvdG9rZW5zJztcbmltcG9ydCB7bWVyZ2UsIHRocm90dGxlVGltZX0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7VHVpU2Nyb2xsYmFyU2VydmljZX0gZnJvbSAnLi9zY3JvbGxiYXIuc2VydmljZSc7XG5cbmNvbnN0IE1JTl9XSURUSCA9IDI0O1xuXG5pbnRlcmZhY2UgQ29tcHV0ZWREaW1lbnNpb24ge1xuICAgIHNjcm9sbFRvcDogbnVtYmVyO1xuICAgIHNjcm9sbEhlaWdodDogbnVtYmVyO1xuICAgIGNsaWVudEhlaWdodDogbnVtYmVyO1xuICAgIHNjcm9sbExlZnQ6IG51bWJlcjtcbiAgICBzY3JvbGxXaWR0aDogbnVtYmVyO1xuICAgIGNsaWVudFdpZHRoOiBudW1iZXI7XG59XG5cbkBEaXJlY3RpdmUoe1xuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgc2VsZWN0b3I6ICdbdHVpU2Nyb2xsYmFyXScsXG4gICAgcHJvdmlkZXJzOiBbVHVpU2Nyb2xsYmFyU2VydmljZV0sXG59KVxuZXhwb3J0IGNsYXNzIFR1aVNjcm9sbGJhckRpcmVjdGl2ZSB7XG4gICAgcHJpdmF0ZSByZWFkb25seSBlbCA9IGluamVjdChUVUlfU0NST0xMX1JFRikubmF0aXZlRWxlbWVudDtcbiAgICBwcml2YXRlIHJlYWRvbmx5IHN0eWxlID0gdHVpSW5qZWN0RWxlbWVudCgpLnN0eWxlO1xuXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IHNjcm9sbFN1YiA9IGluamVjdChUdWlTY3JvbGxiYXJTZXJ2aWNlKVxuICAgICAgICAucGlwZSh0YWtlVW50aWxEZXN0cm95ZWQoKSlcbiAgICAgICAgLnN1YnNjcmliZSgoW3RvcCwgbGVmdF0pID0+IHtcbiAgICAgICAgICAgIHRoaXMuZWwuc3R5bGUuc2Nyb2xsQmVoYXZpb3IgPSAnYXV0byc7XG4gICAgICAgICAgICB0aGlzLmVsLnNjcm9sbFRvKHt0b3AsIGxlZnR9KTtcbiAgICAgICAgICAgIHRoaXMuZWwuc3R5bGUuc2Nyb2xsQmVoYXZpb3IgPSAnJztcbiAgICAgICAgfSk7XG5cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgc3R5bGVTdWIgPSBtZXJnZShcbiAgICAgICAgaW5qZWN0KFdBX0FOSU1BVElPTl9GUkFNRSkucGlwZSh0aHJvdHRsZVRpbWUoMTAwKSksXG4gICAgICAgIHR1aVNjcm9sbEZyb20odGhpcy5lbCksXG4gICAgKVxuICAgICAgICAucGlwZSh0dWlab25lZnJlZSgpLCB0YWtlVW50aWxEZXN0cm95ZWQoKSlcbiAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBkaW1lbnNpb246IENvbXB1dGVkRGltZW5zaW9uID0ge1xuICAgICAgICAgICAgICAgIHNjcm9sbFRvcDogdGhpcy5lbC5zY3JvbGxUb3AsXG4gICAgICAgICAgICAgICAgc2Nyb2xsSGVpZ2h0OiB0aGlzLmVsLnNjcm9sbEhlaWdodCxcbiAgICAgICAgICAgICAgICBjbGllbnRIZWlnaHQ6IHRoaXMuZWwuY2xpZW50SGVpZ2h0LFxuICAgICAgICAgICAgICAgIHNjcm9sbExlZnQ6IHRoaXMuZWwuc2Nyb2xsTGVmdCxcbiAgICAgICAgICAgICAgICBzY3JvbGxXaWR0aDogdGhpcy5lbC5zY3JvbGxXaWR0aCxcbiAgICAgICAgICAgICAgICBjbGllbnRXaWR0aDogdGhpcy5lbC5jbGllbnRXaWR0aCxcbiAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgIGNvbnN0IHRodW1iID0gYCR7dGhpcy5nZXRUaHVtYihkaW1lbnNpb24pICogMTAwfSVgO1xuICAgICAgICAgICAgY29uc3QgdmlldyA9IGAke3RoaXMuZ2V0VmlldyhkaW1lbnNpb24pICogMTAwfSVgO1xuXG4gICAgICAgICAgICBpZiAodGhpcy50dWlTY3JvbGxiYXIgPT09ICd2ZXJ0aWNhbCcpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnN0eWxlLnRvcCA9IHRodW1iO1xuICAgICAgICAgICAgICAgIHRoaXMuc3R5bGUuaGVpZ2h0ID0gdmlldztcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdHlsZS5sZWZ0ID0gdGh1bWI7XG4gICAgICAgICAgICAgICAgdGhpcy5zdHlsZS53aWR0aCA9IHZpZXc7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgdHVpU2Nyb2xsYmFyOiAnaG9yaXpvbnRhbCcgfCAndmVydGljYWwnID0gJ3ZlcnRpY2FsJztcblxuICAgIHByaXZhdGUgZ2V0U2Nyb2xsZWQoZGltZW5zaW9uOiBDb21wdXRlZERpbWVuc2lvbik6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLnR1aVNjcm9sbGJhciA9PT0gJ3ZlcnRpY2FsJ1xuICAgICAgICAgICAgPyBkaW1lbnNpb24uc2Nyb2xsVG9wIC8gKGRpbWVuc2lvbi5zY3JvbGxIZWlnaHQgLSBkaW1lbnNpb24uY2xpZW50SGVpZ2h0KVxuICAgICAgICAgICAgOiBkaW1lbnNpb24uc2Nyb2xsTGVmdCAvIChkaW1lbnNpb24uc2Nyb2xsV2lkdGggLSBkaW1lbnNpb24uY2xpZW50V2lkdGgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0Q29tcGVuc2F0aW9uKGRpbWVuc2lvbjogQ29tcHV0ZWREaW1lbnNpb24pOiBudW1iZXIge1xuICAgICAgICBpZiAoXG4gICAgICAgICAgICAoKGRpbWVuc2lvbi5jbGllbnRIZWlnaHQgKiBkaW1lbnNpb24uY2xpZW50SGVpZ2h0KSAvIGRpbWVuc2lvbi5zY3JvbGxIZWlnaHQgPlxuICAgICAgICAgICAgICAgIE1JTl9XSURUSCAmJlxuICAgICAgICAgICAgICAgIHRoaXMudHVpU2Nyb2xsYmFyID09PSAndmVydGljYWwnKSB8fFxuICAgICAgICAgICAgKChkaW1lbnNpb24uY2xpZW50V2lkdGggKiBkaW1lbnNpb24uY2xpZW50V2lkdGgpIC8gZGltZW5zaW9uLnNjcm9sbFdpZHRoID5cbiAgICAgICAgICAgICAgICBNSU5fV0lEVEggJiZcbiAgICAgICAgICAgICAgICB0aGlzLnR1aVNjcm9sbGJhciA9PT0gJ2hvcml6b250YWwnKVxuICAgICAgICApIHtcbiAgICAgICAgICAgIHJldHVybiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRoaXMudHVpU2Nyb2xsYmFyID09PSAndmVydGljYWwnXG4gICAgICAgICAgICA/IE1JTl9XSURUSCAvIGRpbWVuc2lvbi5jbGllbnRIZWlnaHRcbiAgICAgICAgICAgIDogTUlOX1dJRFRIIC8gZGltZW5zaW9uLmNsaWVudFdpZHRoO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0VGh1bWIoZGltZW5zaW9uOiBDb21wdXRlZERpbWVuc2lvbik6IG51bWJlciB7XG4gICAgICAgIGNvbnN0IGNvbXBlbnNhdGlvbiA9IHRoaXMuZ2V0Q29tcGVuc2F0aW9uKGRpbWVuc2lvbikgfHwgdGhpcy5nZXRWaWV3KGRpbWVuc2lvbik7XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0U2Nyb2xsZWQoZGltZW5zaW9uKSAqICgxIC0gY29tcGVuc2F0aW9uKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldFZpZXcoZGltZW5zaW9uOiBDb21wdXRlZERpbWVuc2lvbik6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLnR1aVNjcm9sbGJhciA9PT0gJ3ZlcnRpY2FsJ1xuICAgICAgICAgICAgPyBNYXRoLmNlaWwoKGRpbWVuc2lvbi5jbGllbnRIZWlnaHQgLyBkaW1lbnNpb24uc2Nyb2xsSGVpZ2h0KSAqIDEwMCkgLyAxMDBcbiAgICAgICAgICAgIDogTWF0aC5jZWlsKChkaW1lbnNpb24uY2xpZW50V2lkdGggLyBkaW1lbnNpb24uc2Nyb2xsV2lkdGgpICogMTAwKSAvIDEwMDtcbiAgICB9XG59XG4iXX0=
87
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Nyb2xsYmFyLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvY29tcG9uZW50cy9zY3JvbGxiYXIvc2Nyb2xsYmFyLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDdkQsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sNEJBQTRCLENBQUM7QUFDOUQsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFDdkQsT0FBTyxFQUNILGFBQWEsRUFDYixXQUFXLEVBQ1gsb0JBQW9CLEdBQ3ZCLE1BQU0sMkJBQTJCLENBQUM7QUFDbkMsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFDekQsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLHVCQUF1QixDQUFDO0FBQ3JELE9BQU8sRUFBQyxLQUFLLEVBQUUsWUFBWSxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBRXpDLE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLHFCQUFxQixDQUFDOztBQUV4RCxNQUFNLFNBQVMsR0FBRyxFQUFFLENBQUM7QUFXckIsTUFLYSxxQkFBcUI7SUFMbEM7UUFNcUIsT0FBRSxHQUFHLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQyxhQUFhLENBQUM7UUFDMUMsVUFBSyxHQUFHLGdCQUFnQixFQUFFLENBQUMsS0FBSyxDQUFDO1FBRS9CLGNBQVMsR0FBRyxNQUFNLENBQUMsbUJBQW1CLENBQUM7YUFDckQsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7YUFDMUIsU0FBUyxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRTtZQUN2QixJQUFJLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxjQUFjLEdBQUcsTUFBTSxD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UUFDekMsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxTQUFTLENBQUMsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBRWhGLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxZQUFZLENBQUMsQ0FBQztJQUM1RCxDQUFDO0lBRU8sT0FBTyxDQUFDLFNBQTRCO1FBQ3hDLE9BQU8sSUFBSSxDQUFDLFlBQVksS0FBSyxVQUFVO1lBQ25DLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsU0FBUyxDQUFDLFlBQVksR0FBRyxTQUFTLENBQUMsWUFBWSxDQUFDLEdBQUcsR0FBRyxDQUFDLEdBQUcsR0FBRztZQUMxRSxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLFNBQVMsQ0FBQyxXQUFXLEdBQUcsU0FBUyxDQUFDLFdBQVcsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxHQUFHLEdBQUcsQ0FBQztJQUNqRixDQUFDOytHQTNFUSxxQkFBcUI7bUdBQXJCLHFCQUFxQix1R0FGbkIsQ0FBQyxtQkFBbUIsQ0FBQzs7U0FFdkIscUJBQXFCOzRGQUFyQixxQkFBcUI7a0JBTGpDLFNBQVM7bUJBQUM7b0JBQ1AsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLFFBQVEsRUFBRSxnQkFBZ0I7b0JBQzFCLFNBQVMsRUFBRSxDQUFDLG1CQUFtQixDQUFDO2lCQUNuQzs4QkF5Q1UsWUFBWTtzQkFEbEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7RGlyZWN0aXZlLCBpbmplY3QsIElucHV0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7dGFrZVVudGlsRGVzdHJveWVkfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQge1dBX0FOSU1BVElPTl9GUkFNRX0gZnJvbSAnQG5nLXdlYi1hcGlzL2NvbW1vbic7XG5pbXBvcnQge1xuICAgIHR1aVNjcm9sbEZyb20sXG4gICAgdHVpWm9uZWZyZWUsXG4gICAgdHVpWm9uZWZyZWVTY2hlZHVsZXIsXG59IGZyb20gJ0B0YWlnYS11aS9jZGsvb2JzZXJ2YWJsZXMnO1xuaW1wb3J0IHt0dWlJbmplY3RFbGVtZW50fSBmcm9tICdAdGFpZ2EtdWkvY2RrL3V0aWxzL2RvbSc7XG5pbXBvcnQge1RVSV9TQ1JPTExfUkVGfSBmcm9tICdAdGFpZ2EtdWkvY29yZS90b2tlbnMnO1xuaW1wb3J0IHttZXJnZSwgdGhyb3R0bGVUaW1lfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHtUdWlTY3JvbGxiYXJTZXJ2aWNlfSBmcm9tICcuL3Njcm9sbGJhci5zZXJ2aWNlJztcblxuY29uc3QgTUlOX1dJRFRIID0gMjQ7XG5cbmludGVyZmFjZSBDb21wdXRlZERpbWVuc2lvbiB7XG4gICAgc2Nyb2xsVG9wOiBudW1iZXI7XG4gICAgc2Nyb2xsSGVpZ2h0OiBudW1iZXI7XG4gICAgY2xpZW50SGVpZ2h0OiBudW1iZXI7XG4gICAgc2Nyb2xsTGVmdDogbnVtYmVyO1xuICAgIHNjcm9sbFdpZHRoOiBudW1iZXI7XG4gICAgY2xpZW50V2lkdGg6IG51bWJlcjtcbn1cblxuQERpcmVjdGl2ZSh7XG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBzZWxlY3RvcjogJ1t0dWlTY3JvbGxiYXJdJyxcbiAgICBwcm92aWRlcnM6IFtUdWlTY3JvbGxiYXJTZXJ2aWNlXSxcbn0pXG5leHBvcnQgY2xhc3MgVHVpU2Nyb2xsYmFyRGlyZWN0aXZlIHtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGVsID0gaW5qZWN0KFRVSV9TQ1JPTExfUkVGKS5uYXRpdmVFbGVtZW50O1xuICAgIHByaXZhdGUgcmVhZG9ubHkgc3R5bGUgPSB0dWlJbmplY3RFbGVtZW50KCkuc3R5bGU7XG5cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgc2Nyb2xsU3ViID0gaW5qZWN0KFR1aVNjcm9sbGJhclNlcnZpY2UpXG4gICAgICAgIC5waXBlKHRha2VVbnRpbERlc3Ryb3llZCgpKVxuICAgICAgICAuc3Vic2NyaWJlKChbdG9wLCBsZWZ0XSkgPT4ge1xuICAgICAgICAgICAgdGhpcy5lbC5zdHlsZS5zY3JvbGxCZWhhdmlvciA9ICdhdXRvJztcbiAgICAgICAgICAgIHRoaXMuZWwuc2Nyb2xsVG8oe3RvcCwgbGVmdH0pO1xuICAgICAgICAgICAgdGhpcy5lbC5zdHlsZS5zY3JvbGxCZWhhdmlvciA9ICcnO1xuICAgICAgICB9KTtcblxuICAgIHByb3RlY3RlZCByZWFkb25seSBzdHlsZVN1YiA9IG1lcmdlKFxuICAgICAgICBpbmplY3QoV0FfQU5JTUFUSU9OX0ZSQU1FKS5waXBlKHRocm90dGxlVGltZSgxMDAsIHR1aVpvbmVmcmVlU2NoZWR1bGVyKCkpKSxcbiAgICAgICAgdHVpU2Nyb2xsRnJvbSh0aGlzLmVsKSxcbiAgICApXG4gICAgICAgIC5waXBlKHR1aVpvbmVmcmVlKCksIHRha2VVbnRpbERlc3Ryb3llZCgpKVxuICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGRpbWVuc2lvbjogQ29tcHV0ZWREaW1lbnNpb24gPSB7XG4gICAgICAgICAgICAgICAgc2Nyb2xsVG9wOiB0aGlzLmVsLnNjcm9sbFRvcCxcbiAgICAgICAgICAgICAgICBzY3JvbGxIZWlnaHQ6IHRoaXMuZWwuc2Nyb2xsSGVpZ2h0LFxuICAgICAgICAgICAgICAgIGNsaWVudEhlaWdodDogdGhpcy5lbC5jbGllbnRIZWlnaHQsXG4gICAgICAgICAgICAgICAgc2Nyb2xsTGVmdDogdGhpcy5lbC5zY3JvbGxMZWZ0LFxuICAgICAgICAgICAgICAgIHNjcm9sbFdpZHRoOiB0aGlzLmVsLnNjcm9sbFdpZHRoLFxuICAgICAgICAgICAgICAgIGNsaWVudFdpZHRoOiB0aGlzLmVsLmNsaWVudFdpZHRoLFxuICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgY29uc3QgdGh1bWIgPSBgJHt0aGlzLmdldFRodW1iKGRpbWVuc2lvbikgKiAxMDB9JWA7XG4gICAgICAgICAgICBjb25zdCB2aWV3ID0gYCR7dGhpcy5nZXRWaWV3KGRpbWVuc2lvbikgKiAxMDB9JWA7XG5cbiAgICAgICAgICAgIGlmICh0aGlzLnR1aVNjcm9sbGJhciA9PT0gJ3ZlcnRpY2FsJykge1xuICAgICAgICAgICAgICAgIHRoaXMuc3R5bGUudG9wID0gdGh1bWI7XG4gICAgICAgICAgICAgICAgdGhpcy5zdHlsZS5oZWlnaHQgPSB2aWV3O1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLnN0eWxlLmxlZnQgPSB0aHVtYjtcbiAgICAgICAgICAgICAgICB0aGlzLnN0eWxlLndpZHRoID0gdmlldztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyB0dWlTY3JvbGxiYXI6ICdob3Jpem9udGFsJyB8ICd2ZXJ0aWNhbCcgPSAndmVydGljYWwnO1xuXG4gICAgcHJpdmF0ZSBnZXRTY3JvbGxlZChkaW1lbnNpb246IENvbXB1dGVkRGltZW5zaW9uKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudHVpU2Nyb2xsYmFyID09PSAndmVydGljYWwnXG4gICAgICAgICAgICA/IGRpbWVuc2lvbi5zY3JvbGxUb3AgLyAoZGltZW5zaW9uLnNjcm9sbEhlaWdodCAtIGRpbWVuc2lvbi5jbGllbnRIZWlnaHQpXG4gICAgICAgICAgICA6IGRpbWVuc2lvbi5zY3JvbGxMZWZ0IC8gKGRpbWVuc2lvbi5zY3JvbGxXaWR0aCAtIGRpbWVuc2lvbi5jbGllbnRXaWR0aCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRDb21wZW5zYXRpb24oZGltZW5zaW9uOiBDb21wdXRlZERpbWVuc2lvbik6IG51bWJlciB7XG4gICAgICAgIGlmIChcbiAgICAgICAgICAgICgoZGltZW5zaW9uLmNsaWVudEhlaWdodCAqIGRpbWVuc2lvbi5jbGllbnRIZWlnaHQpIC8gZGltZW5zaW9uLnNjcm9sbEhlaWdodCA+XG4gICAgICAgICAgICAgICAgTUlOX1dJRFRIICYmXG4gICAgICAgICAgICAgICAgdGhpcy50dWlTY3JvbGxiYXIgPT09ICd2ZXJ0aWNhbCcpIHx8XG4gICAgICAgICAgICAoKGRpbWVuc2lvbi5jbGllbnRXaWR0aCAqIGRpbWVuc2lvbi5jbGllbnRXaWR0aCkgLyBkaW1lbnNpb24uc2Nyb2xsV2lkdGggPlxuICAgICAgICAgICAgICAgIE1JTl9XSURUSCAmJlxuICAgICAgICAgICAgICAgIHRoaXMudHVpU2Nyb2xsYmFyID09PSAnaG9yaXpvbnRhbCcpXG4gICAgICAgICkge1xuICAgICAgICAgICAgcmV0dXJuIDA7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhpcy50dWlTY3JvbGxiYXIgPT09ICd2ZXJ0aWNhbCdcbiAgICAgICAgICAgID8gTUlOX1dJRFRIIC8gZGltZW5zaW9uLmNsaWVudEhlaWdodFxuICAgICAgICAgICAgOiBNSU5fV0lEVEggLyBkaW1lbnNpb24uY2xpZW50V2lkdGg7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRUaHVtYihkaW1lbnNpb246IENvbXB1dGVkRGltZW5zaW9uKTogbnVtYmVyIHtcbiAgICAgICAgY29uc3QgY29tcGVuc2F0aW9uID0gdGhpcy5nZXRDb21wZW5zYXRpb24oZGltZW5zaW9uKSB8fCB0aGlzLmdldFZpZXcoZGltZW5zaW9uKTtcblxuICAgICAgICByZXR1cm4gdGhpcy5nZXRTY3JvbGxlZChkaW1lbnNpb24pICogKDEgLSBjb21wZW5zYXRpb24pO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0VmlldyhkaW1lbnNpb246IENvbXB1dGVkRGltZW5zaW9uKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudHVpU2Nyb2xsYmFyID09PSAndmVydGljYWwnXG4gICAgICAgICAgICA/IE1hdGguY2VpbCgoZGltZW5zaW9uLmNsaWVudEhlaWdodCAvIGRpbWVuc2lvbi5zY3JvbGxIZWlnaHQpICogMTAwKSAvIDEwMFxuICAgICAgICAgICAgOiBNYXRoLmNlaWwoKGRpbWVuc2lvbi5jbGllbnRXaWR0aCAvIGRpbWVuc2lvbi5zY3JvbGxXaWR0aCkgKiAxMDApIC8gMTAwO1xuICAgIH1cbn1cbiJdfQ==
@@ -2,7 +2,7 @@ import { NgIf, AsyncPipe } from '@angular/common';
2
2
  import * as i0 from '@angular/core';
3
3
  import { inject, Injectable, Directive, Input, Component, ChangeDetectionStrategy, ElementRef, DestroyRef } from '@angular/core';
4
4
  import { WA_ANIMATION_FRAME } from '@ng-web-apis/common';
5
- import { tuiTypedFromEvent, tuiZonefree, tuiScrollFrom, tuiZoneOptimized } from '@taiga-ui/cdk/observables';
5
+ import { tuiTypedFromEvent, tuiZonefree, tuiZonefreeScheduler, tuiScrollFrom, tuiZoneOptimized } from '@taiga-ui/cdk/observables';
6
6
  import { tuiFadeIn } from '@taiga-ui/core/animations';
7
7
  import { TUI_SCROLL_REF, TUI_ANIMATIONS_SPEED } from '@taiga-ui/core/tokens';
8
8
  import { tuiToAnimationOptions } from '@taiga-ui/core/utils';
@@ -59,7 +59,7 @@ class TuiScrollbarDirective {
59
59
  this.el.scrollTo({ top, left });
60
60
  this.el.style.scrollBehavior = '';
61
61
  });
62
- this.styleSub = merge(inject(WA_ANIMATION_FRAME).pipe(throttleTime(100)), tuiScrollFrom(this.el))
62
+ this.styleSub = merge(inject(WA_ANIMATION_FRAME).pipe(throttleTime(100, tuiZonefreeScheduler())), tuiScrollFrom(this.el))
63
63
  .pipe(tuiZonefree(), takeUntilDestroyed())
64
64
  .subscribe(() => {
65
65
  const dimension = {
@@ -128,7 +128,7 @@ class TuiScrollControls {
128
128
  constructor() {
129
129
  this.scrollRef = inject(TUI_SCROLL_REF).nativeElement;
130
130
  this.options = tuiToAnimationOptions(inject(TUI_ANIMATIONS_SPEED));
131
- this.refresh$ = inject(WA_ANIMATION_FRAME).pipe(throttleTime(300), map(() => this.scrollbars), startWith([false, false]), distinctUntilChanged((a, b) => a[0] === b[0] && a[1] === b[1]), tuiZoneOptimized());
131
+ this.refresh$ = inject(WA_ANIMATION_FRAME).pipe(throttleTime(300, tuiZonefreeScheduler()), map(() => this.scrollbars), startWith([false, false]), distinctUntilChanged((a, b) => a[0] === b[0] && a[1] === b[1]), tuiZoneOptimized());
132
132
  }
133
133
  get scrollbars() {
134
134
  const { clientHeight, scrollHeight, clientWidth, scrollWidth } = this.scrollRef;
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-core-components-scrollbar.mjs","sources":["../../../projects/core/components/scrollbar/scrollbar.service.ts","../../../projects/core/components/scrollbar/scrollbar.directive.ts","../../../projects/core/components/scrollbar/scroll-controls.component.ts","../../../projects/core/components/scrollbar/scroll-controls.template.html","../../../projects/core/components/scrollbar/scrollbar.options.ts","../../../projects/core/components/scrollbar/scrollbar.component.ts","../../../projects/core/components/scrollbar/scrollbar.template.html","../../../projects/core/components/scrollbar/scroll-into-view.directive.ts","../../../projects/core/components/scrollbar/scroll-ref.directive.ts","../../../projects/core/components/scrollbar/scrollable.directive.ts","../../../projects/core/components/scrollbar/taiga-ui-core-components-scrollbar.ts"],"sourcesContent":["import {inject, Injectable} from '@angular/core';\nimport {tuiTypedFromEvent, tuiZonefree} from '@taiga-ui/cdk/observables';\nimport {tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\nimport {TUI_SCROLL_REF} from '@taiga-ui/core/tokens';\nimport {map, merge, Observable, switchMap, takeUntil} from 'rxjs';\n\n@Injectable()\nexport class TuiScrollbarService extends Observable<[number, number]> {\n private readonly el = tuiInjectElement();\n private readonly element = inject(TUI_SCROLL_REF).nativeElement;\n private readonly scroll$ = merge(\n tuiTypedFromEvent(this.el.parentElement!, 'mousedown').pipe(\n map((event) => this.getScrolled(event, 0.5, 0.5)),\n ),\n tuiTypedFromEvent(this.el, 'mousedown').pipe(\n tuiZonefree(),\n switchMap((event) => {\n const {ownerDocument} = this.el;\n const rect = this.el.getBoundingClientRect();\n const vertical = getOffsetVertical(event, rect);\n const horizontal = getOffsetHorizontal(event, rect);\n\n return tuiTypedFromEvent(ownerDocument, 'mousemove').pipe(\n map((event) => this.getScrolled(event, vertical, horizontal)),\n takeUntil(tuiTypedFromEvent(ownerDocument, 'mouseup')),\n );\n }),\n ),\n );\n\n constructor() {\n super((subscriber) => this.scroll$.subscribe(subscriber));\n }\n\n private getScrolled(\n {clientY, clientX}: MouseEvent,\n offsetY: number,\n offsetX: number,\n ): [number, number] {\n const {offsetHeight, offsetWidth} = this.el;\n const {top, left, width, height} = this.el.parentElement!.getBoundingClientRect();\n\n const maxTop = this.element.scrollHeight - height;\n const maxLeft = this.element.scrollWidth - width;\n const scrolledTop =\n (clientY - top - offsetHeight * offsetY) / (height - offsetHeight);\n const scrolledLeft =\n (clientX - left - offsetWidth * offsetX) / (width - offsetWidth);\n\n return [maxTop * scrolledTop, maxLeft * scrolledLeft];\n }\n}\n\nfunction getOffsetVertical({clientY}: MouseEvent, {top, height}: DOMRect): number {\n return (clientY - top) / height;\n}\n\nfunction getOffsetHorizontal({clientX}: MouseEvent, {left, width}: DOMRect): number {\n return (clientX - left) / width;\n}\n","import {Directive, inject, Input} from '@angular/core';\nimport {takeUntilDestroyed} from '@angular/core/rxjs-interop';\nimport {WA_ANIMATION_FRAME} from '@ng-web-apis/common';\nimport {tuiScrollFrom, tuiZonefree} from '@taiga-ui/cdk/observables';\nimport {tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\nimport {TUI_SCROLL_REF} from '@taiga-ui/core/tokens';\nimport {merge, throttleTime} from 'rxjs';\n\nimport {TuiScrollbarService} from './scrollbar.service';\n\nconst MIN_WIDTH = 24;\n\ninterface ComputedDimension {\n scrollTop: number;\n scrollHeight: number;\n clientHeight: number;\n scrollLeft: number;\n scrollWidth: number;\n clientWidth: number;\n}\n\n@Directive({\n standalone: true,\n selector: '[tuiScrollbar]',\n providers: [TuiScrollbarService],\n})\nexport class TuiScrollbarDirective {\n private readonly el = inject(TUI_SCROLL_REF).nativeElement;\n private readonly style = tuiInjectElement().style;\n\n protected readonly scrollSub = inject(TuiScrollbarService)\n .pipe(takeUntilDestroyed())\n .subscribe(([top, left]) => {\n this.el.style.scrollBehavior = 'auto';\n this.el.scrollTo({top, left});\n this.el.style.scrollBehavior = '';\n });\n\n protected readonly styleSub = merge(\n inject(WA_ANIMATION_FRAME).pipe(throttleTime(100)),\n tuiScrollFrom(this.el),\n )\n .pipe(tuiZonefree(), takeUntilDestroyed())\n .subscribe(() => {\n const dimension: ComputedDimension = {\n scrollTop: this.el.scrollTop,\n scrollHeight: this.el.scrollHeight,\n clientHeight: this.el.clientHeight,\n scrollLeft: this.el.scrollLeft,\n scrollWidth: this.el.scrollWidth,\n clientWidth: this.el.clientWidth,\n };\n\n const thumb = `${this.getThumb(dimension) * 100}%`;\n const view = `${this.getView(dimension) * 100}%`;\n\n if (this.tuiScrollbar === 'vertical') {\n this.style.top = thumb;\n this.style.height = view;\n } else {\n this.style.left = thumb;\n this.style.width = view;\n }\n });\n\n @Input()\n public tuiScrollbar: 'horizontal' | 'vertical' = 'vertical';\n\n private getScrolled(dimension: ComputedDimension): number {\n return this.tuiScrollbar === 'vertical'\n ? dimension.scrollTop / (dimension.scrollHeight - dimension.clientHeight)\n : dimension.scrollLeft / (dimension.scrollWidth - dimension.clientWidth);\n }\n\n private getCompensation(dimension: ComputedDimension): number {\n if (\n ((dimension.clientHeight * dimension.clientHeight) / dimension.scrollHeight >\n MIN_WIDTH &&\n this.tuiScrollbar === 'vertical') ||\n ((dimension.clientWidth * dimension.clientWidth) / dimension.scrollWidth >\n MIN_WIDTH &&\n this.tuiScrollbar === 'horizontal')\n ) {\n return 0;\n }\n\n return this.tuiScrollbar === 'vertical'\n ? MIN_WIDTH / dimension.clientHeight\n : MIN_WIDTH / dimension.clientWidth;\n }\n\n private getThumb(dimension: ComputedDimension): number {\n const compensation = this.getCompensation(dimension) || this.getView(dimension);\n\n return this.getScrolled(dimension) * (1 - compensation);\n }\n\n private getView(dimension: ComputedDimension): number {\n return this.tuiScrollbar === 'vertical'\n ? Math.ceil((dimension.clientHeight / dimension.scrollHeight) * 100) / 100\n : Math.ceil((dimension.clientWidth / dimension.scrollWidth) * 100) / 100;\n }\n}\n","import {AsyncPipe, NgIf} from '@angular/common';\nimport {ChangeDetectionStrategy, Component, inject} from '@angular/core';\nimport {WA_ANIMATION_FRAME} from '@ng-web-apis/common';\nimport {tuiZoneOptimized} from '@taiga-ui/cdk/observables';\nimport {tuiFadeIn} from '@taiga-ui/core/animations';\nimport {TUI_ANIMATIONS_SPEED, TUI_SCROLL_REF} from '@taiga-ui/core/tokens';\nimport {tuiToAnimationOptions} from '@taiga-ui/core/utils';\nimport {distinctUntilChanged, map, startWith, throttleTime} from 'rxjs';\n\nimport {TuiScrollbarDirective} from './scrollbar.directive';\n\n@Component({\n standalone: true,\n selector: 'tui-scroll-controls',\n imports: [NgIf, AsyncPipe, TuiScrollbarDirective],\n templateUrl: './scroll-controls.template.html',\n styleUrls: ['./scroll-controls.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n animations: [tuiFadeIn],\n})\nexport class TuiScrollControls {\n private readonly scrollRef = inject(TUI_SCROLL_REF).nativeElement;\n\n protected readonly options = tuiToAnimationOptions(inject(TUI_ANIMATIONS_SPEED));\n protected readonly refresh$ = inject(WA_ANIMATION_FRAME).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(),\n );\n\n private get scrollbars(): [boolean, boolean] {\n const {clientHeight, scrollHeight, clientWidth, scrollWidth} = this.scrollRef;\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 class=\"t-bar t-bar_vertical\"\n [@tuiFadeIn]=\"options\"\n [class.t-bar_has-horizontal]=\"bars[1]\"\n (mousedown.capture.prevent)=\"(0)\"\n >\n <div\n tuiScrollbar=\"vertical\"\n class=\"t-thumb\"\n ></div>\n </div>\n <div\n *ngIf=\"bars[1]\"\n class=\"t-bar t-bar_horizontal\"\n [@tuiFadeIn]=\"options\"\n [class.t-bar_has-vertical]=\"bars[0]\"\n (mousedown.capture.prevent)=\"(0)\"\n >\n <div\n tuiScrollbar=\"horizontal\"\n class=\"t-thumb\"\n ></div>\n </div>\n</ng-container>\n","import type {Provider} from '@angular/core';\nimport {tuiCreateToken, tuiProvideOptions} from '@taiga-ui/cdk/utils/miscellaneous';\n\nexport interface TuiScrollbarOptions {\n mode: 'always' | 'hover';\n}\n\nexport const TUI_DEFAULT_SCROLLBAR_OPTIONS: TuiScrollbarOptions = {\n mode: 'always',\n};\n\nexport const TUI_SCROLLBAR_OPTIONS = tuiCreateToken(TUI_DEFAULT_SCROLLBAR_OPTIONS);\n\nexport function tuiScrollbarOptionsProvider(\n options: Partial<TuiScrollbarOptions>,\n): Provider {\n return tuiProvideOptions(\n TUI_SCROLLBAR_OPTIONS,\n options,\n TUI_DEFAULT_SCROLLBAR_OPTIONS,\n );\n}\n","import {NgIf} from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n inject,\n Input,\n} from '@angular/core';\nimport {TUI_IS_IOS} from '@taiga-ui/cdk/tokens';\nimport {tuiGetElementOffset, tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\nimport {TUI_SCROLL_REF} from '@taiga-ui/core/tokens';\n\nimport {TuiScrollControls} from './scroll-controls.component';\nimport {TUI_SCROLLBAR_OPTIONS} from './scrollbar.options';\n\n/**\n * An event for scrolling an element into view within {@link TuiScrollbar}.\n */\nexport const TUI_SCROLL_INTO_VIEW = 'tui-scroll-into-view';\n\n/**\n * An event to notify {@link TuiScrollbar} that\n * it should control a nested element.\n */\nexport const TUI_SCROLLABLE = 'tui-scrollable';\n\n@Component({\n standalone: true,\n selector: 'tui-scrollbar',\n imports: [TuiScrollControls, NgIf],\n templateUrl: './scrollbar.template.html',\n styleUrls: ['./scrollbar.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: TUI_SCROLL_REF,\n useFactory: () => inject(TuiScrollbar).browserScrollRef,\n },\n ],\n host: {\n '[class._native-hidden]': '!isIOS || hidden',\n [`(${TUI_SCROLLABLE}.stop)`]: 'scrollRef = $event.detail',\n [`(${TUI_SCROLL_INTO_VIEW}.stop)`]: 'scrollIntoView($event.detail)',\n },\n})\nexport class TuiScrollbar {\n private readonly el = tuiInjectElement();\n\n protected readonly options = inject(TUI_SCROLLBAR_OPTIONS);\n protected readonly isIOS = inject(TUI_IS_IOS);\n protected readonly browserScrollRef = new ElementRef(this.el);\n\n @Input()\n public hidden = false;\n\n protected get delegated(): boolean {\n return this.scrollRef !== this.el;\n }\n\n protected get scrollRef(): HTMLElement {\n return this.browserScrollRef.nativeElement;\n }\n\n protected set scrollRef(element: HTMLElement) {\n this.browserScrollRef.nativeElement = element;\n }\n\n protected scrollIntoView(detail: HTMLElement): void {\n if (this.delegated) {\n return;\n }\n\n const {offsetHeight, offsetWidth} = detail;\n const {offsetTop, offsetLeft} = tuiGetElementOffset(this.scrollRef, detail);\n const scrollTop = offsetTop + offsetHeight / 2 - this.scrollRef.clientHeight / 2;\n const scrollLeft = offsetLeft + offsetWidth / 2 - this.scrollRef.clientWidth / 2;\n\n this.scrollRef.scrollTo?.(scrollLeft, scrollTop);\n }\n}\n","<tui-scroll-controls\n *ngIf=\"!hidden && !isIOS\"\n class=\"t-bars\"\n [class.t-hover-mode]=\"options.mode === 'hover'\"\n/>\n<div\n class=\"t-content\"\n [class.t-content_delegated]=\"delegated\"\n>\n <ng-content />\n</div>\n","import {DestroyRef, Directive, inject, Input} from '@angular/core';\nimport {takeUntilDestroyed} from '@angular/core/rxjs-interop';\nimport {tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\nimport {timer} from 'rxjs';\n\nimport {TUI_SCROLL_INTO_VIEW} from './scrollbar.component';\n\n/**\n * Directive scrolls element into view inside tui-scrollbar\n */\n@Directive({\n standalone: true,\n selector: '[tuiScrollIntoView]',\n})\nexport class TuiScrollIntoView {\n private readonly el = tuiInjectElement();\n private readonly destroyRef = inject(DestroyRef);\n\n @Input()\n public set tuiScrollIntoView(scroll: boolean) {\n if (!scroll) {\n return;\n }\n\n // Timeout is necessary in order to give element render cycle to get into its final spot\n // (for example if it is inside dropdown box which has to be positioned first)\n timer(0)\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => {\n this.el.dispatchEvent(\n new CustomEvent<Element>(TUI_SCROLL_INTO_VIEW, {\n bubbles: true,\n detail: this.el,\n }),\n );\n });\n }\n}\n","import {Directive, ElementRef} from '@angular/core';\nimport {tuiProvide} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {TUI_SCROLL_REF} from '@taiga-ui/core/tokens';\n\nexport const SCROLL_REF_SELECTOR = '[tuiScrollRef]';\n\n@Directive({\n standalone: true,\n selector: SCROLL_REF_SELECTOR,\n providers: [tuiProvide(TUI_SCROLL_REF, ElementRef)],\n})\nexport class TuiScrollRef {}\n","import type {OnInit} from '@angular/core';\nimport {Directive} from '@angular/core';\nimport {tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\n\nimport {TUI_SCROLLABLE} from './scrollbar.component';\n\n@Directive({\n standalone: true,\n selector: '[tuiScrollable]',\n})\nexport class TuiScrollable implements OnInit {\n private readonly el = tuiInjectElement();\n\n public ngOnInit(): void {\n this.el.dispatchEvent(\n new CustomEvent(TUI_SCROLLABLE, {\n bubbles: true,\n detail: this.el,\n }),\n );\n }\n}\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-scrollbar.mjs","sources":["../../../projects/core/components/scrollbar/scrollbar.service.ts","../../../projects/core/components/scrollbar/scrollbar.directive.ts","../../../projects/core/components/scrollbar/scroll-controls.component.ts","../../../projects/core/components/scrollbar/scroll-controls.template.html","../../../projects/core/components/scrollbar/scrollbar.options.ts","../../../projects/core/components/scrollbar/scrollbar.component.ts","../../../projects/core/components/scrollbar/scrollbar.template.html","../../../projects/core/components/scrollbar/scroll-into-view.directive.ts","../../../projects/core/components/scrollbar/scroll-ref.directive.ts","../../../projects/core/components/scrollbar/scrollable.directive.ts","../../../projects/core/components/scrollbar/taiga-ui-core-components-scrollbar.ts"],"sourcesContent":["import {inject, Injectable} from '@angular/core';\nimport {tuiTypedFromEvent, tuiZonefree} from '@taiga-ui/cdk/observables';\nimport {tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\nimport {TUI_SCROLL_REF} from '@taiga-ui/core/tokens';\nimport {map, merge, Observable, switchMap, takeUntil} from 'rxjs';\n\n@Injectable()\nexport class TuiScrollbarService extends Observable<[number, number]> {\n private readonly el = tuiInjectElement();\n private readonly element = inject(TUI_SCROLL_REF).nativeElement;\n private readonly scroll$ = merge(\n tuiTypedFromEvent(this.el.parentElement!, 'mousedown').pipe(\n map((event) => this.getScrolled(event, 0.5, 0.5)),\n ),\n tuiTypedFromEvent(this.el, 'mousedown').pipe(\n tuiZonefree(),\n switchMap((event) => {\n const {ownerDocument} = this.el;\n const rect = this.el.getBoundingClientRect();\n const vertical = getOffsetVertical(event, rect);\n const horizontal = getOffsetHorizontal(event, rect);\n\n return tuiTypedFromEvent(ownerDocument, 'mousemove').pipe(\n map((event) => this.getScrolled(event, vertical, horizontal)),\n takeUntil(tuiTypedFromEvent(ownerDocument, 'mouseup')),\n );\n }),\n ),\n );\n\n constructor() {\n super((subscriber) => this.scroll$.subscribe(subscriber));\n }\n\n private getScrolled(\n {clientY, clientX}: MouseEvent,\n offsetY: number,\n offsetX: number,\n ): [number, number] {\n const {offsetHeight, offsetWidth} = this.el;\n const {top, left, width, height} = this.el.parentElement!.getBoundingClientRect();\n\n const maxTop = this.element.scrollHeight - height;\n const maxLeft = this.element.scrollWidth - width;\n const scrolledTop =\n (clientY - top - offsetHeight * offsetY) / (height - offsetHeight);\n const scrolledLeft =\n (clientX - left - offsetWidth * offsetX) / (width - offsetWidth);\n\n return [maxTop * scrolledTop, maxLeft * scrolledLeft];\n }\n}\n\nfunction getOffsetVertical({clientY}: MouseEvent, {top, height}: DOMRect): number {\n return (clientY - top) / height;\n}\n\nfunction getOffsetHorizontal({clientX}: MouseEvent, {left, width}: DOMRect): number {\n return (clientX - left) / width;\n}\n","import {Directive, inject, Input} from '@angular/core';\nimport {takeUntilDestroyed} from '@angular/core/rxjs-interop';\nimport {WA_ANIMATION_FRAME} from '@ng-web-apis/common';\nimport {\n tuiScrollFrom,\n tuiZonefree,\n tuiZonefreeScheduler,\n} from '@taiga-ui/cdk/observables';\nimport {tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\nimport {TUI_SCROLL_REF} from '@taiga-ui/core/tokens';\nimport {merge, throttleTime} from 'rxjs';\n\nimport {TuiScrollbarService} from './scrollbar.service';\n\nconst MIN_WIDTH = 24;\n\ninterface ComputedDimension {\n scrollTop: number;\n scrollHeight: number;\n clientHeight: number;\n scrollLeft: number;\n scrollWidth: number;\n clientWidth: number;\n}\n\n@Directive({\n standalone: true,\n selector: '[tuiScrollbar]',\n providers: [TuiScrollbarService],\n})\nexport class TuiScrollbarDirective {\n private readonly el = inject(TUI_SCROLL_REF).nativeElement;\n private readonly style = tuiInjectElement().style;\n\n protected readonly scrollSub = inject(TuiScrollbarService)\n .pipe(takeUntilDestroyed())\n .subscribe(([top, left]) => {\n this.el.style.scrollBehavior = 'auto';\n this.el.scrollTo({top, left});\n this.el.style.scrollBehavior = '';\n });\n\n protected readonly styleSub = merge(\n inject(WA_ANIMATION_FRAME).pipe(throttleTime(100, tuiZonefreeScheduler())),\n tuiScrollFrom(this.el),\n )\n .pipe(tuiZonefree(), takeUntilDestroyed())\n .subscribe(() => {\n const dimension: ComputedDimension = {\n scrollTop: this.el.scrollTop,\n scrollHeight: this.el.scrollHeight,\n clientHeight: this.el.clientHeight,\n scrollLeft: this.el.scrollLeft,\n scrollWidth: this.el.scrollWidth,\n clientWidth: this.el.clientWidth,\n };\n\n const thumb = `${this.getThumb(dimension) * 100}%`;\n const view = `${this.getView(dimension) * 100}%`;\n\n if (this.tuiScrollbar === 'vertical') {\n this.style.top = thumb;\n this.style.height = view;\n } else {\n this.style.left = thumb;\n this.style.width = view;\n }\n });\n\n @Input()\n public tuiScrollbar: 'horizontal' | 'vertical' = 'vertical';\n\n private getScrolled(dimension: ComputedDimension): number {\n return this.tuiScrollbar === 'vertical'\n ? dimension.scrollTop / (dimension.scrollHeight - dimension.clientHeight)\n : dimension.scrollLeft / (dimension.scrollWidth - dimension.clientWidth);\n }\n\n private getCompensation(dimension: ComputedDimension): number {\n if (\n ((dimension.clientHeight * dimension.clientHeight) / dimension.scrollHeight >\n MIN_WIDTH &&\n this.tuiScrollbar === 'vertical') ||\n ((dimension.clientWidth * dimension.clientWidth) / dimension.scrollWidth >\n MIN_WIDTH &&\n this.tuiScrollbar === 'horizontal')\n ) {\n return 0;\n }\n\n return this.tuiScrollbar === 'vertical'\n ? MIN_WIDTH / dimension.clientHeight\n : MIN_WIDTH / dimension.clientWidth;\n }\n\n private getThumb(dimension: ComputedDimension): number {\n const compensation = this.getCompensation(dimension) || this.getView(dimension);\n\n return this.getScrolled(dimension) * (1 - compensation);\n }\n\n private getView(dimension: ComputedDimension): number {\n return this.tuiScrollbar === 'vertical'\n ? Math.ceil((dimension.clientHeight / dimension.scrollHeight) * 100) / 100\n : Math.ceil((dimension.clientWidth / dimension.scrollWidth) * 100) / 100;\n }\n}\n","import {AsyncPipe, NgIf} from '@angular/common';\nimport {ChangeDetectionStrategy, Component, inject} from '@angular/core';\nimport {WA_ANIMATION_FRAME} from '@ng-web-apis/common';\nimport {tuiZonefreeScheduler, tuiZoneOptimized} from '@taiga-ui/cdk/observables';\nimport {tuiFadeIn} from '@taiga-ui/core/animations';\nimport {TUI_ANIMATIONS_SPEED, TUI_SCROLL_REF} from '@taiga-ui/core/tokens';\nimport {tuiToAnimationOptions} from '@taiga-ui/core/utils';\nimport {distinctUntilChanged, map, startWith, throttleTime} from 'rxjs';\n\nimport {TuiScrollbarDirective} from './scrollbar.directive';\n\n@Component({\n standalone: true,\n selector: 'tui-scroll-controls',\n imports: [NgIf, AsyncPipe, TuiScrollbarDirective],\n templateUrl: './scroll-controls.template.html',\n styleUrls: ['./scroll-controls.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n animations: [tuiFadeIn],\n})\nexport class TuiScrollControls {\n private readonly scrollRef = inject(TUI_SCROLL_REF).nativeElement;\n\n protected readonly options = tuiToAnimationOptions(inject(TUI_ANIMATIONS_SPEED));\n protected readonly refresh$ = inject(WA_ANIMATION_FRAME).pipe(\n throttleTime(300, tuiZonefreeScheduler()),\n map(() => this.scrollbars),\n startWith([false, false]),\n distinctUntilChanged((a, b) => a[0] === b[0] && a[1] === b[1]),\n tuiZoneOptimized(),\n );\n\n private get scrollbars(): [boolean, boolean] {\n const {clientHeight, scrollHeight, clientWidth, scrollWidth} = this.scrollRef;\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 class=\"t-bar t-bar_vertical\"\n [@tuiFadeIn]=\"options\"\n [class.t-bar_has-horizontal]=\"bars[1]\"\n (mousedown.capture.prevent)=\"(0)\"\n >\n <div\n tuiScrollbar=\"vertical\"\n class=\"t-thumb\"\n ></div>\n </div>\n <div\n *ngIf=\"bars[1]\"\n class=\"t-bar t-bar_horizontal\"\n [@tuiFadeIn]=\"options\"\n [class.t-bar_has-vertical]=\"bars[0]\"\n (mousedown.capture.prevent)=\"(0)\"\n >\n <div\n tuiScrollbar=\"horizontal\"\n class=\"t-thumb\"\n ></div>\n </div>\n</ng-container>\n","import type {Provider} from '@angular/core';\nimport {tuiCreateToken, tuiProvideOptions} from '@taiga-ui/cdk/utils/miscellaneous';\n\nexport interface TuiScrollbarOptions {\n mode: 'always' | 'hover';\n}\n\nexport const TUI_DEFAULT_SCROLLBAR_OPTIONS: TuiScrollbarOptions = {\n mode: 'always',\n};\n\nexport const TUI_SCROLLBAR_OPTIONS = tuiCreateToken(TUI_DEFAULT_SCROLLBAR_OPTIONS);\n\nexport function tuiScrollbarOptionsProvider(\n options: Partial<TuiScrollbarOptions>,\n): Provider {\n return tuiProvideOptions(\n TUI_SCROLLBAR_OPTIONS,\n options,\n TUI_DEFAULT_SCROLLBAR_OPTIONS,\n );\n}\n","import {NgIf} from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n inject,\n Input,\n} from '@angular/core';\nimport {TUI_IS_IOS} from '@taiga-ui/cdk/tokens';\nimport {tuiGetElementOffset, tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\nimport {TUI_SCROLL_REF} from '@taiga-ui/core/tokens';\n\nimport {TuiScrollControls} from './scroll-controls.component';\nimport {TUI_SCROLLBAR_OPTIONS} from './scrollbar.options';\n\n/**\n * An event for scrolling an element into view within {@link TuiScrollbar}.\n */\nexport const TUI_SCROLL_INTO_VIEW = 'tui-scroll-into-view';\n\n/**\n * An event to notify {@link TuiScrollbar} that\n * it should control a nested element.\n */\nexport const TUI_SCROLLABLE = 'tui-scrollable';\n\n@Component({\n standalone: true,\n selector: 'tui-scrollbar',\n imports: [TuiScrollControls, NgIf],\n templateUrl: './scrollbar.template.html',\n styleUrls: ['./scrollbar.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: TUI_SCROLL_REF,\n useFactory: () => inject(TuiScrollbar).browserScrollRef,\n },\n ],\n host: {\n '[class._native-hidden]': '!isIOS || hidden',\n [`(${TUI_SCROLLABLE}.stop)`]: 'scrollRef = $event.detail',\n [`(${TUI_SCROLL_INTO_VIEW}.stop)`]: 'scrollIntoView($event.detail)',\n },\n})\nexport class TuiScrollbar {\n private readonly el = tuiInjectElement();\n\n protected readonly options = inject(TUI_SCROLLBAR_OPTIONS);\n protected readonly isIOS = inject(TUI_IS_IOS);\n protected readonly browserScrollRef = new ElementRef(this.el);\n\n @Input()\n public hidden = false;\n\n protected get delegated(): boolean {\n return this.scrollRef !== this.el;\n }\n\n protected get scrollRef(): HTMLElement {\n return this.browserScrollRef.nativeElement;\n }\n\n protected set scrollRef(element: HTMLElement) {\n this.browserScrollRef.nativeElement = element;\n }\n\n protected scrollIntoView(detail: HTMLElement): void {\n if (this.delegated) {\n return;\n }\n\n const {offsetHeight, offsetWidth} = detail;\n const {offsetTop, offsetLeft} = tuiGetElementOffset(this.scrollRef, detail);\n const scrollTop = offsetTop + offsetHeight / 2 - this.scrollRef.clientHeight / 2;\n const scrollLeft = offsetLeft + offsetWidth / 2 - this.scrollRef.clientWidth / 2;\n\n this.scrollRef.scrollTo?.(scrollLeft, scrollTop);\n }\n}\n","<tui-scroll-controls\n *ngIf=\"!hidden && !isIOS\"\n class=\"t-bars\"\n [class.t-hover-mode]=\"options.mode === 'hover'\"\n/>\n<div\n class=\"t-content\"\n [class.t-content_delegated]=\"delegated\"\n>\n <ng-content />\n</div>\n","import {DestroyRef, Directive, inject, Input} from '@angular/core';\nimport {takeUntilDestroyed} from '@angular/core/rxjs-interop';\nimport {tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\nimport {timer} from 'rxjs';\n\nimport {TUI_SCROLL_INTO_VIEW} from './scrollbar.component';\n\n/**\n * Directive scrolls element into view inside tui-scrollbar\n */\n@Directive({\n standalone: true,\n selector: '[tuiScrollIntoView]',\n})\nexport class TuiScrollIntoView {\n private readonly el = tuiInjectElement();\n private readonly destroyRef = inject(DestroyRef);\n\n @Input()\n public set tuiScrollIntoView(scroll: boolean) {\n if (!scroll) {\n return;\n }\n\n // Timeout is necessary in order to give element render cycle to get into its final spot\n // (for example if it is inside dropdown box which has to be positioned first)\n timer(0)\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => {\n this.el.dispatchEvent(\n new CustomEvent<Element>(TUI_SCROLL_INTO_VIEW, {\n bubbles: true,\n detail: this.el,\n }),\n );\n });\n }\n}\n","import {Directive, ElementRef} from '@angular/core';\nimport {tuiProvide} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {TUI_SCROLL_REF} from '@taiga-ui/core/tokens';\n\nexport const SCROLL_REF_SELECTOR = '[tuiScrollRef]';\n\n@Directive({\n standalone: true,\n selector: SCROLL_REF_SELECTOR,\n providers: [tuiProvide(TUI_SCROLL_REF, ElementRef)],\n})\nexport class TuiScrollRef {}\n","import type {OnInit} from '@angular/core';\nimport {Directive} from '@angular/core';\nimport {tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\n\nimport {TUI_SCROLLABLE} from './scrollbar.component';\n\n@Directive({\n standalone: true,\n selector: '[tuiScrollable]',\n})\nexport class TuiScrollable implements OnInit {\n private readonly el = tuiInjectElement();\n\n public ngOnInit(): void {\n this.el.dispatchEvent(\n new CustomEvent(TUI_SCROLLABLE, {\n bubbles: true,\n detail: this.el,\n }),\n );\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@taiga-ui/core",
3
- "version": "4.5.0-canary.50decb3",
3
+ "version": "4.5.0-canary.538706d",
4
4
  "description": "Core library for creating Angular components and applications using Taiga UI",
5
5
  "keywords": [
6
6
  "angular",
@@ -311,9 +311,9 @@
311
311
  "@angular/router": ">=16.0.0",
312
312
  "@ng-web-apis/common": "^4.2.1",
313
313
  "@ng-web-apis/mutation-observer": "^4.2.1",
314
- "@taiga-ui/cdk": "^4.5.0-canary.50decb3",
314
+ "@taiga-ui/cdk": "^4.5.0-canary.538706d",
315
315
  "@taiga-ui/event-plugins": "^4.0.1",
316
- "@taiga-ui/i18n": "^4.5.0-canary.50decb3",
316
+ "@taiga-ui/i18n": "^4.5.0-canary.538706d",
317
317
  "@taiga-ui/polymorpheus": "^4.6.4",
318
318
  "rxjs": ">=7.0.0"
319
319
  },