@taiga-ui/addon-mobile 2.87.0 → 2.89.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (87) hide show
  1. package/bundles/taiga-ui-addon-mobile-components-pull-to-refresh.umd.js +229 -110
  2. package/bundles/taiga-ui-addon-mobile-components-pull-to-refresh.umd.js.map +1 -1
  3. package/bundles/taiga-ui-addon-mobile-components-pull-to-refresh.umd.min.js +1 -1
  4. package/bundles/taiga-ui-addon-mobile-components-pull-to-refresh.umd.min.js.map +1 -1
  5. package/bundles/taiga-ui-addon-mobile-components-sheet.umd.js +11 -3
  6. package/bundles/taiga-ui-addon-mobile-components-sheet.umd.js.map +1 -1
  7. package/bundles/taiga-ui-addon-mobile-components-sheet.umd.min.js +1 -1
  8. package/bundles/taiga-ui-addon-mobile-components-sheet.umd.min.js.map +1 -1
  9. package/bundles/taiga-ui-addon-mobile-directives-elastic-sticky.umd.js +14 -27
  10. package/bundles/taiga-ui-addon-mobile-directives-elastic-sticky.umd.js.map +1 -1
  11. package/bundles/taiga-ui-addon-mobile-directives-elastic-sticky.umd.min.js +1 -1
  12. package/bundles/taiga-ui-addon-mobile-directives-elastic-sticky.umd.min.js.map +1 -1
  13. package/bundles/taiga-ui-addon-mobile.umd.js +4 -12
  14. package/bundles/taiga-ui-addon-mobile.umd.js.map +1 -1
  15. package/bundles/taiga-ui-addon-mobile.umd.min.js +1 -1
  16. package/components/pull-to-refresh/index.d.ts +2 -0
  17. package/components/pull-to-refresh/loader-android/loader-android.component.d.ts +10 -2
  18. package/components/pull-to-refresh/loader-ios/loader-ios.component.d.ts +7 -1
  19. package/components/pull-to-refresh/pull-to-refresh.component.d.ts +10 -7
  20. package/components/pull-to-refresh/pull-to-refresh.providers.d.ts +15 -6
  21. package/components/pull-to-refresh/pull-to-refresh.service.d.ts +14 -0
  22. package/components/pull-to-refresh/pull-to-refresh.tokens.d.ts +5 -0
  23. package/components/pull-to-refresh/taiga-ui-addon-mobile-components-pull-to-refresh.metadata.json +1 -1
  24. package/components/sheet/sheet.service.d.ts +2 -1
  25. package/components/sheet/taiga-ui-addon-mobile-components-sheet.metadata.json +1 -1
  26. package/directives/elastic-sticky/elastic-sticky.service.d.ts +1 -2
  27. package/directives/elastic-sticky/taiga-ui-addon-mobile-directives-elastic-sticky.metadata.json +1 -1
  28. package/esm2015/components/pull-to-refresh/index.js +3 -1
  29. package/esm2015/components/pull-to-refresh/loader-android/loader-android.component.js +39 -16
  30. package/esm2015/components/pull-to-refresh/loader-ios/loader-ios.component.js +22 -13
  31. package/esm2015/components/pull-to-refresh/pull-to-refresh.component.js +46 -30
  32. package/esm2015/components/pull-to-refresh/pull-to-refresh.module.js +4 -3
  33. package/esm2015/components/pull-to-refresh/pull-to-refresh.providers.js +22 -27
  34. package/esm2015/components/pull-to-refresh/pull-to-refresh.service.js +52 -0
  35. package/esm2015/components/pull-to-refresh/pull-to-refresh.tokens.js +8 -0
  36. package/esm2015/components/sheet/sheet.service.js +16 -5
  37. package/esm2015/directives/elastic-sticky/elastic-sticky.service.js +12 -25
  38. package/esm2015/index.js +1 -2
  39. package/esm5/components/pull-to-refresh/index.js +3 -1
  40. package/esm5/components/pull-to-refresh/loader-android/loader-android.component.js +51 -16
  41. package/esm5/components/pull-to-refresh/loader-ios/loader-ios.component.js +26 -13
  42. package/esm5/components/pull-to-refresh/pull-to-refresh.component.js +48 -36
  43. package/esm5/components/pull-to-refresh/pull-to-refresh.module.js +4 -3
  44. package/esm5/components/pull-to-refresh/pull-to-refresh.providers.js +22 -32
  45. package/esm5/components/pull-to-refresh/pull-to-refresh.service.js +75 -0
  46. package/esm5/components/pull-to-refresh/pull-to-refresh.tokens.js +8 -0
  47. package/esm5/components/sheet/sheet.service.js +16 -5
  48. package/esm5/directives/elastic-sticky/elastic-sticky.service.js +13 -27
  49. package/esm5/index.js +1 -2
  50. package/fesm2015/taiga-ui-addon-mobile-components-pull-to-refresh.js +176 -90
  51. package/fesm2015/taiga-ui-addon-mobile-components-pull-to-refresh.js.map +1 -1
  52. package/fesm2015/taiga-ui-addon-mobile-components-sheet.js +12 -4
  53. package/fesm2015/taiga-ui-addon-mobile-components-sheet.js.map +1 -1
  54. package/fesm2015/taiga-ui-addon-mobile-directives-elastic-sticky.js +11 -24
  55. package/fesm2015/taiga-ui-addon-mobile-directives-elastic-sticky.js.map +1 -1
  56. package/fesm2015/taiga-ui-addon-mobile.js +0 -1
  57. package/fesm2015/taiga-ui-addon-mobile.js.map +1 -1
  58. package/fesm5/taiga-ui-addon-mobile-components-pull-to-refresh.js +226 -110
  59. package/fesm5/taiga-ui-addon-mobile-components-pull-to-refresh.js.map +1 -1
  60. package/fesm5/taiga-ui-addon-mobile-components-sheet.js +12 -4
  61. package/fesm5/taiga-ui-addon-mobile-components-sheet.js.map +1 -1
  62. package/fesm5/taiga-ui-addon-mobile-directives-elastic-sticky.js +12 -26
  63. package/fesm5/taiga-ui-addon-mobile-directives-elastic-sticky.js.map +1 -1
  64. package/fesm5/taiga-ui-addon-mobile.js +0 -1
  65. package/fesm5/taiga-ui-addon-mobile.js.map +1 -1
  66. package/index.d.ts +0 -1
  67. package/package.json +4 -4
  68. package/taiga-ui-addon-mobile.metadata.json +1 -1
  69. package/bundles/taiga-ui-addon-mobile-tokens.umd.js +0 -16
  70. package/bundles/taiga-ui-addon-mobile-tokens.umd.js.map +0 -1
  71. package/bundles/taiga-ui-addon-mobile-tokens.umd.min.js +0 -2
  72. package/bundles/taiga-ui-addon-mobile-tokens.umd.min.js.map +0 -1
  73. package/esm2015/tokens/index.js +0 -2
  74. package/esm2015/tokens/loaded.js +0 -6
  75. package/esm2015/tokens/taiga-ui-addon-mobile-tokens.js +0 -5
  76. package/esm5/tokens/index.js +0 -2
  77. package/esm5/tokens/loaded.js +0 -6
  78. package/esm5/tokens/taiga-ui-addon-mobile-tokens.js +0 -5
  79. package/fesm2015/taiga-ui-addon-mobile-tokens.js +0 -13
  80. package/fesm2015/taiga-ui-addon-mobile-tokens.js.map +0 -1
  81. package/fesm5/taiga-ui-addon-mobile-tokens.js +0 -13
  82. package/fesm5/taiga-ui-addon-mobile-tokens.js.map +0 -1
  83. package/tokens/index.d.ts +0 -1
  84. package/tokens/loaded.d.ts +0 -3
  85. package/tokens/package.json +0 -13
  86. package/tokens/taiga-ui-addon-mobile-tokens.d.ts +0 -4
  87. package/tokens/taiga-ui-addon-mobile-tokens.metadata.json +0 -1
@@ -1,6 +1,6 @@
1
1
  import { __decorate, __param } from 'tslib';
2
2
  import { Inject, ElementRef, Component, ChangeDetectionStrategy, InjectionToken, NgZone, ViewChild, ViewChildren, Input, HostListener, inject, ɵɵdefineInjectable, ɵɵinject, Injectable, Output, Directive, forwardRef, ContentChild, ChangeDetectorRef, TemplateRef, NgModule, NO_ERRORS_SCHEMA } from '@angular/core';
3
- import { typedFromEvent, tuiZonefree, TuiIdService, TUI_IS_IOS, EMPTY_QUERY, tuiZonefull, tuiPure, clamp, TUI_WINDOW_HEIGHT, TuiDestroyService, tuiDefaultProp, tuiRequiredSetter, TuiLetModule, TuiOverscrollModule } from '@taiga-ui/cdk';
3
+ import { typedFromEvent, tuiZonefree, TuiIdService, TUI_IS_IOS, EMPTY_QUERY, tuiZonefull, tuiPure, clamp, tuiGetNativeFocused, TUI_WINDOW_HEIGHT, TuiDestroyService, tuiDefaultProp, tuiRequiredSetter, TuiLetModule, TuiOverscrollModule } from '@taiga-ui/cdk';
4
4
  import { TUI_CLOSE_WORD, TUI_SCROLL_REF, tuiSlideInTop, tuiZonefulMap, TUI_ANIMATION_OPTIONS, tuiFadeIn, TuiButtonModule, TuiScrollbarModule } from '@taiga-ui/core';
5
5
  import { TUI_MORE_WORD } from '@taiga-ui/kit';
6
6
  import { merge, concat, zip, race, timer, Observable, BehaviorSubject, EMPTY, Subject } from 'rxjs';
