@taiga-ui/core 2.81.0 → 2.83.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -342,7 +342,7 @@
342
342
  host: {
343
343
  '($.data-mode.attr)': 'mode$',
344
344
  },
345
- styles: [":host{position:-webkit-sticky;position:sticky;top:0;left:0;z-index:1;min-width:calc(100% - 1px);min-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-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 .t-thumb:active,.t-bar_vertical:hover .t-thumb{width:.875rem}.t-bar_horizontal .t-thumb{bottom:0;height:.75rem;min-width:1.25rem}.t-bar_horizontal .t-thumb:active,.t-bar_horizontal:hover .t-thumb{height:.875rem}"]
345
+ 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-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 .t-thumb:active,.t-bar_vertical:hover .t-thumb{width:.875rem}.t-bar_horizontal .t-thumb{bottom:0;height:.75rem;min-width:1.25rem}.t-bar_horizontal .t-thumb:active,.t-bar_horizontal:hover .t-thumb{height:.875rem}"]
346
346
  }),
347
347
  __param(0, core.Inject(tokens.TUI_ANIMATION_OPTIONS)),
348
348
  __param(1, core.Inject(core.NgZone)),
@@ -1,2 +1,2 @@
1
- !function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("@angular/common"),require("@angular/core"),require("@ng-web-apis/common"),require("@taiga-ui/cdk"),require("@taiga-ui/core/animations"),require("@taiga-ui/core/providers"),require("@taiga-ui/core/tokens"),require("rxjs"),require("rxjs/operators")):"function"==typeof define&&define.amd?define("@taiga-ui/core/components/scroll-controls",["exports","@angular/common","@angular/core","@ng-web-apis/common","@taiga-ui/cdk","@taiga-ui/core/animations","@taiga-ui/core/providers","@taiga-ui/core/tokens","rxjs","rxjs/operators"],e):e(((t=t||self)["taiga-ui"]=t["taiga-ui"]||{},t["taiga-ui"].core=t["taiga-ui"].core||{},t["taiga-ui"].core.components=t["taiga-ui"].core.components||{},t["taiga-ui"].core.components["scroll-controls"]={}),t.ng.common,t.ng.core,t.common$1,t.cdk,t["taiga-ui"].core.animations,t["taiga-ui"].core.providers,t["taiga-ui"].core.tokens,t.rxjs,t.rxjs.operators)}(this,(function(t,e,r,i,o,n,a,c,l,s){"use strict";var u=function(){return(u=Object.assign||function(t){for(var e,r=1,i=arguments.length;r<i;r++)for(var o in e=arguments[r])Object.prototype.hasOwnProperty.call(e,o)&&(t[o]=e[o]);return t}).apply(this,arguments)};function p(t,e,r,i){var o,n=arguments.length,a=n<3?e:null===i?i=Object.getOwnPropertyDescriptor(e,r):i;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(t,e,r,i);else for(var c=t.length-1;c>=0;c--)(o=t[c])&&(a=(n<3?o(a):n>3?o(e,r,a):o(e,r))||a);return n>3&&a&&Object.defineProperty(e,r,a),a}function h(t,e){return function(r,i){e(r,i,t)}}Object.create;function m(t,e){var r="function"==typeof Symbol&&t[Symbol.iterator];if(!r)return t;var i,o,n=r.call(t),a=[];try{for(;(void 0===e||e-- >0)&&!(i=n.next()).done;)a.push(i.value)}catch(t){o={error:t}}finally{try{i&&!i.done&&(r=n.return)&&r.call(n)}finally{if(o)throw o.error}}return a}Object.create;var d=function(){function t(t,e,r,i,n,a){var c=this;this.options=t,this.ngZone=e,this.documentRef=r,this.scrollRef=i,this.animationFrame$=n,this.mode$=a,this.refresh$=this.animationFrame$.pipe(s.throttleTime(300),s.map((function(){return c.scrollbars})),s.startWith([!1,!1]),s.distinctUntilChanged((function(t,e){return t[0]===e[0]&&t[1]===e[1]})),o.tuiZoneOptimized(this.ngZone)),this.animation=u({value:""},this.options)}return Object.defineProperty(t.prototype,"scrollbars",{get:function(){var t=this.scrollRef?this.scrollRef.nativeElement:this.documentRef.documentElement,e=t.clientHeight,r=t.scrollHeight,i=t.clientWidth,o=t.scrollWidth;return[Math.ceil(e/r*100)<100,Math.ceil(i/o*100)<100]},enumerable:!0,configurable:!0}),t.ctorParameters=function(){return[{type:void 0,decorators:[{type:r.Inject,args:[c.TUI_ANIMATION_OPTIONS]}]},{type:r.NgZone,decorators:[{type:r.Inject,args:[r.NgZone]}]},{type:Document,decorators:[{type:r.Inject,args:[e.DOCUMENT]}]},{type:r.ElementRef,decorators:[{type:r.Optional},{type:r.Inject,args:[c.TUI_SCROLL_REF]}]},{type:l.Observable,decorators:[{type:r.Inject,args:[i.ANIMATION_FRAME]}]},{type:l.Observable,decorators:[{type:r.Inject,args:[c.TUI_MODE]}]}]},t=p([r.Component({selector:"tui-scroll-controls",template:'<ng-container *tuiLet="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',changeDetection:r.ChangeDetectionStrategy.OnPush,animations:[n.tuiFadeIn],providers:[a.MODE_PROVIDER],host:{"($.data-mode.attr)":"mode$"},styles:[":host{position:-webkit-sticky;position:sticky;top:0;left:0;z-index:1;min-width:calc(100% - 1px);min-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-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 .t-thumb:active,.t-bar_vertical:hover .t-thumb{width:.875rem}.t-bar_horizontal .t-thumb{bottom:0;height:.75rem;min-width:1.25rem}.t-bar_horizontal .t-thumb:active,.t-bar_horizontal:hover .t-thumb{height:.875rem}"]}),h(0,r.Inject(c.TUI_ANIMATION_OPTIONS)),h(1,r.Inject(r.NgZone)),h(2,r.Inject(e.DOCUMENT)),h(3,r.Optional()),h(3,r.Inject(c.TUI_SCROLL_REF)),h(4,r.Inject(i.ANIMATION_FRAME)),h(5,r.Inject(c.TUI_MODE))],t)}(),g=function(){function t(t,e,r,i,n,a,c,u,p,h){var d=this;this.wrapper=n,this.container=a,this.documentRef=c,this.windowRef=u,this.elementRef=p,this.viewportScroller=h,this.tuiScrollbar="vertical";var g=this.elementRef.nativeElement,b=o.typedFromEvent(g,"mousedown"),f=o.typedFromEvent(this.documentRef,"mousemove"),v=o.typedFromEvent(this.documentRef,"mouseup"),y=o.typedFromEvent(n.nativeElement,"mousedown");l.merge(y.pipe(o.preventDefault(),s.map((function(t){return d.getScrolled(t,.5,.5)}))),b.pipe(o.preventDefault(),o.stopPropagation(),s.switchMap((function(t){var e,r,i,o,n=g.getBoundingClientRect(),a=(e=n,r=t.clientY,i=e.top,o=e.height,(r-i)/o),c=function(t,e){var r=t.clientX,i=e.left,o=e.width;return(r-i)/o}(t,n);return f.pipe(s.map((function(t){return d.getScrolled(t,a,c)})),s.takeUntil(v))})))).pipe(o.tuiZonefree(t),s.takeUntil(r)).subscribe((function(t){var r=m(t,2),i=r[0],o=r[1],n=m(d.viewportScroller.getScrollPosition(),2),a=n[0],c=n[1];d.container?"vertical"===d.tuiScrollbar?e.setProperty(d.container.nativeElement,"scrollTop",i):e.setProperty(d.container.nativeElement,"scrollLeft",o):d.viewportScroller.scrollToPosition(["vertical"===d.tuiScrollbar?a:o,"vertical"===d.tuiScrollbar?i:c])})),l.merge(l.fromEvent(this.container?this.container.nativeElement:this.windowRef,"scroll"),i.pipe(s.throttleTime(o.POLLING_TIME))).pipe(o.tuiZonefree(t),s.takeUntil(r)).subscribe((function(){"vertical"===d.tuiScrollbar?(e.setStyle(g,"top",100*d.thumb+"%"),e.setStyle(g,"height",100*d.view+"%")):(e.setStyle(g,"left",100*d.thumb+"%"),e.setStyle(g,"width",100*d.view+"%"))}))}return Object.defineProperty(t.prototype,"scrolled",{get:function(){var t=this.computedContainer,e=t.scrollTop,r=t.scrollHeight,i=t.clientHeight,o=t.scrollLeft,n=t.scrollWidth,a=t.clientWidth;return"vertical"===this.tuiScrollbar?e/(r-i):o/(n-a)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"compensation",{get:function(){var t=this.computedContainer,e=t.clientHeight,r=t.scrollHeight,i=t.clientWidth,o=t.scrollWidth;return e*e/r>24&&"vertical"===this.tuiScrollbar||i*i/o>24&&"horizontal"===this.tuiScrollbar?0:"vertical"===this.tuiScrollbar?24/e:24/i},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"thumb",{get:function(){var t=this.compensation||this.view;return this.scrolled*(1-t)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"view",{get:function(){var t=this.computedContainer,e=t.clientHeight,r=t.scrollHeight,i=t.clientWidth,o=t.scrollWidth;return"vertical"===this.tuiScrollbar?Math.ceil(e/r*100)/100:Math.ceil(i/o*100)/100},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"computedContainer",{get:function(){return this.container?this.container.nativeElement:this.documentRef.scrollingElement},enumerable:!0,configurable:!0}),t.prototype.getScrolled=function(t,e,r){var i=t.clientY,o=t.clientX,n=this.elementRef.nativeElement,a=n.offsetHeight,c=n.offsetWidth,l=this.wrapper.nativeElement.getBoundingClientRect(),s=l.top,u=l.left,p=l.width,h=l.height;return[(this.computedContainer.scrollHeight-h)*((i-s-a*e)/(h-a)),(this.computedContainer.scrollWidth-p)*((o-u-c*r)/(p-c))]},t.ctorParameters=function(){return[{type:r.NgZone,decorators:[{type:r.Inject,args:[r.NgZone]}]},{type:r.Renderer2,decorators:[{type:r.Inject,args:[r.Renderer2]}]},{type:l.Observable,decorators:[{type:r.Inject,args:[o.TuiDestroyService]}]},{type:l.Observable,decorators:[{type:r.Inject,args:[i.ANIMATION_FRAME]}]},{type:r.ElementRef,decorators:[{type:r.Inject,args:[c.TUI_ELEMENT_REF]}]},{type:r.ElementRef,decorators:[{type:r.Optional},{type:r.Inject,args:[c.TUI_SCROLL_REF]}]},{type:Document,decorators:[{type:r.Inject,args:[e.DOCUMENT]}]},{type:Window,decorators:[{type:r.Inject,args:[i.WINDOW]}]},{type:r.ElementRef,decorators:[{type:r.Inject,args:[r.ElementRef]}]},{type:e.ViewportScroller,decorators:[{type:r.Inject,args:[e.ViewportScroller]}]}]},p([r.Input()],t.prototype,"tuiScrollbar",void 0),t=p([r.Directive({selector:"[tuiScrollbar]",providers:[o.TuiDestroyService]}),h(0,r.Inject(r.NgZone)),h(1,r.Inject(r.Renderer2)),h(2,r.Inject(o.TuiDestroyService)),h(3,r.Inject(i.ANIMATION_FRAME)),h(4,r.Inject(c.TUI_ELEMENT_REF)),h(5,r.Optional()),h(5,r.Inject(c.TUI_SCROLL_REF)),h(6,r.Inject(e.DOCUMENT)),h(7,r.Inject(i.WINDOW)),h(8,r.Inject(r.ElementRef)),h(9,r.Inject(e.ViewportScroller))],t)}();var b=function(){function t(){}return t=p([r.Directive({selector:"[tuiScrollbarWrapper]",providers:[{provide:c.TUI_ELEMENT_REF,useExisting:r.ElementRef}]})],t)}(),f=function(){function t(){}return t=p([r.NgModule({imports:[e.CommonModule,o.TuiLetModule],declarations:[g,b,d],exports:[d]})],t)}();t.TuiScrollControlsComponent=d,t.TuiScrollControlsModule=f,t.TuiScrollbarDirective=g,t.ɵa=b,Object.defineProperty(t,"__esModule",{value:!0})}));
1
+ !function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("@angular/common"),require("@angular/core"),require("@ng-web-apis/common"),require("@taiga-ui/cdk"),require("@taiga-ui/core/animations"),require("@taiga-ui/core/providers"),require("@taiga-ui/core/tokens"),require("rxjs"),require("rxjs/operators")):"function"==typeof define&&define.amd?define("@taiga-ui/core/components/scroll-controls",["exports","@angular/common","@angular/core","@ng-web-apis/common","@taiga-ui/cdk","@taiga-ui/core/animations","@taiga-ui/core/providers","@taiga-ui/core/tokens","rxjs","rxjs/operators"],e):e(((t=t||self)["taiga-ui"]=t["taiga-ui"]||{},t["taiga-ui"].core=t["taiga-ui"].core||{},t["taiga-ui"].core.components=t["taiga-ui"].core.components||{},t["taiga-ui"].core.components["scroll-controls"]={}),t.ng.common,t.ng.core,t.common$1,t.cdk,t["taiga-ui"].core.animations,t["taiga-ui"].core.providers,t["taiga-ui"].core.tokens,t.rxjs,t.rxjs.operators)}(this,(function(t,e,r,i,o,n,a,c,l,s){"use strict";var u=function(){return(u=Object.assign||function(t){for(var e,r=1,i=arguments.length;r<i;r++)for(var o in e=arguments[r])Object.prototype.hasOwnProperty.call(e,o)&&(t[o]=e[o]);return t}).apply(this,arguments)};function p(t,e,r,i){var o,n=arguments.length,a=n<3?e:null===i?i=Object.getOwnPropertyDescriptor(e,r):i;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(t,e,r,i);else for(var c=t.length-1;c>=0;c--)(o=t[c])&&(a=(n<3?o(a):n>3?o(e,r,a):o(e,r))||a);return n>3&&a&&Object.defineProperty(e,r,a),a}function h(t,e){return function(r,i){e(r,i,t)}}Object.create;function m(t,e){var r="function"==typeof Symbol&&t[Symbol.iterator];if(!r)return t;var i,o,n=r.call(t),a=[];try{for(;(void 0===e||e-- >0)&&!(i=n.next()).done;)a.push(i.value)}catch(t){o={error:t}}finally{try{i&&!i.done&&(r=n.return)&&r.call(n)}finally{if(o)throw o.error}}return a}Object.create;var d=function(){function t(t,e,r,i,n,a){var c=this;this.options=t,this.ngZone=e,this.documentRef=r,this.scrollRef=i,this.animationFrame$=n,this.mode$=a,this.refresh$=this.animationFrame$.pipe(s.throttleTime(300),s.map((function(){return c.scrollbars})),s.startWith([!1,!1]),s.distinctUntilChanged((function(t,e){return t[0]===e[0]&&t[1]===e[1]})),o.tuiZoneOptimized(this.ngZone)),this.animation=u({value:""},this.options)}return Object.defineProperty(t.prototype,"scrollbars",{get:function(){var t=this.scrollRef?this.scrollRef.nativeElement:this.documentRef.documentElement,e=t.clientHeight,r=t.scrollHeight,i=t.clientWidth,o=t.scrollWidth;return[Math.ceil(e/r*100)<100,Math.ceil(i/o*100)<100]},enumerable:!0,configurable:!0}),t.ctorParameters=function(){return[{type:void 0,decorators:[{type:r.Inject,args:[c.TUI_ANIMATION_OPTIONS]}]},{type:r.NgZone,decorators:[{type:r.Inject,args:[r.NgZone]}]},{type:Document,decorators:[{type:r.Inject,args:[e.DOCUMENT]}]},{type:r.ElementRef,decorators:[{type:r.Optional},{type:r.Inject,args:[c.TUI_SCROLL_REF]}]},{type:l.Observable,decorators:[{type:r.Inject,args:[i.ANIMATION_FRAME]}]},{type:l.Observable,decorators:[{type:r.Inject,args:[c.TUI_MODE]}]}]},t=p([r.Component({selector:"tui-scroll-controls",template:'<ng-container *tuiLet="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',changeDetection:r.ChangeDetectionStrategy.OnPush,animations:[n.tuiFadeIn],providers:[a.MODE_PROVIDER],host:{"($.data-mode.attr)":"mode$"},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-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 .t-thumb:active,.t-bar_vertical:hover .t-thumb{width:.875rem}.t-bar_horizontal .t-thumb{bottom:0;height:.75rem;min-width:1.25rem}.t-bar_horizontal .t-thumb:active,.t-bar_horizontal:hover .t-thumb{height:.875rem}"]}),h(0,r.Inject(c.TUI_ANIMATION_OPTIONS)),h(1,r.Inject(r.NgZone)),h(2,r.Inject(e.DOCUMENT)),h(3,r.Optional()),h(3,r.Inject(c.TUI_SCROLL_REF)),h(4,r.Inject(i.ANIMATION_FRAME)),h(5,r.Inject(c.TUI_MODE))],t)}(),g=function(){function t(t,e,r,i,n,a,c,u,p,h){var d=this;this.wrapper=n,this.container=a,this.documentRef=c,this.windowRef=u,this.elementRef=p,this.viewportScroller=h,this.tuiScrollbar="vertical";var g=this.elementRef.nativeElement,b=o.typedFromEvent(g,"mousedown"),f=o.typedFromEvent(this.documentRef,"mousemove"),v=o.typedFromEvent(this.documentRef,"mouseup"),y=o.typedFromEvent(n.nativeElement,"mousedown");l.merge(y.pipe(o.preventDefault(),s.map((function(t){return d.getScrolled(t,.5,.5)}))),b.pipe(o.preventDefault(),o.stopPropagation(),s.switchMap((function(t){var e,r,i,o,n=g.getBoundingClientRect(),a=(e=n,r=t.clientY,i=e.top,o=e.height,(r-i)/o),c=function(t,e){var r=t.clientX,i=e.left,o=e.width;return(r-i)/o}(t,n);return f.pipe(s.map((function(t){return d.getScrolled(t,a,c)})),s.takeUntil(v))})))).pipe(o.tuiZonefree(t),s.takeUntil(r)).subscribe((function(t){var r=m(t,2),i=r[0],o=r[1],n=m(d.viewportScroller.getScrollPosition(),2),a=n[0],c=n[1];d.container?"vertical"===d.tuiScrollbar?e.setProperty(d.container.nativeElement,"scrollTop",i):e.setProperty(d.container.nativeElement,"scrollLeft",o):d.viewportScroller.scrollToPosition(["vertical"===d.tuiScrollbar?a:o,"vertical"===d.tuiScrollbar?i:c])})),l.merge(l.fromEvent(this.container?this.container.nativeElement:this.windowRef,"scroll"),i.pipe(s.throttleTime(o.POLLING_TIME))).pipe(o.tuiZonefree(t),s.takeUntil(r)).subscribe((function(){"vertical"===d.tuiScrollbar?(e.setStyle(g,"top",100*d.thumb+"%"),e.setStyle(g,"height",100*d.view+"%")):(e.setStyle(g,"left",100*d.thumb+"%"),e.setStyle(g,"width",100*d.view+"%"))}))}return Object.defineProperty(t.prototype,"scrolled",{get:function(){var t=this.computedContainer,e=t.scrollTop,r=t.scrollHeight,i=t.clientHeight,o=t.scrollLeft,n=t.scrollWidth,a=t.clientWidth;return"vertical"===this.tuiScrollbar?e/(r-i):o/(n-a)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"compensation",{get:function(){var t=this.computedContainer,e=t.clientHeight,r=t.scrollHeight,i=t.clientWidth,o=t.scrollWidth;return e*e/r>24&&"vertical"===this.tuiScrollbar||i*i/o>24&&"horizontal"===this.tuiScrollbar?0:"vertical"===this.tuiScrollbar?24/e:24/i},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"thumb",{get:function(){var t=this.compensation||this.view;return this.scrolled*(1-t)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"view",{get:function(){var t=this.computedContainer,e=t.clientHeight,r=t.scrollHeight,i=t.clientWidth,o=t.scrollWidth;return"vertical"===this.tuiScrollbar?Math.ceil(e/r*100)/100:Math.ceil(i/o*100)/100},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"computedContainer",{get:function(){return this.container?this.container.nativeElement:this.documentRef.scrollingElement},enumerable:!0,configurable:!0}),t.prototype.getScrolled=function(t,e,r){var i=t.clientY,o=t.clientX,n=this.elementRef.nativeElement,a=n.offsetHeight,c=n.offsetWidth,l=this.wrapper.nativeElement.getBoundingClientRect(),s=l.top,u=l.left,p=l.width,h=l.height;return[(this.computedContainer.scrollHeight-h)*((i-s-a*e)/(h-a)),(this.computedContainer.scrollWidth-p)*((o-u-c*r)/(p-c))]},t.ctorParameters=function(){return[{type:r.NgZone,decorators:[{type:r.Inject,args:[r.NgZone]}]},{type:r.Renderer2,decorators:[{type:r.Inject,args:[r.Renderer2]}]},{type:l.Observable,decorators:[{type:r.Inject,args:[o.TuiDestroyService]}]},{type:l.Observable,decorators:[{type:r.Inject,args:[i.ANIMATION_FRAME]}]},{type:r.ElementRef,decorators:[{type:r.Inject,args:[c.TUI_ELEMENT_REF]}]},{type:r.ElementRef,decorators:[{type:r.Optional},{type:r.Inject,args:[c.TUI_SCROLL_REF]}]},{type:Document,decorators:[{type:r.Inject,args:[e.DOCUMENT]}]},{type:Window,decorators:[{type:r.Inject,args:[i.WINDOW]}]},{type:r.ElementRef,decorators:[{type:r.Inject,args:[r.ElementRef]}]},{type:e.ViewportScroller,decorators:[{type:r.Inject,args:[e.ViewportScroller]}]}]},p([r.Input()],t.prototype,"tuiScrollbar",void 0),t=p([r.Directive({selector:"[tuiScrollbar]",providers:[o.TuiDestroyService]}),h(0,r.Inject(r.NgZone)),h(1,r.Inject(r.Renderer2)),h(2,r.Inject(o.TuiDestroyService)),h(3,r.Inject(i.ANIMATION_FRAME)),h(4,r.Inject(c.TUI_ELEMENT_REF)),h(5,r.Optional()),h(5,r.Inject(c.TUI_SCROLL_REF)),h(6,r.Inject(e.DOCUMENT)),h(7,r.Inject(i.WINDOW)),h(8,r.Inject(r.ElementRef)),h(9,r.Inject(e.ViewportScroller))],t)}();var b=function(){function t(){}return t=p([r.Directive({selector:"[tuiScrollbarWrapper]",providers:[{provide:c.TUI_ELEMENT_REF,useExisting:r.ElementRef}]})],t)}(),f=function(){function t(){}return t=p([r.NgModule({imports:[e.CommonModule,o.TuiLetModule],declarations:[g,b,d],exports:[d]})],t)}();t.TuiScrollControlsComponent=d,t.TuiScrollControlsModule=f,t.TuiScrollbarDirective=g,t.ɵa=b,Object.defineProperty(t,"__esModule",{value:!0})}));
2
2
  //# sourceMappingURL=taiga-ui-core-components-scroll-controls.umd.min.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../node_modules/tslib/tslib.es6.js","ng://@taiga-ui/core/components/scroll-controls/scroll-controls.component.ts","ng://@taiga-ui/core/components/scroll-controls/scrollbar.directive.ts","ng://@taiga-ui/core/components/scroll-controls/scrollbar-wrapper.directive.ts","ng://@taiga-ui/core/components/scroll-controls/scroll-controls.module.ts"],"names":["__assign","Object","assign","t","s","i","n","arguments","length","p","prototype","hasOwnProperty","call","apply","this","__decorate","decorators","target","key","desc","d","c","r","getOwnPropertyDescriptor","Reflect","decorate","defineProperty","__param","paramIndex","decorator","create","__read","o","m","Symbol","iterator","e","ar","next","done","push","value","error","TuiScrollControlsComponent","options","ngZone","documentRef","scrollRef","animationFrame$","mode$","_this","refresh$","pipe","throttleTime","map","scrollbars","startWith","distinctUntilChanged","a","b","tuiZoneOptimized","animation","_a","clientHeight","scrollHeight","clientWidth","scrollWidth","Math","ceil","Inject","args","TUI_ANIMATION_OPTIONS","NgZone","type","Document","DOCUMENT","ElementRef","Optional","TUI_SCROLL_REF","Observable","ANIMATION_FRAME","TUI_MODE","Component","selector","template","changeDetection","ChangeDetectionStrategy","OnPush","animations","tuiFadeIn","providers","MODE_PROVIDER","host","($.data-mode.attr)","TuiScrollbarDirective","renderer","destroy$","wrapper","container","windowRef","elementRef","viewportScroller","tuiScrollbar","nativeElement","mousedown$","typedFromEvent","mousemove$","mouseup$","mousedownWrapper$","merge","preventDefault","event","getScrolled","stopPropagation","switchMap","_b","clientY","top","height","rect","getBoundingClientRect","vertical","horizontal","clientX","left","width","getOffsetHorizontal","takeUntil","tuiZonefree","subscribe","scrollTop","scrollLeft","_c","getScrollPosition","x","y","setProperty","scrollToPosition","fromEvent","POLLING_TIME","setStyle","thumb","view","computedContainer","compensation","scrolled","scrollingElement","offsetVertical","offsetHorizontal","offsetHeight","offsetWidth","Renderer2","TuiDestroyService","TUI_ELEMENT_REF","Window","WINDOW","ViewportScroller","Input","Directive","TuiScrollbarWrapperDirective","provide","useExisting","TuiScrollControlsModule","NgModule","imports","CommonModule","TuiLetModule","declarations","exports"],"mappings":"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","sourcesContent":["/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\r\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\r\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\r\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\r\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\r\n var _, done = false;\r\n for (var i = decorators.length - 1; i >= 0; i--) {\r\n var context = {};\r\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\r\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\r\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\r\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\r\n if (kind === \"accessor\") {\r\n if (result === void 0) continue;\r\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\r\n if (_ = accept(result.get)) descriptor.get = _;\r\n if (_ = accept(result.set)) descriptor.set = _;\r\n if (_ = accept(result.init)) initializers.push(_);\r\n }\r\n else if (_ = accept(result)) {\r\n if (kind === \"field\") initializers.push(_);\r\n else descriptor[key] = _;\r\n }\r\n }\r\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\r\n done = true;\r\n};\r\n\r\nexport function __runInitializers(thisArg, initializers, value) {\r\n var useValue = arguments.length > 2;\r\n for (var i = 0; i < initializers.length; i++) {\r\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\r\n }\r\n return useValue ? value : void 0;\r\n};\r\n\r\nexport function __propKey(x) {\r\n return typeof x === \"symbol\" ? x : \"\".concat(x);\r\n};\r\n\r\nexport function __setFunctionName(f, name, prefix) {\r\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\r\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\r\n};\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n\r\nexport function __classPrivateFieldIn(state, receiver) {\r\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\r\n}\r\n","import {AnimationOptions} from '@angular/animations';\nimport {DOCUMENT} from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n Inject,\n NgZone,\n Optional,\n} from '@angular/core';\nimport {ANIMATION_FRAME} from '@ng-web-apis/common';\nimport {tuiZoneOptimized} from '@taiga-ui/cdk';\nimport {tuiFadeIn} from '@taiga-ui/core/animations';\nimport {MODE_PROVIDER} from '@taiga-ui/core/providers';\nimport {TUI_ANIMATION_OPTIONS, TUI_MODE, TUI_SCROLL_REF} from '@taiga-ui/core/tokens';\nimport {TuiBrightness} from '@taiga-ui/core/types';\nimport {Observable} from 'rxjs';\nimport {distinctUntilChanged, map, startWith, throttleTime} from 'rxjs/operators';\n\n// @dynamic\n@Component({\n selector: 'tui-scroll-controls',\n templateUrl: './scroll-controls.template.html',\n styleUrls: ['./scroll-controls.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n animations: [tuiFadeIn],\n providers: [MODE_PROVIDER],\n host: {\n '($.data-mode.attr)': 'mode$',\n },\n})\nexport class TuiScrollControlsComponent {\n readonly refresh$ = this.animationFrame$.pipe(\n throttleTime(300),\n map(() => this.scrollbars),\n startWith([false, false]),\n distinctUntilChanged((a, b) => a[0] === b[0] && a[1] === b[1]),\n tuiZoneOptimized(this.ngZone),\n );\n\n readonly animation = {\n value: '',\n ...this.options,\n } as const;\n\n constructor(\n @Inject(TUI_ANIMATION_OPTIONS) private readonly options: AnimationOptions,\n @Inject(NgZone) private readonly ngZone: NgZone,\n @Inject(DOCUMENT) private readonly documentRef: Document,\n @Optional()\n @Inject(TUI_SCROLL_REF)\n private readonly scrollRef: ElementRef<HTMLElement> | null,\n @Inject(ANIMATION_FRAME) private readonly animationFrame$: Observable<number>,\n @Inject(TUI_MODE) readonly mode$: Observable<TuiBrightness | null>,\n ) {}\n\n private get scrollbars(): [boolean, boolean] {\n const {clientHeight, scrollHeight, clientWidth, scrollWidth} = this.scrollRef\n ? this.scrollRef.nativeElement\n : this.documentRef.documentElement;\n\n return [\n Math.ceil((clientHeight / scrollHeight) * 100) < 100,\n Math.ceil((clientWidth / scrollWidth) * 100) < 100,\n ];\n }\n}\n","import {DOCUMENT, ViewportScroller} from '@angular/common';\nimport {\n Directive,\n ElementRef,\n Inject,\n Input,\n NgZone,\n Optional,\n Renderer2,\n} from '@angular/core';\nimport {ANIMATION_FRAME, WINDOW} from '@ng-web-apis/common';\nimport {\n POLLING_TIME,\n preventDefault,\n stopPropagation,\n TuiDestroyService,\n tuiZonefree,\n typedFromEvent,\n} from '@taiga-ui/cdk';\nimport {TUI_ELEMENT_REF, TUI_SCROLL_REF} from '@taiga-ui/core/tokens';\nimport {TuiOrientationT} from '@taiga-ui/core/types';\nimport {fromEvent, merge, Observable} from 'rxjs';\nimport {map, switchMap, takeUntil, throttleTime} from 'rxjs/operators';\n\nconst MIN_WIDTH = 24;\n\n// @dynamic\n@Directive({\n selector: '[tuiScrollbar]',\n providers: [TuiDestroyService],\n})\nexport class TuiScrollbarDirective {\n @Input()\n tuiScrollbar: TuiOrientationT = 'vertical';\n\n constructor(\n @Inject(NgZone) ngZone: NgZone,\n @Inject(Renderer2) renderer: Renderer2,\n @Inject(TuiDestroyService) destroy$: Observable<void>,\n @Inject(ANIMATION_FRAME) animationFrame$: Observable<number>,\n @Inject(TUI_ELEMENT_REF) private readonly wrapper: ElementRef<HTMLElement>,\n @Optional()\n @Inject(TUI_SCROLL_REF)\n private readonly container: ElementRef<HTMLElement> | null,\n @Inject(DOCUMENT) private readonly documentRef: Document,\n @Inject(WINDOW) private readonly windowRef: Window,\n @Inject(ElementRef) private readonly elementRef: ElementRef<HTMLElement>,\n @Inject(ViewportScroller) private readonly viewportScroller: ViewportScroller,\n ) {\n const {nativeElement} = this.elementRef;\n const mousedown$ = typedFromEvent(nativeElement, 'mousedown');\n const mousemove$ = typedFromEvent(this.documentRef, 'mousemove');\n const mouseup$ = typedFromEvent(this.documentRef, 'mouseup');\n const mousedownWrapper$ = typedFromEvent(wrapper.nativeElement, 'mousedown');\n\n merge(\n mousedownWrapper$.pipe(\n preventDefault(),\n map(event => this.getScrolled(event, 0.5, 0.5)),\n ),\n mousedown$.pipe(\n preventDefault(),\n stopPropagation(),\n switchMap(event => {\n const rect = nativeElement.getBoundingClientRect();\n const vertical = getOffsetVertical(event, rect);\n const horizontal = getOffsetHorizontal(event, rect);\n\n return mousemove$.pipe(\n map(event => this.getScrolled(event, vertical, horizontal)),\n takeUntil(mouseup$),\n );\n }),\n ),\n )\n .pipe(tuiZonefree(ngZone), takeUntil(destroy$))\n .subscribe(([scrollTop, scrollLeft]) => {\n const [x, y] = this.viewportScroller.getScrollPosition();\n\n if (!this.container) {\n this.viewportScroller.scrollToPosition([\n this.tuiScrollbar === 'vertical' ? x : scrollLeft,\n this.tuiScrollbar === 'vertical' ? scrollTop : y,\n ]);\n\n return;\n }\n\n if (this.tuiScrollbar === 'vertical') {\n renderer.setProperty(\n this.container.nativeElement,\n 'scrollTop',\n scrollTop,\n );\n } else {\n renderer.setProperty(\n this.container.nativeElement,\n 'scrollLeft',\n scrollLeft,\n );\n }\n });\n\n merge(\n fromEvent(\n this.container ? this.container.nativeElement : this.windowRef,\n 'scroll',\n ),\n animationFrame$.pipe(throttleTime(POLLING_TIME)),\n )\n .pipe(tuiZonefree(ngZone), takeUntil(destroy$))\n .subscribe(() => {\n if (this.tuiScrollbar === 'vertical') {\n renderer.setStyle(nativeElement, 'top', `${this.thumb * 100}%`);\n renderer.setStyle(nativeElement, 'height', `${this.view * 100}%`);\n } else {\n renderer.setStyle(nativeElement, 'left', `${this.thumb * 100}%`);\n renderer.setStyle(nativeElement, 'width', `${this.view * 100}%`);\n }\n });\n }\n\n private get scrolled(): number {\n const {\n scrollTop,\n scrollHeight,\n clientHeight,\n scrollLeft,\n scrollWidth,\n clientWidth,\n } = this.computedContainer;\n\n return this.tuiScrollbar === 'vertical'\n ? scrollTop / (scrollHeight - clientHeight)\n : scrollLeft / (scrollWidth - clientWidth);\n }\n\n private get compensation(): number {\n const {clientHeight, scrollHeight, clientWidth, scrollWidth} =\n this.computedContainer;\n\n if (\n ((clientHeight * clientHeight) / scrollHeight > MIN_WIDTH &&\n this.tuiScrollbar === 'vertical') ||\n ((clientWidth * clientWidth) / scrollWidth > MIN_WIDTH &&\n this.tuiScrollbar === 'horizontal')\n ) {\n return 0;\n }\n\n return this.tuiScrollbar === 'vertical'\n ? MIN_WIDTH / clientHeight\n : MIN_WIDTH / clientWidth;\n }\n\n private get thumb(): number {\n const compensation = this.compensation || this.view;\n\n return this.scrolled * (1 - compensation);\n }\n\n private get view(): number {\n const {clientHeight, scrollHeight, clientWidth, scrollWidth} =\n this.computedContainer;\n\n return this.tuiScrollbar === 'vertical'\n ? Math.ceil((clientHeight / scrollHeight) * 100) / 100\n : Math.ceil((clientWidth / scrollWidth) * 100) / 100;\n }\n\n private get computedContainer(): Element {\n return this.container\n ? this.container.nativeElement\n : (this.documentRef.scrollingElement as unknown as Element);\n }\n\n private getScrolled(\n {clientY, clientX}: MouseEvent,\n offsetVertical: number,\n offsetHorizontal: number,\n ): [number, number] {\n const {offsetHeight, offsetWidth} = this.elementRef.nativeElement;\n const {top, left, width, height} =\n this.wrapper.nativeElement.getBoundingClientRect();\n\n const maxTop = this.computedContainer.scrollHeight - height;\n const maxLeft = this.computedContainer.scrollWidth - width;\n const scrolledTop =\n (clientY - top - offsetHeight * offsetVertical) / (height - offsetHeight);\n const scrolledLeft =\n (clientX - left - offsetWidth * offsetHorizontal) / (width - offsetWidth);\n\n return [maxTop * scrolledTop, maxLeft * scrolledLeft];\n }\n}\n\nfunction getOffsetVertical({clientY}: MouseEvent, {top, height}: ClientRect): number {\n return (clientY - top) / height;\n}\n\nfunction getOffsetHorizontal({clientX}: MouseEvent, {left, width}: ClientRect): number {\n return (clientX - left) / width;\n}\n","import {Directive, ElementRef} from '@angular/core';\nimport {TUI_ELEMENT_REF} from '@taiga-ui/core/tokens';\n\n@Directive({\n selector: '[tuiScrollbarWrapper]',\n providers: [\n {\n provide: TUI_ELEMENT_REF,\n useExisting: ElementRef,\n },\n ],\n})\nexport class TuiScrollbarWrapperDirective {}\n","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {TuiLetModule} from '@taiga-ui/cdk';\n\nimport {TuiScrollControlsComponent} from './scroll-controls.component';\nimport {TuiScrollbarDirective} from './scrollbar.directive';\nimport {TuiScrollbarWrapperDirective} from './scrollbar-wrapper.directive';\n\n@NgModule({\n imports: [CommonModule, TuiLetModule],\n declarations: [\n TuiScrollbarDirective,\n TuiScrollbarWrapperDirective,\n TuiScrollControlsComponent,\n ],\n exports: [TuiScrollControlsComponent],\n})\nexport class TuiScrollControlsModule {}\n"]}
1
+ {"version":3,"sources":["../../../node_modules/tslib/tslib.es6.js","ng://@taiga-ui/core/components/scroll-controls/scroll-controls.component.ts","ng://@taiga-ui/core/components/scroll-controls/scrollbar.directive.ts","ng://@taiga-ui/core/components/scroll-controls/scrollbar-wrapper.directive.ts","ng://@taiga-ui/core/components/scroll-controls/scroll-controls.module.ts"],"names":["__assign","Object","assign","t","s","i","n","arguments","length","p","prototype","hasOwnProperty","call","apply","this","__decorate","decorators","target","key","desc","d","c","r","getOwnPropertyDescriptor","Reflect","decorate","defineProperty","__param","paramIndex","decorator","create","__read","o","m","Symbol","iterator","e","ar","next","done","push","value","error","TuiScrollControlsComponent","options","ngZone","documentRef","scrollRef","animationFrame$","mode$","_this","refresh$","pipe","throttleTime","map","scrollbars","startWith","distinctUntilChanged","a","b","tuiZoneOptimized","animation","_a","clientHeight","scrollHeight","clientWidth","scrollWidth","Math","ceil","Inject","args","TUI_ANIMATION_OPTIONS","NgZone","type","Document","DOCUMENT","ElementRef","Optional","TUI_SCROLL_REF","Observable","ANIMATION_FRAME","TUI_MODE","Component","selector","template","changeDetection","ChangeDetectionStrategy","OnPush","animations","tuiFadeIn","providers","MODE_PROVIDER","host","($.data-mode.attr)","TuiScrollbarDirective","renderer","destroy$","wrapper","container","windowRef","elementRef","viewportScroller","tuiScrollbar","nativeElement","mousedown$","typedFromEvent","mousemove$","mouseup$","mousedownWrapper$","merge","preventDefault","event","getScrolled","stopPropagation","switchMap","_b","clientY","top","height","rect","getBoundingClientRect","vertical","horizontal","clientX","left","width","getOffsetHorizontal","takeUntil","tuiZonefree","subscribe","scrollTop","scrollLeft","_c","getScrollPosition","x","y","setProperty","scrollToPosition","fromEvent","POLLING_TIME","setStyle","thumb","view","computedContainer","compensation","scrolled","scrollingElement","offsetVertical","offsetHorizontal","offsetHeight","offsetWidth","Renderer2","TuiDestroyService","TUI_ELEMENT_REF","Window","WINDOW","ViewportScroller","Input","Directive","TuiScrollbarWrapperDirective","provide","useExisting","TuiScrollControlsModule","NgModule","imports","CommonModule","TuiLetModule","declarations","exports"],"mappings":"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","sourcesContent":["/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\r\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\r\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\r\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\r\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\r\n var _, done = false;\r\n for (var i = decorators.length - 1; i >= 0; i--) {\r\n var context = {};\r\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\r\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\r\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\r\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\r\n if (kind === \"accessor\") {\r\n if (result === void 0) continue;\r\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\r\n if (_ = accept(result.get)) descriptor.get = _;\r\n if (_ = accept(result.set)) descriptor.set = _;\r\n if (_ = accept(result.init)) initializers.push(_);\r\n }\r\n else if (_ = accept(result)) {\r\n if (kind === \"field\") initializers.push(_);\r\n else descriptor[key] = _;\r\n }\r\n }\r\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\r\n done = true;\r\n};\r\n\r\nexport function __runInitializers(thisArg, initializers, value) {\r\n var useValue = arguments.length > 2;\r\n for (var i = 0; i < initializers.length; i++) {\r\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\r\n }\r\n return useValue ? value : void 0;\r\n};\r\n\r\nexport function __propKey(x) {\r\n return typeof x === \"symbol\" ? x : \"\".concat(x);\r\n};\r\n\r\nexport function __setFunctionName(f, name, prefix) {\r\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\r\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\r\n};\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n\r\nexport function __classPrivateFieldIn(state, receiver) {\r\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\r\n}\r\n","import {AnimationOptions} from '@angular/animations';\nimport {DOCUMENT} from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n Inject,\n NgZone,\n Optional,\n} from '@angular/core';\nimport {ANIMATION_FRAME} from '@ng-web-apis/common';\nimport {tuiZoneOptimized} from '@taiga-ui/cdk';\nimport {tuiFadeIn} from '@taiga-ui/core/animations';\nimport {MODE_PROVIDER} from '@taiga-ui/core/providers';\nimport {TUI_ANIMATION_OPTIONS, TUI_MODE, TUI_SCROLL_REF} from '@taiga-ui/core/tokens';\nimport {TuiBrightness} from '@taiga-ui/core/types';\nimport {Observable} from 'rxjs';\nimport {distinctUntilChanged, map, startWith, throttleTime} from 'rxjs/operators';\n\n// @dynamic\n@Component({\n selector: 'tui-scroll-controls',\n templateUrl: './scroll-controls.template.html',\n styleUrls: ['./scroll-controls.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n animations: [tuiFadeIn],\n providers: [MODE_PROVIDER],\n host: {\n '($.data-mode.attr)': 'mode$',\n },\n})\nexport class TuiScrollControlsComponent {\n readonly refresh$ = this.animationFrame$.pipe(\n throttleTime(300),\n map(() => this.scrollbars),\n startWith([false, false]),\n distinctUntilChanged((a, b) => a[0] === b[0] && a[1] === b[1]),\n tuiZoneOptimized(this.ngZone),\n );\n\n readonly animation = {\n value: '',\n ...this.options,\n } as const;\n\n constructor(\n @Inject(TUI_ANIMATION_OPTIONS) private readonly options: AnimationOptions,\n @Inject(NgZone) private readonly ngZone: NgZone,\n @Inject(DOCUMENT) private readonly documentRef: Document,\n @Optional()\n @Inject(TUI_SCROLL_REF)\n private readonly scrollRef: ElementRef<HTMLElement> | null,\n @Inject(ANIMATION_FRAME) private readonly animationFrame$: Observable<number>,\n @Inject(TUI_MODE) readonly mode$: Observable<TuiBrightness | null>,\n ) {}\n\n private get scrollbars(): [boolean, boolean] {\n const {clientHeight, scrollHeight, clientWidth, scrollWidth} = this.scrollRef\n ? this.scrollRef.nativeElement\n : this.documentRef.documentElement;\n\n return [\n Math.ceil((clientHeight / scrollHeight) * 100) < 100,\n Math.ceil((clientWidth / scrollWidth) * 100) < 100,\n ];\n }\n}\n","import {DOCUMENT, ViewportScroller} from '@angular/common';\nimport {\n Directive,\n ElementRef,\n Inject,\n Input,\n NgZone,\n Optional,\n Renderer2,\n} from '@angular/core';\nimport {ANIMATION_FRAME, WINDOW} from '@ng-web-apis/common';\nimport {\n POLLING_TIME,\n preventDefault,\n stopPropagation,\n TuiDestroyService,\n tuiZonefree,\n typedFromEvent,\n} from '@taiga-ui/cdk';\nimport {TUI_ELEMENT_REF, TUI_SCROLL_REF} from '@taiga-ui/core/tokens';\nimport {TuiOrientationT} from '@taiga-ui/core/types';\nimport {fromEvent, merge, Observable} from 'rxjs';\nimport {map, switchMap, takeUntil, throttleTime} from 'rxjs/operators';\n\nconst MIN_WIDTH = 24;\n\n// @dynamic\n@Directive({\n selector: '[tuiScrollbar]',\n providers: [TuiDestroyService],\n})\nexport class TuiScrollbarDirective {\n @Input()\n tuiScrollbar: TuiOrientationT = 'vertical';\n\n constructor(\n @Inject(NgZone) ngZone: NgZone,\n @Inject(Renderer2) renderer: Renderer2,\n @Inject(TuiDestroyService) destroy$: Observable<void>,\n @Inject(ANIMATION_FRAME) animationFrame$: Observable<number>,\n @Inject(TUI_ELEMENT_REF) private readonly wrapper: ElementRef<HTMLElement>,\n @Optional()\n @Inject(TUI_SCROLL_REF)\n private readonly container: ElementRef<HTMLElement> | null,\n @Inject(DOCUMENT) private readonly documentRef: Document,\n @Inject(WINDOW) private readonly windowRef: Window,\n @Inject(ElementRef) private readonly elementRef: ElementRef<HTMLElement>,\n @Inject(ViewportScroller) private readonly viewportScroller: ViewportScroller,\n ) {\n const {nativeElement} = this.elementRef;\n const mousedown$ = typedFromEvent(nativeElement, 'mousedown');\n const mousemove$ = typedFromEvent(this.documentRef, 'mousemove');\n const mouseup$ = typedFromEvent(this.documentRef, 'mouseup');\n const mousedownWrapper$ = typedFromEvent(wrapper.nativeElement, 'mousedown');\n\n merge(\n mousedownWrapper$.pipe(\n preventDefault(),\n map(event => this.getScrolled(event, 0.5, 0.5)),\n ),\n mousedown$.pipe(\n preventDefault(),\n stopPropagation(),\n switchMap(event => {\n const rect = nativeElement.getBoundingClientRect();\n const vertical = getOffsetVertical(event, rect);\n const horizontal = getOffsetHorizontal(event, rect);\n\n return mousemove$.pipe(\n map(event => this.getScrolled(event, vertical, horizontal)),\n takeUntil(mouseup$),\n );\n }),\n ),\n )\n .pipe(tuiZonefree(ngZone), takeUntil(destroy$))\n .subscribe(([scrollTop, scrollLeft]) => {\n const [x, y] = this.viewportScroller.getScrollPosition();\n\n if (!this.container) {\n this.viewportScroller.scrollToPosition([\n this.tuiScrollbar === 'vertical' ? x : scrollLeft,\n this.tuiScrollbar === 'vertical' ? scrollTop : y,\n ]);\n\n return;\n }\n\n if (this.tuiScrollbar === 'vertical') {\n renderer.setProperty(\n this.container.nativeElement,\n 'scrollTop',\n scrollTop,\n );\n } else {\n renderer.setProperty(\n this.container.nativeElement,\n 'scrollLeft',\n scrollLeft,\n );\n }\n });\n\n merge(\n fromEvent(\n this.container ? this.container.nativeElement : this.windowRef,\n 'scroll',\n ),\n animationFrame$.pipe(throttleTime(POLLING_TIME)),\n )\n .pipe(tuiZonefree(ngZone), takeUntil(destroy$))\n .subscribe(() => {\n if (this.tuiScrollbar === 'vertical') {\n renderer.setStyle(nativeElement, 'top', `${this.thumb * 100}%`);\n renderer.setStyle(nativeElement, 'height', `${this.view * 100}%`);\n } else {\n renderer.setStyle(nativeElement, 'left', `${this.thumb * 100}%`);\n renderer.setStyle(nativeElement, 'width', `${this.view * 100}%`);\n }\n });\n }\n\n private get scrolled(): number {\n const {\n scrollTop,\n scrollHeight,\n clientHeight,\n scrollLeft,\n scrollWidth,\n clientWidth,\n } = this.computedContainer;\n\n return this.tuiScrollbar === 'vertical'\n ? scrollTop / (scrollHeight - clientHeight)\n : scrollLeft / (scrollWidth - clientWidth);\n }\n\n private get compensation(): number {\n const {clientHeight, scrollHeight, clientWidth, scrollWidth} =\n this.computedContainer;\n\n if (\n ((clientHeight * clientHeight) / scrollHeight > MIN_WIDTH &&\n this.tuiScrollbar === 'vertical') ||\n ((clientWidth * clientWidth) / scrollWidth > MIN_WIDTH &&\n this.tuiScrollbar === 'horizontal')\n ) {\n return 0;\n }\n\n return this.tuiScrollbar === 'vertical'\n ? MIN_WIDTH / clientHeight\n : MIN_WIDTH / clientWidth;\n }\n\n private get thumb(): number {\n const compensation = this.compensation || this.view;\n\n return this.scrolled * (1 - compensation);\n }\n\n private get view(): number {\n const {clientHeight, scrollHeight, clientWidth, scrollWidth} =\n this.computedContainer;\n\n return this.tuiScrollbar === 'vertical'\n ? Math.ceil((clientHeight / scrollHeight) * 100) / 100\n : Math.ceil((clientWidth / scrollWidth) * 100) / 100;\n }\n\n private get computedContainer(): Element {\n return this.container\n ? this.container.nativeElement\n : (this.documentRef.scrollingElement as unknown as Element);\n }\n\n private getScrolled(\n {clientY, clientX}: MouseEvent,\n offsetVertical: number,\n offsetHorizontal: number,\n ): [number, number] {\n const {offsetHeight, offsetWidth} = this.elementRef.nativeElement;\n const {top, left, width, height} =\n this.wrapper.nativeElement.getBoundingClientRect();\n\n const maxTop = this.computedContainer.scrollHeight - height;\n const maxLeft = this.computedContainer.scrollWidth - width;\n const scrolledTop =\n (clientY - top - offsetHeight * offsetVertical) / (height - offsetHeight);\n const scrolledLeft =\n (clientX - left - offsetWidth * offsetHorizontal) / (width - offsetWidth);\n\n return [maxTop * scrolledTop, maxLeft * scrolledLeft];\n }\n}\n\nfunction getOffsetVertical({clientY}: MouseEvent, {top, height}: ClientRect): number {\n return (clientY - top) / height;\n}\n\nfunction getOffsetHorizontal({clientX}: MouseEvent, {left, width}: ClientRect): number {\n return (clientX - left) / width;\n}\n","import {Directive, ElementRef} from '@angular/core';\nimport {TUI_ELEMENT_REF} from '@taiga-ui/core/tokens';\n\n@Directive({\n selector: '[tuiScrollbarWrapper]',\n providers: [\n {\n provide: TUI_ELEMENT_REF,\n useExisting: ElementRef,\n },\n ],\n})\nexport class TuiScrollbarWrapperDirective {}\n","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {TuiLetModule} from '@taiga-ui/cdk';\n\nimport {TuiScrollControlsComponent} from './scroll-controls.component';\nimport {TuiScrollbarDirective} from './scrollbar.directive';\nimport {TuiScrollbarWrapperDirective} from './scrollbar-wrapper.directive';\n\n@NgModule({\n imports: [CommonModule, TuiLetModule],\n declarations: [\n TuiScrollbarDirective,\n TuiScrollbarWrapperDirective,\n TuiScrollControlsComponent,\n ],\n exports: [TuiScrollControlsComponent],\n})\nexport class TuiScrollControlsModule {}\n"]}
@@ -1 +1 @@
1
- {"__symbolic":"module","version":4,"metadata":{"TuiScrollControlsComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":20,"character":1},"arguments":[{"selector":"tui-scroll-controls","changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":24,"character":21},"member":"OnPush"},"animations":[{"__symbolic":"reference","module":"@taiga-ui/core/animations","name":"tuiFadeIn","line":25,"character":17}],"providers":[{"__symbolic":"reference","module":"@taiga-ui/core/providers","name":"MODE_PROVIDER","line":26,"character":16}],"host":{"($.data-mode.attr)":"mode$","$quoted$":["($.data-mode.attr)"]},"template":"<ng-container *tuiLet=\"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);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-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 .t-thumb:active,.t-bar_vertical:hover .t-thumb{width:.875rem}.t-bar_horizontal .t-thumb{bottom:0;height:.75rem;min-width:1.25rem}.t-bar_horizontal .t-thumb:active,.t-bar_horizontal:hover .t-thumb{height:.875rem}"]}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":46,"character":9},"arguments":[{"__symbolic":"reference","module":"@taiga-ui/core/tokens","name":"TUI_ANIMATION_OPTIONS","line":46,"character":16}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":47,"character":9},"arguments":[{"__symbolic":"reference","module":"@angular/core","name":"NgZone","line":47,"character":16}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":48,"character":9},"arguments":[{"__symbolic":"reference","module":"@angular/common","name":"DOCUMENT","line":48,"character":16}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":49,"character":9}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":50,"character":9},"arguments":[{"__symbolic":"reference","module":"@taiga-ui/core/tokens","name":"TUI_SCROLL_REF","line":50,"character":16}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":52,"character":9},"arguments":[{"__symbolic":"reference","module":"@ng-web-apis/common","name":"ANIMATION_FRAME","line":52,"character":16}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":53,"character":9},"arguments":[{"__symbolic":"reference","module":"@taiga-ui/core/tokens","name":"TUI_MODE","line":53,"character":16}]}]],"parameters":[{"__symbolic":"reference","module":"@angular/animations","name":"AnimationOptions","line":46,"character":65},{"__symbolic":"reference","module":"@angular/core","name":"NgZone","line":47,"character":49},{"__symbolic":"error","message":"Could not resolve type","line":48,"character":56,"context":{"typeName":"Document"},"module":"./scroll-controls.component"},{"__symbolic":"reference","name":"ElementRef","module":"@angular/core","arguments":[{"__symbolic":"error","message":"Could not resolve type","line":51,"character":47,"context":{"typeName":"HTMLElement"},"module":"./scroll-controls.component"}]},{"__symbolic":"reference","name":"Observable","module":"rxjs","arguments":[{"__symbolic":"reference","module":"@taiga-ui/core/types","name":"TuiBrightness","line":53,"character":53}]},{"__symbolic":"reference","name":"Observable","module":"rxjs","arguments":[{"__symbolic":"reference","module":"@taiga-ui/core/types","name":"TuiBrightness","line":53,"character":53}]}]}]}},"TuiScrollControlsModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":8,"character":1},"arguments":[{"imports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":9,"character":14},{"__symbolic":"reference","module":"@taiga-ui/cdk","name":"TuiLetModule","line":9,"character":28}],"declarations":[{"__symbolic":"reference","name":"TuiScrollbarDirective"},{"__symbolic":"reference","name":"ɵa"},{"__symbolic":"reference","name":"TuiScrollControlsComponent"}],"exports":[{"__symbolic":"reference","name":"TuiScrollControlsComponent"}]}]}],"members":{}},"TuiScrollbarDirective":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":27,"character":1},"arguments":[{"selector":"[tuiScrollbar]","providers":[{"__symbolic":"reference","module":"@taiga-ui/cdk","name":"TuiDestroyService","line":29,"character":16}]}]}],"members":{"tuiScrollbar":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":32,"character":5}}]}],"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":36,"character":9},"arguments":[{"__symbolic":"reference","module":"@angular/core","name":"NgZone","line":36,"character":16}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":37,"character":9},"arguments":[{"__symbolic":"reference","module":"@angular/core","name":"Renderer2","line":37,"character":16}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":38,"character":9},"arguments":[{"__symbolic":"reference","module":"@taiga-ui/cdk","name":"TuiDestroyService","line":38,"character":16}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":39,"character":9},"arguments":[{"__symbolic":"reference","module":"@ng-web-apis/common","name":"ANIMATION_FRAME","line":39,"character":16}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":40,"character":9},"arguments":[{"__symbolic":"reference","module":"@taiga-ui/core/tokens","name":"TUI_ELEMENT_REF","line":40,"character":16}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":41,"character":9}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":42,"character":9},"arguments":[{"__symbolic":"reference","module":"@taiga-ui/core/tokens","name":"TUI_SCROLL_REF","line":42,"character":16}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":44,"character":9},"arguments":[{"__symbolic":"reference","module":"@angular/common","name":"DOCUMENT","line":44,"character":16}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":45,"character":9},"arguments":[{"__symbolic":"reference","module":"@ng-web-apis/common","name":"WINDOW","line":45,"character":16}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":46,"character":9},"arguments":[{"__symbolic":"reference","name":"ElementRef","module":"@angular/core","arguments":[{"__symbolic":"error","message":"Could not resolve type","line":43,"character":47,"context":{"typeName":"HTMLElement"},"module":"./scrollbar.directive"}]}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":47,"character":9},"arguments":[{"__symbolic":"reference","module":"@angular/common","name":"ViewportScroller","line":47,"character":16}]}]],"parameters":[{"__symbolic":"reference","module":"@angular/core","name":"NgZone","line":36,"character":32},{"__symbolic":"reference","module":"@angular/core","name":"Renderer2","line":37,"character":37},{"__symbolic":"reference","name":"Observable","module":"rxjs","arguments":[{"__symbolic":"reference","name":"number"}]},{"__symbolic":"reference","name":"Observable","module":"rxjs","arguments":[{"__symbolic":"reference","name":"number"}]},{"__symbolic":"reference","name":"ElementRef","module":"@angular/core","arguments":[{"__symbolic":"error","message":"Could not resolve type","line":46,"character":68,"context":{"typeName":"HTMLElement"},"module":"./scrollbar.directive"}]},{"__symbolic":"reference","name":"ElementRef","module":"@angular/core","arguments":[{"__symbolic":"error","message":"Could not resolve type","line":46,"character":68,"context":{"typeName":"HTMLElement"},"module":"./scrollbar.directive"}]},{"__symbolic":"error","message":"Could not resolve type","line":44,"character":56,"context":{"typeName":"Document"},"module":"./scrollbar.directive"},{"__symbolic":"error","message":"Could not resolve type","line":45,"character":52,"context":{"typeName":"Window"},"module":"./scrollbar.directive"},{"__symbolic":"reference","name":"ElementRef","module":"@angular/core","arguments":[{"__symbolic":"error","message":"Could not resolve type","line":46,"character":68,"context":{"typeName":"HTMLElement"},"module":"./scrollbar.directive"}]},{"__symbolic":"reference","module":"@angular/common","name":"ViewportScroller","line":47,"character":69}]}],"getScrolled":[{"__symbolic":"method"}]}},"ɵa":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":3,"character":1},"arguments":[{"selector":"[tuiScrollbarWrapper]","providers":[{"provide":{"__symbolic":"reference","module":"@taiga-ui/core/tokens","name":"TUI_ELEMENT_REF","line":7,"character":21},"useExisting":{"__symbolic":"reference","module":"@angular/core","name":"ElementRef","line":8,"character":25}}]}]}],"members":{}}},"origins":{"TuiScrollControlsComponent":"./scroll-controls.component","TuiScrollControlsModule":"./scroll-controls.module","TuiScrollbarDirective":"./scrollbar.directive","ɵa":"./scrollbar-wrapper.directive"},"importAs":"@taiga-ui/core/components/scroll-controls"}
1
+ {"__symbolic":"module","version":4,"metadata":{"TuiScrollControlsComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":20,"character":1},"arguments":[{"selector":"tui-scroll-controls","changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":24,"character":21},"member":"OnPush"},"animations":[{"__symbolic":"reference","module":"@taiga-ui/core/animations","name":"tuiFadeIn","line":25,"character":17}],"providers":[{"__symbolic":"reference","module":"@taiga-ui/core/providers","name":"MODE_PROVIDER","line":26,"character":16}],"host":{"($.data-mode.attr)":"mode$","$quoted$":["($.data-mode.attr)"]},"template":"<ng-container *tuiLet=\"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-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 .t-thumb:active,.t-bar_vertical:hover .t-thumb{width:.875rem}.t-bar_horizontal .t-thumb{bottom:0;height:.75rem;min-width:1.25rem}.t-bar_horizontal .t-thumb:active,.t-bar_horizontal:hover .t-thumb{height:.875rem}"]}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":46,"character":9},"arguments":[{"__symbolic":"reference","module":"@taiga-ui/core/tokens","name":"TUI_ANIMATION_OPTIONS","line":46,"character":16}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":47,"character":9},"arguments":[{"__symbolic":"reference","module":"@angular/core","name":"NgZone","line":47,"character":16}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":48,"character":9},"arguments":[{"__symbolic":"reference","module":"@angular/common","name":"DOCUMENT","line":48,"character":16}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":49,"character":9}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":50,"character":9},"arguments":[{"__symbolic":"reference","module":"@taiga-ui/core/tokens","name":"TUI_SCROLL_REF","line":50,"character":16}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":52,"character":9},"arguments":[{"__symbolic":"reference","module":"@ng-web-apis/common","name":"ANIMATION_FRAME","line":52,"character":16}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":53,"character":9},"arguments":[{"__symbolic":"reference","module":"@taiga-ui/core/tokens","name":"TUI_MODE","line":53,"character":16}]}]],"parameters":[{"__symbolic":"reference","module":"@angular/animations","name":"AnimationOptions","line":46,"character":65},{"__symbolic":"reference","module":"@angular/core","name":"NgZone","line":47,"character":49},{"__symbolic":"error","message":"Could not resolve type","line":48,"character":56,"context":{"typeName":"Document"},"module":"./scroll-controls.component"},{"__symbolic":"reference","name":"ElementRef","module":"@angular/core","arguments":[{"__symbolic":"error","message":"Could not resolve type","line":51,"character":47,"context":{"typeName":"HTMLElement"},"module":"./scroll-controls.component"}]},{"__symbolic":"reference","name":"Observable","module":"rxjs","arguments":[{"__symbolic":"reference","module":"@taiga-ui/core/types","name":"TuiBrightness","line":53,"character":53}]},{"__symbolic":"reference","name":"Observable","module":"rxjs","arguments":[{"__symbolic":"reference","module":"@taiga-ui/core/types","name":"TuiBrightness","line":53,"character":53}]}]}]}},"TuiScrollControlsModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":8,"character":1},"arguments":[{"imports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":9,"character":14},{"__symbolic":"reference","module":"@taiga-ui/cdk","name":"TuiLetModule","line":9,"character":28}],"declarations":[{"__symbolic":"reference","name":"TuiScrollbarDirective"},{"__symbolic":"reference","name":"ɵa"},{"__symbolic":"reference","name":"TuiScrollControlsComponent"}],"exports":[{"__symbolic":"reference","name":"TuiScrollControlsComponent"}]}]}],"members":{}},"TuiScrollbarDirective":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":27,"character":1},"arguments":[{"selector":"[tuiScrollbar]","providers":[{"__symbolic":"reference","module":"@taiga-ui/cdk","name":"TuiDestroyService","line":29,"character":16}]}]}],"members":{"tuiScrollbar":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":32,"character":5}}]}],"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":36,"character":9},"arguments":[{"__symbolic":"reference","module":"@angular/core","name":"NgZone","line":36,"character":16}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":37,"character":9},"arguments":[{"__symbolic":"reference","module":"@angular/core","name":"Renderer2","line":37,"character":16}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":38,"character":9},"arguments":[{"__symbolic":"reference","module":"@taiga-ui/cdk","name":"TuiDestroyService","line":38,"character":16}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":39,"character":9},"arguments":[{"__symbolic":"reference","module":"@ng-web-apis/common","name":"ANIMATION_FRAME","line":39,"character":16}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":40,"character":9},"arguments":[{"__symbolic":"reference","module":"@taiga-ui/core/tokens","name":"TUI_ELEMENT_REF","line":40,"character":16}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":41,"character":9}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":42,"character":9},"arguments":[{"__symbolic":"reference","module":"@taiga-ui/core/tokens","name":"TUI_SCROLL_REF","line":42,"character":16}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":44,"character":9},"arguments":[{"__symbolic":"reference","module":"@angular/common","name":"DOCUMENT","line":44,"character":16}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":45,"character":9},"arguments":[{"__symbolic":"reference","module":"@ng-web-apis/common","name":"WINDOW","line":45,"character":16}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":46,"character":9},"arguments":[{"__symbolic":"reference","name":"ElementRef","module":"@angular/core","arguments":[{"__symbolic":"error","message":"Could not resolve type","line":43,"character":47,"context":{"typeName":"HTMLElement"},"module":"./scrollbar.directive"}]}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":47,"character":9},"arguments":[{"__symbolic":"reference","module":"@angular/common","name":"ViewportScroller","line":47,"character":16}]}]],"parameters":[{"__symbolic":"reference","module":"@angular/core","name":"NgZone","line":36,"character":32},{"__symbolic":"reference","module":"@angular/core","name":"Renderer2","line":37,"character":37},{"__symbolic":"reference","name":"Observable","module":"rxjs","arguments":[{"__symbolic":"reference","name":"number"}]},{"__symbolic":"reference","name":"Observable","module":"rxjs","arguments":[{"__symbolic":"reference","name":"number"}]},{"__symbolic":"reference","name":"ElementRef","module":"@angular/core","arguments":[{"__symbolic":"error","message":"Could not resolve type","line":46,"character":68,"context":{"typeName":"HTMLElement"},"module":"./scrollbar.directive"}]},{"__symbolic":"reference","name":"ElementRef","module":"@angular/core","arguments":[{"__symbolic":"error","message":"Could not resolve type","line":46,"character":68,"context":{"typeName":"HTMLElement"},"module":"./scrollbar.directive"}]},{"__symbolic":"error","message":"Could not resolve type","line":44,"character":56,"context":{"typeName":"Document"},"module":"./scrollbar.directive"},{"__symbolic":"error","message":"Could not resolve type","line":45,"character":52,"context":{"typeName":"Window"},"module":"./scrollbar.directive"},{"__symbolic":"reference","name":"ElementRef","module":"@angular/core","arguments":[{"__symbolic":"error","message":"Could not resolve type","line":46,"character":68,"context":{"typeName":"HTMLElement"},"module":"./scrollbar.directive"}]},{"__symbolic":"reference","module":"@angular/common","name":"ViewportScroller","line":47,"character":69}]}],"getScrolled":[{"__symbolic":"method"}]}},"ɵa":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":3,"character":1},"arguments":[{"selector":"[tuiScrollbarWrapper]","providers":[{"provide":{"__symbolic":"reference","module":"@taiga-ui/core/tokens","name":"TUI_ELEMENT_REF","line":7,"character":21},"useExisting":{"__symbolic":"reference","module":"@angular/core","name":"ElementRef","line":8,"character":25}}]}]}],"members":{}}},"origins":{"TuiScrollControlsComponent":"./scroll-controls.component","TuiScrollControlsModule":"./scroll-controls.module","TuiScrollbarDirective":"./scrollbar.directive","ɵa":"./scrollbar-wrapper.directive"},"importAs":"@taiga-ui/core/components/scroll-controls"}
@@ -1 +1 @@
1
- export declare const VERSION = "2.81.0";
1
+ export declare const VERSION = "2.83.0";
@@ -48,7 +48,7 @@ TuiScrollControlsComponent = __decorate([
48
48
  host: {
49
49
  '($.data-mode.attr)': 'mode$',
50
50
  },
51
- styles: [":host{position:-webkit-sticky;position:sticky;top:0;left:0;z-index:1;min-width:calc(100% - 1px);min-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-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 .t-thumb:active,.t-bar_vertical:hover .t-thumb{width:.875rem}.t-bar_horizontal .t-thumb{bottom:0;height:.75rem;min-width:1.25rem}.t-bar_horizontal .t-thumb:active,.t-bar_horizontal:hover .t-thumb{height:.875rem}"]
51
+ 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-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 .t-thumb:active,.t-bar_vertical:hover .t-thumb{width:.875rem}.t-bar_horizontal .t-thumb{bottom:0;height:.75rem;min-width:1.25rem}.t-bar_horizontal .t-thumb:active,.t-bar_horizontal:hover .t-thumb{height:.875rem}"]
52
52
  }),
