@taiga-ui/addon-mobile 2.92.0 → 2.93.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.
@@ -1,4 +1,4 @@
1
- import { ElementRef } from '@angular/core';
1
+ import { ElementRef, NgZone } from '@angular/core';
2
2
  import { TuiContextWithImplicit, TuiHandler } from '@taiga-ui/cdk';
3
3
  import { PolymorpheusContent } from '@tinkoff/ng-polymorpheus';
4
4
  import { Observable } from 'rxjs';
@@ -10,5 +10,5 @@ export declare class TuiPullToRefreshComponent {
10
10
  styleHandler: TuiHandler<number, Record<string, any> | null>;
11
11
  readonly pulled: Observable<unknown>;
12
12
  readonly dropped$: Observable<boolean>;
13
- constructor(destroy$: Observable<unknown>, { nativeElement }: ElementRef<HTMLElement>, isIOS: boolean, threshold: number, component: PolymorpheusContent<TuiContextWithImplicit<number>>, pulling$: Observable<number>);
13
+ constructor(ngZone: NgZone, destroy$: Observable<unknown>, { nativeElement }: ElementRef<HTMLElement>, isIOS: boolean, threshold: number, component: PolymorpheusContent<TuiContextWithImplicit<number>>, pulling$: Observable<number>);
14
14
  }
@@ -1 +1 @@
1
- {"__symbolic":"module","version":4,"metadata":{"TuiMobileLoaderAndroidComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":11,"character":1},"arguments":[{"selector":"tui-mobile-android-loader","changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":15,"character":21},"member":"OnPush"},"template":"<div class=\"t-wrapper\">\n <svg\n *ngIf=\"percent !== 100; else loading\"\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n [attr.transform]=\"transform\"\n [style.opacity]=\"opacity\"\n >\n <defs>\n <mask id=\"mask-1\">\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M21 12C21 7.03 16.97 3 12 3C7.03 3 3 7.03 3 12C3 16.97 7.03 21 12 21C14.06 21 15.96 20.3 17.48 19.14L16.06 17.7C14.91 18.51 13.51 19 12 19C8.13 19 5 15.87 5 12C5 8.13 8.13 5 12 5C15.87 5 19 8.13 19 12H16L20 16L24 12H21Z\"\n fill=\"white\"\n />\n </mask>\n </defs>\n <g mask=\"url(#mask-1)\">\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M21 12C21 7.03 16.97 3 12 3C7.03 3 3 7.03 3 12C3 16.97 7.03 21 12 21C14.06 21 15.96 20.3 17.48 19.14L16.06 17.7C14.91 18.51 13.51 19 12 19C8.13 19 5 15.87 5 12C5 8.13 8.13 5 12 5C15.87 5 19 8.13 19 12H16L20 16L24 12H21Z\"\n fill=\"black\"\n />\n </g>\n </svg>\n</div>\n<ng-template #loading>\n <svg\n viewBox=\"0 0 100 100\"\n xmlns=\"http://www.w3.org/2000/svg\"\n class=\"t-loading\"\n >\n <circle\n cx=\"50\"\n cy=\"50\"\n r=\"50\"\n stroke-dasharray=\"314\"\n class=\"t-circle\"\n ></circle>\n </svg>\n</ng-template>\n","styles":[":host{transition-property:opacity;transition-duration:var(--tui-duration,300ms);transition-timing-function:ease-in-out;position:-webkit-sticky;position:sticky;top:0;z-index:1;display:block;height:0;opacity:0}:host._visible{opacity:1}:host._dropped{transition:transform var(--tui-duration) cubic-bezier(.4,0,.2,1),opacity var(--tui-duration) var(--tui-duration)}.t-wrapper{box-shadow:0 .5rem 1rem rgba(0,0,0,.16);position:absolute;top:-2.5rem;left:50%;display:flex;height:2.25rem;width:2.25rem;background-color:var(--tui-secondary);border-radius:6.25rem;align-items:center;justify-content:center;margin-left:-1.125rem}.t-loading{display:block;width:1rem;border-radius:100%;animation:3s linear infinite tuiLoaderRotate}.t-circle{fill:none;stroke:var(--tui-text-01);stroke-width:1.5rem;animation:3s linear infinite tuiLoaderDashOffset}@keyframes tuiLoaderDashOffset{0%,100%{stroke-dashoffset:-66}50%{stroke-dashoffset:-314}}@keyframes tuiLoaderRotate{0%{transform:rotate(0)}50%{transform:rotate(1turn)}100%{transform:rotate(3turn)}}"]}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":19,"character":9},"arguments":[{"__symbolic":"reference","module":"@tinkoff/ng-polymorpheus","name":"POLYMORPHEUS_CONTEXT","line":19,"character":16}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":21,"character":9},"arguments":[{"__symbolic":"reference","name":"TUI_PULL_TO_REFRESH_THRESHOLD"}]}]],"parameters":[{"__symbolic":"reference","name":"TuiContextWithImplicit","module":"@taiga-ui/cdk","arguments":[{"__symbolic":"reference","name":"number"}]},{"__symbolic":"reference","name":"number"}]}],"percent":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":33,"character":5},"arguments":["class._visible"]}]}],"dropped":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":42,"character":5},"arguments":["class._dropped"]}]}],"hostTransform":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":50,"character":5},"arguments":["style.transform"]}]}]}},"TUI_ANDROID_LOADER":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@tinkoff/ng-polymorpheus","name":"PolymorpheusComponent","line":56,"character":38},"arguments":[{"__symbolic":"reference","name":"TuiMobileLoaderAndroidComponent"}]},"TuiMobileLoaderIOSComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":9,"character":1},"arguments":[{"selector":"tui-mobile-ios-loader","changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":13,"character":21},"member":"OnPush"},"template":"<svg\n width=\"36\"\n height=\"36\"\n xmlns=\"http://www.w3.org/2000/svg\"\n xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n viewBox=\"0 0 100 100\"\n preserveAspectRatio=\"xMidYMid\"\n>\n <ng-container *tuiRepeatTimes=\"let index of steps\">\n <g\n *ngIf=\"isShown(index)\"\n [attr.transform]=\"calculateTransform(index)\"\n >\n <rect\n x=\"47\"\n y=\"22\"\n rx=\"7.05\"\n ry=\"3.3\"\n width=\"6\"\n height=\"16\"\n fill=\"#c7c9cc\"\n >\n <animate\n *ngIf=\"finished\"\n attributeName=\"opacity\"\n values=\"1;0\"\n keyTimes=\"0;1\"\n dur=\"1s\"\n repeatCount=\"indefinite\"\n [attr.begin]=\"calculateAnimationBegin(index)\"\n ></animate>\n </rect>\n </g>\n </ng-container>\n</svg>\n","styles":[":host{position:absolute;top:-.5rem;left:50%;margin-left:-1.125rem}"]}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":19,"character":9},"arguments":[{"__symbolic":"reference","module":"@tinkoff/ng-polymorpheus","name":"POLYMORPHEUS_CONTEXT","line":19,"character":16}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":21,"character":9},"arguments":[{"__symbolic":"reference","name":"TUI_PULL_TO_REFRESH_THRESHOLD"}]}]],"parameters":[{"__symbolic":"reference","name":"TuiContextWithImplicit","module":"@taiga-ui/cdk","arguments":[{"__symbolic":"reference","name":"number"}]},{"__symbolic":"reference","name":"number"}]}],"isShown":[{"__symbolic":"method"}],"calculateTransform":[{"__symbolic":"method"}],"calculateAnimationBegin":[{"__symbolic":"method"}]}},"TUI_IOS_LOADER":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@tinkoff/ng-polymorpheus","name":"PolymorpheusComponent","line":45,"character":34},"arguments":[{"__symbolic":"reference","name":"TuiMobileLoaderIOSComponent"}]},"TuiPullToRefreshComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":26,"character":1},"arguments":[{"selector":"tui-pull-to-refresh","changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":30,"character":21},"member":"OnPush"},"providers":[{"__symbolic":"reference","name":"TuiPullToRefreshService"},{"__symbolic":"reference","module":"@taiga-ui/cdk","name":"TuiDestroyService","line":31,"character":41}],"template":"<div\n polymorpheus-outlet\n [content]=\"component\"\n [context]=\"{$implicit: (pulling$ | async) || 0}\"\n></div>\n\n<div\n [class.t-drop]=\"dropped$ | async\"\n [ngStyle]=\"styleHandler((pulling$ | async) || 0)\"\n>\n <ng-content></ng-content>\n</div>\n","styles":[".t-drop{transition:all var(--tui-duration) cubic-bezier(.4,0,.2,1)}"]}]}],"members":{"styleHandler":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":34,"character":5}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@taiga-ui/cdk","name":"tuiDefaultProp","line":35,"character":5}}]}],"pulled":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":40,"character":5}}]}],"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":51,"character":9},"arguments":[{"__symbolic":"reference","module":"@taiga-ui/cdk","name":"TuiDestroyService","line":51,"character":16}]},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Self","line":51,"character":36}}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":52,"character":9},"arguments":[{"__symbolic":"reference","module":"@taiga-ui/core","name":"TUI_SCROLL_REF","line":52,"character":16}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":53,"character":9},"arguments":[{"__symbolic":"reference","module":"@taiga-ui/cdk","name":"TUI_IS_IOS","line":53,"character":16}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":54,"character":9},"arguments":[{"__symbolic":"reference","name":"TUI_PULL_TO_REFRESH_THRESHOLD"}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":55,"character":9},"arguments":[{"__symbolic":"reference","name":"TUI_PULL_TO_REFRESH_COMPONENT"}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":57,"character":9},"arguments":[{"__symbolic":"reference","name":"TuiPullToRefreshService"}]}]],"parameters":[{"__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":52,"character":60,"context":{"typeName":"HTMLElement"},"module":"./pull-to-refresh.component"}]},{"__symbolic":"reference","name":"boolean"},{"__symbolic":"reference","name":"number"},{"__symbolic":"reference","name":"PolymorpheusContent","module":"@tinkoff/ng-polymorpheus","arguments":[{"__symbolic":"reference","name":"TuiContextWithImplicit","module":"@taiga-ui/cdk","arguments":[{"__symbolic":"reference","name":"number"}]}]},{"__symbolic":"reference","name":"Observable","module":"rxjs","arguments":[{"__symbolic":"reference","name":"number"}]}]}]}},"TuiPullToRefreshModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":10,"character":1},"arguments":[{"imports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":11,"character":14},{"__symbolic":"reference","module":"@taiga-ui/core","name":"TuiSvgModule","line":11,"character":28},{"__symbolic":"reference","module":"@taiga-ui/cdk","name":"TuiRepeatTimesModule","line":11,"character":42},{"__symbolic":"reference","module":"@tinkoff/ng-polymorpheus","name":"PolymorpheusModule","line":11,"character":64}],"declarations":[{"__symbolic":"reference","name":"TuiPullToRefreshComponent"},{"__symbolic":"reference","name":"TuiMobileLoaderAndroidComponent"},{"__symbolic":"reference","name":"TuiMobileLoaderIOSComponent"}],"exports":[{"__symbolic":"reference","name":"TuiPullToRefreshComponent"}]}]}],"members":{}},"TUI_PULL_TO_REFRESH_LOADED":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectionToken","line":11,"character":46},"arguments":["[TUI_PULL_TO_REFRESH_LOADED]",{"__symbolic":"error","message":"Lambda not supported","line":14,"character":17,"module":"./pull-to-refresh.providers"}]},"TUI_PULL_TO_REFRESH_COMPONENT":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectionToken","line":21,"character":49},"arguments":["[TUI_PULL_TO_REFRESH_COMPONENT]",{"__symbolic":"error","message":"Lambda not supported","line":24,"character":13,"module":"./pull-to-refresh.providers"}]},"TUI_LOADED":{"__symbolic":"reference","name":"TUI_PULL_TO_REFRESH_LOADED"},"MICRO_OFFSET":{"__symbolic":"binop","operator":"**","left":10,"right":-6},"TuiPullToRefreshService":{"__symbolic":"class","extends":{"__symbolic":"reference","module":"rxjs","name":"Observable","line":28,"character":45},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":27,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":73,"character":9},"arguments":[{"__symbolic":"reference","module":"@angular/core","name":"ElementRef","line":73,"character":16}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":74,"character":9},"arguments":[{"__symbolic":"reference","module":"@taiga-ui/core","name":"TUI_SCROLL_REF","line":74,"character":16}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":75,"character":9},"arguments":[{"__symbolic":"reference","name":"TUI_PULL_TO_REFRESH_LOADED"}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":76,"character":9},"arguments":[{"__symbolic":"reference","name":"TUI_PULL_TO_REFRESH_THRESHOLD"}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":77,"character":9},"arguments":[{"__symbolic":"reference","name":"TUI_PULL_TO_REFRESH_COMPONENT"}]}]],"parameters":[{"__symbolic":"reference","name":"ElementRef","module":"@angular/core","arguments":[{"__symbolic":"error","message":"Could not resolve type","line":74,"character":71,"context":{"typeName":"HTMLElement"},"module":"./pull-to-refresh.service"}]},{"__symbolic":"reference","name":"ElementRef","module":"@angular/core","arguments":[{"__symbolic":"error","message":"Could not resolve type","line":74,"character":71,"context":{"typeName":"HTMLElement"},"module":"./pull-to-refresh.service"}]},{"__symbolic":"reference","name":"Observable","module":"rxjs","arguments":[{"__symbolic":"error","message":"Expression form not supported","line":75,"character":81,"module":"./pull-to-refresh.service"}]},{"__symbolic":"reference","name":"number"},{"__symbolic":"error","message":"Expression form not supported","line":77,"character":58,"module":"./pull-to-refresh.service"}]}]}},"TUI_PULL_TO_REFRESH_THRESHOLD":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectionToken","line":6,"character":49},"arguments":["[TUI_PULL_TO_REFRESH_THRESHOLD]",{"__symbolic":"error","message":"Lambda not supported","line":9,"character":17,"module":"./pull-to-refresh.tokens"}]}},"origins":{"TuiMobileLoaderAndroidComponent":"./loader-android/loader-android.component","TUI_ANDROID_LOADER":"./loader-android/loader-android.component","TuiMobileLoaderIOSComponent":"./loader-ios/loader-ios.component","TUI_IOS_LOADER":"./loader-ios/loader-ios.component","TuiPullToRefreshComponent":"./pull-to-refresh.component","TuiPullToRefreshModule":"./pull-to-refresh.module","TUI_PULL_TO_REFRESH_LOADED":"./pull-to-refresh.providers","TUI_PULL_TO_REFRESH_COMPONENT":"./pull-to-refresh.providers","TUI_LOADED":"./pull-to-refresh.providers","MICRO_OFFSET":"./pull-to-refresh.service","TuiPullToRefreshService":"./pull-to-refresh.service","TUI_PULL_TO_REFRESH_THRESHOLD":"./pull-to-refresh.tokens"},"importAs":"@taiga-ui/addon-mobile/components/pull-to-refresh"}
1
+ {"__symbolic":"module","version":4,"metadata":{"TuiMobileLoaderAndroidComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":11,"character":1},"arguments":[{"selector":"tui-mobile-android-loader","changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":15,"character":21},"member":"OnPush"},"template":"<div class=\"t-wrapper\">\n <svg\n *ngIf=\"percent !== 100; else loading\"\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n [attr.transform]=\"transform\"\n [style.opacity]=\"opacity\"\n >\n <defs>\n <mask id=\"mask-1\">\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M21 12C21 7.03 16.97 3 12 3C7.03 3 3 7.03 3 12C3 16.97 7.03 21 12 21C14.06 21 15.96 20.3 17.48 19.14L16.06 17.7C14.91 18.51 13.51 19 12 19C8.13 19 5 15.87 5 12C5 8.13 8.13 5 12 5C15.87 5 19 8.13 19 12H16L20 16L24 12H21Z\"\n fill=\"white\"\n />\n </mask>\n </defs>\n <g mask=\"url(#mask-1)\">\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M21 12C21 7.03 16.97 3 12 3C7.03 3 3 7.03 3 12C3 16.97 7.03 21 12 21C14.06 21 15.96 20.3 17.48 19.14L16.06 17.7C14.91 18.51 13.51 19 12 19C8.13 19 5 15.87 5 12C5 8.13 8.13 5 12 5C15.87 5 19 8.13 19 12H16L20 16L24 12H21Z\"\n fill=\"black\"\n />\n </g>\n </svg>\n</div>\n<ng-template #loading>\n <svg\n viewBox=\"0 0 100 100\"\n xmlns=\"http://www.w3.org/2000/svg\"\n class=\"t-loading\"\n >\n <circle\n cx=\"50\"\n cy=\"50\"\n r=\"50\"\n stroke-dasharray=\"314\"\n class=\"t-circle\"\n ></circle>\n </svg>\n</ng-template>\n","styles":[":host{transition-property:opacity;transition-duration:var(--tui-duration,300ms);transition-timing-function:ease-in-out;position:-webkit-sticky;position:sticky;top:0;z-index:1;display:block;height:0;opacity:0}:host._visible{opacity:1}:host._dropped{transition:transform var(--tui-duration) cubic-bezier(.4,0,.2,1),opacity var(--tui-duration) var(--tui-duration)}.t-wrapper{box-shadow:0 .5rem 1rem rgba(0,0,0,.16);position:absolute;top:-2.5rem;left:50%;display:flex;height:2.25rem;width:2.25rem;background-color:var(--tui-secondary);border-radius:6.25rem;align-items:center;justify-content:center;margin-left:-1.125rem}.t-loading{display:block;width:1rem;border-radius:100%;animation:3s linear infinite tuiLoaderRotate}.t-circle{fill:none;stroke:var(--tui-text-01);stroke-width:1.5rem;animation:3s linear infinite tuiLoaderDashOffset}@keyframes tuiLoaderDashOffset{0%,100%{stroke-dashoffset:-66}50%{stroke-dashoffset:-314}}@keyframes tuiLoaderRotate{0%{transform:rotate(0)}50%{transform:rotate(1turn)}100%{transform:rotate(3turn)}}"]}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":19,"character":9},"arguments":[{"__symbolic":"reference","module":"@tinkoff/ng-polymorpheus","name":"POLYMORPHEUS_CONTEXT","line":19,"character":16}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":21,"character":9},"arguments":[{"__symbolic":"reference","name":"TUI_PULL_TO_REFRESH_THRESHOLD"}]}]],"parameters":[{"__symbolic":"reference","name":"TuiContextWithImplicit","module":"@taiga-ui/cdk","arguments":[{"__symbolic":"reference","name":"number"}]},{"__symbolic":"reference","name":"number"}]}],"percent":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":33,"character":5},"arguments":["class._visible"]}]}],"dropped":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":42,"character":5},"arguments":["class._dropped"]}]}],"hostTransform":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":50,"character":5},"arguments":["style.transform"]}]}]}},"TUI_ANDROID_LOADER":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@tinkoff/ng-polymorpheus","name":"PolymorpheusComponent","line":56,"character":38},"arguments":[{"__symbolic":"reference","name":"TuiMobileLoaderAndroidComponent"}]},"TuiMobileLoaderIOSComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":9,"character":1},"arguments":[{"selector":"tui-mobile-ios-loader","changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":13,"character":21},"member":"OnPush"},"template":"<svg\n width=\"36\"\n height=\"36\"\n xmlns=\"http://www.w3.org/2000/svg\"\n xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n viewBox=\"0 0 100 100\"\n preserveAspectRatio=\"xMidYMid\"\n>\n <ng-container *tuiRepeatTimes=\"let index of steps\">\n <g\n *ngIf=\"isShown(index)\"\n [attr.transform]=\"calculateTransform(index)\"\n >\n <rect\n x=\"47\"\n y=\"22\"\n rx=\"7.05\"\n ry=\"3.3\"\n width=\"6\"\n height=\"16\"\n fill=\"#c7c9cc\"\n >\n <animate\n *ngIf=\"finished\"\n attributeName=\"opacity\"\n values=\"1;0\"\n keyTimes=\"0;1\"\n dur=\"1s\"\n repeatCount=\"indefinite\"\n [attr.begin]=\"calculateAnimationBegin(index)\"\n ></animate>\n </rect>\n </g>\n </ng-container>\n</svg>\n","styles":[":host{position:absolute;top:-.5rem;left:50%;margin-left:-1.125rem}"]}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":19,"character":9},"arguments":[{"__symbolic":"reference","module":"@tinkoff/ng-polymorpheus","name":"POLYMORPHEUS_CONTEXT","line":19,"character":16}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":21,"character":9},"arguments":[{"__symbolic":"reference","name":"TUI_PULL_TO_REFRESH_THRESHOLD"}]}]],"parameters":[{"__symbolic":"reference","name":"TuiContextWithImplicit","module":"@taiga-ui/cdk","arguments":[{"__symbolic":"reference","name":"number"}]},{"__symbolic":"reference","name":"number"}]}],"isShown":[{"__symbolic":"method"}],"calculateTransform":[{"__symbolic":"method"}],"calculateAnimationBegin":[{"__symbolic":"method"}]}},"TUI_IOS_LOADER":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@tinkoff/ng-polymorpheus","name":"PolymorpheusComponent","line":45,"character":34},"arguments":[{"__symbolic":"reference","name":"TuiMobileLoaderIOSComponent"}]},"TuiPullToRefreshComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":28,"character":1},"arguments":[{"selector":"tui-pull-to-refresh","changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":32,"character":21},"member":"OnPush"},"providers":[{"__symbolic":"reference","name":"TuiPullToRefreshService"},{"__symbolic":"reference","module":"@taiga-ui/cdk","name":"TuiDestroyService","line":33,"character":41}],"template":"<div\n polymorpheus-outlet\n [content]=\"component\"\n [context]=\"{$implicit: (pulling$ | async) || 0}\"\n></div>\n\n<div\n [class.t-drop]=\"dropped$ | async\"\n [ngStyle]=\"styleHandler((pulling$ | async) || 0)\"\n>\n <ng-content></ng-content>\n</div>\n","styles":[".t-drop{transition:all var(--tui-duration) cubic-bezier(.4,0,.2,1)}"]}]}],"members":{"styleHandler":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":36,"character":5}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@taiga-ui/cdk","name":"tuiDefaultProp","line":37,"character":5}}]}],"pulled":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":42,"character":5}}]}],"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":53,"character":9},"arguments":[{"__symbolic":"reference","module":"@angular/core","name":"NgZone","line":53,"character":16}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":54,"character":9},"arguments":[{"__symbolic":"reference","module":"@taiga-ui/cdk","name":"TuiDestroyService","line":54,"character":16}]},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Self","line":54,"character":36}}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":55,"character":9},"arguments":[{"__symbolic":"reference","module":"@taiga-ui/core","name":"TUI_SCROLL_REF","line":55,"character":16}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":56,"character":9},"arguments":[{"__symbolic":"reference","module":"@taiga-ui/cdk","name":"TUI_IS_IOS","line":56,"character":16}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":57,"character":9},"arguments":[{"__symbolic":"reference","name":"TUI_PULL_TO_REFRESH_THRESHOLD"}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":58,"character":9},"arguments":[{"__symbolic":"reference","name":"TUI_PULL_TO_REFRESH_COMPONENT"}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":60,"character":9},"arguments":[{"__symbolic":"reference","name":"TuiPullToRefreshService"}]}]],"parameters":[{"__symbolic":"reference","module":"@angular/core","name":"NgZone","line":53,"character":32},{"__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":55,"character":60,"context":{"typeName":"HTMLElement"},"module":"./pull-to-refresh.component"}]},{"__symbolic":"reference","name":"boolean"},{"__symbolic":"reference","name":"number"},{"__symbolic":"reference","name":"PolymorpheusContent","module":"@tinkoff/ng-polymorpheus","arguments":[{"__symbolic":"reference","name":"TuiContextWithImplicit","module":"@taiga-ui/cdk","arguments":[{"__symbolic":"reference","name":"number"}]}]},{"__symbolic":"reference","name":"Observable","module":"rxjs","arguments":[{"__symbolic":"reference","name":"number"}]}]}]}},"TuiPullToRefreshModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":10,"character":1},"arguments":[{"imports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":11,"character":14},{"__symbolic":"reference","module":"@taiga-ui/core","name":"TuiSvgModule","line":11,"character":28},{"__symbolic":"reference","module":"@taiga-ui/cdk","name":"TuiRepeatTimesModule","line":11,"character":42},{"__symbolic":"reference","module":"@tinkoff/ng-polymorpheus","name":"PolymorpheusModule","line":11,"character":64}],"declarations":[{"__symbolic":"reference","name":"TuiPullToRefreshComponent"},{"__symbolic":"reference","name":"TuiMobileLoaderAndroidComponent"},{"__symbolic":"reference","name":"TuiMobileLoaderIOSComponent"}],"exports":[{"__symbolic":"reference","name":"TuiPullToRefreshComponent"}]}]}],"members":{}},"TUI_PULL_TO_REFRESH_LOADED":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectionToken","line":11,"character":46},"arguments":["[TUI_PULL_TO_REFRESH_LOADED]",{"__symbolic":"error","message":"Lambda not supported","line":14,"character":17,"module":"./pull-to-refresh.providers"}]},"TUI_PULL_TO_REFRESH_COMPONENT":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectionToken","line":21,"character":49},"arguments":["[TUI_PULL_TO_REFRESH_COMPONENT]",{"__symbolic":"error","message":"Lambda not supported","line":24,"character":13,"module":"./pull-to-refresh.providers"}]},"TUI_LOADED":{"__symbolic":"reference","name":"TUI_PULL_TO_REFRESH_LOADED"},"MICRO_OFFSET":{"__symbolic":"binop","operator":"**","left":10,"right":-6},"TuiPullToRefreshService":{"__symbolic":"class","extends":{"__symbolic":"reference","module":"rxjs","name":"Observable","line":28,"character":45},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":27,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":73,"character":9},"arguments":[{"__symbolic":"reference","module":"@angular/core","name":"ElementRef","line":73,"character":16}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":74,"character":9},"arguments":[{"__symbolic":"reference","module":"@taiga-ui/core","name":"TUI_SCROLL_REF","line":74,"character":16}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":75,"character":9},"arguments":[{"__symbolic":"reference","name":"TUI_PULL_TO_REFRESH_LOADED"}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":76,"character":9},"arguments":[{"__symbolic":"reference","name":"TUI_PULL_TO_REFRESH_THRESHOLD"}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":77,"character":9},"arguments":[{"__symbolic":"reference","name":"TUI_PULL_TO_REFRESH_COMPONENT"}]}]],"parameters":[{"__symbolic":"reference","name":"ElementRef","module":"@angular/core","arguments":[{"__symbolic":"error","message":"Could not resolve type","line":74,"character":71,"context":{"typeName":"HTMLElement"},"module":"./pull-to-refresh.service"}]},{"__symbolic":"reference","name":"ElementRef","module":"@angular/core","arguments":[{"__symbolic":"error","message":"Could not resolve type","line":74,"character":71,"context":{"typeName":"HTMLElement"},"module":"./pull-to-refresh.service"}]},{"__symbolic":"reference","name":"Observable","module":"rxjs","arguments":[{"__symbolic":"error","message":"Expression form not supported","line":75,"character":81,"module":"./pull-to-refresh.service"}]},{"__symbolic":"reference","name":"number"},{"__symbolic":"error","message":"Expression form not supported","line":77,"character":58,"module":"./pull-to-refresh.service"}]}]}},"TUI_PULL_TO_REFRESH_THRESHOLD":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectionToken","line":6,"character":49},"arguments":["[TUI_PULL_TO_REFRESH_THRESHOLD]",{"__symbolic":"error","message":"Lambda not supported","line":9,"character":17,"module":"./pull-to-refresh.tokens"}]}},"origins":{"TuiMobileLoaderAndroidComponent":"./loader-android/loader-android.component","TUI_ANDROID_LOADER":"./loader-android/loader-android.component","TuiMobileLoaderIOSComponent":"./loader-ios/loader-ios.component","TUI_IOS_LOADER":"./loader-ios/loader-ios.component","TuiPullToRefreshComponent":"./pull-to-refresh.component","TuiPullToRefreshModule":"./pull-to-refresh.module","TUI_PULL_TO_REFRESH_LOADED":"./pull-to-refresh.providers","TUI_PULL_TO_REFRESH_COMPONENT":"./pull-to-refresh.providers","TUI_LOADED":"./pull-to-refresh.providers","MICRO_OFFSET":"./pull-to-refresh.service","TuiPullToRefreshService":"./pull-to-refresh.service","TUI_PULL_TO_REFRESH_THRESHOLD":"./pull-to-refresh.tokens"},"importAs":"@taiga-ui/addon-mobile/components/pull-to-refresh"}
@@ -1,6 +1,6 @@
1
1
  import { __decorate, __param } from "tslib";