@@ -259,8 +259,10 @@ const TUI_SHEET_OPTIONS = new InjectionToken(`Default parameters for sheet compo
259
259
  factory: () => (Object.assign(Object.assign({}, TUI_SHEET_DEFAULT_OPTIONS), { offset: inject(TUI_SHEET_OFFSET) })),
260
260
  });
261
261
 
262
+ // @dynamic
262
263
  let TuiSheetService = class TuiSheetService {
263
- constructor(options) {
264
+ constructor(doc, options) {
265
+ this.doc = doc;
264
266
  this.options = options;
265
267
  this.sheets$ = new BehaviorSubject([]);
266
268
  }
@@ -273,6 +275,10 @@ let TuiSheetService = class TuiSheetService {
273
275
  const sheet = Object.assign(Object.assign(Object.assign({}, this.options), options), { content,
274
276
  completeWith,
275
277
  $implicit, scroll$: EMPTY });
278
+ const focused = tuiGetNativeFocused(this.doc);
279
+ if (focused instanceof HTMLElement && sheet.overlay) {
280
+ focused.blur();
281
+ }
276
282
  this.sheets$.next([...this.sheets$.value, sheet]);
277
283
  return () => {
278
284
  this.sheets$.next(this.sheets$.value.filter(item => item !== sheet));
@@ -281,14 +287,16 @@ let TuiSheetService = class TuiSheetService {
281
287
  }
282
288
  };
283
289
  TuiSheetService.ctorParameters = () => [
290
+ { type: Document, decorators: [{ type: Inject, args: [DOCUMENT,] }] },
284
291
  { type: undefined, decorators: [{ type: Inject, args: [TUI_SHEET_OPTIONS,] }] }
285
292
  ];
286
- TuiSheetService.ɵprov = ɵɵdefineInjectable({ factory: function TuiSheetService_Factory() { return new TuiSheetService(ɵɵinject(TUI_SHEET_OPTIONS)); }, token: TuiSheetService, providedIn: "root" });
293
+ TuiSheetService.ɵprov = ɵɵdefineInjectable({ factory: function TuiSheetService_Factory() { return new TuiSheetService(ɵɵinject(DOCUMENT), ɵɵinject(TUI_SHEET_OPTIONS)); }, token: TuiSheetService, providedIn: "root" });
287
294
  TuiSheetService = __decorate([
288
295
  Injectable({
289
296
  providedIn: `root`,
290
297
  }),
291
- __param(0, Inject(TUI_SHEET_OPTIONS))
298
+ __param(0, Inject(DOCUMENT)),
299
+ __param(1, Inject(TUI_SHEET_OPTIONS))
292
300
  ], TuiSheetService);
293
301
 
294
302
  // @dynamic
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-addon-mobile-components-sheet.js","sources":["ng://@taiga-ui/addon-mobile/components/sheet/ios.hacks.ts","ng://@taiga-ui/addon-mobile/components/sheet/components/sheet-heading/sheet-heading.component.ts","ng://@taiga-ui/addon-mobile/components/sheet/components/sheet/sheet.providers.ts","ng://@taiga-ui/addon-mobile/components/sheet/components/sheet/sheet.component.ts","ng://@taiga-ui/addon-mobile/components/sheet/components/sheet-bar/sheet-bar.component.ts","ng://@taiga-ui/addon-mobile/components/sheet/sheet-options.ts","ng://@taiga-ui/addon-mobile/components/sheet/sheet.service.ts","ng://@taiga-ui/addon-mobile/components/sheet/components/sheets-host/sheets-host.component.ts","ng://@taiga-ui/addon-mobile/components/sheet/directives/sheet-close/sheet-close.directive.ts","ng://@taiga-ui/addon-mobile/components/sheet/directives/sheet-stop/sheet-stop.directive.ts","ng://@taiga-ui/addon-mobile/components/sheet/directives/sheet-top/sheet-top.directive.ts","ng://@taiga-ui/addon-mobile/components/sheet/directives/sheet-wrapper/sheet-wrapper.directive.ts","ng://@taiga-ui/addon-mobile/components/sheet/sheet.directive.ts","ng://@taiga-ui/addon-mobile/components/sheet/sheet.module.ts","ng://@taiga-ui/addon-mobile/components/sheet/taiga-ui-addon-mobile-components-sheet.ts"],"sourcesContent":["import {NgZone} from '@angular/core';\nimport {tuiZonefree, typedFromEvent} from '@taiga-ui/cdk';\nimport {concat, merge, Observable, race, timer, zip} from 'rxjs';\nimport {\n debounceTime,\n delay,\n filter,\n map,\n mapTo,\n share,\n startWith,\n switchMap,\n switchMapTo,\n take,\n takeUntil,\n} from 'rxjs/operators';\n\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function iosScrollFactory(\n element: HTMLElement,\n documentRef: Document,\n ngZone: NgZone,\n): Observable<number> {\n const load$ = typedFromEvent(element, `load`, {capture: true});\n const touchstart$ = typedFromEvent(element, `touchstart`, {passive: true});\n const touchmove$ = typedFromEvent(documentRef, `touchmove`, {passive: true});\n const touchend$ = typedFromEvent(documentRef, `touchend`);\n const scroll$ = typedFromEvent(element, `scroll`).pipe(map(() => element.scrollTop));\n const result$ = merge(\n load$.pipe(\n delay(0),\n map(() => element.scrollTop),\n ),\n touchstart$.pipe(\n switchMap(({touches}) => {\n const {screenY} = touches[0];\n const {scrollTop} = element;\n\n return concat(\n // Sometimes touch is triggered without scroll in iOS, filter that\n zip(touchmove$, scroll$).pipe(\n map(([{touches}]) => scrollTop + screenY - touches[0].screenY),\n takeUntil(touchend$),\n ),\n scroll$,\n );\n }),\n ),\n );\n\n return concat(scroll$.pipe(take(1)), result$).pipe(tuiZonefree(ngZone), share());\n}\n\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function processDragged(\n dragged$: Observable<boolean>,\n scroll$: Observable<unknown>,\n): Observable<boolean> {\n const touchstart$ = dragged$.pipe(filter(Boolean));\n const touchend$ = dragged$.pipe(filter(v => !v));\n const race$ = race(scroll$, timer(100)).pipe(\n debounceTime(200),\n take(1),\n mapTo(false),\n );\n\n return touchstart$.pipe(\n switchMapTo(touchend$.pipe(switchMapTo(race$), startWith(true))),\n startWith(false),\n );\n}\n\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function fakeSmoothScroll({style}: HTMLElement, offset: number): void {\n style.transition = `none`;\n style.transform = `scaleX(-1) translate3d(0, ${offset}px, 0)`;\n\n setTimeout(() => {\n style.transition = ``;\n style.transform = ``;\n });\n}\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n Inject,\n} from '@angular/core';\nimport {TuiIdService} from '@taiga-ui/cdk';\nimport {TUI_CLOSE_WORD} from '@taiga-ui/core';\nimport {Observable} from 'rxjs';\n\nexport const TUI_SHEET_CLOSE = 'tui-sheet-close';\nexport const TUI_SHEET_ID = 'tui-sheet-id';\n\n@Component({\n selector: '[tuiSheetHeading]',\n templateUrl: 'sheet-heading.template.html',\n styleUrls: ['sheet-heading.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TuiSheetHeadingComponent implements AfterViewInit {\n readonly id = this.idService.generate();\n\n constructor(\n @Inject(TuiIdService) private readonly idService: TuiIdService,\n @Inject(ElementRef) private readonly elementRef: ElementRef<HTMLElement>,\n @Inject(TUI_CLOSE_WORD) readonly closeWord$: Observable<string>,\n ) {}\n\n ngAfterViewInit(): void {\n this.elementRef.nativeElement.dispatchEvent(\n new CustomEvent(TUI_SHEET_ID, {bubbles: true, detail: this.id}),\n );\n }\n\n onClick(): void {\n this.elementRef.nativeElement.dispatchEvent(\n new CustomEvent(TUI_SHEET_CLOSE, {bubbles: true}),\n );\n }\n}\n","import {DOCUMENT} from '@angular/common';\nimport {ElementRef, InjectionToken, NgZone, Provider} from '@angular/core';\nimport {TUI_IS_IOS, tuiZonefree, typedFromEvent} from '@taiga-ui/cdk';\nimport {TUI_SCROLL_REF} from '@taiga-ui/core';\nimport {merge, Observable} from 'rxjs';\nimport {map, mapTo, share} from 'rxjs/operators';\n\nimport {iosScrollFactory} from '../../ios.hacks';\n\nexport const TUI_SHEET_SCROLL = new InjectionToken<number>(\n `Current scrollTop of a sheet`,\n);\n\nexport const TUI_SHEET_DRAGGED = new InjectionToken<boolean>(\n `The sheet is being dragged`,\n);\n\n/** @deprecated use option argument for each Sheet */\nexport const TUI_SHEET_OFFSET = new InjectionToken<number>(\n `Offset from the top at which the sheet stops`,\n {\n factory: () => 16,\n },\n);\n\nexport const TUI_SHEET_PROVIDERS: Provider[] = [\n {\n provide: TUI_SHEET_DRAGGED,\n deps: [ElementRef],\n useFactory: sheetDraggedFactory,\n },\n {\n provide: TUI_SHEET_SCROLL,\n deps: [ElementRef, NgZone, DOCUMENT, TUI_IS_IOS],\n useFactory: sheetScrollFactory,\n },\n {\n provide: TUI_SCROLL_REF,\n useExisting: ElementRef,\n },\n];\n\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function sheetDraggedFactory({\n nativeElement,\n}: ElementRef<HTMLElement>): Observable<boolean> {\n return merge(\n typedFromEvent(nativeElement, `touchstart`, {passive: true}).pipe(mapTo(true)),\n typedFromEvent(nativeElement, `touchend`).pipe(mapTo(false)),\n );\n}\n\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function sheetScrollFactory(\n {nativeElement}: ElementRef<HTMLElement>,\n ngZone: NgZone,\n documentRef: Document,\n isIos: boolean,\n): Observable<number> {\n return isIos\n ? iosScrollFactory(nativeElement, documentRef, ngZone)\n : merge(\n typedFromEvent(nativeElement, `scroll`),\n typedFromEvent(nativeElement, `load`, {capture: true}),\n ).pipe(\n map(() => nativeElement.scrollTop),\n tuiZonefree(ngZone),\n share(),\n );\n}\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n HostListener,\n Inject,\n Input,\n NgZone,\n QueryList,\n ViewChild,\n ViewChildren,\n} from '@angular/core';\nimport {EMPTY_QUERY, TUI_IS_IOS, tuiPure, tuiZonefull} from '@taiga-ui/cdk';\nimport {tuiSlideInTop} from '@taiga-ui/core';\nimport {TUI_MORE_WORD} from '@taiga-ui/kit';\nimport {Observable} from 'rxjs';\nimport {map} from 'rxjs/operators';\n\nimport {fakeSmoothScroll} from '../../ios.hacks';\nimport {TuiSheet} from '../../sheet';\nimport {TUI_SHEET_ID} from '../sheet-heading/sheet-heading.component';\nimport {TUI_SHEET_PROVIDERS, TUI_SHEET_SCROLL} from './sheet.providers';\n\n// @dynamic\n@Component({\n selector: 'tui-sheet',\n templateUrl: 'sheet.template.html',\n styleUrls: ['sheet.style.less'],\n providers: TUI_SHEET_PROVIDERS,\n animations: [tuiSlideInTop],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n role: 'dialog',\n '[attr.aria-labelledby]': 'id',\n '[class._ios]': 'isIos',\n // '[class._stuck]': 'true', // Initially disable snapping for Firefox\n '[$.class._stuck]': 'stuck$',\n '($.class._stuck)': 'stuck$',\n },\n})\nexport class TuiSheetComponent<T> implements AfterViewInit {\n @ViewChild('sheet')\n private readonly sheet?: ElementRef<HTMLElement>;\n\n @ViewChild('content')\n private readonly content?: ElementRef<HTMLElement>;\n\n @ViewChildren('stops')\n private readonly stopsRefs: QueryList<ElementRef<HTMLElement>> = EMPTY_QUERY;\n\n @Input()\n item!: TuiSheet<T>;\n\n id = '';\n\n readonly stuck$ = this.scroll$.pipe(map(y => Math.floor(y) > this.contentTop));\n\n constructor(\n @Inject(TUI_SHEET_SCROLL) private readonly scroll$: Observable<number>,\n @Inject(ElementRef) private readonly elementRef: ElementRef<HTMLElement>,\n @Inject(NgZone) private readonly ngZone: NgZone,\n @Inject(TUI_IS_IOS) readonly isIos: boolean,\n @Inject(TUI_MORE_WORD) readonly moreWord$: Observable<string>,\n ) {}\n\n get stops(): readonly number[] {\n return this.getStops(this.stopsRefs);\n }\n\n get imageStop(): number {\n return (this.item.imageSlide && this.stops[this.stops.length - 1]) || 0;\n }\n\n get imageHeight(): number {\n return this.contentTop - this.sheetTop;\n }\n\n @tuiPure\n get context(): TuiSheet<T> {\n return {\n ...this.item,\n scroll$: this.scroll$.pipe(tuiZonefull(this.ngZone)),\n };\n }\n\n @HostListener(TUI_SHEET_ID, ['$event.detail'])\n onId(id: string): void {\n this.id = id;\n }\n\n ngAfterViewInit(): void {\n const stops = [...this.stops, this.sheetTop, this.contentTop];\n\n this.elementRef.nativeElement.scrollTop = stops[this.item.initial];\n }\n\n scrollTo(top: number = this.sheetTop): void {\n const {nativeElement} = this.elementRef;\n\n if (this.isIos) {\n fakeSmoothScroll(nativeElement, top - nativeElement.scrollTop - 16);\n }\n\n nativeElement.scrollTo({top, behavior: 'smooth'});\n }\n\n close(): void {\n if (this.context.closeable) {\n this.context.$implicit.complete();\n }\n }\n\n private get contentTop(): number {\n return this.content?.nativeElement.offsetTop ?? Infinity;\n }\n\n private get sheetTop(): number {\n return this.sheet?.nativeElement.offsetTop ?? Infinity;\n }\n\n @tuiPure\n private getStops(stops: QueryList<ElementRef<HTMLElement>>): readonly number[] {\n return stops\n .toArray()\n .map(\n ({nativeElement}) => nativeElement.offsetTop + nativeElement.clientHeight,\n );\n }\n}\n","import {ChangeDetectionStrategy, Component, Inject, NgZone} from '@angular/core';\nimport {clamp} from '@taiga-ui/cdk';\nimport {tuiZonefulMap} from '@taiga-ui/core';\nimport {Observable} from 'rxjs';\n\nimport {TuiSheetComponent} from '../sheet/sheet.component';\nimport {TUI_SHEET_SCROLL} from '../sheet/sheet.providers';\n\n@Component({\n selector: 'tui-sheet-bar',\n templateUrl: 'sheet-bar.template.html',\n styleUrls: ['sheet-bar.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TuiSheetBarComponent {\n readonly rotate$ = this.scroll$.pipe(\n tuiZonefulMap(y => clamp(10 - (y - this.stop) / 5, 0, 10), this.ngZone),\n );\n\n constructor(\n @Inject(TuiSheetComponent) private readonly sheet: TuiSheetComponent<unknown>,\n @Inject(TUI_SHEET_SCROLL) private readonly scroll$: Observable<number>,\n @Inject(NgZone) private readonly ngZone: NgZone,\n ) {}\n\n private get stop(): number {\n return this.sheet.stops[0] ?? 0;\n }\n}\n","import {inject, InjectionToken} from '@angular/core';\nimport {PolymorpheusContent} from '@tinkoff/ng-polymorpheus';\n\nimport {TUI_SHEET_OFFSET} from './components/sheet/sheet.providers';\nimport {TuiSheet} from './sheet';\n\nexport interface TuiSheetOptions<I = undefined, O = unknown> {\n readonly image: PolymorpheusContent<TuiSheet<O, I>>;\n readonly imageSlide: boolean;\n readonly stops: readonly string[];\n readonly initial: number;\n readonly offset: number;\n readonly closeable: boolean;\n readonly overlay: boolean;\n readonly data: I;\n}\n\nexport const TUI_SHEET_DEFAULT_OPTIONS: Omit<TuiSheetOptions, 'data'> = {\n image: ``,\n imageSlide: true,\n stops: [],\n initial: 0,\n offset: 16,\n closeable: true,\n overlay: false,\n};\n\nexport const TUI_SHEET_OPTIONS = new InjectionToken<Omit<TuiSheetOptions, 'data'>>(\n `Default parameters for sheet component`,\n {\n factory: () => ({...TUI_SHEET_DEFAULT_OPTIONS, offset: inject(TUI_SHEET_OFFSET)}),\n },\n);\n","import {Inject, Injectable} from '@angular/core';\nimport {PolymorpheusContent} from '@tinkoff/ng-polymorpheus';\nimport {BehaviorSubject, EMPTY, Observable} from 'rxjs';\n\nimport {TuiSheet} from './sheet';\nimport {TUI_SHEET_OPTIONS, TuiSheetOptions} from './sheet-options';\n\n@Injectable({\n providedIn: `root`,\n})\nexport class TuiSheetService {\n readonly sheets$ = new BehaviorSubject<Array<TuiSheet<any, any>>>([]);\n\n constructor(@Inject(TUI_SHEET_OPTIONS) private readonly options: TuiSheetOptions) {}\n\n open<G>(\n content: PolymorpheusContent<TuiSheet<G>>,\n options: Partial<TuiSheetOptions> = {},\n ): Observable<G> {\n return new Observable($implicit => {\n const completeWith = (result: G): void => {\n $implicit.next(result);\n $implicit.complete();\n };\n const sheet: TuiSheet<any> = {\n ...this.options,\n ...options,\n content,\n completeWith,\n $implicit,\n scroll$: EMPTY,\n };\n\n this.sheets$.next([...this.sheets$.value, sheet]);\n\n return () => {\n this.sheets$.next(this.sheets$.value.filter(item => item !== sheet));\n };\n });\n }\n}\n","import {AnimationOptions} from '@angular/animations';\nimport {ChangeDetectionStrategy, Component, Inject} from '@angular/core';\nimport {TUI_WINDOW_HEIGHT} from '@taiga-ui/cdk';\nimport {TUI_ANIMATION_OPTIONS, tuiFadeIn, tuiSlideInTop} from '@taiga-ui/core';\nimport {Observable} from 'rxjs';\n\nimport {TuiSheet} from '../../sheet';\nimport {TuiSheetService} from '../../sheet.service';\n\n// @dynamic\n@Component({\n selector: 'tui-sheets-host',\n templateUrl: 'sheets-host.template.html',\n styleUrls: ['sheets-host.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n animations: [tuiSlideInTop, tuiFadeIn],\n})\nexport class TuiSheetsHostComponent {\n constructor(\n @Inject(TUI_ANIMATION_OPTIONS) readonly options: AnimationOptions,\n @Inject(TuiSheetService) readonly service: TuiSheetService,\n @Inject(TUI_WINDOW_HEIGHT) readonly height$: Observable<number>,\n ) {}\n\n close({closeable, $implicit}: TuiSheet<unknown>): void {\n if (closeable) {\n $implicit.complete();\n }\n }\n}\n","import {Directive, ElementRef, Inject, NgZone, Output} from '@angular/core';\nimport {WINDOW} from '@ng-web-apis/common';\nimport {tuiZonefull, typedFromEvent} from '@taiga-ui/cdk';\nimport {EMPTY, merge, Observable} from 'rxjs';\nimport {distinctUntilChanged, filter, startWith, switchMap} from 'rxjs/operators';\n\nimport {TuiSheetComponent} from '../../components/sheet/sheet.component';\nimport {\n TUI_SHEET_DRAGGED,\n TUI_SHEET_SCROLL,\n} from '../../components/sheet/sheet.providers';\nimport {TUI_SHEET_CLOSE} from '../../components/sheet-heading/sheet-heading.component';\n\n// @dynamic\n@Directive({\n selector: 'tui-sheet[close]',\n})\nexport class TuiSheetCloseDirective {\n @Output()\n readonly close: Observable<unknown> = merge(\n typedFromEvent(this.elementRef.nativeElement, TUI_SHEET_CLOSE),\n this.dragged$.pipe(\n startWith(false),\n switchMap(dragged =>\n dragged\n ? EMPTY\n : this.scroll$.pipe(\n startWith(this.elementRef.nativeElement.scrollTop),\n ),\n ),\n filter(y => this.sheet.item?.closeable && this.shouldClose(y)),\n distinctUntilChanged(),\n tuiZonefull(this.ngZone),\n ),\n );\n\n constructor(\n @Inject(NgZone) private readonly ngZone: NgZone,\n @Inject(TUI_SHEET_DRAGGED) private readonly dragged$: Observable<boolean>,\n @Inject(TUI_SHEET_SCROLL) private readonly scroll$: Observable<number>,\n @Inject(WINDOW) private readonly windowRef: Window,\n @Inject(ElementRef) private readonly elementRef: ElementRef<HTMLElement>,\n @Inject(TuiSheetComponent) private readonly sheet: TuiSheetComponent<unknown>,\n ) {}\n\n private shouldClose(scrollTop: number): boolean {\n const height = Math.min(\n this.windowRef.innerHeight,\n this.elementRef.nativeElement.scrollHeight - this.windowRef.innerHeight,\n );\n const min = Math.min(height, this.sheet.stops[0] || Infinity);\n\n return scrollTop < min / 2;\n }\n}\n","import {Directive, ElementRef, Inject} from '@angular/core';\nimport {TuiDestroyService} from '@taiga-ui/cdk';\nimport {TUI_SCROLL_REF} from '@taiga-ui/core';\nimport {Observable} from 'rxjs';\nimport {\n distinctUntilChanged,\n filter,\n map,\n takeUntil,\n throttleTime,\n withLatestFrom,\n} from 'rxjs/operators';\n\nimport {\n TUI_SHEET_DRAGGED,\n TUI_SHEET_SCROLL,\n} from '../../components/sheet/sheet.providers';\n\n@Directive({\n selector: '[tuiSheetStop]',\n providers: [TuiDestroyService],\n})\nexport class TuiSheetStopDirective {\n constructor(\n @Inject(ElementRef) elementRef: ElementRef<HTMLElement>,\n @Inject(TuiDestroyService) destroy$: Observable<unknown>,\n @Inject(TUI_SHEET_DRAGGED) dragged$: Observable<boolean>,\n @Inject(TUI_SHEET_SCROLL) scroll$: Observable<number>,\n @Inject(TUI_SCROLL_REF) {nativeElement}: ElementRef<HTMLElement>,\n ) {\n scroll$\n .pipe(\n map(y => Math.floor(y) > elementRef.nativeElement.offsetTop),\n distinctUntilChanged(),\n withLatestFrom(dragged$),\n map(([above, dragged]) => !above && !dragged),\n filter(Boolean),\n throttleTime(100),\n takeUntil(destroy$),\n )\n .subscribe(() => {\n nativeElement.style.overflow = 'hidden';\n nativeElement.classList.remove('_stuck'); // iOS\n nativeElement.scrollTop = elementRef.nativeElement.offsetTop;\n\n setTimeout(() => {\n nativeElement.style.overflow = '';\n }, 100);\n });\n }\n}\n","import {Directive, forwardRef, Inject, Input} from '@angular/core';\nimport {WINDOW} from '@ng-web-apis/common';\nimport {clamp, tuiDefaultProp} from '@taiga-ui/cdk';\nimport {Observable} from 'rxjs';\nimport {map} from 'rxjs/operators';\n\nimport {TuiSheetComponent} from '../../components/sheet/sheet.component';\nimport {TUI_SHEET_SCROLL} from '../../components/sheet/sheet.providers';\n\n// So that borders get rounded when image is visible for at least 10px\nconst OFFSET = 10;\n\n// @dynamic\n@Directive({\n selector: '[tuiSheetTop]',\n host: {\n '[$.style.transform]': 'transform$',\n '($.style.transform)': 'transform$',\n '[$.class._rounded]': 'rounded$',\n '($.class._rounded)': 'rounded$',\n '[$.class._clickthrough]': 'clickthrough$',\n '($.class._clickthrough)': 'clickthrough$',\n },\n})\nexport class TuiSheetTopDirective {\n @Input('tuiSheetTop')\n @tuiDefaultProp()\n stop = 0;\n\n readonly transform$ = this.scroll$.pipe(\n map(y => `translateY(${this.getY(y)}%) scaleX(-1)`),\n );\n\n readonly rounded$ = this.scroll$.pipe(map(y => y < this.stop + OFFSET));\n\n readonly clickthrough$ = this.scroll$.pipe(map(y => !!Math.round(this.getY(y))));\n\n constructor(\n @Inject(TUI_SHEET_SCROLL) private readonly scroll$: Observable<number>,\n @Inject(forwardRef(() => TuiSheetComponent))\n private readonly component: TuiSheetComponent<unknown>,\n @Inject(WINDOW) private readonly windowRef: Window,\n ) {}\n\n private getY(scrollTop: number): number {\n const value = scrollTop - this.stop;\n const total = this.windowRef.innerHeight - this.component.item.offset - this.stop;\n\n return this.stop && clamp(100 - (value / total) * 100, 0, 100);\n }\n}\n","import {ContentChild, Directive, Inject, Input} from '@angular/core';\nimport {WINDOW} from '@ng-web-apis/common';\nimport {clamp, tuiPure} from '@taiga-ui/cdk';\nimport {Observable} from 'rxjs';\nimport {map} from 'rxjs/operators';\n\nimport {TuiSheetComponent} from '../../components/sheet/sheet.component';\nimport {\n TUI_SHEET_DRAGGED,\n TUI_SHEET_SCROLL,\n} from '../../components/sheet/sheet.providers';\nimport {processDragged} from '../../ios.hacks';\n\n// Safety offset for shadow\nconst OFFSET = 16;\n\n// @dynamic\n@Directive({\n selector: '[tuiSheetWrapper]',\n host: {\n '[$.class._overlay]': 'overlay$',\n '($.class._overlay)': 'overlay$',\n '[$.class._visible]': 'visible$',\n '($.class._visible)': 'visible$',\n '[$.style.height.px]': 'height$',\n '($.style.height.px)': 'height$',\n },\n})\nexport class TuiSheetWrapperDirective {\n @ContentChild(TuiSheetComponent)\n private readonly sheet?: TuiSheetComponent<unknown>;\n\n @ContentChild(TuiSheetComponent, {read: TUI_SHEET_DRAGGED})\n private readonly dragged$!: Observable<boolean>;\n\n @ContentChild(TuiSheetComponent, {read: TUI_SHEET_SCROLL})\n private readonly scroll$!: Observable<number>;\n\n @Input()\n tuiSheetWrapper = 16;\n\n // Trying to get overflow: visible as early as possible for Safari\n touched = false;\n\n constructor(@Inject(WINDOW) private readonly windowRef: Window) {}\n\n @tuiPure\n get overlay$(): Observable<boolean> {\n return this.scroll$.pipe(\n map(y => y + 16 > this.windowRef.innerHeight - this.tuiSheetWrapper),\n );\n }\n\n @tuiPure\n get visible$(): Observable<boolean> {\n return processDragged(this.dragged$, this.scroll$);\n }\n\n @tuiPure\n get height$(): Observable<number | null> {\n return this.scroll$.pipe(map(this.getHeight.bind(this)));\n }\n\n private getHeight(value: number): number | null {\n return this.sheet?.context.overlay\n ? null\n : clamp(this.withImage(value) + OFFSET, OFFSET, this.windowRef.innerHeight);\n }\n\n private withImage(value: number): number {\n return !this.sheet?.imageStop || Math.floor(value) > this.sheet.imageStop\n ? value\n : value - this.sheet.imageHeight;\n }\n}\n","import {\n ChangeDetectorRef,\n Directive,\n Inject,\n Input,\n Output,\n TemplateRef,\n} from '@angular/core';\nimport {tuiDefaultProp, tuiRequiredSetter} from '@taiga-ui/cdk';\nimport {PolymorpheusTemplate} from '@tinkoff/ng-polymorpheus';\nimport {EMPTY, Subject} from 'rxjs';\nimport {endWith, ignoreElements, switchMap} from 'rxjs/operators';\n\nimport {TuiSheet} from './sheet';\nimport {TuiSheetService} from './sheet.service';\nimport {TuiSheetOptions} from './sheet-options';\n\n@Directive({\n selector: 'ng-template[tuiSheet]',\n})\nexport class TuiSheetDirective extends PolymorpheusTemplate<TuiSheet<never>> {\n private readonly open$ = new Subject<boolean>();\n\n @Input('tuiSheetOptions')\n @tuiDefaultProp()\n options: Partial<TuiSheetOptions> = {};\n\n @Input()\n @tuiRequiredSetter()\n set tuiSheet(open: boolean) {\n this.open$.next(open);\n }\n\n @Output()\n tuiSheetChange = this.open$.pipe(\n switchMap(open =>\n open\n ? this.service\n .open(this, this.options)\n .pipe(ignoreElements(), endWith(false))\n : EMPTY,\n ),\n );\n\n constructor(\n @Inject(ChangeDetectorRef) changeDetectorRef: ChangeDetectorRef,\n @Inject(TemplateRef) templateRef: TemplateRef<TuiSheet<never>>,\n @Inject(TuiSheetService) private readonly service: TuiSheetService,\n ) {\n super(templateRef, changeDetectorRef);\n }\n}\n","import {CommonModule} from '@angular/common';\nimport {NgModule, NO_ERRORS_SCHEMA} from '@angular/core';\nimport {TuiLetModule, TuiOverscrollModule} from '@taiga-ui/cdk';\nimport {TuiButtonModule, TuiScrollbarModule} from '@taiga-ui/core';\nimport {PolymorpheusModule} from '@tinkoff/ng-polymorpheus';\n\nimport {TuiSheetComponent} from './components/sheet/sheet.component';\nimport {TuiSheetBarComponent} from './components/sheet-bar/sheet-bar.component';\nimport {TuiSheetHeadingComponent} from './components/sheet-heading/sheet-heading.component';\nimport {TuiSheetsHostComponent} from './components/sheets-host/sheets-host.component';\nimport {TuiSheetCloseDirective} from './directives/sheet-close/sheet-close.directive';\nimport {TuiSheetStopDirective} from './directives/sheet-stop/sheet-stop.directive';\nimport {TuiSheetTopDirective} from './directives/sheet-top/sheet-top.directive';\nimport {TuiSheetWrapperDirective} from './directives/sheet-wrapper/sheet-wrapper.directive';\nimport {TuiSheetDirective} from './sheet.directive';\n\n@NgModule({\n imports: [\n CommonModule,\n PolymorpheusModule,\n TuiLetModule,\n TuiButtonModule,\n TuiOverscrollModule,\n TuiScrollbarModule,\n ],\n declarations: [\n TuiSheetsHostComponent,\n TuiSheetComponent,\n TuiSheetBarComponent,\n TuiSheetHeadingComponent,\n TuiSheetTopDirective,\n TuiSheetDirective,\n TuiSheetWrapperDirective,\n TuiSheetCloseDirective,\n TuiSheetStopDirective,\n ],\n exports: [\n TuiSheetsHostComponent,\n TuiSheetComponent,\n TuiSheetHeadingComponent,\n TuiSheetDirective,\n ],\n schemas: [NO_ERRORS_SCHEMA],\n})\nexport class TuiSheetModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["OFFSET"],"mappings":"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"}
1
+ {"version":3,"file":"taiga-ui-addon-mobile-components-sheet.js","sources":["ng://@taiga-ui/addon-mobile/components/sheet/ios.hacks.ts","ng://@taiga-ui/addon-mobile/components/sheet/components/sheet-heading/sheet-heading.component.ts","ng://@taiga-ui/addon-mobile/components/sheet/components/sheet/sheet.providers.ts","ng://@taiga-ui/addon-mobile/components/sheet/components/sheet/sheet.component.ts","ng://@taiga-ui/addon-mobile/components/sheet/components/sheet-bar/sheet-bar.component.ts","ng://@taiga-ui/addon-mobile/components/sheet/sheet-options.ts","ng://@taiga-ui/addon-mobile/components/sheet/sheet.service.ts","ng://@taiga-ui/addon-mobile/components/sheet/components/sheets-host/sheets-host.component.ts","ng://@taiga-ui/addon-mobile/components/sheet/directives/sheet-close/sheet-close.directive.ts","ng://@taiga-ui/addon-mobile/components/sheet/directives/sheet-stop/sheet-stop.directive.ts","ng://@taiga-ui/addon-mobile/components/sheet/directives/sheet-top/sheet-top.directive.ts","ng://@taiga-ui/addon-mobile/components/sheet/directives/sheet-wrapper/sheet-wrapper.directive.ts","ng://@taiga-ui/addon-mobile/components/sheet/sheet.directive.ts","ng://@taiga-ui/addon-mobile/components/sheet/sheet.module.ts","ng://@taiga-ui/addon-mobile/components/sheet/taiga-ui-addon-mobile-components-sheet.ts"],"sourcesContent":["import {NgZone} from '@angular/core';\nimport {tuiZonefree, typedFromEvent} from '@taiga-ui/cdk';\nimport {concat, merge, Observable, race, timer, zip} from 'rxjs';\nimport {\n debounceTime,\n delay,\n filter,\n map,\n mapTo,\n share,\n startWith,\n switchMap,\n switchMapTo,\n take,\n takeUntil,\n} from 'rxjs/operators';\n\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function iosScrollFactory(\n element: HTMLElement,\n documentRef: Document,\n ngZone: NgZone,\n): Observable<number> {\n const load$ = typedFromEvent(element, `load`, {capture: true});\n const touchstart$ = typedFromEvent(element, `touchstart`, {passive: true});\n const touchmove$ = typedFromEvent(documentRef, `touchmove`, {passive: true});\n const touchend$ = typedFromEvent(documentRef, `touchend`);\n const scroll$ = typedFromEvent(element, `scroll`).pipe(map(() => element.scrollTop));\n const result$ = merge(\n load$.pipe(\n delay(0),\n map(() => element.scrollTop),\n ),\n touchstart$.pipe(\n switchMap(({touches}) => {\n const {screenY} = touches[0];\n const {scrollTop} = element;\n\n return concat(\n // Sometimes touch is triggered without scroll in iOS, filter that\n zip(touchmove$, scroll$).pipe(\n map(([{touches}]) => scrollTop + screenY - touches[0].screenY),\n takeUntil(touchend$),\n ),\n scroll$,\n );\n }),\n ),\n );\n\n return concat(scroll$.pipe(take(1)), result$).pipe(tuiZonefree(ngZone), share());\n}\n\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function processDragged(\n dragged$: Observable<boolean>,\n scroll$: Observable<unknown>,\n): Observable<boolean> {\n const touchstart$ = dragged$.pipe(filter(Boolean));\n const touchend$ = dragged$.pipe(filter(v => !v));\n const race$ = race(scroll$, timer(100)).pipe(\n debounceTime(200),\n take(1),\n mapTo(false),\n );\n\n return touchstart$.pipe(\n switchMapTo(touchend$.pipe(switchMapTo(race$), startWith(true))),\n startWith(false),\n );\n}\n\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function fakeSmoothScroll({style}: HTMLElement, offset: number): void {\n style.transition = `none`;\n style.transform = `scaleX(-1) translate3d(0, ${offset}px, 0)`;\n\n setTimeout(() => {\n style.transition = ``;\n style.transform = ``;\n });\n}\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n Inject,\n} from '@angular/core';\nimport {TuiIdService} from '@taiga-ui/cdk';\nimport {TUI_CLOSE_WORD} from '@taiga-ui/core';\nimport {Observable} from 'rxjs';\n\nexport const TUI_SHEET_CLOSE = 'tui-sheet-close';\nexport const TUI_SHEET_ID = 'tui-sheet-id';\n\n@Component({\n selector: '[tuiSheetHeading]',\n templateUrl: 'sheet-heading.template.html',\n styleUrls: ['sheet-heading.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TuiSheetHeadingComponent implements AfterViewInit {\n readonly id = this.idService.generate();\n\n constructor(\n @Inject(TuiIdService) private readonly idService: TuiIdService,\n @Inject(ElementRef) private readonly elementRef: ElementRef<HTMLElement>,\n @Inject(TUI_CLOSE_WORD) readonly closeWord$: Observable<string>,\n ) {}\n\n ngAfterViewInit(): void {\n this.elementRef.nativeElement.dispatchEvent(\n new CustomEvent(TUI_SHEET_ID, {bubbles: true, detail: this.id}),\n );\n }\n\n onClick(): void {\n this.elementRef.nativeElement.dispatchEvent(\n new CustomEvent(TUI_SHEET_CLOSE, {bubbles: true}),\n );\n }\n}\n","import {DOCUMENT} from '@angular/common';\nimport {ElementRef, InjectionToken, NgZone, Provider} from '@angular/core';\nimport {TUI_IS_IOS, tuiZonefree, typedFromEvent} from '@taiga-ui/cdk';\nimport {TUI_SCROLL_REF} from '@taiga-ui/core';\nimport {merge, Observable} from 'rxjs';\nimport {map, mapTo, share} from 'rxjs/operators';\n\nimport {iosScrollFactory} from '../../ios.hacks';\n\nexport const TUI_SHEET_SCROLL = new InjectionToken<number>(\n `Current scrollTop of a sheet`,\n);\n\nexport const TUI_SHEET_DRAGGED = new InjectionToken<boolean>(\n `The sheet is being dragged`,\n);\n\n/** @deprecated use option argument for each Sheet */\nexport const TUI_SHEET_OFFSET = new InjectionToken<number>(\n `Offset from the top at which the sheet stops`,\n {\n factory: () => 16,\n },\n);\n\nexport const TUI_SHEET_PROVIDERS: Provider[] = [\n {\n provide: TUI_SHEET_DRAGGED,\n deps: [ElementRef],\n useFactory: sheetDraggedFactory,\n },\n {\n provide: TUI_SHEET_SCROLL,\n deps: [ElementRef, NgZone, DOCUMENT, TUI_IS_IOS],\n useFactory: sheetScrollFactory,\n },\n {\n provide: TUI_SCROLL_REF,\n useExisting: ElementRef,\n },\n];\n\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function sheetDraggedFactory({\n nativeElement,\n}: ElementRef<HTMLElement>): Observable<boolean> {\n return merge(\n typedFromEvent(nativeElement, `touchstart`, {passive: true}).pipe(mapTo(true)),\n typedFromEvent(nativeElement, `touchend`).pipe(mapTo(false)),\n );\n}\n\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function sheetScrollFactory(\n {nativeElement}: ElementRef<HTMLElement>,\n ngZone: NgZone,\n documentRef: Document,\n isIos: boolean,\n): Observable<number> {\n return isIos\n ? iosScrollFactory(nativeElement, documentRef, ngZone)\n : merge(\n typedFromEvent(nativeElement, `scroll`),\n typedFromEvent(nativeElement, `load`, {capture: true}),\n ).pipe(\n map(() => nativeElement.scrollTop),\n tuiZonefree(ngZone),\n share(),\n );\n}\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n HostListener,\n Inject,\n Input,\n NgZone,\n QueryList,\n ViewChild,\n ViewChildren,\n} from '@angular/core';\nimport {EMPTY_QUERY, TUI_IS_IOS, tuiPure, tuiZonefull} from '@taiga-ui/cdk';\nimport {tuiSlideInTop} from '@taiga-ui/core';\nimport {TUI_MORE_WORD} from '@taiga-ui/kit';\nimport {Observable} from 'rxjs';\nimport {map} from 'rxjs/operators';\n\nimport {fakeSmoothScroll} from '../../ios.hacks';\nimport {TuiSheet} from '../../sheet';\nimport {TUI_SHEET_ID} from '../sheet-heading/sheet-heading.component';\nimport {TUI_SHEET_PROVIDERS, TUI_SHEET_SCROLL} from './sheet.providers';\n\n// @dynamic\n@Component({\n selector: 'tui-sheet',\n templateUrl: 'sheet.template.html',\n styleUrls: ['sheet.style.less'],\n providers: TUI_SHEET_PROVIDERS,\n animations: [tuiSlideInTop],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n role: 'dialog',\n '[attr.aria-labelledby]': 'id',\n '[class._ios]': 'isIos',\n // '[class._stuck]': 'true', // Initially disable snapping for Firefox\n '[$.class._stuck]': 'stuck$',\n '($.class._stuck)': 'stuck$',\n },\n})\nexport class TuiSheetComponent<T> implements AfterViewInit {\n @ViewChild('sheet')\n private readonly sheet?: ElementRef<HTMLElement>;\n\n @ViewChild('content')\n private readonly content?: ElementRef<HTMLElement>;\n\n @ViewChildren('stops')\n private readonly stopsRefs: QueryList<ElementRef<HTMLElement>> = EMPTY_QUERY;\n\n @Input()\n item!: TuiSheet<T>;\n\n id = '';\n\n readonly stuck$ = this.scroll$.pipe(map(y => Math.floor(y) > this.contentTop));\n\n constructor(\n @Inject(TUI_SHEET_SCROLL) private readonly scroll$: Observable<number>,\n @Inject(ElementRef) private readonly elementRef: ElementRef<HTMLElement>,\n @Inject(NgZone) private readonly ngZone: NgZone,\n @Inject(TUI_IS_IOS) readonly isIos: boolean,\n @Inject(TUI_MORE_WORD) readonly moreWord$: Observable<string>,\n ) {}\n\n get stops(): readonly number[] {\n return this.getStops(this.stopsRefs);\n }\n\n get imageStop(): number {\n return (this.item.imageSlide && this.stops[this.stops.length - 1]) || 0;\n }\n\n get imageHeight(): number {\n return this.contentTop - this.sheetTop;\n }\n\n @tuiPure\n get context(): TuiSheet<T> {\n return {\n ...this.item,\n scroll$: this.scroll$.pipe(tuiZonefull(this.ngZone)),\n };\n }\n\n @HostListener(TUI_SHEET_ID, ['$event.detail'])\n onId(id: string): void {\n this.id = id;\n }\n\n ngAfterViewInit(): void {\n const stops = [...this.stops, this.sheetTop, this.contentTop];\n\n this.elementRef.nativeElement.scrollTop = stops[this.item.initial];\n }\n\n scrollTo(top: number = this.sheetTop): void {\n const {nativeElement} = this.elementRef;\n\n if (this.isIos) {\n fakeSmoothScroll(nativeElement, top - nativeElement.scrollTop - 16);\n }\n\n nativeElement.scrollTo({top, behavior: 'smooth'});\n }\n\n close(): void {\n if (this.context.closeable) {\n this.context.$implicit.complete();\n }\n }\n\n private get contentTop(): number {\n return this.content?.nativeElement.offsetTop ?? Infinity;\n }\n\n private get sheetTop(): number {\n return this.sheet?.nativeElement.offsetTop ?? Infinity;\n }\n\n @tuiPure\n private getStops(stops: QueryList<ElementRef<HTMLElement>>): readonly number[] {\n return stops\n .toArray()\n .map(\n ({nativeElement}) => nativeElement.offsetTop + nativeElement.clientHeight,\n );\n }\n}\n","import {ChangeDetectionStrategy, Component, Inject, NgZone} from '@angular/core';\nimport {clamp} from '@taiga-ui/cdk';\nimport {tuiZonefulMap} from '@taiga-ui/core';\nimport {Observable} from 'rxjs';\n\nimport {TuiSheetComponent} from '../sheet/sheet.component';\nimport {TUI_SHEET_SCROLL} from '../sheet/sheet.providers';\n\n@Component({\n selector: 'tui-sheet-bar',\n templateUrl: 'sheet-bar.template.html',\n styleUrls: ['sheet-bar.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TuiSheetBarComponent {\n readonly rotate$ = this.scroll$.pipe(\n tuiZonefulMap(y => clamp(10 - (y - this.stop) / 5, 0, 10), this.ngZone),\n );\n\n constructor(\n @Inject(TuiSheetComponent) private readonly sheet: TuiSheetComponent<unknown>,\n @Inject(TUI_SHEET_SCROLL) private readonly scroll$: Observable<number>,\n @Inject(NgZone) private readonly ngZone: NgZone,\n ) {}\n\n private get stop(): number {\n return this.sheet.stops[0] ?? 0;\n }\n}\n","import {inject, InjectionToken} from '@angular/core';\nimport {PolymorpheusContent} from '@tinkoff/ng-polymorpheus';\n\nimport {TUI_SHEET_OFFSET} from './components/sheet/sheet.providers';\nimport {TuiSheet} from './sheet';\n\nexport interface TuiSheetOptions<I = undefined, O = unknown> {\n readonly image: PolymorpheusContent<TuiSheet<O, I>>;\n readonly imageSlide: boolean;\n readonly stops: readonly string[];\n readonly initial: number;\n readonly offset: number;\n readonly closeable: boolean;\n readonly overlay: boolean;\n readonly data: I;\n}\n\nexport const TUI_SHEET_DEFAULT_OPTIONS: Omit<TuiSheetOptions, 'data'> = {\n image: ``,\n imageSlide: true,\n stops: [],\n initial: 0,\n offset: 16,\n closeable: true,\n overlay: false,\n};\n\nexport const TUI_SHEET_OPTIONS = new InjectionToken<Omit<TuiSheetOptions, 'data'>>(\n `Default parameters for sheet component`,\n {\n factory: () => ({...TUI_SHEET_DEFAULT_OPTIONS, offset: inject(TUI_SHEET_OFFSET)}),\n },\n);\n","import {DOCUMENT} from '@angular/common';\nimport {Inject, Injectable} from '@angular/core';\nimport {tuiGetNativeFocused} from '@taiga-ui/cdk';\nimport {PolymorpheusContent} from '@tinkoff/ng-polymorpheus';\nimport {BehaviorSubject, EMPTY, Observable} from 'rxjs';\n\nimport {TuiSheet} from './sheet';\nimport {TUI_SHEET_OPTIONS, TuiSheetOptions} from './sheet-options';\n\n// @dynamic\n@Injectable({\n providedIn: `root`,\n})\nexport class TuiSheetService {\n readonly sheets$ = new BehaviorSubject<Array<TuiSheet<any, any>>>([]);\n\n constructor(\n @Inject(DOCUMENT) private readonly doc: Document,\n @Inject(TUI_SHEET_OPTIONS) private readonly options: TuiSheetOptions,\n ) {}\n\n open<G>(\n content: PolymorpheusContent<TuiSheet<G>>,\n options: Partial<TuiSheetOptions> = {},\n ): Observable<G> {\n return new Observable($implicit => {\n const completeWith = (result: G): void => {\n $implicit.next(result);\n $implicit.complete();\n };\n const sheet: TuiSheet<any> = {\n ...this.options,\n ...options,\n content,\n completeWith,\n $implicit,\n scroll$: EMPTY,\n };\n const focused = tuiGetNativeFocused(this.doc);\n\n if (focused instanceof HTMLElement && sheet.overlay) {\n focused.blur();\n }\n\n this.sheets$.next([...this.sheets$.value, sheet]);\n\n return () => {\n this.sheets$.next(this.sheets$.value.filter(item => item !== sheet));\n };\n });\n }\n}\n","import {AnimationOptions} from '@angular/animations';\nimport {ChangeDetectionStrategy, Component, Inject} from '@angular/core';\nimport {TUI_WINDOW_HEIGHT} from '@taiga-ui/cdk';\nimport {TUI_ANIMATION_OPTIONS, tuiFadeIn, tuiSlideInTop} from '@taiga-ui/core';\nimport {Observable} from 'rxjs';\n\nimport {TuiSheet} from '../../sheet';\nimport {TuiSheetService} from '../../sheet.service';\n\n// @dynamic\n@Component({\n selector: 'tui-sheets-host',\n templateUrl: 'sheets-host.template.html',\n styleUrls: ['sheets-host.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n animations: [tuiSlideInTop, tuiFadeIn],\n})\nexport class TuiSheetsHostComponent {\n constructor(\n @Inject(TUI_ANIMATION_OPTIONS) readonly options: AnimationOptions,\n @Inject(TuiSheetService) readonly service: TuiSheetService,\n @Inject(TUI_WINDOW_HEIGHT) readonly height$: Observable<number>,\n ) {}\n\n close({closeable, $implicit}: TuiSheet<unknown>): void {\n if (closeable) {\n $implicit.complete();\n }\n }\n}\n","import {Directive, ElementRef, Inject, NgZone, Output} from '@angular/core';\nimport {WINDOW} from '@ng-web-apis/common';\nimport {tuiZonefull, typedFromEvent} from '@taiga-ui/cdk';\nimport {EMPTY, merge, Observable} from 'rxjs';\nimport {distinctUntilChanged, filter, startWith, switchMap} from 'rxjs/operators';\n\nimport {TuiSheetComponent} from '../../components/sheet/sheet.component';\nimport {\n TUI_SHEET_DRAGGED,\n TUI_SHEET_SCROLL,\n} from '../../components/sheet/sheet.providers';\nimport {TUI_SHEET_CLOSE} from '../../components/sheet-heading/sheet-heading.component';\n\n// @dynamic\n@Directive({\n selector: 'tui-sheet[close]',\n})\nexport class TuiSheetCloseDirective {\n @Output()\n readonly close: Observable<unknown> = merge(\n typedFromEvent(this.elementRef.nativeElement, TUI_SHEET_CLOSE),\n this.dragged$.pipe(\n startWith(false),\n switchMap(dragged =>\n dragged\n ? EMPTY\n : this.scroll$.pipe(\n startWith(this.elementRef.nativeElement.scrollTop),\n ),\n ),\n filter(y => this.sheet.item?.closeable && this.shouldClose(y)),\n distinctUntilChanged(),\n tuiZonefull(this.ngZone),\n ),\n );\n\n constructor(\n @Inject(NgZone) private readonly ngZone: NgZone,\n @Inject(TUI_SHEET_DRAGGED) private readonly dragged$: Observable<boolean>,\n @Inject(TUI_SHEET_SCROLL) private readonly scroll$: Observable<number>,\n @Inject(WINDOW) private readonly windowRef: Window,\n @Inject(ElementRef) private readonly elementRef: ElementRef<HTMLElement>,\n @Inject(TuiSheetComponent) private readonly sheet: TuiSheetComponent<unknown>,\n ) {}\n\n private shouldClose(scrollTop: number): boolean {\n const height = Math.min(\n this.windowRef.innerHeight,\n this.elementRef.nativeElement.scrollHeight - this.windowRef.innerHeight,\n );\n const min = Math.min(height, this.sheet.stops[0] || Infinity);\n\n return scrollTop < min / 2;\n }\n}\n","import {Directive, ElementRef, Inject} from '@angular/core';\nimport {TuiDestroyService} from '@taiga-ui/cdk';\nimport {TUI_SCROLL_REF} from '@taiga-ui/core';\nimport {Observable} from 'rxjs';\nimport {\n distinctUntilChanged,\n filter,\n map,\n takeUntil,\n throttleTime,\n withLatestFrom,\n} from 'rxjs/operators';\n\nimport {\n TUI_SHEET_DRAGGED,\n TUI_SHEET_SCROLL,\n} from '../../components/sheet/sheet.providers';\n\n@Directive({\n selector: '[tuiSheetStop]',\n providers: [TuiDestroyService],\n})\nexport class TuiSheetStopDirective {\n constructor(\n @Inject(ElementRef) elementRef: ElementRef<HTMLElement>,\n @Inject(TuiDestroyService) destroy$: Observable<unknown>,\n @Inject(TUI_SHEET_DRAGGED) dragged$: Observable<boolean>,\n @Inject(TUI_SHEET_SCROLL) scroll$: Observable<number>,\n @Inject(TUI_SCROLL_REF) {nativeElement}: ElementRef<HTMLElement>,\n ) {\n scroll$\n .pipe(\n map(y => Math.floor(y) > elementRef.nativeElement.offsetTop),\n distinctUntilChanged(),\n withLatestFrom(dragged$),\n map(([above, dragged]) => !above && !dragged),\n filter(Boolean),\n throttleTime(100),\n takeUntil(destroy$),\n )\n .subscribe(() => {\n nativeElement.style.overflow = 'hidden';\n nativeElement.classList.remove('_stuck'); // iOS\n nativeElement.scrollTop = elementRef.nativeElement.offsetTop;\n\n setTimeout(() => {\n nativeElement.style.overflow = '';\n }, 100);\n });\n }\n}\n","import {Directive, forwardRef, Inject, Input} from '@angular/core';\nimport {WINDOW} from '@ng-web-apis/common';\nimport {clamp, tuiDefaultProp} from '@taiga-ui/cdk';\nimport {Observable} from 'rxjs';\nimport {map} from 'rxjs/operators';\n\nimport {TuiSheetComponent} from '../../components/sheet/sheet.component';\nimport {TUI_SHEET_SCROLL} from '../../components/sheet/sheet.providers';\n\n// So that borders get rounded when image is visible for at least 10px\nconst OFFSET = 10;\n\n// @dynamic\n@Directive({\n selector: '[tuiSheetTop]',\n host: {\n '[$.style.transform]': 'transform$',\n '($.style.transform)': 'transform$',\n '[$.class._rounded]': 'rounded$',\n '($.class._rounded)': 'rounded$',\n '[$.class._clickthrough]': 'clickthrough$',\n '($.class._clickthrough)': 'clickthrough$',\n },\n})\nexport class TuiSheetTopDirective {\n @Input('tuiSheetTop')\n @tuiDefaultProp()\n stop = 0;\n\n readonly transform$ = this.scroll$.pipe(\n map(y => `translateY(${this.getY(y)}%) scaleX(-1)`),\n );\n\n readonly rounded$ = this.scroll$.pipe(map(y => y < this.stop + OFFSET));\n\n readonly clickthrough$ = this.scroll$.pipe(map(y => !!Math.round(this.getY(y))));\n\n constructor(\n @Inject(TUI_SHEET_SCROLL) private readonly scroll$: Observable<number>,\n @Inject(forwardRef(() => TuiSheetComponent))\n private readonly component: TuiSheetComponent<unknown>,\n @Inject(WINDOW) private readonly windowRef: Window,\n ) {}\n\n private getY(scrollTop: number): number {\n const value = scrollTop - this.stop;\n const total = this.windowRef.innerHeight - this.component.item.offset - this.stop;\n\n return this.stop && clamp(100 - (value / total) * 100, 0, 100);\n }\n}\n","import {ContentChild, Directive, Inject, Input} from '@angular/core';\nimport {WINDOW} from '@ng-web-apis/common';\nimport {clamp, tuiPure} from '@taiga-ui/cdk';\nimport {Observable} from 'rxjs';\nimport {map} from 'rxjs/operators';\n\nimport {TuiSheetComponent} from '../../components/sheet/sheet.component';\nimport {\n TUI_SHEET_DRAGGED,\n TUI_SHEET_SCROLL,\n} from '../../components/sheet/sheet.providers';\nimport {processDragged} from '../../ios.hacks';\n\n// Safety offset for shadow\nconst OFFSET = 16;\n\n// @dynamic\n@Directive({\n selector: '[tuiSheetWrapper]',\n host: {\n '[$.class._overlay]': 'overlay$',\n '($.class._overlay)': 'overlay$',\n '[$.class._visible]': 'visible$',\n '($.class._visible)': 'visible$',\n '[$.style.height.px]': 'height$',\n '($.style.height.px)': 'height$',\n },\n})\nexport class TuiSheetWrapperDirective {\n @ContentChild(TuiSheetComponent)\n private readonly sheet?: TuiSheetComponent<unknown>;\n\n @ContentChild(TuiSheetComponent, {read: TUI_SHEET_DRAGGED})\n private readonly dragged$!: Observable<boolean>;\n\n @ContentChild(TuiSheetComponent, {read: TUI_SHEET_SCROLL})\n private readonly scroll$!: Observable<number>;\n\n @Input()\n tuiSheetWrapper = 16;\n\n // Trying to get overflow: visible as early as possible for Safari\n touched = false;\n\n constructor(@Inject(WINDOW) private readonly windowRef: Window) {}\n\n @tuiPure\n get overlay$(): Observable<boolean> {\n return this.scroll$.pipe(\n map(y => y + 16 > this.windowRef.innerHeight - this.tuiSheetWrapper),\n );\n }\n\n @tuiPure\n get visible$(): Observable<boolean> {\n return processDragged(this.dragged$, this.scroll$);\n }\n\n @tuiPure\n get height$(): Observable<number | null> {\n return this.scroll$.pipe(map(this.getHeight.bind(this)));\n }\n\n private getHeight(value: number): number | null {\n return this.sheet?.context.overlay\n ? null\n : clamp(this.withImage(value) + OFFSET, OFFSET, this.windowRef.innerHeight);\n }\n\n private withImage(value: number): number {\n return !this.sheet?.imageStop || Math.floor(value) > this.sheet.imageStop\n ? value\n : value - this.sheet.imageHeight;\n }\n}\n","import {\n ChangeDetectorRef,\n Directive,\n Inject,\n Input,\n Output,\n TemplateRef,\n} from '@angular/core';\nimport {tuiDefaultProp, tuiRequiredSetter} from '@taiga-ui/cdk';\nimport {PolymorpheusTemplate} from '@tinkoff/ng-polymorpheus';\nimport {EMPTY, Subject} from 'rxjs';\nimport {endWith, ignoreElements, switchMap} from 'rxjs/operators';\n\nimport {TuiSheet} from './sheet';\nimport {TuiSheetService} from './sheet.service';\nimport {TuiSheetOptions} from './sheet-options';\n\n@Directive({\n selector: 'ng-template[tuiSheet]',\n})\nexport class TuiSheetDirective extends PolymorpheusTemplate<TuiSheet<never>> {\n private readonly open$ = new Subject<boolean>();\n\n @Input('tuiSheetOptions')\n @tuiDefaultProp()\n options: Partial<TuiSheetOptions> = {};\n\n @Input()\n @tuiRequiredSetter()\n set tuiSheet(open: boolean) {\n this.open$.next(open);\n }\n\n @Output()\n tuiSheetChange = this.open$.pipe(\n switchMap(open =>\n open\n ? this.service\n .open(this, this.options)\n .pipe(ignoreElements(), endWith(false))\n : EMPTY,\n ),\n );\n\n constructor(\n @Inject(ChangeDetectorRef) changeDetectorRef: ChangeDetectorRef,\n @Inject(TemplateRef) templateRef: TemplateRef<TuiSheet<never>>,\n @Inject(TuiSheetService) private readonly service: TuiSheetService,\n ) {\n super(templateRef, changeDetectorRef);\n }\n}\n","import {CommonModule} from '@angular/common';\nimport {NgModule, NO_ERRORS_SCHEMA} from '@angular/core';\nimport {TuiLetModule, TuiOverscrollModule} from '@taiga-ui/cdk';\nimport {TuiButtonModule, TuiScrollbarModule} from '@taiga-ui/core';\nimport {PolymorpheusModule} from '@tinkoff/ng-polymorpheus';\n\nimport {TuiSheetComponent} from './components/sheet/sheet.component';\nimport {TuiSheetBarComponent} from './components/sheet-bar/sheet-bar.component';\nimport {TuiSheetHeadingComponent} from './components/sheet-heading/sheet-heading.component';\nimport {TuiSheetsHostComponent} from './components/sheets-host/sheets-host.component';\nimport {TuiSheetCloseDirective} from './directives/sheet-close/sheet-close.directive';\nimport {TuiSheetStopDirective} from './directives/sheet-stop/sheet-stop.directive';\nimport {TuiSheetTopDirective} from './directives/sheet-top/sheet-top.directive';\nimport {TuiSheetWrapperDirective} from './directives/sheet-wrapper/sheet-wrapper.directive';\nimport {TuiSheetDirective} from './sheet.directive';\n\n@NgModule({\n imports: [\n CommonModule,\n PolymorpheusModule,\n TuiLetModule,\n TuiButtonModule,\n TuiOverscrollModule,\n TuiScrollbarModule,\n ],\n declarations: [\n TuiSheetsHostComponent,\n TuiSheetComponent,\n TuiSheetBarComponent,\n TuiSheetHeadingComponent,\n TuiSheetTopDirective,\n TuiSheetDirective,\n TuiSheetWrapperDirective,\n TuiSheetCloseDirective,\n TuiSheetStopDirective,\n ],\n exports: [\n TuiSheetsHostComponent,\n TuiSheetComponent,\n TuiSheetHeadingComponent,\n TuiSheetDirective,\n ],\n schemas: [NO_ERRORS_SCHEMA],\n})\nexport class TuiSheetModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["OFFSET"],"mappings":"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"}
@@ -1,51 +1,38 @@
1
1
  import { __decorate, __param } from 'tslib';
2
- import { ElementRef, Optional, Inject, NgZone, Injectable, Output, Directive, NgModule } from '@angular/core';
3
- import { typedFromEvent, tuiZoneOptimized, getElementOffset, TuiDestroyService } from '@taiga-ui/cdk';
4
- import { WINDOW } from '@ng-web-apis/common';
2
+ import { ElementRef, Inject, NgZone, Self, Injectable, Output, Directive, NgModule } from '@angular/core';
3
+ import { tuiGetElementOffset, tuiScrollFrom, tuiZoneOptimized, TuiDestroyService } from '@taiga-ui/cdk';
5
4
  import { SCROLL_REF_SELECTOR, TUI_SCROLL_REF } from '@taiga-ui/core';
6
5
  import { Observable } from 'rxjs';
7
6
  import { take, switchMap, map, startWith, distinctUntilChanged, skip, takeUntil } from 'rxjs/operators';
8
7
 
9
8
  // @dynamic
10
9
  let TuiElasticStickyService = class TuiElasticStickyService extends Observable {
11
- constructor(scrollRef, { nativeElement }, ngZone, windowRef, destroy$) {
10
+ constructor(scrollRef, { nativeElement }, ngZone, destroy$) {
12
11
  super(subscriber => ngZone.onStable
13
12
  .pipe(take(1), switchMap(() => {
14
- var _a;
15
- const closest = nativeElement.closest(SCROLL_REF_SELECTOR);
16
- const host = (_a = scrollRef === null || scrollRef === void 0 ? void 0 : scrollRef.nativeElement) !== null && _a !== void 0 ? _a : closest;
13
+ const host = nativeElement.closest(SCROLL_REF_SELECTOR) ||
14
+ scrollRef.nativeElement;
17
15
  const { offsetHeight } = nativeElement;
18
- const offsetTop = this.getInitialOffset(host || windowRef, nativeElement);
19
- return typedFromEvent(host || windowRef, `scroll`).pipe(map(() => Math.max(1 -
20
- Math.max(Math.round(host
21
- ? host.scrollTop
22
- : windowRef.pageYOffset) - offsetTop, 0) /
16
+ const { offsetTop } = tuiGetElementOffset(host, nativeElement);
17
+ return tuiScrollFrom(host).pipe(map(() => Math.max(1 -
18
+ Math.max(Math.round(host.scrollTop) - offsetTop, 0) /
23
19
  offsetHeight, 0)));
24
20
  }), startWith(1), distinctUntilChanged(), skip(1), tuiZoneOptimized(ngZone), takeUntil(destroy$))
25
21
  .subscribe(subscriber));
26
22
  }
27
- getInitialOffset(host, element) {
28
- // TODO: iframe warning
29
- return host instanceof Element
30
- ? getElementOffset(host, element).offsetTop
31
- : element.getBoundingClientRect().top;
32
- }
33
23
  };
34
24
  TuiElasticStickyService.ctorParameters = () => [
35
- { type: ElementRef, decorators: [{ type: Optional }, { type: Inject, args: [TUI_SCROLL_REF,] }] },
25
+ { type: ElementRef, decorators: [{ type: Inject, args: [TUI_SCROLL_REF,] }] },
36
26
  { type: ElementRef, decorators: [{ type: Inject, args: [ElementRef,] }] },
37
27
  { type: NgZone, decorators: [{ type: Inject, args: [NgZone,] }] },
38
- { type: Window, decorators: [{ type: Inject, args: [WINDOW,] }] },
39
- { type: TuiDestroyService, decorators: [{ type: Inject, args: [TuiDestroyService,] }] }
28
+ { type: TuiDestroyService, decorators: [{ type: Self }, { type: Inject, args: [TuiDestroyService,] }] }
40
29
  ];
41
30
  TuiElasticStickyService = __decorate([
42
31
  Injectable(),
43
- __param(0, Optional()),
44
32
  __param(0, Inject(TUI_SCROLL_REF)),
45
33
  __param(1, Inject(ElementRef)),
46
34
  __param(2, Inject(NgZone)),
47
- __param(3, Inject(WINDOW)),
48
- __param(4, Inject(TuiDestroyService))
35
+ __param(3, Self()), __param(3, Inject(TuiDestroyService))
49
36
  ], TuiElasticStickyService);
50
37
 
51
38
  let TuiElasticStickyDirective = class TuiElasticStickyDirective {
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-addon-mobile-directives-elastic-sticky.js","sources":["ng://@taiga-ui/addon-mobile/directives/elastic-sticky/elastic-sticky.service.ts","ng://@taiga-ui/addon-mobile/directives/elastic-sticky/elastic-sticky.directive.ts","ng://@taiga-ui/addon-mobile/directives/elastic-sticky/elastic-sticky.module.ts","ng://@taiga-ui/addon-mobile/directives/elastic-sticky/taiga-ui-addon-mobile-directives-elastic-sticky.ts"],"sourcesContent":["import {ElementRef, Inject, Injectable, NgZone, Optional} from '@angular/core';\nimport {WINDOW} from '@ng-web-apis/common';\nimport {\n getElementOffset,\n TuiDestroyService,\n tuiZoneOptimized,\n typedFromEvent,\n} from '@taiga-ui/cdk';\nimport {SCROLL_REF_SELECTOR, TUI_SCROLL_REF} from '@taiga-ui/core';\nimport {Observable} from 'rxjs';\nimport {\n distinctUntilChanged,\n map,\n skip,\n startWith,\n switchMap,\n take,\n takeUntil,\n} from 'rxjs/operators';\n\n// @dynamic\n@Injectable()\nexport class TuiElasticStickyService extends Observable<number> {\n constructor(\n @Optional()\n @Inject(TUI_SCROLL_REF)\n scrollRef: ElementRef<HTMLElement> | null,\n @Inject(ElementRef) {nativeElement}: ElementRef<HTMLElement>,\n @Inject(NgZone) ngZone: NgZone,\n @Inject(WINDOW) windowRef: Window,\n @Inject(TuiDestroyService) destroy$: TuiDestroyService,\n ) {\n super(subscriber =>\n ngZone.onStable\n .pipe(\n take(1),\n switchMap(() => {\n const closest = nativeElement.closest(SCROLL_REF_SELECTOR);\n const host = scrollRef?.nativeElement ?? closest;\n const {offsetHeight} = nativeElement;\n const offsetTop = this.getInitialOffset(\n host || windowRef,\n nativeElement,\n );\n\n return typedFromEvent(host || windowRef, `scroll`).pipe(\n map(() =>\n Math.max(\n 1 -\n Math.max(\n Math.round(\n host\n ? host.scrollTop\n : windowRef.pageYOffset,\n ) - offsetTop,\n 0,\n ) /\n offsetHeight,\n 0,\n ),\n ),\n );\n }),\n startWith(1),\n distinctUntilChanged(),\n skip(1),\n tuiZoneOptimized(ngZone),\n takeUntil(destroy$),\n )\n .subscribe(subscriber),\n );\n }\n\n private getInitialOffset(host: Element | Window, element: HTMLElement): number {\n // TODO: iframe warning\n return host instanceof Element\n ? getElementOffset(host, element).offsetTop\n : element.getBoundingClientRect().top;\n }\n}\n","import {Directive, Inject, Output} from '@angular/core';\nimport {TuiDestroyService} from '@taiga-ui/cdk';\nimport {Observable} from 'rxjs';\n\nimport {TuiElasticStickyService} from './elastic-sticky.service';\n\n@Directive({\n selector: '[tuiElasticSticky]',\n exportAs: 'tuiElasticSticky',\n providers: [TuiElasticStickyService, TuiDestroyService],\n})\nexport class TuiElasticStickyDirective {\n @Output()\n readonly tuiElasticSticky: Observable<number>;\n\n constructor(\n @Inject(TuiElasticStickyService) elasticStickyService: TuiElasticStickyService,\n ) {\n this.tuiElasticSticky = elasticStickyService;\n }\n}\n","import {NgModule} from '@angular/core';\n\nimport {TuiElasticStickyDirective} from './elastic-sticky.directive';\n\n@NgModule({\n declarations: [TuiElasticStickyDirective],\n exports: [TuiElasticStickyDirective],\n})\nexport class TuiElasticStickyModule {}\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-directives-elastic-sticky.js","sources":["ng://@taiga-ui/addon-mobile/directives/elastic-sticky/elastic-sticky.service.ts","ng://@taiga-ui/addon-mobile/directives/elastic-sticky/elastic-sticky.directive.ts","ng://@taiga-ui/addon-mobile/directives/elastic-sticky/elastic-sticky.module.ts","ng://@taiga-ui/addon-mobile/directives/elastic-sticky/taiga-ui-addon-mobile-directives-elastic-sticky.ts"],"sourcesContent":["import {ElementRef, Inject, Injectable, NgZone, Self} from '@angular/core';\nimport {\n TuiDestroyService,\n tuiGetElementOffset,\n tuiScrollFrom,\n tuiZoneOptimized,\n} from '@taiga-ui/cdk';\nimport {SCROLL_REF_SELECTOR, TUI_SCROLL_REF} from '@taiga-ui/core';\nimport {Observable} from 'rxjs';\nimport {\n distinctUntilChanged,\n map,\n skip,\n startWith,\n switchMap,\n take,\n takeUntil,\n} from 'rxjs/operators';\n\n// @dynamic\n@Injectable()\nexport class TuiElasticStickyService extends Observable<number> {\n constructor(\n @Inject(TUI_SCROLL_REF) scrollRef: ElementRef<HTMLElement>,\n @Inject(ElementRef) {nativeElement}: ElementRef<HTMLElement>,\n @Inject(NgZone) ngZone: NgZone,\n @Self() @Inject(TuiDestroyService) destroy$: TuiDestroyService,\n ) {\n super(subscriber =>\n ngZone.onStable\n .pipe(\n take(1),\n switchMap(() => {\n const host =\n nativeElement.closest(SCROLL_REF_SELECTOR) ||\n scrollRef.nativeElement;\n const {offsetHeight} = nativeElement;\n const {offsetTop} = tuiGetElementOffset(host, nativeElement);\n\n return tuiScrollFrom(host).pipe(\n map(() =>\n Math.max(\n 1 -\n Math.max(\n Math.round(host.scrollTop) - offsetTop,\n 0,\n ) /\n offsetHeight,\n 0,\n ),\n ),\n );\n }),\n startWith(1),\n distinctUntilChanged(),\n skip(1),\n tuiZoneOptimized(ngZone),\n takeUntil(destroy$),\n )\n .subscribe(subscriber),\n );\n }\n}\n","import {Directive, Inject, Output} from '@angular/core';\nimport {TuiDestroyService} from '@taiga-ui/cdk';\nimport {Observable} from 'rxjs';\n\nimport {TuiElasticStickyService} from './elastic-sticky.service';\n\n@Directive({\n selector: '[tuiElasticSticky]',\n exportAs: 'tuiElasticSticky',\n providers: [TuiElasticStickyService, TuiDestroyService],\n})\nexport class TuiElasticStickyDirective {\n @Output()\n readonly tuiElasticSticky: Observable<number>;\n\n constructor(\n @Inject(TuiElasticStickyService) elasticStickyService: TuiElasticStickyService,\n ) {\n this.tuiElasticSticky = elasticStickyService;\n }\n}\n","import {NgModule} from '@angular/core';\n\nimport {TuiElasticStickyDirective} from './elastic-sticky.directive';\n\n@NgModule({\n declarations: [TuiElasticStickyDirective],\n exports: [TuiElasticStickyDirective],\n})\nexport class TuiElasticStickyModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;AAmBA;IAEa,uBAAuB,GAApC,MAAa,uBAAwB,SAAQ,UAAkB;IAC3D,YAC4B,SAAkC,EACtC,EAAC,aAAa,EAA0B,EAC5C,MAAc,EACK,QAA2B;QAE9D,KAAK,CAAC,UAAU,IACZ,MAAM,CAAC,QAAQ;aACV,IAAI,CACD,IAAI,CAAC,CAAC,CAAC,EACP,SAAS,CAAC;YACN,MAAM,IAAI,GACN,aAAa,CAAC,OAAO,CAAC,mBAAmB,CAAC;gBAC1C,SAAS,CAAC,aAAa,CAAC;YAC5B,MAAM,EAAC,YAAY,EAAC,GAAG,aAAa,CAAC;YACrC,MAAM,EAAC,SAAS,EAAC,GAAG,mBAAmB,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;YAE7D,OAAO,aAAa,CAAC,IAAI,CAAC,CAAC,IAAI,CAC3B,GAAG,CAAC,MACA,IAAI,CAAC,GAAG,CACJ,CAAC;gBACG,IAAI,CAAC,GAAG,CACJ,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,SAAS,EACtC,CAAC,CACJ;oBACG,YAAY,EACpB,CAAC,CACJ,CACJ,CACJ,CAAC;SACL,CAAC,EACF,SAAS,CAAC,CAAC,CAAC,EACZ,oBAAoB,EAAE,EACtB,IAAI,CAAC,CAAC,CAAC,EACP,gBAAgB,CAAC,MAAM,CAAC,EACxB,SAAS,CAAC,QAAQ,CAAC,CACtB;aACA,SAAS,CAAC,UAAU,CAAC,CAC7B,CAAC;KACL;EACJ;;YAvC0C,UAAU,uBAA5C,MAAM,SAAC,cAAc;YACe,UAAU,uBAA9C,MAAM,SAAC,UAAU;YACM,MAAM,uBAA7B,MAAM,SAAC,MAAM;YAC+B,iBAAiB,uBAA7D,IAAI,YAAI,MAAM,SAAC,iBAAiB;;AAL5B,uBAAuB;IADnC,UAAU,EAAE;IAGJ,WAAA,MAAM,CAAC,cAAc,CAAC,CAAA;IACtB,WAAA,MAAM,CAAC,UAAU,CAAC,CAAA;IAClB,WAAA,MAAM,CAAC,MAAM,CAAC,CAAA;IACd,WAAA,IAAI,EAAE,CAAA,EAAE,WAAA,MAAM,CAAC,iBAAiB,CAAC,CAAA;GAL7B,uBAAuB,CAyCnC;;ICnDY,yBAAyB,GAAtC,MAAa,yBAAyB;IAIlC,YACqC,oBAA6C;QAE9E,IAAI,CAAC,gBAAgB,GAAG,oBAAoB,CAAC;KAChD;EACJ;;YAJ8D,uBAAuB,uBAA7E,MAAM,SAAC,uBAAuB;;AAHnC;IADC,MAAM,EAAE;mEACqC;AAFrC,yBAAyB;IALrC,SAAS,CAAC;QACP,QAAQ,EAAE,oBAAoB;QAC9B,QAAQ,EAAE,kBAAkB;QAC5B,SAAS,EAAE,CAAC,uBAAuB,EAAE,iBAAiB,CAAC;KAC1D,CAAC;IAMO,WAAA,MAAM,CAAC,uBAAuB,CAAC,CAAA;GAL3B,yBAAyB,CASrC;;ICZY,sBAAsB,GAAnC,MAAa,sBAAsB;EAAG;AAAzB,sBAAsB;IAJlC,QAAQ,CAAC;QACN,YAAY,EAAE,CAAC,yBAAyB,CAAC;QACzC,OAAO,EAAE,CAAC,yBAAyB,CAAC;KACvC,CAAC;GACW,sBAAsB,CAAG;;ACRtC;;;;;;"}
@@ -2,7 +2,6 @@ export * from '@taiga-ui/addon-mobile/components';
2
2
  export * from '@taiga-ui/addon-mobile/const';
3
3
  export * from '@taiga-ui/addon-mobile/directives';
4
4
  export * from '@taiga-ui/addon-mobile/enums';
5
- export * from '@taiga-ui/addon-mobile/tokens';
6
5
  export * from '@taiga-ui/addon-mobile/utils';
7
6
 
8
7
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-addon-mobile.js","sources":["ng://@taiga-ui/addon-mobile/taiga-ui-addon-mobile.ts"],"sourcesContent":["/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;AAAA;;"}
1
+ {"version":3,"file":"taiga-ui-addon-mobile.js","sources":["ng://@taiga-ui/addon-mobile/taiga-ui-addon-mobile.ts"],"sourcesContent":["/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;AAAA;;"}