53
53
  __param(0, Inject(TUI_ANIMATION_OPTIONS)),
54
54
  __param(1, Inject(NgZone)),
@@ -52,7 +52,7 @@ var TuiScrollControlsComponent = /** @class */ (function () {
52
52
  host: {
53
53
  '($.data-mode.attr)': 'mode$',
54
54
  },
55
- styles: [":host{position:-webkit-sticky;position:sticky;top:0;left:0;z-index:1;min-width:calc(100% - 1px);min-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-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 .t-thumb:active,.t-bar_vertical:hover .t-thumb{width:.875rem}.t-bar_horizontal .t-thumb{bottom:0;height:.75rem;min-width:1.25rem}.t-bar_horizontal .t-thumb:active,.t-bar_horizontal:hover .t-thumb{height:.875rem}"]
55
+ 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-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 .t-thumb:active,.t-bar_vertical:hover .t-thumb{width:.875rem}.t-bar_horizontal .t-thumb{bottom:0;height:.75rem;min-width:1.25rem}.t-bar_horizontal .t-thumb:active,.t-bar_horizontal:hover .t-thumb{height:.875rem}"]
56
56
  }),
57
57
  __param(0, Inject(TUI_ANIMATION_OPTIONS)),
58
58
  __param(1, Inject(NgZone)),