2
- import { ChangeDetectionStrategy, Component, ElementRef, Inject, Input, Output, Self, } from '@angular/core';
3
- import { TUI_IS_IOS, tuiDefaultProp, TuiDestroyService, tuiScrollFrom, } from '@taiga-ui/cdk';
2
+ import { ChangeDetectionStrategy, Component, ElementRef, Inject, Input, NgZone, Output, Self, } from '@angular/core';
3
+ import { TUI_IS_IOS, tuiDefaultProp, TuiDestroyService, tuiScrollFrom, tuiZonefree, } from '@taiga-ui/cdk';
4
4
  import { TUI_SCROLL_REF } from '@taiga-ui/core';
5
5
  import { Observable } from 'rxjs';
6
6
  import { distinctUntilChanged, filter, map, startWith, takeUntil } from 'rxjs/operators';
@@ -8,7 +8,7 @@ import { TUI_PULL_TO_REFRESH_COMPONENT } from './pull-to-refresh.providers';
8
8
  import { MICRO_OFFSET, TuiPullToRefreshService } from './pull-to-refresh.service';
9
9
  import { TUI_PULL_TO_REFRESH_THRESHOLD } from './pull-to-refresh.tokens';
10
10
  let TuiPullToRefreshComponent = class TuiPullToRefreshComponent {
11
- constructor(destroy$, { nativeElement }, isIOS, threshold, component, pulling$) {
11
+ constructor(ngZone, destroy$, { nativeElement }, isIOS, threshold, component, pulling$) {
12
12
  this.isIOS = isIOS;
13
13
  this.threshold = threshold;
14
14
  this.component = component;
@@ -19,19 +19,22 @@ let TuiPullToRefreshComponent = class TuiPullToRefreshComponent {
19
19
  this.pulled = this.pulling$.pipe(filter(distance => distance === this.threshold));
20
20
  this.dropped$ = this.pulling$.pipe(map(distance => distance <= MICRO_OFFSET || distance === this.threshold), distinctUntilChanged());
21
21
  // Ensure scrolling down is impossible while pulling
22
- tuiScrollFrom(nativeElement)
23
- .pipe(startWith(null), takeUntil(destroy$))
24
- .subscribe(() => {
25
- if (nativeElement.scrollTop) {
26
- nativeElement.style.touchAction = '';
27
- }
28
- else {
29
- nativeElement.style.touchAction = 'pan-down';
30
- }
31
- });
22
+ if (this.component) {
23
+ tuiScrollFrom(nativeElement)
24
+ .pipe(startWith(null), tuiZonefree(ngZone), takeUntil(destroy$))
25
+ .subscribe(() => {
26
+ if (nativeElement.scrollTop) {
27
+ nativeElement.style.touchAction = '';
28
+ }
29
+ else {
30
+ nativeElement.style.touchAction = 'pan-down';
31
+ }
32
+ });
33
+ }
32
34
  }
33
35
  };
34
36
  TuiPullToRefreshComponent.ctorParameters = () => [
37
+ { type: NgZone, decorators: [{ type: Inject, args: [NgZone,] }] },
35
38
  { type: Observable, decorators: [{ type: Inject, args: [TuiDestroyService,] }, { type: Self }] },
36
39
  { type: ElementRef, decorators: [{ type: Inject, args: [TUI_SCROLL_REF,] }] },
37
40
  { type: Boolean, decorators: [{ type: Inject, args: [TUI_IS_IOS,] }] },
@@ -54,12 +57,13 @@ TuiPullToRefreshComponent = __decorate([
54
57
  providers: [TuiPullToRefreshService, TuiDestroyService],
55
58
  styles: [".t-drop{transition:all var(--tui-duration) cubic-bezier(.4,0,.2,1)}"]
56
59
  }),
57
- __param(0, Inject(TuiDestroyService)), __param(0, Self()),
58
- __param(1, Inject(TUI_SCROLL_REF)),
59
- __param(2, Inject(TUI_IS_IOS)),
60
- __param(3, Inject(TUI_PULL_TO_REFRESH_THRESHOLD)),
61
- __param(4, Inject(TUI_PULL_TO_REFRESH_COMPONENT)),
62
- __param(5, Inject(TuiPullToRefreshService))
60
+ __param(0, Inject(NgZone)),
61
+ __param(1, Inject(TuiDestroyService)), __param(1, Self()),
62
+ __param(2, Inject(TUI_SCROLL_REF)),
63
+ __param(3, Inject(TUI_IS_IOS)),
64
+ __param(4, Inject(TUI_PULL_TO_REFRESH_THRESHOLD)),
65
+ __param(5, Inject(TUI_PULL_TO_REFRESH_COMPONENT)),
66
+ __param(6, Inject(TuiPullToRefreshService))
63
67
  ], TuiPullToRefreshComponent);
64
68
  export { TuiPullToRefreshComponent };
65
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVsbC10by1yZWZyZXNoLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0B0YWlnYS11aS9hZGRvbi1tb2JpbGUvY29tcG9uZW50cy9wdWxsLXRvLXJlZnJlc2gvIiwic291cmNlcyI6WyJwdWxsLXRvLXJlZnJlc2guY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQ0gsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsTUFBTSxFQUNOLEtBQUssRUFDTCxNQUFNLEVBQ04sSUFBSSxHQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFDSCxVQUFVLEVBRVYsY0FBYyxFQUNkLGlCQUFpQixFQUVqQixhQUFhLEdBQ2hCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUU5QyxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQ2hDLE9BQU8sRUFBQyxvQkFBb0IsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUV2RixPQUFPLEVBQUMsNkJBQTZCLEVBQUMsTUFBTSw2QkFBNkIsQ0FBQztBQUMxRSxPQUFPLEVBQUMsWUFBWSxFQUFFLHVCQUF1QixFQUFDLE1BQU0sMkJBQTJCLENBQUM7QUFDaEYsT0FBTyxFQUFDLDZCQUE2QixFQUFDLE1BQU0sMEJBQTBCLENBQUM7QUFTdkUsSUFBYSx5QkFBeUIsR0FBdEMsTUFBYSx5QkFBeUI7SUFpQmxDLFlBQ3VDLFFBQTZCLEVBQ3hDLEVBQUMsYUFBYSxFQUEwQixFQUMzQixLQUFjLEVBQ0ssU0FBaUIsRUFFaEUsU0FBOEQsRUFDN0IsUUFBNEI7UUFKakMsVUFBSyxHQUFMLEtBQUssQ0FBUztRQUNLLGNBQVMsR0FBVCxTQUFTLENBQVE7UUFFaEUsY0FBUyxHQUFULFNBQVMsQ0FBcUQ7UUFDN0IsYUFBUSxHQUFSLFFBQVEsQ0FBb0I7UUFyQjFFLGlCQUFZLEdBQW1ELElBQUksQ0FBQyxLQUFLO1lBQ3JFLENBQUMsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBQyxTQUFTLEVBQUUsY0FBYyxRQUFRLEdBQUcsQ0FBQyxLQUFLLEVBQUMsQ0FBQztZQUM1RCxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDO1FBR1IsV0FBTSxHQUF3QixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FDckQsTUFBTSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsUUFBUSxLQUFLLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FDbEQsQ0FBQztRQUVPLGFBQVEsR0FBd0IsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQ3ZELEdBQUcsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLFFBQVEsSUFBSSxZQUFZLElBQUksUUFBUSxLQUFLLElBQUksQ0FBQyxTQUFTLENBQUMsRUFDeEUsb0JBQW9CLEVBQUUsQ0FDekIsQ0FBQztRQVdFLG9EQUFvRDtRQUNwRCxhQUFhLENBQUMsYUFBYSxDQUFDO2FBQ3ZCLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEVBQUUsU0FBUyxDQUFDLFFBQVEsQ0FBQyxDQUFDO2FBQzFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDWixJQUFJLGFBQWEsQ0FBQyxTQUFTLEVBQUU7Z0JBQ3pCLGFBQWEsQ0FBQyxLQUFLLENBQUMsV0FBVyxHQUFHLEVBQUUsQ0FBQzthQUN4QztpQkFBTTtnQkFDSCxhQUFhLENBQUMsS0FBSyxDQUFDLFdBQVcsR0FBRyxVQUFVLENBQUM7YUFDaEQ7UUFDTCxDQUFDLENBQUMsQ0FBQztJQUNYLENBQUM7Q0FDSixDQUFBOztZQW5Cb0QsVUFBVSx1QkFBdEQsTUFBTSxTQUFDLGlCQUFpQixjQUFHLElBQUk7WUFDUyxVQUFVLHVCQUFsRCxNQUFNLFNBQUMsY0FBYzswQ0FDckIsTUFBTSxTQUFDLFVBQVU7eUNBQ2pCLE1BQU0sU0FBQyw2QkFBNkI7NENBQ3BDLE1BQU0sU0FBQyw2QkFBNkI7WUFFZSxVQUFVLHVCQUE3RCxNQUFNLFNBQUMsdUJBQXVCOztBQXJCbkM7SUFGQyxLQUFLLEVBQUU7SUFDUCxjQUFjLEVBQUU7K0RBR0E7QUFHakI7SUFEQyxNQUFNLEVBQUU7eURBR1A7QUFWTyx5QkFBeUI7SUFQckMsU0FBUyxDQUFDO1FBQ1AsUUFBUSxFQUFFLHFCQUFxQjtRQUMvQiw2UkFBOEM7UUFFOUMsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07UUFDL0MsU0FBUyxFQUFFLENBQUMsdUJBQXVCLEVBQUUsaUJBQWlCLENBQUM7O0tBQzFELENBQUM7SUFtQk8sV0FBQSxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQSxFQUFFLFdBQUEsSUFBSSxFQUFFLENBQUE7SUFDakMsV0FBQSxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUE7SUFDdEIsV0FBQSxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUE7SUFDbEIsV0FBQSxNQUFNLENBQUMsNkJBQTZCLENBQUMsQ0FBQTtJQUNyQyxXQUFBLE1BQU0sQ0FBQyw2QkFBNkIsQ0FBQyxDQUFBO0lBRXJDLFdBQUEsTUFBTSxDQUFDLHVCQUF1QixDQUFDLENBQUE7R0F4QjNCLHlCQUF5QixDQXFDckM7U0FyQ1kseUJBQXlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDb21wb25lbnQsXG4gICAgRWxlbWVudFJlZixcbiAgICBJbmplY3QsXG4gICAgSW5wdXQsXG4gICAgT3V0cHV0LFxuICAgIFNlbGYsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgICBUVUlfSVNfSU9TLFxuICAgIFR1aUNvbnRleHRXaXRoSW1wbGljaXQsXG4gICAgdHVpRGVmYXVsdFByb3AsXG4gICAgVHVpRGVzdHJveVNlcnZpY2UsXG4gICAgVHVpSGFuZGxlcixcbiAgICB0dWlTY3JvbGxGcm9tLFxufSBmcm9tICdAdGFpZ2EtdWkvY2RrJztcbmltcG9ydCB7VFVJX1NDUk9MTF9SRUZ9IGZyb20gJ0B0YWlnYS11aS9jb3JlJztcbmltcG9ydCB7UG9seW1vcnBoZXVzQ29udGVudH0gZnJvbSAnQHRpbmtvZmYvbmctcG9seW1vcnBoZXVzJztcbmltcG9ydCB7T2JzZXJ2YWJsZX0gZnJvbSAncnhqcyc7XG5pbXBvcnQge2Rpc3RpbmN0VW50aWxDaGFuZ2VkLCBmaWx0ZXIsIG1hcCwgc3RhcnRXaXRoLCB0YWtlVW50aWx9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHtUVUlfUFVMTF9UT19SRUZSRVNIX0NPTVBPTkVOVH0gZnJvbSAnLi9wdWxsLXRvLXJlZnJlc2gucHJvdmlkZXJzJztcbmltcG9ydCB7TUlDUk9fT0ZGU0VULCBUdWlQdWxsVG9SZWZyZXNoU2VydmljZX0gZnJvbSAnLi9wdWxsLXRvLXJlZnJlc2guc2VydmljZSc7XG5pbXBvcnQge1RVSV9QVUxMX1RPX1JFRlJFU0hfVEhSRVNIT0xEfSBmcm9tICcuL3B1bGwtdG8tcmVmcmVzaC50b2tlbnMnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3R1aS1wdWxsLXRvLXJlZnJlc2gnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9wdWxsLXRvLXJlZnJlc2gudGVtcGxhdGUuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vcHVsbC10by1yZWZyZXNoLnN0eWxlLmxlc3MnXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBwcm92aWRlcnM6IFtUdWlQdWxsVG9SZWZyZXNoU2VydmljZSwgVHVpRGVzdHJveVNlcnZpY2VdLFxufSlcbmV4cG9ydCBjbGFzcyBUdWlQdWxsVG9SZWZyZXNoQ29tcG9uZW50IHtcbiAgICBASW5wdXQoKVxuICAgIEB0dWlEZWZhdWx0UHJvcCgpXG4gICAgc3R5bGVIYW5kbGVyOiBUdWlIYW5kbGVyPG51bWJlciwgUmVjb3JkPHN0cmluZywgYW55PiB8IG51bGw+ID0gdGhpcy5pc0lPU1xuICAgICAgICA/IGRpc3RhbmNlID0+ICh7dHJhbnNmb3JtOiBgdHJhbnNsYXRlWSgke2Rpc3RhbmNlIC8gMn1weClgfSlcbiAgICAgICAgOiAoKSA9PiBudWxsO1xuXG4gICAgQE91dHB1dCgpXG4gICAgcmVhZG9ubHkgcHVsbGVkOiBPYnNlcnZhYmxlPHVua25vd24+ID0gdGhpcy5wdWxsaW5nJC5waXBlKFxuICAgICAgICBmaWx0ZXIoZGlzdGFuY2UgPT4gZGlzdGFuY2UgPT09IHRoaXMudGhyZXNob2xkKSxcbiAgICApO1xuXG4gICAgcmVhZG9ubHkgZHJvcHBlZCQ6IE9ic2VydmFibGU8Ym9vbGVhbj4gPSB0aGlzLnB1bGxpbmckLnBpcGUoXG4gICAgICAgIG1hcChkaXN0YW5jZSA9PiBkaXN0YW5jZSA8PSBNSUNST19PRkZTRVQgfHwgZGlzdGFuY2UgPT09IHRoaXMudGhyZXNob2xkKSxcbiAgICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICApO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIEBJbmplY3QoVHVpRGVzdHJveVNlcnZpY2UpIEBTZWxmKCkgZGVzdHJveSQ6IE9ic2VydmFibGU8dW5rbm93bj4sXG4gICAgICAgIEBJbmplY3QoVFVJX1NDUk9MTF9SRUYpIHtuYXRpdmVFbGVtZW50fTogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4sXG4gICAgICAgIEBJbmplY3QoVFVJX0lTX0lPUykgcHJpdmF0ZSByZWFkb25seSBpc0lPUzogYm9vbGVhbixcbiAgICAgICAgQEluamVjdChUVUlfUFVMTF9UT19SRUZSRVNIX1RIUkVTSE9MRCkgcHJpdmF0ZSByZWFkb25seSB0aHJlc2hvbGQ6IG51bWJlcixcbiAgICAgICAgQEluamVjdChUVUlfUFVMTF9UT19SRUZSRVNIX0NPTVBPTkVOVClcbiAgICAgICAgcmVhZG9ubHkgY29tcG9uZW50OiBQb2x5bW9ycGhldXNDb250ZW50PFR1aUNvbnRleHRXaXRoSW1wbGljaXQ8bnVtYmVyPj4sXG4gICAgICAgIEBJbmplY3QoVHVpUHVsbFRvUmVmcmVzaFNlcnZpY2UpIHJlYWRvbmx5IHB1bGxpbmckOiBPYnNlcnZhYmxlPG51bWJlcj4sXG4gICAgKSB7XG4gICAgICAgIC8vIEVuc3VyZSBzY3JvbGxpbmcgZG93biBpcyBpbXBvc3NpYmxlIHdoaWxlIHB1bGxpbmdcbiAgICAgICAgdHVpU2Nyb2xsRnJvbShuYXRpdmVFbGVtZW50KVxuICAgICAgICAgICAgLnBpcGUoc3RhcnRXaXRoKG51bGwpLCB0YWtlVW50aWwoZGVzdHJveSQpKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKG5hdGl2ZUVsZW1lbnQuc2Nyb2xsVG9wKSB7XG4gICAgICAgICAgICAgICAgICAgIG5hdGl2ZUVsZW1lbnQuc3R5bGUudG91Y2hBY3Rpb24gPSAnJztcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBuYXRpdmVFbGVtZW50LnN0eWxlLnRvdWNoQWN0aW9uID0gJ3Bhbi1kb3duJztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICB9XG59XG4iXX0=
69
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVsbC10by1yZWZyZXNoLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0B0YWlnYS11aS9hZGRvbi1tb2JpbGUvY29tcG9uZW50cy9wdWxsLXRvLXJlZnJlc2gvIiwic291cmNlcyI6WyJwdWxsLXRvLXJlZnJlc2guY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQ0gsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsTUFBTSxFQUNOLEtBQUssRUFDTCxNQUFNLEVBQ04sTUFBTSxFQUNOLElBQUksR0FDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQ0gsVUFBVSxFQUVWLGNBQWMsRUFDZCxpQkFBaUIsRUFFakIsYUFBYSxFQUNiLFdBQVcsR0FDZCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFFOUMsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUNoQyxPQUFPLEVBQUMsb0JBQW9CLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFFdkYsT0FBTyxFQUFDLDZCQUE2QixFQUFDLE1BQU0sNkJBQTZCLENBQUM7QUFDMUUsT0FBTyxFQUFDLFlBQVksRUFBRSx1QkFBdUIsRUFBQyxNQUFNLDJCQUEyQixDQUFDO0FBQ2hGLE9BQU8sRUFBQyw2QkFBNkIsRUFBQyxNQUFNLDBCQUEwQixDQUFDO0FBU3ZFLElBQWEseUJBQXlCLEdBQXRDLE1BQWEseUJBQXlCO0lBaUJsQyxZQUNvQixNQUFjLEVBQ0ssUUFBNkIsRUFDeEMsRUFBQyxhQUFhLEVBQTBCLEVBQzNCLEtBQWMsRUFDSyxTQUFpQixFQUVoRSxTQUE4RCxFQUM3QixRQUE0QjtRQUpqQyxVQUFLLEdBQUwsS0FBSyxDQUFTO1FBQ0ssY0FBUyxHQUFULFNBQVMsQ0FBUTtRQUVoRSxjQUFTLEdBQVQsU0FBUyxDQUFxRDtRQUM3QixhQUFRLEdBQVIsUUFBUSxDQUFvQjtRQXRCMUUsaUJBQVksR0FBbUQsSUFBSSxDQUFDLEtBQUs7WUFDckUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFDLFNBQVMsRUFBRSxjQUFjLFFBQVEsR0FBRyxDQUFDLEtBQUssRUFBQyxDQUFDO1lBQzVELENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUM7UUFHUixXQUFNLEdBQXdCLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUNyRCxNQUFNLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxRQUFRLEtBQUssSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUNsRCxDQUFDO1FBRU8sYUFBUSxHQUF3QixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FDdkQsR0FBRyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsUUFBUSxJQUFJLFlBQVksSUFBSSxRQUFRLEtBQUssSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUN4RSxvQkFBb0IsRUFBRSxDQUN6QixDQUFDO1FBWUUsb0RBQW9EO1FBQ3BELElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRTtZQUNoQixhQUFhLENBQUMsYUFBYSxDQUFDO2lCQUN2QixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFLFdBQVcsQ0FBQyxNQUFNLENBQUMsRUFBRSxTQUFTLENBQUMsUUFBUSxDQUFDLENBQUM7aUJBQy9ELFNBQVMsQ0FBQyxHQUFHLEVBQUU7Z0JBQ1osSUFBSSxhQUFhLENBQUMsU0FBUyxFQUFFO29CQUN6QixhQUFhLENBQUMsS0FBSyxDQUFDLFdBQVcsR0FBRyxFQUFFLENBQUM7aUJBQ3hDO3FCQUFNO29CQUNILGFBQWEsQ0FBQyxLQUFLLENBQUMsV0FBVyxHQUFHLFVBQVUsQ0FBQztpQkFDaEQ7WUFDTCxDQUFDLENBQUMsQ0FBQztTQUNWO0lBQ0wsQ0FBQztDQUNKLENBQUE7O1lBdEIrQixNQUFNLHVCQUE3QixNQUFNLFNBQUMsTUFBTTtZQUMrQixVQUFVLHVCQUF0RCxNQUFNLFNBQUMsaUJBQWlCLGNBQUcsSUFBSTtZQUNTLFVBQVUsdUJBQWxELE1BQU0sU0FBQyxjQUFjOzBDQUNyQixNQUFNLFNBQUMsVUFBVTt5Q0FDakIsTUFBTSxTQUFDLDZCQUE2Qjs0Q0FDcEMsTUFBTSxTQUFDLDZCQUE2QjtZQUVlLFVBQVUsdUJBQTdELE1BQU0sU0FBQyx1QkFBdUI7O0FBdEJuQztJQUZDLEtBQUssRUFBRTtJQUNQLGNBQWMsRUFBRTsrREFHQTtBQUdqQjtJQURDLE1BQU0sRUFBRTt5REFHUDtBQVZPLHlCQUF5QjtJQVByQyxTQUFTLENBQUM7UUFDUCxRQUFRLEVBQUUscUJBQXFCO1FBQy9CLDZSQUE4QztRQUU5QyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtRQUMvQyxTQUFTLEVBQUUsQ0FBQyx1QkFBdUIsRUFBRSxpQkFBaUIsQ0FBQzs7S0FDMUQsQ0FBQztJQW1CTyxXQUFBLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQTtJQUNkLFdBQUEsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUEsRUFBRSxXQUFBLElBQUksRUFBRSxDQUFBO0lBQ2pDLFdBQUEsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFBO0lBQ3RCLFdBQUEsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFBO0lBQ2xCLFdBQUEsTUFBTSxDQUFDLDZCQUE2QixDQUFDLENBQUE7SUFDckMsV0FBQSxNQUFNLENBQUMsNkJBQTZCLENBQUMsQ0FBQTtJQUVyQyxXQUFBLE1BQU0sQ0FBQyx1QkFBdUIsQ0FBQyxDQUFBO0dBekIzQix5QkFBeUIsQ0F3Q3JDO1NBeENZLHlCQUF5QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ29tcG9uZW50LFxuICAgIEVsZW1lbnRSZWYsXG4gICAgSW5qZWN0LFxuICAgIElucHV0LFxuICAgIE5nWm9uZSxcbiAgICBPdXRwdXQsXG4gICAgU2VsZixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICAgIFRVSV9JU19JT1MsXG4gICAgVHVpQ29udGV4dFdpdGhJbXBsaWNpdCxcbiAgICB0dWlEZWZhdWx0UHJvcCxcbiAgICBUdWlEZXN0cm95U2VydmljZSxcbiAgICBUdWlIYW5kbGVyLFxuICAgIHR1aVNjcm9sbEZyb20sXG4gICAgdHVpWm9uZWZyZWUsXG59IGZyb20gJ0B0YWlnYS11aS9jZGsnO1xuaW1wb3J0IHtUVUlfU0NST0xMX1JFRn0gZnJvbSAnQHRhaWdhLXVpL2NvcmUnO1xuaW1wb3J0IHtQb2x5bW9ycGhldXNDb250ZW50fSBmcm9tICdAdGlua29mZi9uZy1wb2x5bW9ycGhldXMnO1xuaW1wb3J0IHtPYnNlcnZhYmxlfSBmcm9tICdyeGpzJztcbmltcG9ydCB7ZGlzdGluY3RVbnRpbENoYW5nZWQsIGZpbHRlciwgbWFwLCBzdGFydFdpdGgsIHRha2VVbnRpbH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQge1RVSV9QVUxMX1RPX1JFRlJFU0hfQ09NUE9ORU5UfSBmcm9tICcuL3B1bGwtdG8tcmVmcmVzaC5wcm92aWRlcnMnO1xuaW1wb3J0IHtNSUNST19PRkZTRVQsIFR1aVB1bGxUb1JlZnJlc2hTZXJ2aWNlfSBmcm9tICcuL3B1bGwtdG8tcmVmcmVzaC5zZXJ2aWNlJztcbmltcG9ydCB7VFVJX1BVTExfVE9fUkVGUkVTSF9USFJFU0hPTER9IGZyb20gJy4vcHVsbC10by1yZWZyZXNoLnRva2Vucyc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAndHVpLXB1bGwtdG8tcmVmcmVzaCcsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3B1bGwtdG8tcmVmcmVzaC50ZW1wbGF0ZS5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9wdWxsLXRvLXJlZnJlc2guc3R5bGUubGVzcyddLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIHByb3ZpZGVyczogW1R1aVB1bGxUb1JlZnJlc2hTZXJ2aWNlLCBUdWlEZXN0cm95U2VydmljZV0sXG59KVxuZXhwb3J0IGNsYXNzIFR1aVB1bGxUb1JlZnJlc2hDb21wb25lbnQge1xuICAgIEBJbnB1dCgpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICBzdHlsZUhhbmRsZXI6IFR1aUhhbmRsZXI8bnVtYmVyLCBSZWNvcmQ8c3RyaW5nLCBhbnk+IHwgbnVsbD4gPSB0aGlzLmlzSU9TXG4gICAgICAgID8gZGlzdGFuY2UgPT4gKHt0cmFuc2Zvcm06IGB0cmFuc2xhdGVZKCR7ZGlzdGFuY2UgLyAyfXB4KWB9KVxuICAgICAgICA6ICgpID0+IG51bGw7XG5cbiAgICBAT3V0cHV0KClcbiAgICByZWFkb25seSBwdWxsZWQ6IE9ic2VydmFibGU8dW5rbm93bj4gPSB0aGlzLnB1bGxpbmckLnBpcGUoXG4gICAgICAgIGZpbHRlcihkaXN0YW5jZSA9PiBkaXN0YW5jZSA9PT0gdGhpcy50aHJlc2hvbGQpLFxuICAgICk7XG5cbiAgICByZWFkb25seSBkcm9wcGVkJDogT2JzZXJ2YWJsZTxib29sZWFuPiA9IHRoaXMucHVsbGluZyQucGlwZShcbiAgICAgICAgbWFwKGRpc3RhbmNlID0+IGRpc3RhbmNlIDw9IE1JQ1JPX09GRlNFVCB8fCBkaXN0YW5jZSA9PT0gdGhpcy50aHJlc2hvbGQpLFxuICAgICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgICk7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgQEluamVjdChOZ1pvbmUpIG5nWm9uZTogTmdab25lLFxuICAgICAgICBASW5qZWN0KFR1aURlc3Ryb3lTZXJ2aWNlKSBAU2VsZigpIGRlc3Ryb3kkOiBPYnNlcnZhYmxlPHVua25vd24+LFxuICAgICAgICBASW5qZWN0KFRVSV9TQ1JPTExfUkVGKSB7bmF0aXZlRWxlbWVudH06IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+LFxuICAgICAgICBASW5qZWN0KFRVSV9JU19JT1MpIHByaXZhdGUgcmVhZG9ubHkgaXNJT1M6IGJvb2xlYW4sXG4gICAgICAgIEBJbmplY3QoVFVJX1BVTExfVE9fUkVGUkVTSF9USFJFU0hPTEQpIHByaXZhdGUgcmVhZG9ubHkgdGhyZXNob2xkOiBudW1iZXIsXG4gICAgICAgIEBJbmplY3QoVFVJX1BVTExfVE9fUkVGUkVTSF9DT01QT05FTlQpXG4gICAgICAgIHJlYWRvbmx5IGNvbXBvbmVudDogUG9seW1vcnBoZXVzQ29udGVudDxUdWlDb250ZXh0V2l0aEltcGxpY2l0PG51bWJlcj4+LFxuICAgICAgICBASW5qZWN0KFR1aVB1bGxUb1JlZnJlc2hTZXJ2aWNlKSByZWFkb25seSBwdWxsaW5nJDogT2JzZXJ2YWJsZTxudW1iZXI+LFxuICAgICkge1xuICAgICAgICAvLyBFbnN1cmUgc2Nyb2xsaW5nIGRvd24gaXMgaW1wb3NzaWJsZSB3aGlsZSBwdWxsaW5nXG4gICAgICAgIGlmICh0aGlzLmNvbXBvbmVudCkge1xuICAgICAgICAgICAgdHVpU2Nyb2xsRnJvbShuYXRpdmVFbGVtZW50KVxuICAgICAgICAgICAgICAgIC5waXBlKHN0YXJ0V2l0aChudWxsKSwgdHVpWm9uZWZyZWUobmdab25lKSwgdGFrZVVudGlsKGRlc3Ryb3kkKSlcbiAgICAgICAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKG5hdGl2ZUVsZW1lbnQuc2Nyb2xsVG9wKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBuYXRpdmVFbGVtZW50LnN0eWxlLnRvdWNoQWN0aW9uID0gJyc7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBuYXRpdmVFbGVtZW50LnN0eWxlLnRvdWNoQWN0aW9uID0gJ3Bhbi1kb3duJztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxufVxuIl19
@@ -1,6 +1,6 @@
1
1
  import { __decorate, __param } from "tslib";
2
- import { ChangeDetectionStrategy, Component, ElementRef, Inject, Input, Output, Self, } from '@angular/core';
3
- import { TUI_IS_IOS, tuiDefaultProp, TuiDestroyService, tuiScrollFrom, } from '@taiga-ui/cdk';
2
+ import { ChangeDetectionStrategy, Component, ElementRef, Inject, Input, NgZone, Output, Self, } from '@angular/core';
3
+ import { TUI_IS_IOS, tuiDefaultProp, TuiDestroyService, tuiScrollFrom, tuiZonefree, } from '@taiga-ui/cdk';
4
4
  import { TUI_SCROLL_REF } from '@taiga-ui/core';
5
5
  import { Observable } from 'rxjs';
6
6
  import { distinctUntilChanged, filter, map, startWith, takeUntil } from 'rxjs/operators';
@@ -8,7 +8,7 @@ import { TUI_PULL_TO_REFRESH_COMPONENT } from './pull-to-refresh.providers';
8
8
  import { MICRO_OFFSET, TuiPullToRefreshService } from './pull-to-refresh.service';
9
9
  import { TUI_PULL_TO_REFRESH_THRESHOLD } from './pull-to-refresh.tokens';
10
10
  var TuiPullToRefreshComponent = /** @class */ (function () {
11
- function TuiPullToRefreshComponent(destroy$, _a, isIOS, threshold, component, pulling$) {
11
+ function TuiPullToRefreshComponent(ngZone, destroy$, _a, isIOS, threshold, component, pulling$) {
12
12
  var _this = this;
13
13
  var nativeElement = _a.nativeElement;
14
14
  this.isIOS = isIOS;
@@ -21,18 +21,21 @@ var TuiPullToRefreshComponent = /** @class */ (function () {
21
21
  this.pulled = this.pulling$.pipe(filter(function (distance) { return distance === _this.threshold; }));
22
22
  this.dropped$ = this.pulling$.pipe(map(function (distance) { return distance <= MICRO_OFFSET || distance === _this.threshold; }), distinctUntilChanged());
23
23
  // Ensure scrolling down is impossible while pulling
24
- tuiScrollFrom(nativeElement)
25
- .pipe(startWith(null), takeUntil(destroy$))
26
- .subscribe(function () {
27
- if (nativeElement.scrollTop) {
28
- nativeElement.style.touchAction = '';
29
- }
30
- else {
31
- nativeElement.style.touchAction = 'pan-down';
32
- }
33
- });
24
+ if (this.component) {
25
+ tuiScrollFrom(nativeElement)
26
+ .pipe(startWith(null), tuiZonefree(ngZone), takeUntil(destroy$))
27
+ .subscribe(function () {
28
+ if (nativeElement.scrollTop) {
29
+ nativeElement.style.touchAction = '';
30
+ }
31
+ else {
32
+ nativeElement.style.touchAction = 'pan-down';
33
+ }
34
+ });
35
+ }
34
36
  }
35
37
  TuiPullToRefreshComponent.ctorParameters = function () { return [
38
+ { type: NgZone, decorators: [{ type: Inject, args: [NgZone,] }] },
36
39
  { type: Observable, decorators: [{ type: Inject, args: [TuiDestroyService,] }, { type: Self }] },
37
40
  { type: ElementRef, decorators: [{ type: Inject, args: [TUI_SCROLL_REF,] }] },
38
41
  { type: Boolean, decorators: [{ type: Inject, args: [TUI_IS_IOS,] }] },
@@ -55,14 +58,15 @@ var TuiPullToRefreshComponent = /** @class */ (function () {
55
58
  providers: [TuiPullToRefreshService, TuiDestroyService],
56
59
  styles: [".t-drop{transition:all var(--tui-duration) cubic-bezier(.4,0,.2,1)}"]
57
60
  }),
58
- __param(0, Inject(TuiDestroyService)), __param(0, Self()),
59
- __param(1, Inject(TUI_SCROLL_REF)),
60
- __param(2, Inject(TUI_IS_IOS)),
61
- __param(3, Inject(TUI_PULL_TO_REFRESH_THRESHOLD)),
62
- __param(4, Inject(TUI_PULL_TO_REFRESH_COMPONENT)),
63
- __param(5, Inject(TuiPullToRefreshService))
61
+ __param(0, Inject(NgZone)),
62
+ __param(1, Inject(TuiDestroyService)), __param(1, Self()),
63
+ __param(2, Inject(TUI_SCROLL_REF)),
64
+ __param(3, Inject(TUI_IS_IOS)),
65
+ __param(4, Inject(TUI_PULL_TO_REFRESH_THRESHOLD)),
66
+ __param(5, Inject(TUI_PULL_TO_REFRESH_COMPONENT)),
67
+ __param(6, Inject(TuiPullToRefreshService))
64
68
  ], TuiPullToRefreshComponent);
65
69
  return TuiPullToRefreshComponent;
66
70
  }());
67
71
  export { TuiPullToRefreshComponent };
68
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVsbC10by1yZWZyZXNoLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0B0YWlnYS11aS9hZGRvbi1tb2JpbGUvY29tcG9uZW50cy9wdWxsLXRvLXJlZnJlc2gvIiwic291cmNlcyI6WyJwdWxsLXRvLXJlZnJlc2guY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQ0gsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsTUFBTSxFQUNOLEtBQUssRUFDTCxNQUFNLEVBQ04sSUFBSSxHQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFDSCxVQUFVLEVBRVYsY0FBYyxFQUNkLGlCQUFpQixFQUVqQixhQUFhLEdBQ2hCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUU5QyxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQ2hDLE9BQU8sRUFBQyxvQkFBb0IsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUV2RixPQUFPLEVBQUMsNkJBQTZCLEVBQUMsTUFBTSw2QkFBNkIsQ0FBQztBQUMxRSxPQUFPLEVBQUMsWUFBWSxFQUFFLHVCQUF1QixFQUFDLE1BQU0sMkJBQTJCLENBQUM7QUFDaEYsT0FBTyxFQUFDLDZCQUE2QixFQUFDLE1BQU0sMEJBQTBCLENBQUM7QUFTdkU7SUFpQkksbUNBQ3VDLFFBQTZCLEVBQ3hDLEVBQXdDLEVBQzNCLEtBQWMsRUFDSyxTQUFpQixFQUVoRSxTQUE4RCxFQUM3QixRQUE0QjtRQVAxRSxpQkFtQkM7WUFqQjRCLGdDQUFhO1FBQ0QsVUFBSyxHQUFMLEtBQUssQ0FBUztRQUNLLGNBQVMsR0FBVCxTQUFTLENBQVE7UUFFaEUsY0FBUyxHQUFULFNBQVMsQ0FBcUQ7UUFDN0IsYUFBUSxHQUFSLFFBQVEsQ0FBb0I7UUFyQjFFLGlCQUFZLEdBQW1ELElBQUksQ0FBQyxLQUFLO1lBQ3JFLENBQUMsQ0FBQyxVQUFBLFFBQVEsSUFBSSxPQUFBLENBQUMsRUFBQyxTQUFTLEVBQUUsZ0JBQWMsUUFBUSxHQUFHLENBQUMsUUFBSyxFQUFDLENBQUMsRUFBOUMsQ0FBOEM7WUFDNUQsQ0FBQyxDQUFDLGNBQU0sT0FBQSxJQUFJLEVBQUosQ0FBSSxDQUFDO1FBR1IsV0FBTSxHQUF3QixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FDckQsTUFBTSxDQUFDLFVBQUEsUUFBUSxJQUFJLE9BQUEsUUFBUSxLQUFLLEtBQUksQ0FBQyxTQUFTLEVBQTNCLENBQTJCLENBQUMsQ0FDbEQsQ0FBQztRQUVPLGFBQVEsR0FBd0IsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQ3ZELEdBQUcsQ0FBQyxVQUFBLFFBQVEsSUFBSSxPQUFBLFFBQVEsSUFBSSxZQUFZLElBQUksUUFBUSxLQUFLLEtBQUksQ0FBQyxTQUFTLEVBQXZELENBQXVELENBQUMsRUFDeEUsb0JBQW9CLEVBQUUsQ0FDekIsQ0FBQztRQVdFLG9EQUFvRDtRQUNwRCxhQUFhLENBQUMsYUFBYSxDQUFDO2FBQ3ZCLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEVBQUUsU0FBUyxDQUFDLFFBQVEsQ0FBQyxDQUFDO2FBQzFDLFNBQVMsQ0FBQztZQUNQLElBQUksYUFBYSxDQUFDLFNBQVMsRUFBRTtnQkFDekIsYUFBYSxDQUFDLEtBQUssQ0FBQyxXQUFXLEdBQUcsRUFBRSxDQUFDO2FBQ3hDO2lCQUFNO2dCQUNILGFBQWEsQ0FBQyxLQUFLLENBQUMsV0FBVyxHQUFHLFVBQVUsQ0FBQzthQUNoRDtRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ1gsQ0FBQzs7Z0JBbEJnRCxVQUFVLHVCQUF0RCxNQUFNLFNBQUMsaUJBQWlCLGNBQUcsSUFBSTtnQkFDUyxVQUFVLHVCQUFsRCxNQUFNLFNBQUMsY0FBYzs4Q0FDckIsTUFBTSxTQUFDLFVBQVU7NkNBQ2pCLE1BQU0sU0FBQyw2QkFBNkI7Z0RBQ3BDLE1BQU0sU0FBQyw2QkFBNkI7Z0JBRWUsVUFBVSx1QkFBN0QsTUFBTSxTQUFDLHVCQUF1Qjs7SUFyQm5DO1FBRkMsS0FBSyxFQUFFO1FBQ1AsY0FBYyxFQUFFO21FQUdBO0lBR2pCO1FBREMsTUFBTSxFQUFFOzZEQUdQO0lBVk8seUJBQXlCO1FBUHJDLFNBQVMsQ0FBQztZQUNQLFFBQVEsRUFBRSxxQkFBcUI7WUFDL0IsNlJBQThDO1lBRTlDLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO1lBQy9DLFNBQVMsRUFBRSxDQUFDLHVCQUF1QixFQUFFLGlCQUFpQixDQUFDOztTQUMxRCxDQUFDO1FBbUJPLFdBQUEsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUEsRUFBRSxXQUFBLElBQUksRUFBRSxDQUFBO1FBQ2pDLFdBQUEsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFBO1FBQ3RCLFdBQUEsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFBO1FBQ2xCLFdBQUEsTUFBTSxDQUFDLDZCQUE2QixDQUFDLENBQUE7UUFDckMsV0FBQSxNQUFNLENBQUMsNkJBQTZCLENBQUMsQ0FBQTtRQUVyQyxXQUFBLE1BQU0sQ0FBQyx1QkFBdUIsQ0FBQyxDQUFBO09BeEIzQix5QkFBeUIsQ0FxQ3JDO0lBQUQsZ0NBQUM7Q0FBQSxBQXJDRCxJQXFDQztTQXJDWSx5QkFBeUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENvbXBvbmVudCxcbiAgICBFbGVtZW50UmVmLFxuICAgIEluamVjdCxcbiAgICBJbnB1dCxcbiAgICBPdXRwdXQsXG4gICAgU2VsZixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICAgIFRVSV9JU19JT1MsXG4gICAgVHVpQ29udGV4dFdpdGhJbXBsaWNpdCxcbiAgICB0dWlEZWZhdWx0UHJvcCxcbiAgICBUdWlEZXN0cm95U2VydmljZSxcbiAgICBUdWlIYW5kbGVyLFxuICAgIHR1aVNjcm9sbEZyb20sXG59IGZyb20gJ0B0YWlnYS11aS9jZGsnO1xuaW1wb3J0IHtUVUlfU0NST0xMX1JFRn0gZnJvbSAnQHRhaWdhLXVpL2NvcmUnO1xuaW1wb3J0IHtQb2x5bW9ycGhldXNDb250ZW50fSBmcm9tICdAdGlua29mZi9uZy1wb2x5bW9ycGhldXMnO1xuaW1wb3J0IHtPYnNlcnZhYmxlfSBmcm9tICdyeGpzJztcbmltcG9ydCB7ZGlzdGluY3RVbnRpbENoYW5nZWQsIGZpbHRlciwgbWFwLCBzdGFydFdpdGgsIHRha2VVbnRpbH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQge1RVSV9QVUxMX1RPX1JFRlJFU0hfQ09NUE9ORU5UfSBmcm9tICcuL3B1bGwtdG8tcmVmcmVzaC5wcm92aWRlcnMnO1xuaW1wb3J0IHtNSUNST19PRkZTRVQsIFR1aVB1bGxUb1JlZnJlc2hTZXJ2aWNlfSBmcm9tICcuL3B1bGwtdG8tcmVmcmVzaC5zZXJ2aWNlJztcbmltcG9ydCB7VFVJX1BVTExfVE9fUkVGUkVTSF9USFJFU0hPTER9IGZyb20gJy4vcHVsbC10by1yZWZyZXNoLnRva2Vucyc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAndHVpLXB1bGwtdG8tcmVmcmVzaCcsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3B1bGwtdG8tcmVmcmVzaC50ZW1wbGF0ZS5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9wdWxsLXRvLXJlZnJlc2guc3R5bGUubGVzcyddLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIHByb3ZpZGVyczogW1R1aVB1bGxUb1JlZnJlc2hTZXJ2aWNlLCBUdWlEZXN0cm95U2VydmljZV0sXG59KVxuZXhwb3J0IGNsYXNzIFR1aVB1bGxUb1JlZnJlc2hDb21wb25lbnQge1xuICAgIEBJbnB1dCgpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICBzdHlsZUhhbmRsZXI6IFR1aUhhbmRsZXI8bnVtYmVyLCBSZWNvcmQ8c3RyaW5nLCBhbnk+IHwgbnVsbD4gPSB0aGlzLmlzSU9TXG4gICAgICAgID8gZGlzdGFuY2UgPT4gKHt0cmFuc2Zvcm06IGB0cmFuc2xhdGVZKCR7ZGlzdGFuY2UgLyAyfXB4KWB9KVxuICAgICAgICA6ICgpID0+IG51bGw7XG5cbiAgICBAT3V0cHV0KClcbiAgICByZWFkb25seSBwdWxsZWQ6IE9ic2VydmFibGU8dW5rbm93bj4gPSB0aGlzLnB1bGxpbmckLnBpcGUoXG4gICAgICAgIGZpbHRlcihkaXN0YW5jZSA9PiBkaXN0YW5jZSA9PT0gdGhpcy50aHJlc2hvbGQpLFxuICAgICk7XG5cbiAgICByZWFkb25seSBkcm9wcGVkJDogT2JzZXJ2YWJsZTxib29sZWFuPiA9IHRoaXMucHVsbGluZyQucGlwZShcbiAgICAgICAgbWFwKGRpc3RhbmNlID0+IGRpc3RhbmNlIDw9IE1JQ1JPX09GRlNFVCB8fCBkaXN0YW5jZSA9PT0gdGhpcy50aHJlc2hvbGQpLFxuICAgICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgICk7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgQEluamVjdChUdWlEZXN0cm95U2VydmljZSkgQFNlbGYoKSBkZXN0cm95JDogT2JzZXJ2YWJsZTx1bmtub3duPixcbiAgICAgICAgQEluamVjdChUVUlfU0NST0xMX1JFRikge25hdGl2ZUVsZW1lbnR9OiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PixcbiAgICAgICAgQEluamVjdChUVUlfSVNfSU9TKSBwcml2YXRlIHJlYWRvbmx5IGlzSU9TOiBib29sZWFuLFxuICAgICAgICBASW5qZWN0KFRVSV9QVUxMX1RPX1JFRlJFU0hfVEhSRVNIT0xEKSBwcml2YXRlIHJlYWRvbmx5IHRocmVzaG9sZDogbnVtYmVyLFxuICAgICAgICBASW5qZWN0KFRVSV9QVUxMX1RPX1JFRlJFU0hfQ09NUE9ORU5UKVxuICAgICAgICByZWFkb25seSBjb21wb25lbnQ6IFBvbHltb3JwaGV1c0NvbnRlbnQ8VHVpQ29udGV4dFdpdGhJbXBsaWNpdDxudW1iZXI+PixcbiAgICAgICAgQEluamVjdChUdWlQdWxsVG9SZWZyZXNoU2VydmljZSkgcmVhZG9ubHkgcHVsbGluZyQ6IE9ic2VydmFibGU8bnVtYmVyPixcbiAgICApIHtcbiAgICAgICAgLy8gRW5zdXJlIHNjcm9sbGluZyBkb3duIGlzIGltcG9zc2libGUgd2hpbGUgcHVsbGluZ1xuICAgICAgICB0dWlTY3JvbGxGcm9tKG5hdGl2ZUVsZW1lbnQpXG4gICAgICAgICAgICAucGlwZShzdGFydFdpdGgobnVsbCksIHRha2VVbnRpbChkZXN0cm95JCkpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAobmF0aXZlRWxlbWVudC5zY3JvbGxUb3ApIHtcbiAgICAgICAgICAgICAgICAgICAgbmF0aXZlRWxlbWVudC5zdHlsZS50b3VjaEFjdGlvbiA9ICcnO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIG5hdGl2ZUVsZW1lbnQuc3R5bGUudG91Y2hBY3Rpb24gPSAncGFuLWRvd24nO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgIH1cbn1cbiJdfQ==
72
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVsbC10by1yZWZyZXNoLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0B0YWlnYS11aS9hZGRvbi1tb2JpbGUvY29tcG9uZW50cy9wdWxsLXRvLXJlZnJlc2gvIiwic291cmNlcyI6WyJwdWxsLXRvLXJlZnJlc2guY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQ0gsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsTUFBTSxFQUNOLEtBQUssRUFDTCxNQUFNLEVBQ04sTUFBTSxFQUNOLElBQUksR0FDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQ0gsVUFBVSxFQUVWLGNBQWMsRUFDZCxpQkFBaUIsRUFFakIsYUFBYSxFQUNiLFdBQVcsR0FDZCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFFOUMsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUNoQyxPQUFPLEVBQUMsb0JBQW9CLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFFdkYsT0FBTyxFQUFDLDZCQUE2QixFQUFDLE1BQU0sNkJBQTZCLENBQUM7QUFDMUUsT0FBTyxFQUFDLFlBQVksRUFBRSx1QkFBdUIsRUFBQyxNQUFNLDJCQUEyQixDQUFDO0FBQ2hGLE9BQU8sRUFBQyw2QkFBNkIsRUFBQyxNQUFNLDBCQUEwQixDQUFDO0FBU3ZFO0lBaUJJLG1DQUNvQixNQUFjLEVBQ0ssUUFBNkIsRUFDeEMsRUFBd0MsRUFDM0IsS0FBYyxFQUNLLFNBQWlCLEVBRWhFLFNBQThELEVBQzdCLFFBQTRCO1FBUjFFLGlCQXNCQztZQW5CNEIsZ0NBQWE7UUFDRCxVQUFLLEdBQUwsS0FBSyxDQUFTO1FBQ0ssY0FBUyxHQUFULFNBQVMsQ0FBUTtRQUVoRSxjQUFTLEdBQVQsU0FBUyxDQUFxRDtRQUM3QixhQUFRLEdBQVIsUUFBUSxDQUFvQjtRQXRCMUUsaUJBQVksR0FBbUQsSUFBSSxDQUFDLEtBQUs7WUFDckUsQ0FBQyxDQUFDLFVBQUEsUUFBUSxJQUFJLE9BQUEsQ0FBQyxFQUFDLFNBQVMsRUFBRSxnQkFBYyxRQUFRLEdBQUcsQ0FBQyxRQUFLLEVBQUMsQ0FBQyxFQUE5QyxDQUE4QztZQUM1RCxDQUFDLENBQUMsY0FBTSxPQUFBLElBQUksRUFBSixDQUFJLENBQUM7UUFHUixXQUFNLEdBQXdCLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUNyRCxNQUFNLENBQUMsVUFBQSxRQUFRLElBQUksT0FBQSxRQUFRLEtBQUssS0FBSSxDQUFDLFNBQVMsRUFBM0IsQ0FBMkIsQ0FBQyxDQUNsRCxDQUFDO1FBRU8sYUFBUSxHQUF3QixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FDdkQsR0FBRyxDQUFDLFVBQUEsUUFBUSxJQUFJLE9BQUEsUUFBUSxJQUFJLFlBQVksSUFBSSxRQUFRLEtBQUssS0FBSSxDQUFDLFNBQVMsRUFBdkQsQ0FBdUQsQ0FBQyxFQUN4RSxvQkFBb0IsRUFBRSxDQUN6QixDQUFDO1FBWUUsb0RBQW9EO1FBQ3BELElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRTtZQUNoQixhQUFhLENBQUMsYUFBYSxDQUFDO2lCQUN2QixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFLFdBQVcsQ0FBQyxNQUFNLENBQUMsRUFBRSxTQUFTLENBQUMsUUFBUSxDQUFDLENBQUM7aUJBQy9ELFNBQVMsQ0FBQztnQkFDUCxJQUFJLGFBQWEsQ0FBQyxTQUFTLEVBQUU7b0JBQ3pCLGFBQWEsQ0FBQyxLQUFLLENBQUMsV0FBVyxHQUFHLEVBQUUsQ0FBQztpQkFDeEM7cUJBQU07b0JBQ0gsYUFBYSxDQUFDLEtBQUssQ0FBQyxXQUFXLEdBQUcsVUFBVSxDQUFDO2lCQUNoRDtZQUNMLENBQUMsQ0FBQyxDQUFDO1NBQ1Y7SUFDTCxDQUFDOztnQkFyQjJCLE1BQU0sdUJBQTdCLE1BQU0sU0FBQyxNQUFNO2dCQUMrQixVQUFVLHVCQUF0RCxNQUFNLFNBQUMsaUJBQWlCLGNBQUcsSUFBSTtnQkFDUyxVQUFVLHVCQUFsRCxNQUFNLFNBQUMsY0FBYzs4Q0FDckIsTUFBTSxTQUFDLFVBQVU7NkNBQ2pCLE1BQU0sU0FBQyw2QkFBNkI7Z0RBQ3BDLE1BQU0sU0FBQyw2QkFBNkI7Z0JBRWUsVUFBVSx1QkFBN0QsTUFBTSxTQUFDLHVCQUF1Qjs7SUF0Qm5DO1FBRkMsS0FBSyxFQUFFO1FBQ1AsY0FBYyxFQUFFO21FQUdBO0lBR2pCO1FBREMsTUFBTSxFQUFFOzZEQUdQO0lBVk8seUJBQXlCO1FBUHJDLFNBQVMsQ0FBQztZQUNQLFFBQVEsRUFBRSxxQkFBcUI7WUFDL0IsNlJBQThDO1lBRTlDLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO1lBQy9DLFNBQVMsRUFBRSxDQUFDLHVCQUF1QixFQUFFLGlCQUFpQixDQUFDOztTQUMxRCxDQUFDO1FBbUJPLFdBQUEsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFBO1FBQ2QsV0FBQSxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQSxFQUFFLFdBQUEsSUFBSSxFQUFFLENBQUE7UUFDakMsV0FBQSxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUE7UUFDdEIsV0FBQSxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUE7UUFDbEIsV0FBQSxNQUFNLENBQUMsNkJBQTZCLENBQUMsQ0FBQTtRQUNyQyxXQUFBLE1BQU0sQ0FBQyw2QkFBNkIsQ0FBQyxDQUFBO1FBRXJDLFdBQUEsTUFBTSxDQUFDLHVCQUF1QixDQUFDLENBQUE7T0F6QjNCLHlCQUF5QixDQXdDckM7SUFBRCxnQ0FBQztDQUFBLEFBeENELElBd0NDO1NBeENZLHlCQUF5QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ29tcG9uZW50LFxuICAgIEVsZW1lbnRSZWYsXG4gICAgSW5qZWN0LFxuICAgIElucHV0LFxuICAgIE5nWm9uZSxcbiAgICBPdXRwdXQsXG4gICAgU2VsZixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICAgIFRVSV9JU19JT1MsXG4gICAgVHVpQ29udGV4dFdpdGhJbXBsaWNpdCxcbiAgICB0dWlEZWZhdWx0UHJvcCxcbiAgICBUdWlEZXN0cm95U2VydmljZSxcbiAgICBUdWlIYW5kbGVyLFxuICAgIHR1aVNjcm9sbEZyb20sXG4gICAgdHVpWm9uZWZyZWUsXG59IGZyb20gJ0B0YWlnYS11aS9jZGsnO1xuaW1wb3J0IHtUVUlfU0NST0xMX1JFRn0gZnJvbSAnQHRhaWdhLXVpL2NvcmUnO1xuaW1wb3J0IHtQb2x5bW9ycGhldXNDb250ZW50fSBmcm9tICdAdGlua29mZi9uZy1wb2x5bW9ycGhldXMnO1xuaW1wb3J0IHtPYnNlcnZhYmxlfSBmcm9tICdyeGpzJztcbmltcG9ydCB7ZGlzdGluY3RVbnRpbENoYW5nZWQsIGZpbHRlciwgbWFwLCBzdGFydFdpdGgsIHRha2VVbnRpbH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQge1RVSV9QVUxMX1RPX1JFRlJFU0hfQ09NUE9ORU5UfSBmcm9tICcuL3B1bGwtdG8tcmVmcmVzaC5wcm92aWRlcnMnO1xuaW1wb3J0IHtNSUNST19PRkZTRVQsIFR1aVB1bGxUb1JlZnJlc2hTZXJ2aWNlfSBmcm9tICcuL3B1bGwtdG8tcmVmcmVzaC5zZXJ2aWNlJztcbmltcG9ydCB7VFVJX1BVTExfVE9fUkVGUkVTSF9USFJFU0hPTER9IGZyb20gJy4vcHVsbC10by1yZWZyZXNoLnRva2Vucyc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAndHVpLXB1bGwtdG8tcmVmcmVzaCcsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3B1bGwtdG8tcmVmcmVzaC50ZW1wbGF0ZS5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9wdWxsLXRvLXJlZnJlc2guc3R5bGUubGVzcyddLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIHByb3ZpZGVyczogW1R1aVB1bGxUb1JlZnJlc2hTZXJ2aWNlLCBUdWlEZXN0cm95U2VydmljZV0sXG59KVxuZXhwb3J0IGNsYXNzIFR1aVB1bGxUb1JlZnJlc2hDb21wb25lbnQge1xuICAgIEBJbnB1dCgpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICBzdHlsZUhhbmRsZXI6IFR1aUhhbmRsZXI8bnVtYmVyLCBSZWNvcmQ8c3RyaW5nLCBhbnk+IHwgbnVsbD4gPSB0aGlzLmlzSU9TXG4gICAgICAgID8gZGlzdGFuY2UgPT4gKHt0cmFuc2Zvcm06IGB0cmFuc2xhdGVZKCR7ZGlzdGFuY2UgLyAyfXB4KWB9KVxuICAgICAgICA6ICgpID0+IG51bGw7XG5cbiAgICBAT3V0cHV0KClcbiAgICByZWFkb25seSBwdWxsZWQ6IE9ic2VydmFibGU8dW5rbm93bj4gPSB0aGlzLnB1bGxpbmckLnBpcGUoXG4gICAgICAgIGZpbHRlcihkaXN0YW5jZSA9PiBkaXN0YW5jZSA9PT0gdGhpcy50aHJlc2hvbGQpLFxuICAgICk7XG5cbiAgICByZWFkb25seSBkcm9wcGVkJDogT2JzZXJ2YWJsZTxib29sZWFuPiA9IHRoaXMucHVsbGluZyQucGlwZShcbiAgICAgICAgbWFwKGRpc3RhbmNlID0+IGRpc3RhbmNlIDw9IE1JQ1JPX09GRlNFVCB8fCBkaXN0YW5jZSA9PT0gdGhpcy50aHJlc2hvbGQpLFxuICAgICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgICk7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgQEluamVjdChOZ1pvbmUpIG5nWm9uZTogTmdab25lLFxuICAgICAgICBASW5qZWN0KFR1aURlc3Ryb3lTZXJ2aWNlKSBAU2VsZigpIGRlc3Ryb3kkOiBPYnNlcnZhYmxlPHVua25vd24+LFxuICAgICAgICBASW5qZWN0KFRVSV9TQ1JPTExfUkVGKSB7bmF0aXZlRWxlbWVudH06IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+LFxuICAgICAgICBASW5qZWN0KFRVSV9JU19JT1MpIHByaXZhdGUgcmVhZG9ubHkgaXNJT1M6IGJvb2xlYW4sXG4gICAgICAgIEBJbmplY3QoVFVJX1BVTExfVE9fUkVGUkVTSF9USFJFU0hPTEQpIHByaXZhdGUgcmVhZG9ubHkgdGhyZXNob2xkOiBudW1iZXIsXG4gICAgICAgIEBJbmplY3QoVFVJX1BVTExfVE9fUkVGUkVTSF9DT01QT05FTlQpXG4gICAgICAgIHJlYWRvbmx5IGNvbXBvbmVudDogUG9seW1vcnBoZXVzQ29udGVudDxUdWlDb250ZXh0V2l0aEltcGxpY2l0PG51bWJlcj4+LFxuICAgICAgICBASW5qZWN0KFR1aVB1bGxUb1JlZnJlc2hTZXJ2aWNlKSByZWFkb25seSBwdWxsaW5nJDogT2JzZXJ2YWJsZTxudW1iZXI+LFxuICAgICkge1xuICAgICAgICAvLyBFbnN1cmUgc2Nyb2xsaW5nIGRvd24gaXMgaW1wb3NzaWJsZSB3aGlsZSBwdWxsaW5nXG4gICAgICAgIGlmICh0aGlzLmNvbXBvbmVudCkge1xuICAgICAgICAgICAgdHVpU2Nyb2xsRnJvbShuYXRpdmVFbGVtZW50KVxuICAgICAgICAgICAgICAgIC5waXBlKHN0YXJ0V2l0aChudWxsKSwgdHVpWm9uZWZyZWUobmdab25lKSwgdGFrZVVudGlsKGRlc3Ryb3kkKSlcbiAgICAgICAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKG5hdGl2ZUVsZW1lbnQuc2Nyb2xsVG9wKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBuYXRpdmVFbGVtZW50LnN0eWxlLnRvdWNoQWN0aW9uID0gJyc7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBuYXRpdmVFbGVtZW50LnN0eWxlLnRvdWNoQWN0aW9uID0gJ3Bhbi1kb3duJztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxufVxuIl19
@@ -1,7 +1,7 @@
1
1
  import { __decorate, __param } from 'tslib';
2
- import { InjectionToken, Inject, Component, ChangeDetectionStrategy, inject, ElementRef, Injectable, HostBinding, Self, Input, Output, NgModule } from '@angular/core';
2
+ import { InjectionToken, Inject, Component, ChangeDetectionStrategy, inject, ElementRef, Injectable, HostBinding, NgZone, Self, Input, Output, NgModule } from '@angular/core';
3
3
  import { POLYMORPHEUS_CONTEXT, PolymorpheusComponent, PolymorpheusModule } from '@tinkoff/ng-polymorpheus';
4
- import { TUI_IS_IOS, tuiTypedFromEvent, tuiScrollFrom, TuiDestroyService, tuiDefaultProp, TuiRepeatTimesModule } from '@taiga-ui/cdk';
4
+ import { TUI_IS_IOS, tuiTypedFromEvent, tuiScrollFrom, tuiZonefree, TuiDestroyService, tuiDefaultProp, TuiRepeatTimesModule } from '@taiga-ui/cdk';
5
5
  import { TUI_SCROLL_REF, TuiSvgModule } from '@taiga-ui/core';
6
6
  import { EMPTY, Observable } from 'rxjs';
7
7
  import { startWith, switchMap, filter, map, tap, takeUntil, endWith, scan, takeWhile, distinctUntilChanged, share } from 'rxjs/operators';
@@ -166,7 +166,7 @@ TuiMobileLoaderAndroidComponent = __decorate([
166
166
  const TUI_ANDROID_LOADER = new PolymorpheusComponent(TuiMobileLoaderAndroidComponent);
167
167
 
168
168
  let TuiPullToRefreshComponent = class TuiPullToRefreshComponent {
169
- constructor(destroy$, { nativeElement }, isIOS, threshold, component, pulling$) {
169
+ constructor(ngZone, destroy$, { nativeElement }, isIOS, threshold, component, pulling$) {
170
170
  this.isIOS = isIOS;
171
171
  this.threshold = threshold;
172
172
  this.component = component;
@@ -177,19 +177,22 @@ let TuiPullToRefreshComponent = class TuiPullToRefreshComponent {
177
177
  this.pulled = this.pulling$.pipe(filter(distance => distance === this.threshold));
178
178
  this.dropped$ = this.pulling$.pipe(map(distance => distance <= MICRO_OFFSET || distance === this.threshold), distinctUntilChanged());
179
179
  // Ensure scrolling down is impossible while pulling
180
- tuiScrollFrom(nativeElement)
181
- .pipe(startWith(null), takeUntil(destroy$))
182
- .subscribe(() => {
183
- if (nativeElement.scrollTop) {
184
- nativeElement.style.touchAction = '';
185
- }
186
- else {
187
- nativeElement.style.touchAction = 'pan-down';
188
- }
189
- });
180
+ if (this.component) {
181
+ tuiScrollFrom(nativeElement)
182
+ .pipe(startWith(null), tuiZonefree(ngZone), takeUntil(destroy$))
183
+ .subscribe(() => {
184
+ if (nativeElement.scrollTop) {
185
+ nativeElement.style.touchAction = '';
186
+ }
187
+ else {
188
+ nativeElement.style.touchAction = 'pan-down';
189
+ }
190
+ });
191
+ }
190
192
  }
191
193
  };
192
194
  TuiPullToRefreshComponent.ctorParameters = () => [
195
+ { type: NgZone, decorators: [{ type: Inject, args: [NgZone,] }] },
193
196
  { type: Observable, decorators: [{ type: Inject, args: [TuiDestroyService,] }, { type: Self }] },
194
197
  { type: ElementRef, decorators: [{ type: Inject, args: [TUI_SCROLL_REF,] }] },
195
198
  { type: Boolean, decorators: [{ type: Inject, args: [TUI_IS_IOS,] }] },
@@ -212,12 +215,13 @@ TuiPullToRefreshComponent = __decorate([
212
215
  providers: [TuiPullToRefreshService, TuiDestroyService],
213
216
  styles: [".t-drop{transition:all var(--tui-duration) cubic-bezier(.4,0,.2,1)}"]
214
217
  }),
215
- __param(0, Inject(TuiDestroyService)), __param(0, Self()),
216
- __param(1, Inject(TUI_SCROLL_REF)),
217
- __param(2, Inject(TUI_IS_IOS)),
218
- __param(3, Inject(TUI_PULL_TO_REFRESH_THRESHOLD)),
219
- __param(4, Inject(TUI_PULL_TO_REFRESH_COMPONENT)),
220
- __param(5, Inject(TuiPullToRefreshService))
218
+ __param(0, Inject(NgZone)),
219
+ __param(1, Inject(TuiDestroyService)), __param(1, Self()),
220
+ __param(2, Inject(TUI_SCROLL_REF)),
221
+ __param(3, Inject(TUI_IS_IOS)),
222
+ __param(4, Inject(TUI_PULL_TO_REFRESH_THRESHOLD)),
223
+ __param(5, Inject(TUI_PULL_TO_REFRESH_COMPONENT)),
224
+ __param(6, Inject(TuiPullToRefreshService))
221
225
  ], TuiPullToRefreshComponent);
222
226
 
223
227
  let TuiPullToRefreshModule = class TuiPullToRefreshModule {
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-addon-mobile-components-pull-to-refresh.js","sources":["ng://@taiga-ui/addon-mobile/components/pull-to-refresh/pull-to-refresh.tokens.ts","ng://@taiga-ui/addon-mobile/components/pull-to-refresh/loader-ios/loader-ios.component.ts","ng://@taiga-ui/addon-mobile/components/pull-to-refresh/pull-to-refresh.providers.ts","ng://@taiga-ui/addon-mobile/components/pull-to-refresh/pull-to-refresh.service.ts","ng://@taiga-ui/addon-mobile/components/pull-to-refresh/loader-android/loader-android.component.ts","ng://@taiga-ui/addon-mobile/components/pull-to-refresh/pull-to-refresh.component.ts","ng://@taiga-ui/addon-mobile/components/pull-to-refresh/pull-to-refresh.module.ts","ng://@taiga-ui/addon-mobile/components/pull-to-refresh/taiga-ui-addon-mobile-components-pull-to-refresh.ts"],"sourcesContent":["import {InjectionToken} from '@angular/core';\n\n/**\n * Pull threshold in pixels until loading starts\n */\n\nexport const TUI_PULL_TO_REFRESH_THRESHOLD = new InjectionToken<number>(\n `[TUI_PULL_TO_REFRESH_THRESHOLD]`,\n {\n factory: () => 50,\n },\n);\n","import {ChangeDetectionStrategy, Component, Inject} from '@angular/core';\nimport {TuiContextWithImplicit} from '@taiga-ui/cdk';\nimport {POLYMORPHEUS_CONTEXT, PolymorpheusComponent} from '@tinkoff/ng-polymorpheus';\n\nimport {TUI_PULL_TO_REFRESH_THRESHOLD} from '../pull-to-refresh.tokens';\n\nconst LOADED_STEP = 8;\nconst ROTATE_X_STEP = 30;\n\n@Component({\n selector: 'tui-mobile-ios-loader',\n templateUrl: './loader-ios.template.html',\n styleUrls: ['./loader-ios.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TuiMobileLoaderIOSComponent {\n readonly steps = 12;\n\n constructor(\n @Inject(POLYMORPHEUS_CONTEXT)\n private readonly context: TuiContextWithImplicit<number>,\n @Inject(TUI_PULL_TO_REFRESH_THRESHOLD) private readonly threshold: number,\n ) {}\n\n get finished(): boolean {\n return this.percent >= 100;\n }\n\n get percent(): number {\n return (this.context.$implicit * 100) / this.threshold;\n }\n\n isShown(index: number): boolean {\n return this.percent > (index + 1) * LOADED_STEP;\n }\n\n calculateTransform(index: number): string {\n return `rotate(${index * ROTATE_X_STEP} 50 50)`;\n }\n\n calculateAnimationBegin(index: number): string {\n return `${(index * LOADED_STEP) / 100}s`;\n }\n}\n\nexport const TUI_IOS_LOADER = new PolymorpheusComponent(TuiMobileLoaderIOSComponent);\n","import {inject, InjectionToken} from '@angular/core';\nimport {TUI_IS_IOS, TuiContextWithImplicit} from '@taiga-ui/cdk';\nimport {PolymorpheusContent} from '@tinkoff/ng-polymorpheus';\nimport {EMPTY, Observable} from 'rxjs';\n\nimport {TUI_ANDROID_LOADER} from './loader-android/loader-android.component';\nimport {TUI_IOS_LOADER} from './loader-ios/loader-ios.component';\n\n/**\n * Stream that emits when loading is over\n */\nexport const TUI_PULL_TO_REFRESH_LOADED = new InjectionToken<Observable<unknown>>(\n `[TUI_PULL_TO_REFRESH_LOADED]`,\n {\n factory: () => EMPTY,\n },\n);\n\n/**\n * Loading indicator component that gets current pull distance in pixels as context\n */\nexport const TUI_PULL_TO_REFRESH_COMPONENT = new InjectionToken<\n PolymorpheusContent<TuiContextWithImplicit<number>>\n>(`[TUI_PULL_TO_REFRESH_COMPONENT]`, {\n factory: () => (inject(TUI_IS_IOS) ? TUI_IOS_LOADER : TUI_ANDROID_LOADER),\n});\n\n/**\n * @deprecated renamed to {@link TUI_PULL_TO_REFRESH_LOADED}\n */\nexport const TUI_LOADED = TUI_PULL_TO_REFRESH_LOADED;\n","import {ElementRef, Inject, Injectable} from '@angular/core';\nimport {tuiScrollFrom, tuiTypedFromEvent} from '@taiga-ui/cdk';\nimport {TUI_SCROLL_REF} from '@taiga-ui/core';\nimport {EMPTY, Observable} from 'rxjs';\nimport {\n distinctUntilChanged,\n endWith,\n filter,\n map,\n scan,\n share,\n startWith,\n switchMap,\n takeUntil,\n takeWhile,\n tap,\n} from 'rxjs/operators';\n\nimport {\n TUI_PULL_TO_REFRESH_COMPONENT,\n TUI_PULL_TO_REFRESH_LOADED,\n} from './pull-to-refresh.providers';\nimport {TUI_PULL_TO_REFRESH_THRESHOLD} from './pull-to-refresh.tokens';\n\nexport const MICRO_OFFSET = 10 ** -6;\n\n// @dynamic\n@Injectable()\nexport class TuiPullToRefreshService extends Observable<number> {\n // Hack for iOS to determine if pulling stopped due to scroll\n // because Safari does not support `touch-action: pan-down`\n private touched = false;\n\n private readonly pulling$ = this.loaded$.pipe(\n startWith(null),\n switchMap(() =>\n tuiTypedFromEvent(this.element, `touchstart`, {passive: true}).pipe(\n filter(() => !this.scrollTop),\n map(({touches}) => touches[0].clientY),\n switchMap(start =>\n tuiTypedFromEvent(this.element, `touchmove`).pipe(\n tap((): void => {\n this.touched = true;\n }),\n map(({touches}) => touches[0].clientY - start),\n filter(distance => distance > 0),\n takeUntil(\n tuiTypedFromEvent(this.element, `touchend`).pipe(\n tap((): void => {\n this.touched = false;\n }),\n ),\n ),\n takeUntil(tuiScrollFrom(this.scrollRef.nativeElement)),\n endWith(0),\n ),\n ),\n scan(\n (prev, current) =>\n !current && !this.touched && prev > this.threshold\n ? this.threshold\n : current + current * MICRO_OFFSET,\n 0,\n ),\n takeWhile(distance => distance !== this.threshold, true),\n startWith(0),\n ),\n ),\n distinctUntilChanged(),\n share(),\n );\n\n constructor(\n @Inject(ElementRef) private readonly el: ElementRef<HTMLElement>,\n @Inject(TUI_SCROLL_REF) private readonly scrollRef: ElementRef<HTMLElement>,\n @Inject(TUI_PULL_TO_REFRESH_LOADED) private readonly loaded$: Observable<unknown>,\n @Inject(TUI_PULL_TO_REFRESH_THRESHOLD) private readonly threshold: number,\n @Inject(TUI_PULL_TO_REFRESH_COMPONENT) component: unknown,\n ) {\n super(subscriber => (component ? this.pulling$ : EMPTY).subscribe(subscriber));\n }\n\n private get element(): HTMLElement {\n return this.el.nativeElement;\n }\n\n private get scrollTop(): number {\n return this.scrollRef.nativeElement.scrollTop;\n }\n}\n","import {ChangeDetectionStrategy, Component, HostBinding, Inject} from '@angular/core';\nimport {TuiContextWithImplicit} from '@taiga-ui/cdk';\nimport {POLYMORPHEUS_CONTEXT, PolymorpheusComponent} from '@tinkoff/ng-polymorpheus';\n\nimport {MICRO_OFFSET} from '../pull-to-refresh.service';\nimport {TUI_PULL_TO_REFRESH_THRESHOLD} from '../pull-to-refresh.tokens';\n\nconst ROTATE_X_DEFAULT = 180;\nconst ROTATE_X_MAX = 500;\nconst ROTATE_X_MULTIPLIER = 2.3;\n\n@Component({\n selector: 'tui-mobile-android-loader',\n templateUrl: './loader-android.template.html',\n styleUrls: ['./loader-android.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TuiMobileLoaderAndroidComponent {\n constructor(\n @Inject(POLYMORPHEUS_CONTEXT)\n private readonly context: TuiContextWithImplicit<number>,\n @Inject(TUI_PULL_TO_REFRESH_THRESHOLD) private readonly threshold: number,\n ) {}\n\n get transform(): string {\n const rotateX = Math.min(\n ROTATE_X_DEFAULT + this.percent * ROTATE_X_MULTIPLIER,\n ROTATE_X_MAX,\n );\n\n return `rotate(${rotateX} 0 0)`;\n }\n\n @HostBinding('class._visible')\n get percent(): number {\n return (this.context.$implicit * 100) / this.threshold;\n }\n\n get opacity(): number {\n return this.context.$implicit / (this.threshold * 1.5);\n }\n\n @HostBinding('class._dropped')\n get dropped(): boolean {\n return (\n this.context.$implicit <= MICRO_OFFSET ||\n this.context.$implicit === this.threshold\n );\n }\n\n @HostBinding('style.transform')\n get hostTransform(): string {\n return `translateY(${Math.min(this.context.$implicit, this.threshold * 1.5)}px)`;\n }\n}\n\nexport const TUI_ANDROID_LOADER = new PolymorpheusComponent(\n TuiMobileLoaderAndroidComponent,\n);\n","import {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n Inject,\n Input,\n Output,\n Self,\n} from '@angular/core';\nimport {\n TUI_IS_IOS,\n TuiContextWithImplicit,\n tuiDefaultProp,\n TuiDestroyService,\n TuiHandler,\n tuiScrollFrom,\n} from '@taiga-ui/cdk';\nimport {TUI_SCROLL_REF} from '@taiga-ui/core';\nimport {PolymorpheusContent} from '@tinkoff/ng-polymorpheus';\nimport {Observable} from 'rxjs';\nimport {distinctUntilChanged, filter, map, startWith, takeUntil} from 'rxjs/operators';\n\nimport {TUI_PULL_TO_REFRESH_COMPONENT} from './pull-to-refresh.providers';\nimport {MICRO_OFFSET, TuiPullToRefreshService} from './pull-to-refresh.service';\nimport {TUI_PULL_TO_REFRESH_THRESHOLD} from './pull-to-refresh.tokens';\n\n@Component({\n selector: 'tui-pull-to-refresh',\n templateUrl: './pull-to-refresh.template.html',\n styleUrls: ['./pull-to-refresh.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [TuiPullToRefreshService, TuiDestroyService],\n})\nexport class TuiPullToRefreshComponent {\n @Input()\n @tuiDefaultProp()\n styleHandler: TuiHandler<number, Record<string, any> | null> = this.isIOS\n ? distance => ({transform: `translateY(${distance / 2}px)`})\n : () => null;\n\n @Output()\n readonly pulled: Observable<unknown> = this.pulling$.pipe(\n filter(distance => distance === this.threshold),\n );\n\n readonly dropped$: Observable<boolean> = this.pulling$.pipe(\n map(distance => distance <= MICRO_OFFSET || distance === this.threshold),\n distinctUntilChanged(),\n );\n\n constructor(\n @Inject(TuiDestroyService) @Self() destroy$: Observable<unknown>,\n @Inject(TUI_SCROLL_REF) {nativeElement}: ElementRef<HTMLElement>,\n @Inject(TUI_IS_IOS) private readonly isIOS: boolean,\n @Inject(TUI_PULL_TO_REFRESH_THRESHOLD) private readonly threshold: number,\n @Inject(TUI_PULL_TO_REFRESH_COMPONENT)\n readonly component: PolymorpheusContent<TuiContextWithImplicit<number>>,\n @Inject(TuiPullToRefreshService) readonly pulling$: Observable<number>,\n ) {\n // Ensure scrolling down is impossible while pulling\n tuiScrollFrom(nativeElement)\n .pipe(startWith(null), takeUntil(destroy$))\n .subscribe(() => {\n if (nativeElement.scrollTop) {\n nativeElement.style.touchAction = '';\n } else {\n nativeElement.style.touchAction = 'pan-down';\n }\n });\n }\n}\n","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {TuiRepeatTimesModule} from '@taiga-ui/cdk';\nimport {TuiSvgModule} from '@taiga-ui/core';\nimport {PolymorpheusModule} from '@tinkoff/ng-polymorpheus';\n\nimport {TuiMobileLoaderAndroidComponent} from './loader-android/loader-android.component';\nimport {TuiMobileLoaderIOSComponent} from './loader-ios/loader-ios.component';\nimport {TuiPullToRefreshComponent} from './pull-to-refresh.component';\n\n@NgModule({\n imports: [CommonModule, TuiSvgModule, TuiRepeatTimesModule, PolymorpheusModule],\n declarations: [\n TuiPullToRefreshComponent,\n TuiMobileLoaderAndroidComponent,\n TuiMobileLoaderIOSComponent,\n ],\n exports: [TuiPullToRefreshComponent],\n})\nexport class TuiPullToRefreshModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"taiga-ui-addon-mobile-components-pull-to-refresh.js","sources":["ng://@taiga-ui/addon-mobile/components/pull-to-refresh/pull-to-refresh.tokens.ts","ng://@taiga-ui/addon-mobile/components/pull-to-refresh/loader-ios/loader-ios.component.ts","ng://@taiga-ui/addon-mobile/components/pull-to-refresh/pull-to-refresh.providers.ts","ng://@taiga-ui/addon-mobile/components/pull-to-refresh/pull-to-refresh.service.ts","ng://@taiga-ui/addon-mobile/components/pull-to-refresh/loader-android/loader-android.component.ts","ng://@taiga-ui/addon-mobile/components/pull-to-refresh/pull-to-refresh.component.ts","ng://@taiga-ui/addon-mobile/components/pull-to-refresh/pull-to-refresh.module.ts","ng://@taiga-ui/addon-mobile/components/pull-to-refresh/taiga-ui-addon-mobile-components-pull-to-refresh.ts"],"sourcesContent":["import {InjectionToken} from '@angular/core';\n\n/**\n * Pull threshold in pixels until loading starts\n */\n\nexport const TUI_PULL_TO_REFRESH_THRESHOLD = new InjectionToken<number>(\n `[TUI_PULL_TO_REFRESH_THRESHOLD]`,\n {\n factory: () => 50,\n },\n);\n","import {ChangeDetectionStrategy, Component, Inject} from '@angular/core';\nimport {TuiContextWithImplicit} from '@taiga-ui/cdk';\nimport {POLYMORPHEUS_CONTEXT, PolymorpheusComponent} from '@tinkoff/ng-polymorpheus';\n\nimport {TUI_PULL_TO_REFRESH_THRESHOLD} from '../pull-to-refresh.tokens';\n\nconst LOADED_STEP = 8;\nconst ROTATE_X_STEP = 30;\n\n@Component({\n selector: 'tui-mobile-ios-loader',\n templateUrl: './loader-ios.template.html',\n styleUrls: ['./loader-ios.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TuiMobileLoaderIOSComponent {\n readonly steps = 12;\n\n constructor(\n @Inject(POLYMORPHEUS_CONTEXT)\n private readonly context: TuiContextWithImplicit<number>,\n @Inject(TUI_PULL_TO_REFRESH_THRESHOLD) private readonly threshold: number,\n ) {}\n\n get finished(): boolean {\n return this.percent >= 100;\n }\n\n get percent(): number {\n return (this.context.$implicit * 100) / this.threshold;\n }\n\n isShown(index: number): boolean {\n return this.percent > (index + 1) * LOADED_STEP;\n }\n\n calculateTransform(index: number): string {\n return `rotate(${index * ROTATE_X_STEP} 50 50)`;\n }\n\n calculateAnimationBegin(index: number): string {\n return `${(index * LOADED_STEP) / 100}s`;\n }\n}\n\nexport const TUI_IOS_LOADER = new PolymorpheusComponent(TuiMobileLoaderIOSComponent);\n","import {inject, InjectionToken} from '@angular/core';\nimport {TUI_IS_IOS, TuiContextWithImplicit} from '@taiga-ui/cdk';\nimport {PolymorpheusContent} from '@tinkoff/ng-polymorpheus';\nimport {EMPTY, Observable} from 'rxjs';\n\nimport {TUI_ANDROID_LOADER} from './loader-android/loader-android.component';\nimport {TUI_IOS_LOADER} from './loader-ios/loader-ios.component';\n\n/**\n * Stream that emits when loading is over\n */\nexport const TUI_PULL_TO_REFRESH_LOADED = new InjectionToken<Observable<unknown>>(\n `[TUI_PULL_TO_REFRESH_LOADED]`,\n {\n factory: () => EMPTY,\n },\n);\n\n/**\n * Loading indicator component that gets current pull distance in pixels as context\n */\nexport const TUI_PULL_TO_REFRESH_COMPONENT = new InjectionToken<\n PolymorpheusContent<TuiContextWithImplicit<number>>\n>(`[TUI_PULL_TO_REFRESH_COMPONENT]`, {\n factory: () => (inject(TUI_IS_IOS) ? TUI_IOS_LOADER : TUI_ANDROID_LOADER),\n});\n\n/**\n * @deprecated renamed to {@link TUI_PULL_TO_REFRESH_LOADED}\n */\nexport const TUI_LOADED = TUI_PULL_TO_REFRESH_LOADED;\n","import {ElementRef, Inject, Injectable} from '@angular/core';\nimport {tuiScrollFrom, tuiTypedFromEvent} from '@taiga-ui/cdk';\nimport {TUI_SCROLL_REF} from '@taiga-ui/core';\nimport {EMPTY, Observable} from 'rxjs';\nimport {\n distinctUntilChanged,\n endWith,\n filter,\n map,\n scan,\n share,\n startWith,\n switchMap,\n takeUntil,\n takeWhile,\n tap,\n} from 'rxjs/operators';\n\nimport {\n TUI_PULL_TO_REFRESH_COMPONENT,\n TUI_PULL_TO_REFRESH_LOADED,\n} from './pull-to-refresh.providers';\nimport {TUI_PULL_TO_REFRESH_THRESHOLD} from './pull-to-refresh.tokens';\n\nexport const MICRO_OFFSET = 10 ** -6;\n\n// @dynamic\n@Injectable()\nexport class TuiPullToRefreshService extends Observable<number> {\n // Hack for iOS to determine if pulling stopped due to scroll\n // because Safari does not support `touch-action: pan-down`\n private touched = false;\n\n private readonly pulling$ = this.loaded$.pipe(\n startWith(null),\n switchMap(() =>\n tuiTypedFromEvent(this.element, `touchstart`, {passive: true}).pipe(\n filter(() => !this.scrollTop),\n map(({touches}) => touches[0].clientY),\n switchMap(start =>\n tuiTypedFromEvent(this.element, `touchmove`).pipe(\n tap((): void => {\n this.touched = true;\n }),\n map(({touches}) => touches[0].clientY - start),\n filter(distance => distance > 0),\n takeUntil(\n tuiTypedFromEvent(this.element, `touchend`).pipe(\n tap((): void => {\n this.touched = false;\n }),\n ),\n ),\n takeUntil(tuiScrollFrom(this.scrollRef.nativeElement)),\n endWith(0),\n ),\n ),\n scan(\n (prev, current) =>\n !current && !this.touched && prev > this.threshold\n ? this.threshold\n : current + current * MICRO_OFFSET,\n 0,\n ),\n takeWhile(distance => distance !== this.threshold, true),\n startWith(0),\n ),\n ),\n distinctUntilChanged(),\n share(),\n );\n\n constructor(\n @Inject(ElementRef) private readonly el: ElementRef<HTMLElement>,\n @Inject(TUI_SCROLL_REF) private readonly scrollRef: ElementRef<HTMLElement>,\n @Inject(TUI_PULL_TO_REFRESH_LOADED) private readonly loaded$: Observable<unknown>,\n @Inject(TUI_PULL_TO_REFRESH_THRESHOLD) private readonly threshold: number,\n @Inject(TUI_PULL_TO_REFRESH_COMPONENT) component: unknown,\n ) {\n super(subscriber => (component ? this.pulling$ : EMPTY).subscribe(subscriber));\n }\n\n private get element(): HTMLElement {\n return this.el.nativeElement;\n }\n\n private get scrollTop(): number {\n return this.scrollRef.nativeElement.scrollTop;\n }\n}\n","import {ChangeDetectionStrategy, Component, HostBinding, Inject} from '@angular/core';\nimport {TuiContextWithImplicit} from '@taiga-ui/cdk';\nimport {POLYMORPHEUS_CONTEXT, PolymorpheusComponent} from '@tinkoff/ng-polymorpheus';\n\nimport {MICRO_OFFSET} from '../pull-to-refresh.service';\nimport {TUI_PULL_TO_REFRESH_THRESHOLD} from '../pull-to-refresh.tokens';\n\nconst ROTATE_X_DEFAULT = 180;\nconst ROTATE_X_MAX = 500;\nconst ROTATE_X_MULTIPLIER = 2.3;\n\n@Component({\n selector: 'tui-mobile-android-loader',\n templateUrl: './loader-android.template.html',\n styleUrls: ['./loader-android.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TuiMobileLoaderAndroidComponent {\n constructor(\n @Inject(POLYMORPHEUS_CONTEXT)\n private readonly context: TuiContextWithImplicit<number>,\n @Inject(TUI_PULL_TO_REFRESH_THRESHOLD) private readonly threshold: number,\n ) {}\n\n get transform(): string {\n const rotateX = Math.min(\n ROTATE_X_DEFAULT + this.percent * ROTATE_X_MULTIPLIER,\n ROTATE_X_MAX,\n );\n\n return `rotate(${rotateX} 0 0)`;\n }\n\n @HostBinding('class._visible')\n get percent(): number {\n return (this.context.$implicit * 100) / this.threshold;\n }\n\n get opacity(): number {\n return this.context.$implicit / (this.threshold * 1.5);\n }\n\n @HostBinding('class._dropped')\n get dropped(): boolean {\n return (\n this.context.$implicit <= MICRO_OFFSET ||\n this.context.$implicit === this.threshold\n );\n }\n\n @HostBinding('style.transform')\n get hostTransform(): string {\n return `translateY(${Math.min(this.context.$implicit, this.threshold * 1.5)}px)`;\n }\n}\n\nexport const TUI_ANDROID_LOADER = new PolymorpheusComponent(\n TuiMobileLoaderAndroidComponent,\n);\n","import {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n Inject,\n Input,\n NgZone,\n Output,\n Self,\n} from '@angular/core';\nimport {\n TUI_IS_IOS,\n TuiContextWithImplicit,\n tuiDefaultProp,\n TuiDestroyService,\n TuiHandler,\n tuiScrollFrom,\n tuiZonefree,\n} from '@taiga-ui/cdk';\nimport {TUI_SCROLL_REF} from '@taiga-ui/core';\nimport {PolymorpheusContent} from '@tinkoff/ng-polymorpheus';\nimport {Observable} from 'rxjs';\nimport {distinctUntilChanged, filter, map, startWith, takeUntil} from 'rxjs/operators';\n\nimport {TUI_PULL_TO_REFRESH_COMPONENT} from './pull-to-refresh.providers';\nimport {MICRO_OFFSET, TuiPullToRefreshService} from './pull-to-refresh.service';\nimport {TUI_PULL_TO_REFRESH_THRESHOLD} from './pull-to-refresh.tokens';\n\n@Component({\n selector: 'tui-pull-to-refresh',\n templateUrl: './pull-to-refresh.template.html',\n styleUrls: ['./pull-to-refresh.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [TuiPullToRefreshService, TuiDestroyService],\n})\nexport class TuiPullToRefreshComponent {\n @Input()\n @tuiDefaultProp()\n styleHandler: TuiHandler<number, Record<string, any> | null> = this.isIOS\n ? distance => ({transform: `translateY(${distance / 2}px)`})\n : () => null;\n\n @Output()\n readonly pulled: Observable<unknown> = this.pulling$.pipe(\n filter(distance => distance === this.threshold),\n );\n\n readonly dropped$: Observable<boolean> = this.pulling$.pipe(\n map(distance => distance <= MICRO_OFFSET || distance === this.threshold),\n distinctUntilChanged(),\n );\n\n constructor(\n @Inject(NgZone) ngZone: NgZone,\n @Inject(TuiDestroyService) @Self() destroy$: Observable<unknown>,\n @Inject(TUI_SCROLL_REF) {nativeElement}: ElementRef<HTMLElement>,\n @Inject(TUI_IS_IOS) private readonly isIOS: boolean,\n @Inject(TUI_PULL_TO_REFRESH_THRESHOLD) private readonly threshold: number,\n @Inject(TUI_PULL_TO_REFRESH_COMPONENT)\n readonly component: PolymorpheusContent<TuiContextWithImplicit<number>>,\n @Inject(TuiPullToRefreshService) readonly pulling$: Observable<number>,\n ) {\n // Ensure scrolling down is impossible while pulling\n if (this.component) {\n tuiScrollFrom(nativeElement)\n .pipe(startWith(null), tuiZonefree(ngZone), takeUntil(destroy$))\n .subscribe(() => {\n if (nativeElement.scrollTop) {\n nativeElement.style.touchAction = '';\n } else {\n nativeElement.style.touchAction = 'pan-down';\n }\n });\n }\n }\n}\n","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {TuiRepeatTimesModule} from '@taiga-ui/cdk';\nimport {TuiSvgModule} from '@taiga-ui/core';\nimport {PolymorpheusModule} from '@tinkoff/ng-polymorpheus';\n\nimport {TuiMobileLoaderAndroidComponent} from './loader-android/loader-android.component';\nimport {TuiMobileLoaderIOSComponent} from './loader-ios/loader-ios.component';\nimport {TuiPullToRefreshComponent} from './pull-to-refresh.component';\n\n@NgModule({\n imports: [CommonModule, TuiSvgModule, TuiRepeatTimesModule, PolymorpheusModule],\n declarations: [\n TuiPullToRefreshComponent,\n TuiMobileLoaderAndroidComponent,\n TuiMobileLoaderIOSComponent,\n ],\n exports: [TuiPullToRefreshComponent],\n})\nexport class TuiPullToRefreshModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;AAEA;;;MAIa,6BAA6B,GAAG,IAAI,cAAc,CAC3D,iCAAiC,EACjC;IACI,OAAO,EAAE,MAAM,EAAE;CACpB;;ACJL,MAAM,WAAW,GAAG,CAAC,CAAC;AACtB,MAAM,aAAa,GAAG,EAAE,CAAC;IAQZ,2BAA2B,GAAxC,MAAa,2BAA2B;IAGpC,YAEqB,OAAuC,EACA,SAAiB;QADxD,YAAO,GAAP,OAAO,CAAgC;QACA,cAAS,GAAT,SAAS,CAAQ;QALpE,UAAK,GAAG,EAAE,CAAC;KAMhB;IAEJ,IAAI,QAAQ;QACR,OAAO,IAAI,CAAC,OAAO,IAAI,GAAG,CAAC;KAC9B;IAED,IAAI,OAAO;QACP,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,GAAG,GAAG,IAAI,IAAI,CAAC,SAAS,CAAC;KAC1D;IAED,OAAO,CAAC,KAAa;QACjB,OAAO,IAAI,CAAC,OAAO,GAAG,CAAC,KAAK,GAAG,CAAC,IAAI,WAAW,CAAC;KACnD;IAED,kBAAkB,CAAC,KAAa;QAC5B,OAAO,UAAU,KAAK,GAAG,aAAa,SAAS,CAAC;KACnD;IAED,uBAAuB,CAAC,KAAa;QACjC,OAAO,GAAG,CAAC,KAAK,GAAG,WAAW,IAAI,GAAG,GAAG,CAAC;KAC5C;EACJ;;4CAxBQ,MAAM,SAAC,oBAAoB;yCAE3B,MAAM,SAAC,6BAA6B;;AANhC,2BAA2B;IANvC,SAAS,CAAC;QACP,QAAQ,EAAE,uBAAuB;QACjC,uiCAAyC;QAEzC,eAAe,EAAE,uBAAuB,CAAC,MAAM;;KAClD,CAAC;IAKO,WAAA,MAAM,CAAC,oBAAoB,CAAC,CAAA;IAE5B,WAAA,MAAM,CAAC,6BAA6B,CAAC,CAAA;GANjC,2BAA2B,CA4BvC;MAEY,cAAc,GAAG,IAAI,qBAAqB,CAAC,2BAA2B;;ACrCnF;;;MAGa,0BAA0B,GAAG,IAAI,cAAc,CACxD,8BAA8B,EAC9B;IACI,OAAO,EAAE,MAAM,KAAK;CACvB,EACH;AAEF;;;MAGa,6BAA6B,GAAG,IAAI,cAAc,CAE7D,iCAAiC,EAAE;IACjC,OAAO,EAAE,OAAO,MAAM,CAAC,UAAU,CAAC,GAAG,cAAc,GAAG,kBAAkB,CAAC;CAC5E,EAAE;AAEH;;;MAGa,UAAU,GAAG;;MCNb,YAAY,GAAG,SAAA,EAAE,EAAI,CAAC,CAAC,EAAC;AAErC;IAEa,uBAAuB,GAApC,MAAa,uBAAwB,SAAQ,UAAkB;IA4C3D,YACyC,EAA2B,EACvB,SAAkC,EACtB,OAA4B,EACzB,SAAiB,EAClC,SAAkB;QAEzD,KAAK,CAAC,UAAU,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,QAAQ,GAAG,KAAK,EAAE,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC;QAN1C,OAAE,GAAF,EAAE,CAAyB;QACvB,cAAS,GAAT,SAAS,CAAyB;QACtB,YAAO,GAAP,OAAO,CAAqB;QACzB,cAAS,GAAT,SAAS,CAAQ;;;QA7CrE,YAAO,GAAG,KAAK,CAAC;QAEP,aAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CACzC,SAAS,CAAC,IAAI,CAAC,EACf,SAAS,CAAC,MACN,iBAAiB,CAAC,IAAI,CAAC,OAAO,EAAE,YAAY,EAAE,EAAC,OAAO,EAAE,IAAI,EAAC,CAAC,CAAC,IAAI,CAC/D,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,EAC7B,GAAG,CAAC,CAAC,EAAC,OAAO,EAAC,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EACtC,SAAS,CAAC,KAAK,IACX,iBAAiB,CAAC,IAAI,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC,IAAI,CAC7C,GAAG,CAAC;YACA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;SACvB,CAAC,EACF,GAAG,CAAC,CAAC,EAAC,OAAO,EAAC,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,GAAG,KAAK,CAAC,EAC9C,MAAM,CAAC,QAAQ,IAAI,QAAQ,GAAG,CAAC,CAAC,EAChC,SAAS,CACL,iBAAiB,CAAC,IAAI,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC,IAAI,CAC5C,GAAG,CAAC;YACA,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;SACxB,CAAC,CACL,CACJ,EACD,SAAS,CAAC,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC,EACtD,OAAO,CAAC,CAAC,CAAC,CACb,CACJ,EACD,IAAI,CACA,CAAC,IAAI,EAAE,OAAO,KACV,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,IAAI,GAAG,IAAI,CAAC,SAAS;cAC5C,IAAI,CAAC,SAAS;cACd,OAAO,GAAG,OAAO,GAAG,YAAY,EAC1C,CAAC,CACJ,EACD,SAAS,CAAC,QAAQ,IAAI,QAAQ,KAAK,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,EACxD,SAAS,CAAC,CAAC,CAAC,CACf,CACJ,EACD,oBAAoB,EAAE,EACtB,KAAK,EAAE,CACV,CAAC;KAUD;IAED,IAAY,OAAO;QACf,OAAO,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC;KAChC;IAED,IAAY,SAAS;QACjB,OAAO,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,SAAS,CAAC;KACjD;EACJ;;YAhBgD,UAAU,uBAAlD,MAAM,SAAC,UAAU;YACkC,UAAU,uBAA7D,MAAM,SAAC,cAAc;YACwC,UAAU,uBAAvE,MAAM,SAAC,0BAA0B;yCACjC,MAAM,SAAC,6BAA6B;4CACpC,MAAM,SAAC,6BAA6B;;AAjDhC,uBAAuB;IADnC,UAAU,EAAE;IA8CJ,WAAA,MAAM,CAAC,UAAU,CAAC,CAAA;IAClB,WAAA,MAAM,CAAC,cAAc,CAAC,CAAA;IACtB,WAAA,MAAM,CAAC,0BAA0B,CAAC,CAAA;IAClC,WAAA,MAAM,CAAC,6BAA6B,CAAC,CAAA;IACrC,WAAA,MAAM,CAAC,6BAA6B,CAAC,CAAA;GAjDjC,uBAAuB,CA6DnC;;AClFD,MAAM,gBAAgB,GAAG,GAAG,CAAC;AAC7B,MAAM,YAAY,GAAG,GAAG,CAAC;AACzB,MAAM,mBAAmB,GAAG,GAAG,CAAC;IAQnB,+BAA+B,GAA5C,MAAa,+BAA+B;IACxC,YAEqB,OAAuC,EACA,SAAiB;QADxD,YAAO,GAAP,OAAO,CAAgC;QACA,cAAS,GAAT,SAAS,CAAQ;KACzE;IAEJ,IAAI,SAAS;QACT,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CACpB,gBAAgB,GAAG,IAAI,CAAC,OAAO,GAAG,mBAAmB,EACrD,YAAY,CACf,CAAC;QAEF,OAAO,UAAU,OAAO,OAAO,CAAC;KACnC;IAGD,IAAI,OAAO;QACP,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,GAAG,GAAG,IAAI,IAAI,CAAC,SAAS,CAAC;KAC1D;IAED,IAAI,OAAO;QACP,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,GAAG,GAAG,CAAC,CAAC;KAC1D;IAGD,IAAI,OAAO;QACP,QACI,IAAI,CAAC,OAAO,CAAC,SAAS,IAAI,YAAY;YACtC,IAAI,CAAC,OAAO,CAAC,SAAS,KAAK,IAAI,CAAC,SAAS,EAC3C;KACL;IAGD,IAAI,aAAa;QACb,OAAO,cAAc,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,GAAG,GAAG,CAAC,KAAK,CAAC;KACpF;EACJ;;4CAnCQ,MAAM,SAAC,oBAAoB;yCAE3B,MAAM,SAAC,6BAA6B;;AAazC;IADC,WAAW,CAAC,gBAAgB,CAAC;8DAG7B;AAOD;IADC,WAAW,CAAC,gBAAgB,CAAC;8DAM7B;AAGD;IADC,WAAW,CAAC,iBAAiB,CAAC;oEAG9B;AApCQ,+BAA+B;IAN3C,SAAS,CAAC;QACP,QAAQ,EAAE,2BAA2B;QACrC,omDAA6C;QAE7C,eAAe,EAAE,uBAAuB,CAAC,MAAM;;KAClD,CAAC;IAGO,WAAA,MAAM,CAAC,oBAAoB,CAAC,CAAA;IAE5B,WAAA,MAAM,CAAC,6BAA6B,CAAC,CAAA;GAJjC,+BAA+B,CAqC3C;MAEY,kBAAkB,GAAG,IAAI,qBAAqB,CACvD,+BAA+B;;ICtBtB,yBAAyB,GAAtC,MAAa,yBAAyB;IAiBlC,YACoB,MAAc,EACK,QAA6B,EACxC,EAAC,aAAa,EAA0B,EAC3B,KAAc,EACK,SAAiB,EAEhE,SAA8D,EAC7B,QAA4B;QAJjC,UAAK,GAAL,KAAK,CAAS;QACK,cAAS,GAAT,SAAS,CAAQ;QAEhE,cAAS,GAAT,SAAS,CAAqD;QAC7B,aAAQ,GAAR,QAAQ,CAAoB;QAtB1E,iBAAY,GAAmD,IAAI,CAAC,KAAK;cACnE,QAAQ,KAAK,EAAC,SAAS,EAAE,cAAc,QAAQ,GAAG,CAAC,KAAK,EAAC,CAAC;cAC1D,MAAM,IAAI,CAAC;QAGR,WAAM,GAAwB,IAAI,CAAC,QAAQ,CAAC,IAAI,CACrD,MAAM,CAAC,QAAQ,IAAI,QAAQ,KAAK,IAAI,CAAC,SAAS,CAAC,CAClD,CAAC;QAEO,aAAQ,GAAwB,IAAI,CAAC,QAAQ,CAAC,IAAI,CACvD,GAAG,CAAC,QAAQ,IAAI,QAAQ,IAAI,YAAY,IAAI,QAAQ,KAAK,IAAI,CAAC,SAAS,CAAC,EACxE,oBAAoB,EAAE,CACzB,CAAC;;QAaE,IAAI,IAAI,CAAC,SAAS,EAAE;YAChB,aAAa,CAAC,aAAa,CAAC;iBACvB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,EAAE,SAAS,CAAC,QAAQ,CAAC,CAAC;iBAC/D,SAAS,CAAC;gBACP,IAAI,aAAa,CAAC,SAAS,EAAE;oBACzB,aAAa,CAAC,KAAK,CAAC,WAAW,GAAG,EAAE,CAAC;iBACxC;qBAAM;oBACH,aAAa,CAAC,KAAK,CAAC,WAAW,GAAG,UAAU,CAAC;iBAChD;aACJ,CAAC,CAAC;SACV;KACJ;EACJ;;YAtB+B,MAAM,uBAA7B,MAAM,SAAC,MAAM;YAC+B,UAAU,uBAAtD,MAAM,SAAC,iBAAiB,cAAG,IAAI;YACS,UAAU,uBAAlD,MAAM,SAAC,cAAc;0CACrB,MAAM,SAAC,UAAU;yCACjB,MAAM,SAAC,6BAA6B;4CACpC,MAAM,SAAC,6BAA6B;YAEe,UAAU,uBAA7D,MAAM,SAAC,uBAAuB;;AAtBnC;IAFC,KAAK,EAAE;IACP,cAAc,EAAE;+DAGA;AAGjB;IADC,MAAM,EAAE;yDAGP;AAVO,yBAAyB;IAPrC,SAAS,CAAC;QACP,QAAQ,EAAE,qBAAqB;QAC/B,6RAA8C;QAE9C,eAAe,EAAE,uBAAuB,CAAC,MAAM;QAC/C,SAAS,EAAE,CAAC,uBAAuB,EAAE,iBAAiB,CAAC;;KAC1D,CAAC;IAmBO,WAAA,MAAM,CAAC,MAAM,CAAC,CAAA;IACd,WAAA,MAAM,CAAC,iBAAiB,CAAC,CAAA,EAAE,WAAA,IAAI,EAAE,CAAA;IACjC,WAAA,MAAM,CAAC,cAAc,CAAC,CAAA;IACtB,WAAA,MAAM,CAAC,UAAU,CAAC,CAAA;IAClB,WAAA,MAAM,CAAC,6BAA6B,CAAC,CAAA;IACrC,WAAA,MAAM,CAAC,6BAA6B,CAAC,CAAA;IAErC,WAAA,MAAM,CAAC,uBAAuB,CAAC,CAAA;GAzB3B,yBAAyB,CAwCrC;;ICxDY,sBAAsB,GAAnC,MAAa,sBAAsB;EAAG;AAAzB,sBAAsB;IATlC,QAAQ,CAAC;QACN,OAAO,EAAE,CAAC,YAAY,EAAE,YAAY,EAAE,oBAAoB,EAAE,kBAAkB,CAAC;QAC/E,YAAY,EAAE;YACV,yBAAyB;YACzB,+BAA+B;YAC/B,2BAA2B;SAC9B;QACD,OAAO,EAAE,CAAC,yBAAyB,CAAC;KACvC,CAAC;GACW,sBAAsB,CAAG;;ACnBtC;;;;;;"}
@@ -1,7 +1,7 @@
1
1
  import { __decorate, __param, __extends } from 'tslib';
2
- import { InjectionToken, Inject, Component, ChangeDetectionStrategy, inject, ElementRef, Injectable, HostBinding, Self, Input, Output, NgModule } from '@angular/core';
2
+ import { InjectionToken, Inject, Component, ChangeDetectionStrategy, inject, ElementRef, Injectable, HostBinding, NgZone, Self, Input, Output, NgModule } from '@angular/core';
3
3
  import { POLYMORPHEUS_CONTEXT, PolymorpheusComponent, PolymorpheusModule } from '@tinkoff/ng-polymorpheus';
4
- import { TUI_IS_IOS, tuiTypedFromEvent, tuiScrollFrom, TuiDestroyService, tuiDefaultProp, TuiRepeatTimesModule } from '@taiga-ui/cdk';
4
+ import { TUI_IS_IOS, tuiTypedFromEvent, tuiScrollFrom, tuiZonefree, TuiDestroyService, tuiDefaultProp, TuiRepeatTimesModule } from '@taiga-ui/cdk';
5
5
  import { TUI_SCROLL_REF, TuiSvgModule } from '@taiga-ui/core';
6
6
  import { EMPTY, Observable } from 'rxjs';
7
7
  import { startWith, switchMap, filter, map, tap, takeUntil, endWith, scan, takeWhile, distinctUntilChanged, share } from 'rxjs/operators';
@@ -219,7 +219,7 @@ var TuiMobileLoaderAndroidComponent = /** @class */ (function () {
219
219
  var TUI_ANDROID_LOADER = new PolymorpheusComponent(TuiMobileLoaderAndroidComponent);
220
220
 
221
221
  var TuiPullToRefreshComponent = /** @class */ (function () {
222
- function TuiPullToRefreshComponent(destroy$, _a, isIOS, threshold, component, pulling$) {
222
+ function TuiPullToRefreshComponent(ngZone, destroy$, _a, isIOS, threshold, component, pulling$) {
223
223
  var _this = this;
224
224
  var nativeElement = _a.nativeElement;
225
225
  this.isIOS = isIOS;
@@ -232,18 +232,21 @@ var TuiPullToRefreshComponent = /** @class */ (function () {
232
232
  this.pulled = this.pulling$.pipe(filter(function (distance) { return distance === _this.threshold; }));
233
233
  this.dropped$ = this.pulling$.pipe(map(function (distance) { return distance <= MICRO_OFFSET || distance === _this.threshold; }), distinctUntilChanged());
234
234
  // Ensure scrolling down is impossible while pulling
235
- tuiScrollFrom(nativeElement)
236
- .pipe(startWith(null), takeUntil(destroy$))
237
- .subscribe(function () {
238
- if (nativeElement.scrollTop) {
239
- nativeElement.style.touchAction = '';
240
- }
241
- else {
242
- nativeElement.style.touchAction = 'pan-down';
243
- }
244
- });
235
+ if (this.component) {
236
+ tuiScrollFrom(nativeElement)
237
+ .pipe(startWith(null), tuiZonefree(ngZone), takeUntil(destroy$))
238
+ .subscribe(function () {
239
+ if (nativeElement.scrollTop) {
240
+ nativeElement.style.touchAction = '';
241
+ }
242
+ else {
243
+ nativeElement.style.touchAction = 'pan-down';
244
+ }
245
+ });
246
+ }
245
247
  }
246
248
  TuiPullToRefreshComponent.ctorParameters = function () { return [
249
+ { type: NgZone, decorators: [{ type: Inject, args: [NgZone,] }] },
247
250
  { type: Observable, decorators: [{ type: Inject, args: [TuiDestroyService,] }, { type: Self }] },
248
251
  { type: ElementRef, decorators: [{ type: Inject, args: [TUI_SCROLL_REF,] }] },
249
252
  { type: Boolean, decorators: [{ type: Inject, args: [TUI_IS_IOS,] }] },
@@ -266,12 +269,13 @@ var TuiPullToRefreshComponent = /** @class */ (function () {
266
269
  providers: [TuiPullToRefreshService, TuiDestroyService],
267
270
  styles: [".t-drop{transition:all var(--tui-duration) cubic-bezier(.4,0,.2,1)}"]
268
271
  }),
269
- __param(0, Inject(TuiDestroyService)), __param(0, Self()),
270
- __param(1, Inject(TUI_SCROLL_REF)),
271
- __param(2, Inject(TUI_IS_IOS)),
272
- __param(3, Inject(TUI_PULL_TO_REFRESH_THRESHOLD)),
273
- __param(4, Inject(TUI_PULL_TO_REFRESH_COMPONENT)),
274
- __param(5, Inject(TuiPullToRefreshService))
272
+ __param(0, Inject(NgZone)),
273
+ __param(1, Inject(TuiDestroyService)), __param(1, Self()),
274
+ __param(2, Inject(TUI_SCROLL_REF)),
275
+ __param(3, Inject(TUI_IS_IOS)),
276
+ __param(4, Inject(TUI_PULL_TO_REFRESH_THRESHOLD)),
277
+ __param(5, Inject(TUI_PULL_TO_REFRESH_COMPONENT)),
278
+ __param(6, Inject(TuiPullToRefreshService))
275
279
  ], TuiPullToRefreshComponent);
276
280
  return TuiPullToRefreshComponent;
277
281
  }());