@@ -49,7 +49,7 @@ TuiScrollControlsComponent = __decorate([
49
49
  host: {
50
50
  '($.data-mode.attr)': 'mode$',
51
51
  },
52
- styles: [":host{position:-webkit-sticky;position:sticky;top:0;left:0;z-index:1;min-width:calc(100% - 1px);min-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-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 .t-thumb:active,.t-bar_vertical:hover .t-thumb{width:.875rem}.t-bar_horizontal .t-thumb{bottom:0;height:.75rem;min-width:1.25rem}.t-bar_horizontal .t-thumb:active,.t-bar_horizontal:hover .t-thumb{height:.875rem}"]
52
+ 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-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 .t-thumb:active,.t-bar_vertical:hover .t-thumb{width:.875rem}.t-bar_horizontal .t-thumb{bottom:0;height:.75rem;min-width:1.25rem}.t-bar_horizontal .t-thumb:active,.t-bar_horizontal:hover .t-thumb{height:.875rem}"]
53
53
  }),
54
54
  __param(0, Inject(TUI_ANIMATION_OPTIONS)),
55
55
  __param(1, Inject(NgZone)),
@@ -53,7 +53,7 @@ var TuiScrollControlsComponent = /** @class */ (function () {
53
53
  host: {
54
54
  '($.data-mode.attr)': 'mode$',
55
55
  },
56
- styles: [":host{position:-webkit-sticky;position:sticky;top:0;left:0;z-index:1;min-width:calc(100% - 1px);min-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-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 .t-thumb:active,.t-bar_vertical:hover .t-thumb{width:.875rem}.t-bar_horizontal .t-thumb{bottom:0;height:.75rem;min-width:1.25rem}.t-bar_horizontal .t-thumb:active,.t-bar_horizontal:hover .t-thumb{height:.875rem}"]
56
+ 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-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 .t-thumb:active,.t-bar_vertical:hover .t-thumb{width:.875rem}.t-bar_horizontal .t-thumb{bottom:0;height:.75rem;min-width:1.25rem}.t-bar_horizontal .t-thumb:active,.t-bar_horizontal:hover .t-thumb{height:.875rem}"]
57
57
  }),
58
58
  __param(0, Inject(TUI_ANIMATION_OPTIONS)),
59
59
  __param(1, Inject(NgZone)),
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@taiga-ui/core",
3
- "version": "2.81.0",
3
+ "version": "2.83.0",
4
4
  "description": "Core library for creating Angular components and applications using Taiga UI",
5
5
  "keywords": [
6
6
  "angular",
@@ -15,7 +15,7 @@
15
15
  "repository": "https://github.com/tinkoff/taiga-ui",
16
16
  "license": "Apache-2.0",
17
17
  "dependencies": {
18
- "@taiga-ui/i18n": "^2.81.0",
18
+ "@taiga-ui/i18n": "^2.83.0",
19
19
  "tslib": "^1.10.0"
20
20
  },
21
21
  "peerDependencies": {
@@ -27,8 +27,8 @@
27
27
  "@angular/router": ">=9.0.0",
28
28
  "@ng-web-apis/common": ">=1.12.1 < 2",
29
29
  "@ng-web-apis/mutation-observer": ">=1.1.0 < 2",
30
- "@taiga-ui/cdk": ">=2.81.0",
31
- "@taiga-ui/i18n": ">=2.81.0",
30
+ "@taiga-ui/cdk": ">=2.83.0",
31
+ "@taiga-ui/i18n": ">=2.83.0",
32
32
  "@tinkoff/ng-event-plugins": ">=2.3.2",
33
33
  "@tinkoff/ng-polymorpheus": ">=3.1.12 < 4",
34
34
  "rxjs": ">=6.0.0"