@taiga-ui/addon-mobile 3.23.1-dev.main-14214d9 → 3.23.1-dev.main-3d032b2

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 (53) hide show
  1. package/bundles/taiga-ui-addon-mobile-components-mobile-calendar.umd.js +5 -5
  2. package/bundles/taiga-ui-addon-mobile-components-mobile-calendar.umd.js.map +1 -1
  3. package/bundles/taiga-ui-addon-mobile-components-sheet.umd.js +30 -31
  4. package/bundles/taiga-ui-addon-mobile-components-sheet.umd.js.map +1 -1
  5. package/bundles/taiga-ui-addon-mobile-components-tab-bar.umd.js +2 -2
  6. package/bundles/taiga-ui-addon-mobile-components-tab-bar.umd.js.map +1 -1
  7. package/bundles/taiga-ui-addon-mobile-directives-elastic-sticky.umd.js +4 -6
  8. package/bundles/taiga-ui-addon-mobile-directives-elastic-sticky.umd.js.map +1 -1
  9. package/bundles/taiga-ui-addon-mobile-directives-sidebar.umd.js +2 -2
  10. package/bundles/taiga-ui-addon-mobile-directives-sidebar.umd.js.map +1 -1
  11. package/bundles/taiga-ui-addon-mobile-directives-touchable.umd.js +2 -2
  12. package/bundles/taiga-ui-addon-mobile-directives-touchable.umd.js.map +1 -1
  13. package/components/mobile-calendar/mobile-calendar.component.d.ts +2 -2
  14. package/components/sheet/components/sheet/sheet.component.d.ts +2 -2
  15. package/components/sheet/components/sheet-heading/sheet-heading.component.d.ts +2 -2
  16. package/components/sheet/directives/sheet-close/sheet-close.directive.d.ts +3 -3
  17. package/components/sheet/directives/sheet-stop/sheet-stop.directive.d.ts +1 -1
  18. package/components/sheet/directives/sheet-top/sheet-top.directive.d.ts +2 -2
  19. package/components/sheet/directives/sheet-wrapper/sheet-wrapper.directive.d.ts +2 -2
  20. package/components/sheet/ios.hacks.d.ts +1 -1
  21. package/components/sheet/sheet.directive.d.ts +1 -1
  22. package/components/tab-bar/tab-bar-item.directive.d.ts +1 -1
  23. package/directives/elastic-sticky/elastic-sticky.service.d.ts +1 -1
  24. package/directives/sidebar/sidebar.directive.d.ts +1 -1
  25. package/directives/touchable/touchable.directive.d.ts +1 -1
  26. package/esm2015/components/mobile-calendar/mobile-calendar.component.js +4 -4
  27. package/esm2015/components/mobile-calendar/mobile-calendar.providers.js +3 -3
  28. package/esm2015/components/sheet/components/sheet/sheet.component.js +5 -6
  29. package/esm2015/components/sheet/components/sheet/sheet.providers.js +3 -3
  30. package/esm2015/components/sheet/components/sheet-heading/sheet-heading.component.js +5 -5
  31. package/esm2015/components/sheet/directives/sheet-close/sheet-close.directive.js +6 -6
  32. package/esm2015/components/sheet/directives/sheet-stop/sheet-stop.directive.js +4 -4
  33. package/esm2015/components/sheet/directives/sheet-top/sheet-top.directive.js +4 -4
  34. package/esm2015/components/sheet/directives/sheet-wrapper/sheet-wrapper.directive.js +5 -5
  35. package/esm2015/components/sheet/ios.hacks.js +4 -4
  36. package/esm2015/components/sheet/sheet.directive.js +3 -3
  37. package/esm2015/components/tab-bar/tab-bar-item.directive.js +3 -3
  38. package/esm2015/directives/elastic-sticky/elastic-sticky.service.js +5 -7
  39. package/esm2015/directives/sidebar/sidebar.directive.js +3 -3
  40. package/esm2015/directives/touchable/touchable.directive.js +3 -3
  41. package/fesm2015/taiga-ui-addon-mobile-components-mobile-calendar.js +5 -5
  42. package/fesm2015/taiga-ui-addon-mobile-components-mobile-calendar.js.map +1 -1
  43. package/fesm2015/taiga-ui-addon-mobile-components-sheet.js +30 -31
  44. package/fesm2015/taiga-ui-addon-mobile-components-sheet.js.map +1 -1
  45. package/fesm2015/taiga-ui-addon-mobile-components-tab-bar.js +2 -2
  46. package/fesm2015/taiga-ui-addon-mobile-components-tab-bar.js.map +1 -1
  47. package/fesm2015/taiga-ui-addon-mobile-directives-elastic-sticky.js +4 -6
  48. package/fesm2015/taiga-ui-addon-mobile-directives-elastic-sticky.js.map +1 -1
  49. package/fesm2015/taiga-ui-addon-mobile-directives-sidebar.js +2 -2
  50. package/fesm2015/taiga-ui-addon-mobile-directives-sidebar.js.map +1 -1
  51. package/fesm2015/taiga-ui-addon-mobile-directives-touchable.js +2 -2
  52. package/fesm2015/taiga-ui-addon-mobile-directives-touchable.js.map +1 -1
  53. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-addon-mobile-components-sheet.js","sources":["../../../projects/addon-mobile/components/sheet/ios.hacks.ts","../../../projects/addon-mobile/components/sheet/sheet-tokens.ts","../../../projects/addon-mobile/components/sheet/components/sheet-heading/sheet-heading.component.ts","../../../projects/addon-mobile/components/sheet/components/sheet-heading/sheet-heading.template.html","../../../projects/addon-mobile/components/sheet/components/sheet/sheet.providers.ts","../../../projects/addon-mobile/components/sheet/components/sheet-bar/sheet-bar.component.ts","../../../projects/addon-mobile/components/sheet/components/sheet-bar/sheet-bar.template.html","../../../projects/addon-mobile/components/sheet/directives/sheet-top/sheet-top.directive.ts","../../../projects/addon-mobile/components/sheet/directives/sheet-stop/sheet-stop.directive.ts","../../../projects/addon-mobile/components/sheet/components/sheet/sheet.component.ts","../../../projects/addon-mobile/components/sheet/components/sheet/sheet.template.html","../../../projects/addon-mobile/components/sheet/sheet-options.ts","../../../projects/addon-mobile/components/sheet/sheet.service.ts","../../../projects/addon-mobile/components/sheet/directives/sheet-wrapper/sheet-wrapper.directive.ts","../../../projects/addon-mobile/components/sheet/directives/sheet-close/sheet-close.directive.ts","../../../projects/addon-mobile/components/sheet/components/sheets-host/sheets-host.component.ts","../../../projects/addon-mobile/components/sheet/components/sheets-host/sheets-host.template.html","../../../projects/addon-mobile/components/sheet/sheet.directive.ts","../../../projects/addon-mobile/components/sheet/sheet.module.ts","../../../projects/addon-mobile/components/sheet/taiga-ui-addon-mobile-components-sheet.ts"],"sourcesContent":["import {NgZone} from '@angular/core';\nimport {tuiTypedFromEvent, tuiZonefree} from '@taiga-ui/cdk';\nimport {concat, merge, Observable, zip} from 'rxjs';\nimport {delay, map, share, switchMap, take, takeUntil} 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$ = tuiTypedFromEvent(element, `load`, {capture: true});\n const touchstart$ = tuiTypedFromEvent(element, `touchstart`, {passive: true});\n const touchmove$ = tuiTypedFromEvent(documentRef, `touchmove`, {passive: true});\n const touchend$ = tuiTypedFromEvent(documentRef, `touchend`);\n const scroll$ = tuiTypedFromEvent(element, `scroll`).pipe(\n map(() => element.scrollTop),\n );\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 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 {InjectionToken} from '@angular/core';\n\nimport {TuiSheetRequiredProps} from './sheet';\n\n/**\n * Sheet main component\n */\nexport const TUI_SHEET = new InjectionToken<TuiSheetRequiredProps>(`[TUI_SHEET]`);\n\n/**\n * Current scrollTop of a sheet\n */\nexport const TUI_SHEET_SCROLL = new InjectionToken<number>(`[TUI_SHEET_SCROLL]`);\n\n/**\n * The sheet is being dragged\n */\nexport const TUI_SHEET_DRAGGED = new InjectionToken<boolean>(`[TUI_SHEET_DRAGGED]`);\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","<button\n tuiIconButton\n size=\"xs\"\n appearance=\"icon\"\n type=\"button\"\n icon=\"tuiIconCloseLarge\"\n class=\"t-close\"\n [title]=\"closeWord$ | async\"\n (click)=\"onClick()\"\n></button>\n<span [id]=\"id\">\n <ng-content></ng-content>\n</span>\n","import {DOCUMENT} from '@angular/common';\nimport {ElementRef, forwardRef, NgZone, Provider} from '@angular/core';\nimport {\n ALWAYS_FALSE_HANDLER,\n ALWAYS_TRUE_HANDLER,\n TUI_IS_IOS,\n tuiTypedFromEvent,\n tuiZonefree,\n} from '@taiga-ui/cdk';\nimport {TUI_SCROLL_REF} from '@taiga-ui/core';\nimport {merge, Observable} from 'rxjs';\nimport {map, share} from 'rxjs/operators';\n\nimport {iosScrollFactory} from '../../ios.hacks';\nimport {TUI_SHEET, TUI_SHEET_DRAGGED, TUI_SHEET_SCROLL} from '../../sheet-tokens';\n// TODO: find the best way for prevent cycle\n// eslint-disable-next-line import/no-cycle\nimport {TuiSheetComponent} from './sheet.component';\n\nexport const TUI_SHEET_PROVIDERS: Provider[] = [\n {\n provide: TUI_SHEET_DRAGGED,\n deps: [ElementRef],\n useFactory: ({nativeElement}: ElementRef<HTMLElement>): Observable<boolean> => {\n return merge(\n tuiTypedFromEvent(nativeElement, `touchstart`, {passive: true}).pipe(\n map(ALWAYS_TRUE_HANDLER),\n ),\n tuiTypedFromEvent(nativeElement, `touchend`).pipe(\n map(ALWAYS_FALSE_HANDLER),\n ),\n );\n },\n },\n {\n provide: TUI_SHEET_SCROLL,\n deps: [ElementRef, NgZone, DOCUMENT, TUI_IS_IOS],\n useFactory: (\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 tuiTypedFromEvent(nativeElement, `scroll`),\n tuiTypedFromEvent(nativeElement, `load`, {capture: true}),\n ).pipe(\n map(() => nativeElement.scrollTop),\n tuiZonefree(ngZone),\n share(),\n );\n },\n },\n {\n provide: TUI_SCROLL_REF,\n useExisting: ElementRef,\n },\n {\n provide: TUI_SHEET,\n useExisting: forwardRef(() => TuiSheetComponent),\n },\n];\n","import {ChangeDetectionStrategy, Component, Inject, NgZone} from '@angular/core';\nimport {tuiClamp} from '@taiga-ui/cdk';\nimport {tuiZonefulMap} from '@taiga-ui/core';\nimport {Observable} from 'rxjs';\n\nimport {TuiSheetRequiredProps} from '../../sheet';\nimport {TUI_SHEET, TUI_SHEET_SCROLL} from '../../sheet-tokens';\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 => tuiClamp(10 - (y - this.stop) / 5, 0, 10), this.ngZone),\n );\n\n constructor(\n @Inject(TUI_SHEET) private readonly sheet: TuiSheetRequiredProps,\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","<!-- eslint-disable @html-eslint/no-inline-styles -->\n<ng-container *tuiLet=\"rotate$ | async as deg\">\n <div\n style=\"transform: rotate(-{{ deg }}deg)\"\n class=\"t-bar\"\n ></div>\n <ng-content *ngIf=\"deg\"></ng-content>\n <div\n style=\"transform: rotate({{ deg }}deg)\"\n class=\"t-bar\"\n ></div>\n</ng-container>\n","import {Directive, Inject, Input} from '@angular/core';\nimport {WINDOW} from '@ng-web-apis/common';\nimport {tuiClamp, tuiDefaultProp} from '@taiga-ui/cdk';\nimport {Observable} from 'rxjs';\nimport {map} from 'rxjs/operators';\n\nimport {TuiSheetRequiredProps} from '../../sheet';\nimport {TUI_SHEET, TUI_SHEET_SCROLL} from '../../sheet-tokens';\n\n// So that borders get rounded when image is visible for at least 10px\nconst OFFSET = 10;\n\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(TUI_SHEET)\n private readonly component: TuiSheetRequiredProps,\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 && tuiClamp(100 - (value / total) * 100, 0, 100);\n }\n}\n","import {Directive, ElementRef, Inject, Self} 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 {TUI_SHEET_DRAGGED, TUI_SHEET_SCROLL} from '../../sheet-tokens';\n\n@Directive({\n selector: '[tuiSheetStop]',\n providers: [TuiDestroyService],\n})\nexport class TuiSheetStopDirective {\n constructor(\n @Inject(ElementRef) elementRef: ElementRef<HTMLElement>,\n @Self() @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 {\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, TuiSheetRequiredProps} from '../../sheet';\nimport {TUI_SHEET_SCROLL} from '../../sheet-tokens';\nimport {TUI_SHEET_ID} from '../sheet-heading/sheet-heading.component';\n// TODO: find the best way for prevent cycle\n// eslint-disable-next-line import/no-cycle\nimport {TUI_SHEET_PROVIDERS} from './sheet.providers';\n\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 TuiSheetRequiredProps<T>, 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.map(\n ({nativeElement}) => nativeElement.offsetTop + nativeElement.clientHeight,\n );\n }\n}\n","<div\n class=\"t-bumpers\"\n (click)=\"close()\"\n>\n <div\n *ngFor=\"let stop of item.stops\"\n #stops\n class=\"t-bumper\"\n [style.marginTop]=\"stop\"\n ></div>\n</div>\n<div\n #sheet\n class=\"t-wrapper\"\n [class.t-wrapper_shadow]=\"!item.image\"\n>\n <header\n *ngIf=\"item.image\"\n class=\"t-top\"\n [tuiSheetTop]=\"imageStop\"\n >\n <img\n *polymorpheusOutlet=\"item.image as src; context: context\"\n alt=\"\"\n class=\"t-image\"\n [src]=\"src\"\n />\n </header>\n <section\n #content\n tuiSheetStop\n class=\"t-sheet\"\n >\n <div class=\"t-bar\"></div>\n <tui-sheet-bar>\n <button\n type=\"button\"\n class=\"t-button\"\n [title]=\"moreWord$ | async\"\n (click)=\"scrollTo(stops[1])\"\n ></button>\n </tui-sheet-bar>\n <div class=\"t-content\">\n <h2\n *polymorpheusOutlet=\"item.content as text; context: context\"\n tuiSheetHeading\n class=\"t-heading\"\n >\n {{ text }}\n </h2>\n </div>\n </section>\n</div>\n","import {InjectionToken} from '@angular/core';\nimport {PolymorpheusContent} from '@tinkoff/ng-polymorpheus';\n\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\n/**\n * Default parameters for sheet component\n */\nexport const TUI_SHEET_OPTIONS = new InjectionToken<Omit<TuiSheetOptions, 'data'>>(\n `[TUI_SHEET_OPTIONS]`,\n {\n factory: () => ({...TUI_SHEET_DEFAULT_OPTIONS}),\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 {ContentChild, Directive, Inject, Input, NgZone} from '@angular/core';\nimport {WINDOW} from '@ng-web-apis/common';\nimport {\n ALWAYS_FALSE_HANDLER,\n tuiClamp,\n tuiIsFalsy,\n tuiPure,\n tuiZonefull,\n} from '@taiga-ui/cdk';\nimport {Observable, race, timer} from 'rxjs';\nimport {\n debounceTime,\n distinctUntilChanged,\n filter,\n map,\n startWith,\n switchMap,\n take,\n} from 'rxjs/operators';\n\nimport {TuiSheetComponent} from '../../components/sheet/sheet.component';\nimport {TUI_SHEET_DRAGGED, TUI_SHEET_SCROLL} from '../../sheet-tokens';\n\n// Safety offset for shadow\nconst OFFSET = 16;\n\n@Directive({\n selector: '[tuiSheetWrapper]',\n exportAs: 'tuiSheetWrapper',\n})\nexport class TuiSheetWrapperDirective {\n @ContentChild(TuiSheetComponent)\n private readonly sheet?: TuiSheetComponent<unknown>;\n\n @ContentChild(TuiSheetComponent, {read: TUI_SHEET_DRAGGED, static: true})\n private readonly dragged$!: Observable<boolean>;\n\n @ContentChild(TuiSheetComponent, {read: TUI_SHEET_SCROLL, static: true})\n private readonly scroll$!: Observable<number>;\n\n @Input()\n tuiSheetWrapper = 16;\n\n constructor(\n @Inject(NgZone) private readonly ngZone: NgZone,\n @Inject(WINDOW) private readonly windowRef: Window,\n ) {}\n\n @tuiPure\n get overlay$(): Observable<boolean> {\n return this.scroll$.pipe(\n map(y => y + 16 > this.windowRef.innerHeight - this.tuiSheetWrapper),\n distinctUntilChanged(),\n tuiZonefull(this.ngZone),\n );\n }\n\n @tuiPure\n get visible$(): Observable<boolean> {\n return processDragged(this.dragged$, this.scroll$).pipe(\n distinctUntilChanged(),\n tuiZonefull(this.ngZone),\n );\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 : tuiClamp(\n this.withImage(value) + OFFSET,\n OFFSET,\n this.windowRef.innerHeight,\n );\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\nfunction 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(tuiIsFalsy));\n const race$ = race(scroll$, timer(100)).pipe(\n debounceTime(200),\n take(1),\n map(ALWAYS_FALSE_HANDLER),\n );\n\n return touchstart$.pipe(\n switchMap(() =>\n touchend$.pipe(\n switchMap(() => race$),\n startWith(true),\n ),\n ),\n startWith(false),\n );\n}\n","import {Directive, ElementRef, Inject, NgZone, Output} from '@angular/core';\nimport {WINDOW} from '@ng-web-apis/common';\nimport {tuiIfMap, tuiIsFalsy, tuiTypedFromEvent, tuiZonefull} from '@taiga-ui/cdk';\nimport {merge, Observable} from 'rxjs';\nimport {distinctUntilChanged, filter, startWith} from 'rxjs/operators';\n\nimport {TuiSheetComponent} from '../../components/sheet/sheet.component';\nimport {TUI_SHEET_CLOSE} from '../../components/sheet-heading/sheet-heading.component';\nimport {TUI_SHEET_DRAGGED, TUI_SHEET_SCROLL} from '../../sheet-tokens';\n\n@Directive({\n selector: 'tui-sheet[close]',\n})\nexport class TuiSheetCloseDirective {\n @Output()\n // eslint-disable-next-line @angular-eslint/no-output-native\n readonly close: Observable<unknown> = merge(\n tuiTypedFromEvent(this.elementRef.nativeElement, TUI_SHEET_CLOSE),\n this.dragged$.pipe(\n startWith(false),\n tuiIfMap(\n () =>\n this.scroll$.pipe(startWith(this.elementRef.nativeElement.scrollTop)),\n tuiIsFalsy,\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 {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@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","<ng-container *ngIf=\"service.sheets$ | async as items\">\n <div\n *ngFor=\"let item of items\"\n #wrapper=\"tuiSheetWrapper\"\n class=\"t-wrapper\"\n [@tuiSlideInTop]=\"options\"\n [@tuiFadeIn]=\"options\"\n [tuiSheetWrapper]=\"item.offset\"\n [class.t-wrapper_closeable]=\"item.closeable\"\n [class.t-wrapper_overlay]=\"item.overlay || (wrapper.overlay$ | async)\"\n [class.t-wrapper_visible]=\"wrapper.visible$ | async\"\n [style.height.px]=\"wrapper.height$ | async\"\n (click.self)=\"close(item)\"\n >\n <tui-sheet\n tuiScrollRef\n tuiOverscroll=\"all\"\n [style.height.px]=\"((height$ | async) || 0) - item.offset\"\n [item]=\"item\"\n (close)=\"close(item)\"\n ></tui-sheet>\n </div>\n <div\n class=\"t-overlay\"\n (click)=\"close(items[0])\"\n ></div>\n</ng-container>\n","import {\n ChangeDetectorRef,\n Directive,\n Inject,\n Input,\n Output,\n TemplateRef,\n} from '@angular/core';\nimport {tuiDefaultProp, tuiIfMap, tuiRequiredSetter} from '@taiga-ui/cdk';\nimport {PolymorpheusTemplate} from '@tinkoff/ng-polymorpheus';\nimport {Subject} from 'rxjs';\nimport {endWith, ignoreElements, share} 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 readonly tuiSheetChange = this.open$.pipe(\n tuiIfMap(() =>\n this.service.open(this, this.options).pipe(ignoreElements(), endWith(false)),\n ),\n share(),\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":["i1","OFFSET","i1.TuiSheetBarComponent","i2.TuiSheetHeadingComponent","i3","i4.TuiSheetTopDirective","i6.TuiSheetStopDirective","i1.TuiSheetComponent","i3.TuiSheetWrapperDirective","i4.TuiSheetCloseDirective","i5","i6"],"mappings":"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"}
1
+ {"version":3,"file":"taiga-ui-addon-mobile-components-sheet.js","sources":["../../../projects/addon-mobile/components/sheet/ios.hacks.ts","../../../projects/addon-mobile/components/sheet/sheet-tokens.ts","../../../projects/addon-mobile/components/sheet/components/sheet-heading/sheet-heading.component.ts","../../../projects/addon-mobile/components/sheet/components/sheet-heading/sheet-heading.template.html","../../../projects/addon-mobile/components/sheet/components/sheet/sheet.providers.ts","../../../projects/addon-mobile/components/sheet/components/sheet-bar/sheet-bar.component.ts","../../../projects/addon-mobile/components/sheet/components/sheet-bar/sheet-bar.template.html","../../../projects/addon-mobile/components/sheet/directives/sheet-top/sheet-top.directive.ts","../../../projects/addon-mobile/components/sheet/directives/sheet-stop/sheet-stop.directive.ts","../../../projects/addon-mobile/components/sheet/components/sheet/sheet.component.ts","../../../projects/addon-mobile/components/sheet/components/sheet/sheet.template.html","../../../projects/addon-mobile/components/sheet/sheet-options.ts","../../../projects/addon-mobile/components/sheet/sheet.service.ts","../../../projects/addon-mobile/components/sheet/directives/sheet-wrapper/sheet-wrapper.directive.ts","../../../projects/addon-mobile/components/sheet/directives/sheet-close/sheet-close.directive.ts","../../../projects/addon-mobile/components/sheet/components/sheets-host/sheets-host.component.ts","../../../projects/addon-mobile/components/sheet/components/sheets-host/sheets-host.template.html","../../../projects/addon-mobile/components/sheet/sheet.directive.ts","../../../projects/addon-mobile/components/sheet/sheet.module.ts","../../../projects/addon-mobile/components/sheet/taiga-ui-addon-mobile-components-sheet.ts"],"sourcesContent":["import {NgZone} from '@angular/core';\nimport {tuiTypedFromEvent, tuiZonefree} from '@taiga-ui/cdk';\nimport {concat, merge, Observable, zip} from 'rxjs';\nimport {delay, map, share, switchMap, take, takeUntil} from 'rxjs/operators';\n\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function iosScrollFactory(\n element: HTMLElement,\n doc: Document,\n ngZone: NgZone,\n): Observable<number> {\n const load$ = tuiTypedFromEvent(element, `load`, {capture: true});\n const touchstart$ = tuiTypedFromEvent(element, `touchstart`, {passive: true});\n const touchmove$ = tuiTypedFromEvent(doc, `touchmove`, {passive: true});\n const touchend$ = tuiTypedFromEvent(doc, `touchend`);\n const scroll$ = tuiTypedFromEvent(element, `scroll`).pipe(\n map(() => element.scrollTop),\n );\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 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 {InjectionToken} from '@angular/core';\n\nimport {TuiSheetRequiredProps} from './sheet';\n\n/**\n * Sheet main component\n */\nexport const TUI_SHEET = new InjectionToken<TuiSheetRequiredProps>(`[TUI_SHEET]`);\n\n/**\n * Current scrollTop of a sheet\n */\nexport const TUI_SHEET_SCROLL = new InjectionToken<number>(`[TUI_SHEET_SCROLL]`);\n\n/**\n * The sheet is being dragged\n */\nexport const TUI_SHEET_DRAGGED = new InjectionToken<boolean>(`[TUI_SHEET_DRAGGED]`);\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 el: ElementRef<HTMLElement>,\n @Inject(TUI_CLOSE_WORD) readonly closeWord$: Observable<string>,\n ) {}\n\n ngAfterViewInit(): void {\n this.el.nativeElement.dispatchEvent(\n new CustomEvent(TUI_SHEET_ID, {bubbles: true, detail: this.id}),\n );\n }\n\n onClick(): void {\n this.el.nativeElement.dispatchEvent(\n new CustomEvent(TUI_SHEET_CLOSE, {bubbles: true}),\n );\n }\n}\n","<button\n tuiIconButton\n size=\"xs\"\n appearance=\"icon\"\n type=\"button\"\n icon=\"tuiIconCloseLarge\"\n class=\"t-close\"\n [title]=\"closeWord$ | async\"\n (click)=\"onClick()\"\n></button>\n<span [id]=\"id\">\n <ng-content></ng-content>\n</span>\n","import {DOCUMENT} from '@angular/common';\nimport {ElementRef, forwardRef, NgZone, Provider} from '@angular/core';\nimport {\n ALWAYS_FALSE_HANDLER,\n ALWAYS_TRUE_HANDLER,\n TUI_IS_IOS,\n tuiTypedFromEvent,\n tuiZonefree,\n} from '@taiga-ui/cdk';\nimport {TUI_SCROLL_REF} from '@taiga-ui/core';\nimport {merge, Observable} from 'rxjs';\nimport {map, share} from 'rxjs/operators';\n\nimport {iosScrollFactory} from '../../ios.hacks';\nimport {TUI_SHEET, TUI_SHEET_DRAGGED, TUI_SHEET_SCROLL} from '../../sheet-tokens';\n// TODO: find the best way for prevent cycle\n// eslint-disable-next-line import/no-cycle\nimport {TuiSheetComponent} from './sheet.component';\n\nexport const TUI_SHEET_PROVIDERS: Provider[] = [\n {\n provide: TUI_SHEET_DRAGGED,\n deps: [ElementRef],\n useFactory: ({nativeElement}: ElementRef<HTMLElement>): Observable<boolean> => {\n return merge(\n tuiTypedFromEvent(nativeElement, `touchstart`, {passive: true}).pipe(\n map(ALWAYS_TRUE_HANDLER),\n ),\n tuiTypedFromEvent(nativeElement, `touchend`).pipe(\n map(ALWAYS_FALSE_HANDLER),\n ),\n );\n },\n },\n {\n provide: TUI_SHEET_SCROLL,\n deps: [ElementRef, NgZone, DOCUMENT, TUI_IS_IOS],\n useFactory: (\n {nativeElement}: ElementRef<HTMLElement>,\n ngZone: NgZone,\n doc: Document,\n isIos: boolean,\n ): Observable<number> => {\n return isIos\n ? iosScrollFactory(nativeElement, doc, ngZone)\n : merge(\n tuiTypedFromEvent(nativeElement, `scroll`),\n tuiTypedFromEvent(nativeElement, `load`, {capture: true}),\n ).pipe(\n map(() => nativeElement.scrollTop),\n tuiZonefree(ngZone),\n share(),\n );\n },\n },\n {\n provide: TUI_SCROLL_REF,\n useExisting: ElementRef,\n },\n {\n provide: TUI_SHEET,\n useExisting: forwardRef(() => TuiSheetComponent),\n },\n];\n","import {ChangeDetectionStrategy, Component, Inject, NgZone} from '@angular/core';\nimport {tuiClamp} from '@taiga-ui/cdk';\nimport {tuiZonefulMap} from '@taiga-ui/core';\nimport {Observable} from 'rxjs';\n\nimport {TuiSheetRequiredProps} from '../../sheet';\nimport {TUI_SHEET, TUI_SHEET_SCROLL} from '../../sheet-tokens';\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 => tuiClamp(10 - (y - this.stop) / 5, 0, 10), this.ngZone),\n );\n\n constructor(\n @Inject(TUI_SHEET) private readonly sheet: TuiSheetRequiredProps,\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","<!-- eslint-disable @html-eslint/no-inline-styles -->\n<ng-container *tuiLet=\"rotate$ | async as deg\">\n <div\n style=\"transform: rotate(-{{ deg }}deg)\"\n class=\"t-bar\"\n ></div>\n <ng-content *ngIf=\"deg\"></ng-content>\n <div\n style=\"transform: rotate({{ deg }}deg)\"\n class=\"t-bar\"\n ></div>\n</ng-container>\n","import {Directive, Inject, Input} from '@angular/core';\nimport {WINDOW} from '@ng-web-apis/common';\nimport {tuiClamp, tuiDefaultProp} from '@taiga-ui/cdk';\nimport {Observable} from 'rxjs';\nimport {map} from 'rxjs/operators';\n\nimport {TuiSheetRequiredProps} from '../../sheet';\nimport {TUI_SHEET, TUI_SHEET_SCROLL} from '../../sheet-tokens';\n\n// So that borders get rounded when image is visible for at least 10px\nconst OFFSET = 10;\n\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(TUI_SHEET)\n private readonly component: TuiSheetRequiredProps,\n @Inject(WINDOW) private readonly win: Window,\n ) {}\n\n private getY(scrollTop: number): number {\n const value = scrollTop - this.stop;\n const total = this.win.innerHeight - this.component.item.offset - this.stop;\n\n return this.stop && tuiClamp(100 - (value / total) * 100, 0, 100);\n }\n}\n","import {Directive, ElementRef, Inject, Self} 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 {TUI_SHEET_DRAGGED, TUI_SHEET_SCROLL} from '../../sheet-tokens';\n\n@Directive({\n selector: '[tuiSheetStop]',\n providers: [TuiDestroyService],\n})\nexport class TuiSheetStopDirective {\n constructor(\n @Inject(ElementRef) el: ElementRef<HTMLElement>,\n @Self() @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) > el.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 = el.nativeElement.offsetTop;\n\n setTimeout(() => {\n nativeElement.style.overflow = '';\n }, 100);\n });\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, TuiSheetRequiredProps} from '../../sheet';\nimport {TUI_SHEET_SCROLL} from '../../sheet-tokens';\nimport {TUI_SHEET_ID} from '../sheet-heading/sheet-heading.component';\n// TODO: find the best way for prevent cycle\n// eslint-disable-next-line import/no-cycle\nimport {TUI_SHEET_PROVIDERS} from './sheet.providers';\n\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 TuiSheetRequiredProps<T>, 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 el: 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 this.el.nativeElement.scrollTop = [...this.stops, this.sheetTop, this.contentTop][\n this.item.initial\n ];\n }\n\n scrollTo(top: number = this.sheetTop): void {\n const {nativeElement} = this.el;\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.map(\n ({nativeElement}) => nativeElement.offsetTop + nativeElement.clientHeight,\n );\n }\n}\n","<div\n class=\"t-bumpers\"\n (click)=\"close()\"\n>\n <div\n *ngFor=\"let stop of item.stops\"\n #stops\n class=\"t-bumper\"\n [style.marginTop]=\"stop\"\n ></div>\n</div>\n<div\n #sheet\n class=\"t-wrapper\"\n [class.t-wrapper_shadow]=\"!item.image\"\n>\n <header\n *ngIf=\"item.image\"\n class=\"t-top\"\n [tuiSheetTop]=\"imageStop\"\n >\n <img\n *polymorpheusOutlet=\"item.image as src; context: context\"\n alt=\"\"\n class=\"t-image\"\n [src]=\"src\"\n />\n </header>\n <section\n #content\n tuiSheetStop\n class=\"t-sheet\"\n >\n <div class=\"t-bar\"></div>\n <tui-sheet-bar>\n <button\n type=\"button\"\n class=\"t-button\"\n [title]=\"moreWord$ | async\"\n (click)=\"scrollTo(stops[1])\"\n ></button>\n </tui-sheet-bar>\n <div class=\"t-content\">\n <h2\n *polymorpheusOutlet=\"item.content as text; context: context\"\n tuiSheetHeading\n class=\"t-heading\"\n >\n {{ text }}\n </h2>\n </div>\n </section>\n</div>\n","import {InjectionToken} from '@angular/core';\nimport {PolymorpheusContent} from '@tinkoff/ng-polymorpheus';\n\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\n/**\n * Default parameters for sheet component\n */\nexport const TUI_SHEET_OPTIONS = new InjectionToken<Omit<TuiSheetOptions, 'data'>>(\n `[TUI_SHEET_OPTIONS]`,\n {\n factory: () => ({...TUI_SHEET_DEFAULT_OPTIONS}),\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 {ContentChild, Directive, Inject, Input, NgZone} from '@angular/core';\nimport {WINDOW} from '@ng-web-apis/common';\nimport {\n ALWAYS_FALSE_HANDLER,\n tuiClamp,\n tuiIsFalsy,\n tuiPure,\n tuiZonefull,\n} from '@taiga-ui/cdk';\nimport {Observable, race, timer} from 'rxjs';\nimport {\n debounceTime,\n distinctUntilChanged,\n filter,\n map,\n startWith,\n switchMap,\n take,\n} from 'rxjs/operators';\n\nimport {TuiSheetComponent} from '../../components/sheet/sheet.component';\nimport {TUI_SHEET_DRAGGED, TUI_SHEET_SCROLL} from '../../sheet-tokens';\n\n// Safety offset for shadow\nconst OFFSET = 16;\n\n@Directive({\n selector: '[tuiSheetWrapper]',\n exportAs: 'tuiSheetWrapper',\n})\nexport class TuiSheetWrapperDirective {\n @ContentChild(TuiSheetComponent)\n private readonly sheet?: TuiSheetComponent<unknown>;\n\n @ContentChild(TuiSheetComponent, {read: TUI_SHEET_DRAGGED, static: true})\n private readonly dragged$!: Observable<boolean>;\n\n @ContentChild(TuiSheetComponent, {read: TUI_SHEET_SCROLL, static: true})\n private readonly scroll$!: Observable<number>;\n\n @Input()\n tuiSheetWrapper = 16;\n\n constructor(\n @Inject(NgZone) private readonly ngZone: NgZone,\n @Inject(WINDOW) private readonly win: Window,\n ) {}\n\n @tuiPure\n get overlay$(): Observable<boolean> {\n return this.scroll$.pipe(\n map(y => y + 16 > this.win.innerHeight - this.tuiSheetWrapper),\n distinctUntilChanged(),\n tuiZonefull(this.ngZone),\n );\n }\n\n @tuiPure\n get visible$(): Observable<boolean> {\n return processDragged(this.dragged$, this.scroll$).pipe(\n distinctUntilChanged(),\n tuiZonefull(this.ngZone),\n );\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 : tuiClamp(this.withImage(value) + OFFSET, OFFSET, this.win.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\nfunction 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(tuiIsFalsy));\n const race$ = race(scroll$, timer(100)).pipe(\n debounceTime(200),\n take(1),\n map(ALWAYS_FALSE_HANDLER),\n );\n\n return touchstart$.pipe(\n switchMap(() =>\n touchend$.pipe(\n switchMap(() => race$),\n startWith(true),\n ),\n ),\n startWith(false),\n );\n}\n","import {Directive, ElementRef, Inject, NgZone, Output} from '@angular/core';\nimport {WINDOW} from '@ng-web-apis/common';\nimport {tuiIfMap, tuiIsFalsy, tuiTypedFromEvent, tuiZonefull} from '@taiga-ui/cdk';\nimport {merge, Observable} from 'rxjs';\nimport {distinctUntilChanged, filter, startWith} from 'rxjs/operators';\n\nimport {TuiSheetComponent} from '../../components/sheet/sheet.component';\nimport {TUI_SHEET_CLOSE} from '../../components/sheet-heading/sheet-heading.component';\nimport {TUI_SHEET_DRAGGED, TUI_SHEET_SCROLL} from '../../sheet-tokens';\n\n@Directive({\n selector: 'tui-sheet[close]',\n})\nexport class TuiSheetCloseDirective {\n @Output()\n // eslint-disable-next-line @angular-eslint/no-output-native\n readonly close: Observable<unknown> = merge(\n tuiTypedFromEvent(this.el.nativeElement, TUI_SHEET_CLOSE),\n this.dragged$.pipe(\n startWith(false),\n tuiIfMap(\n () => this.scroll$.pipe(startWith(this.el.nativeElement.scrollTop)),\n tuiIsFalsy,\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 win: Window,\n @Inject(ElementRef) private readonly el: 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.win.innerHeight,\n this.el.nativeElement.scrollHeight - this.win.innerHeight,\n );\n const min = Math.min(height, this.sheet.stops[0] || Infinity);\n\n return scrollTop < min / 2;\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@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","<ng-container *ngIf=\"service.sheets$ | async as items\">\n <div\n *ngFor=\"let item of items\"\n #wrapper=\"tuiSheetWrapper\"\n class=\"t-wrapper\"\n [@tuiSlideInTop]=\"options\"\n [@tuiFadeIn]=\"options\"\n [tuiSheetWrapper]=\"item.offset\"\n [class.t-wrapper_closeable]=\"item.closeable\"\n [class.t-wrapper_overlay]=\"item.overlay || (wrapper.overlay$ | async)\"\n [class.t-wrapper_visible]=\"wrapper.visible$ | async\"\n [style.height.px]=\"wrapper.height$ | async\"\n (click.self)=\"close(item)\"\n >\n <tui-sheet\n tuiScrollRef\n tuiOverscroll=\"all\"\n [style.height.px]=\"((height$ | async) || 0) - item.offset\"\n [item]=\"item\"\n (close)=\"close(item)\"\n ></tui-sheet>\n </div>\n <div\n class=\"t-overlay\"\n (click)=\"close(items[0])\"\n ></div>\n</ng-container>\n","import {\n ChangeDetectorRef,\n Directive,\n Inject,\n Input,\n Output,\n TemplateRef,\n} from '@angular/core';\nimport {tuiDefaultProp, tuiIfMap, tuiRequiredSetter} from '@taiga-ui/cdk';\nimport {PolymorpheusTemplate} from '@tinkoff/ng-polymorpheus';\nimport {Subject} from 'rxjs';\nimport {endWith, ignoreElements, share} 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 readonly tuiSheetChange = this.open$.pipe(\n tuiIfMap(() =>\n this.service.open(this, this.options).pipe(ignoreElements(), endWith(false)),\n ),\n share(),\n );\n\n constructor(\n @Inject(ChangeDetectorRef) cdr: ChangeDetectorRef,\n @Inject(TemplateRef) templateRef: TemplateRef<TuiSheet<never>>,\n @Inject(TuiSheetService) private readonly service: TuiSheetService,\n ) {\n super(templateRef, cdr);\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":["i1","OFFSET","i1.TuiSheetBarComponent","i2.TuiSheetHeadingComponent","i3","i4.TuiSheetTopDirective","i6.TuiSheetStopDirective","i1.TuiSheetComponent","i3.TuiSheetWrapperDirective","i4.TuiSheetCloseDirective","i5","i6"],"mappings":"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"}
@@ -84,9 +84,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
84
84
  }] } });
85
85
 
86
86
  class TuiTabBarItemDirective {
87
- constructor(destroy$, active$, tabs, { nativeElement }, changeDetectorRef) {
87
+ constructor(destroy$, active$, tabs, { nativeElement }, cdr) {
88
88
  active$
89
- .pipe(filter(Boolean), tuiWatch(changeDetectorRef), takeUntil(destroy$))
89
+ .pipe(filter(Boolean), tuiWatch(cdr), takeUntil(destroy$))
90
90
  .subscribe(() => {
91
91
  tabs.setActive(nativeElement);
92
92
  });
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-addon-mobile-components-tab-bar.js","sources":["../../../projects/addon-mobile/components/tab-bar/tab-bar-item.component.ts","../../../projects/addon-mobile/components/tab-bar/tab-bar-item.template.html","../../../projects/addon-mobile/components/tab-bar/tab-bar.component.ts","../../../projects/addon-mobile/components/tab-bar/tab-bar-item.directive.ts","../../../projects/addon-mobile/components/tab-bar/tab-bar.module.ts","../../../projects/addon-mobile/components/tab-bar/taiga-ui-addon-mobile-components-tab-bar.ts"],"sourcesContent":["import {AnimationOptions} from '@angular/animations';\nimport {ChangeDetectionStrategy, Component, Inject, Input} from '@angular/core';\nimport {TUI_ANIMATION_OPTIONS, tuiScaleIn} from '@taiga-ui/core';\n\n@Component({\n selector: 'button[tuiTabBarItem], a[tuiTabBarItem]',\n templateUrl: './tab-bar-item.template.html',\n styleUrls: ['./tab-bar-item.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n animations: [tuiScaleIn],\n})\nexport class TuiTabBarItemComponent {\n @Input()\n icon = '';\n\n @Input()\n badge?: number | null = null;\n\n readonly animation = {value: '', ...this.animationOptions} as const;\n\n constructor(\n @Inject(TUI_ANIMATION_OPTIONS)\n private readonly animationOptions: AnimationOptions,\n ) {}\n\n format(value: number): string {\n return value > 999 ? '999+' : String(value);\n }\n}\n","<tui-svg\n class=\"t-icon\"\n [src]=\"icon\"\n></tui-svg>\n<span class=\"t-wrapper\">\n <span\n *ngIf=\"badge as value\"\n class=\"t-badge\"\n [@tuiScaleIn]=\"animation\"\n >\n {{ format(value) }}\n </span>\n</span>\n<span class=\"t-text\">\n <ng-content></ng-content>\n</span>\n","import {\n ChangeDetectionStrategy,\n Component,\n ContentChildren,\n ElementRef,\n EventEmitter,\n forwardRef,\n HostBinding,\n HostListener,\n Input,\n Output,\n QueryList,\n} from '@angular/core';\nimport {EMPTY_QUERY, tuiIsElement} from '@taiga-ui/cdk';\n\nimport {TuiTabBarItemComponent} from './tab-bar-item.component';\n\n@Component({\n selector: 'nav[tuiTabBar]',\n template: '<ng-content></ng-content>',\n styleUrls: ['./tab-bar.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TuiTabBarComponent {\n @ContentChildren(forwardRef(() => TuiTabBarItemComponent), {read: ElementRef})\n private readonly tabs: QueryList<ElementRef<HTMLElement>> = EMPTY_QUERY;\n\n @Input()\n activeItemIndex = NaN;\n\n @Output()\n readonly activeItemIndexChange = new EventEmitter<number>();\n\n @HostListener('click', ['$event.target'])\n setActive(tab: EventTarget): void {\n if (tuiIsElement(tab)) {\n this.updateIndex(\n this.tabs.toArray().findIndex(({nativeElement}) => nativeElement === tab),\n );\n }\n }\n\n @HostBinding('style')\n get style(): string {\n return `--tui-tab-${this.activeItemIndex + 1}: var(--tui-active-color)`;\n }\n\n private updateIndex(index: number): void {\n this.activeItemIndex = index;\n this.activeItemIndexChange.emit(index);\n }\n}\n","import {ChangeDetectorRef, Directive, ElementRef, Inject, Self} from '@angular/core';\nimport {TuiDestroyService, tuiWatch} from '@taiga-ui/cdk';\nimport {TuiRouterLinkActiveService} from '@taiga-ui/core';\nimport {Observable} from 'rxjs';\nimport {filter, takeUntil} from 'rxjs/operators';\n\nimport {TuiTabBarComponent} from './tab-bar.component';\n\n@Directive({\n selector: '[tuiTabBarItem][routerLinkActive]',\n providers: [TuiRouterLinkActiveService, TuiDestroyService],\n})\nexport class TuiTabBarItemDirective {\n constructor(\n @Self() @Inject(TuiDestroyService) destroy$: Observable<unknown>,\n @Inject(TuiRouterLinkActiveService) active$: Observable<boolean>,\n @Inject(TuiTabBarComponent) tabs: TuiTabBarComponent,\n @Inject(ElementRef) {nativeElement}: ElementRef<HTMLElement>,\n @Inject(ChangeDetectorRef) changeDetectorRef: ChangeDetectorRef,\n ) {\n active$\n .pipe(filter(Boolean), tuiWatch(changeDetectorRef), takeUntil(destroy$))\n .subscribe(() => {\n tabs.setActive(nativeElement);\n });\n }\n}\n","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {TuiSvgModule} from '@taiga-ui/core';\n\nimport {TuiTabBarComponent} from './tab-bar.component';\nimport {TuiTabBarItemComponent} from './tab-bar-item.component';\nimport {TuiTabBarItemDirective} from './tab-bar-item.directive';\n\n@NgModule({\n imports: [CommonModule, TuiSvgModule],\n declarations: [TuiTabBarComponent, TuiTabBarItemComponent, TuiTabBarItemDirective],\n exports: [TuiTabBarComponent, TuiTabBarItemComponent, TuiTabBarItemDirective],\n})\nexport class TuiTabBarModule {}\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-tab-bar.js","sources":["../../../projects/addon-mobile/components/tab-bar/tab-bar-item.component.ts","../../../projects/addon-mobile/components/tab-bar/tab-bar-item.template.html","../../../projects/addon-mobile/components/tab-bar/tab-bar.component.ts","../../../projects/addon-mobile/components/tab-bar/tab-bar-item.directive.ts","../../../projects/addon-mobile/components/tab-bar/tab-bar.module.ts","../../../projects/addon-mobile/components/tab-bar/taiga-ui-addon-mobile-components-tab-bar.ts"],"sourcesContent":["import {AnimationOptions} from '@angular/animations';\nimport {ChangeDetectionStrategy, Component, Inject, Input} from '@angular/core';\nimport {TUI_ANIMATION_OPTIONS, tuiScaleIn} from '@taiga-ui/core';\n\n@Component({\n selector: 'button[tuiTabBarItem], a[tuiTabBarItem]',\n templateUrl: './tab-bar-item.template.html',\n styleUrls: ['./tab-bar-item.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n animations: [tuiScaleIn],\n})\nexport class TuiTabBarItemComponent {\n @Input()\n icon = '';\n\n @Input()\n badge?: number | null = null;\n\n readonly animation = {value: '', ...this.animationOptions} as const;\n\n constructor(\n @Inject(TUI_ANIMATION_OPTIONS)\n private readonly animationOptions: AnimationOptions,\n ) {}\n\n format(value: number): string {\n return value > 999 ? '999+' : String(value);\n }\n}\n","<tui-svg\n class=\"t-icon\"\n [src]=\"icon\"\n></tui-svg>\n<span class=\"t-wrapper\">\n <span\n *ngIf=\"badge as value\"\n class=\"t-badge\"\n [@tuiScaleIn]=\"animation\"\n >\n {{ format(value) }}\n </span>\n</span>\n<span class=\"t-text\">\n <ng-content></ng-content>\n</span>\n","import {\n ChangeDetectionStrategy,\n Component,\n ContentChildren,\n ElementRef,\n EventEmitter,\n forwardRef,\n HostBinding,\n HostListener,\n Input,\n Output,\n QueryList,\n} from '@angular/core';\nimport {EMPTY_QUERY, tuiIsElement} from '@taiga-ui/cdk';\n\nimport {TuiTabBarItemComponent} from './tab-bar-item.component';\n\n@Component({\n selector: 'nav[tuiTabBar]',\n template: '<ng-content></ng-content>',\n styleUrls: ['./tab-bar.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TuiTabBarComponent {\n @ContentChildren(forwardRef(() => TuiTabBarItemComponent), {read: ElementRef})\n private readonly tabs: QueryList<ElementRef<HTMLElement>> = EMPTY_QUERY;\n\n @Input()\n activeItemIndex = NaN;\n\n @Output()\n readonly activeItemIndexChange = new EventEmitter<number>();\n\n @HostListener('click', ['$event.target'])\n setActive(tab: EventTarget): void {\n if (tuiIsElement(tab)) {\n this.updateIndex(\n this.tabs.toArray().findIndex(({nativeElement}) => nativeElement === tab),\n );\n }\n }\n\n @HostBinding('style')\n get style(): string {\n return `--tui-tab-${this.activeItemIndex + 1}: var(--tui-active-color)`;\n }\n\n private updateIndex(index: number): void {\n this.activeItemIndex = index;\n this.activeItemIndexChange.emit(index);\n }\n}\n","import {ChangeDetectorRef, Directive, ElementRef, Inject, Self} from '@angular/core';\nimport {TuiDestroyService, tuiWatch} from '@taiga-ui/cdk';\nimport {TuiRouterLinkActiveService} from '@taiga-ui/core';\nimport {Observable} from 'rxjs';\nimport {filter, takeUntil} from 'rxjs/operators';\n\nimport {TuiTabBarComponent} from './tab-bar.component';\n\n@Directive({\n selector: '[tuiTabBarItem][routerLinkActive]',\n providers: [TuiRouterLinkActiveService, TuiDestroyService],\n})\nexport class TuiTabBarItemDirective {\n constructor(\n @Self() @Inject(TuiDestroyService) destroy$: Observable<unknown>,\n @Inject(TuiRouterLinkActiveService) active$: Observable<boolean>,\n @Inject(TuiTabBarComponent) tabs: TuiTabBarComponent,\n @Inject(ElementRef) {nativeElement}: ElementRef<HTMLElement>,\n @Inject(ChangeDetectorRef) cdr: ChangeDetectorRef,\n ) {\n active$\n .pipe(filter(Boolean), tuiWatch(cdr), takeUntil(destroy$))\n .subscribe(() => {\n tabs.setActive(nativeElement);\n });\n }\n}\n","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {TuiSvgModule} from '@taiga-ui/core';\n\nimport {TuiTabBarComponent} from './tab-bar.component';\nimport {TuiTabBarItemComponent} from './tab-bar-item.component';\nimport {TuiTabBarItemDirective} from './tab-bar-item.directive';\n\n@NgModule({\n imports: [CommonModule, TuiSvgModule],\n declarations: [TuiTabBarComponent, TuiTabBarItemComponent, TuiTabBarItemDirective],\n exports: [TuiTabBarComponent, TuiTabBarItemComponent, TuiTabBarItemDirective],\n})\nexport class TuiTabBarModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -8,17 +8,15 @@ import { Observable } from 'rxjs';
8
8
  import { take, switchMap, map, startWith, distinctUntilChanged, skip, takeUntil } from 'rxjs/operators';
9
9
 
10
10
  class TuiElasticStickyService extends Observable {
11
- constructor(scrollRef, { nativeElement }, ngZone, windowRef, destroy$) {
11
+ constructor(scrollRef, { nativeElement }, ngZone, win, destroy$) {
12
12
  super(subscriber => ngZone.onStable
13
13
  .pipe(take(1), switchMap(() => {
14
14
  const closest = nativeElement.closest(SCROLL_REF_SELECTOR);
15
15
  const host = (scrollRef === null || scrollRef === void 0 ? void 0 : scrollRef.nativeElement) || closest;
16
16
  const { offsetHeight } = nativeElement;
17
- const offsetTop = this.getInitialOffset(host || windowRef, nativeElement);
18
- return tuiTypedFromEvent(host || windowRef, `scroll`).pipe(map(() => Math.max(1 -
19
- Math.max(Math.round(host
20
- ? host.scrollTop
21
- : windowRef.pageYOffset) - offsetTop, 0) /
17
+ const offsetTop = this.getInitialOffset(host || win, nativeElement);
18
+ return tuiTypedFromEvent(host || win, `scroll`).pipe(map(() => Math.max(1 -
19
+ Math.max(Math.round(host ? host.scrollTop : win.pageYOffset) - offsetTop, 0) /
22
20
  offsetHeight, 0)));
23
21
  }), startWith(1), distinctUntilChanged(), skip(1), tuiZoneOptimized(ngZone), takeUntil(destroy$))
24
22
  .subscribe(subscriber));
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-addon-mobile-directives-elastic-sticky.js","sources":["../../../projects/addon-mobile/directives/elastic-sticky/elastic-sticky.service.ts","../../../projects/addon-mobile/directives/elastic-sticky/elastic-sticky.directive.ts","../../../projects/addon-mobile/directives/elastic-sticky/elastic-sticky.module.ts","../../../projects/addon-mobile/directives/elastic-sticky/taiga-ui-addon-mobile-directives-elastic-sticky.ts"],"sourcesContent":["import {ElementRef, Inject, Injectable, NgZone, Optional, Self} from '@angular/core';\nimport {WINDOW} from '@ng-web-apis/common';\nimport {\n TuiDestroyService,\n tuiGetElementOffset,\n tuiTypedFromEvent,\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@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 @Self() @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 tuiTypedFromEvent(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 return `nodeType` in host\n ? tuiGetElementOffset(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":["../../../projects/addon-mobile/directives/elastic-sticky/elastic-sticky.service.ts","../../../projects/addon-mobile/directives/elastic-sticky/elastic-sticky.directive.ts","../../../projects/addon-mobile/directives/elastic-sticky/elastic-sticky.module.ts","../../../projects/addon-mobile/directives/elastic-sticky/taiga-ui-addon-mobile-directives-elastic-sticky.ts"],"sourcesContent":["import {ElementRef, Inject, Injectable, NgZone, Optional, Self} from '@angular/core';\nimport {WINDOW} from '@ng-web-apis/common';\nimport {\n TuiDestroyService,\n tuiGetElementOffset,\n tuiTypedFromEvent,\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@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) win: Window,\n @Self() @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 || win,\n nativeElement,\n );\n\n return tuiTypedFromEvent(host || win, `scroll`).pipe(\n map(() =>\n Math.max(\n 1 -\n Math.max(\n Math.round(\n host ? host.scrollTop : win.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 return `nodeType` in host\n ? tuiGetElementOffset(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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"}
@@ -7,8 +7,8 @@ import * as i2 from '@tinkoff/ng-polymorpheus';
7
7
  import { PolymorpheusTemplate, PolymorpheusComponent, PolymorpheusModule } from '@tinkoff/ng-polymorpheus';
8
8
 
9
9
  class TuiSidebarDirective extends PolymorpheusTemplate {
10
- constructor(content, injector, portalService, changeDetectorRef) {
11
- super(content, changeDetectorRef);
10
+ constructor(content, injector, portalService, cdr) {
11
+ super(content, cdr);
12
12
  this.content = content;
13
13
  this.injector = injector;
14
14
  this.portalService = portalService;
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-addon-mobile-directives-sidebar.js","sources":["../../../projects/addon-mobile/directives/sidebar/sidebar.directive.ts","../../../projects/addon-mobile/directives/sidebar/sidebar.component.ts","../../../projects/addon-mobile/directives/sidebar/sidebar.template.html","../../../projects/addon-mobile/directives/sidebar/sidebar.module.ts","../../../projects/addon-mobile/directives/sidebar/taiga-ui-addon-mobile-directives-sidebar.ts"],"sourcesContent":["import {\n ChangeDetectorRef,\n ComponentRef,\n Directive,\n Inject,\n Injector,\n Input,\n OnDestroy,\n TemplateRef,\n} from '@angular/core';\nimport {TuiDropdownPortalService} from '@taiga-ui/cdk';\nimport {TuiHorizontalDirection} from '@taiga-ui/core';\nimport {PolymorpheusComponent, PolymorpheusTemplate} from '@tinkoff/ng-polymorpheus';\n\n// TODO: find the best way for prevent cycle\n// eslint-disable-next-line import/no-cycle\nimport {TuiSidebarComponent} from './sidebar.component';\n\n@Directive({\n selector: '[tuiSidebar]',\n})\nexport class TuiSidebarDirective<T = Record<string, unknown>>\n extends PolymorpheusTemplate<T>\n implements OnDestroy\n{\n private readonly component = new PolymorpheusComponent(\n TuiSidebarComponent,\n this.injector,\n );\n\n private sidebarRef: ComponentRef<TuiSidebarComponent> | null = null;\n\n @Input('tuiSidebarDirection')\n direction: TuiHorizontalDirection = 'left';\n\n @Input('tuiSidebarAutoWidth')\n autoWidth = false;\n\n @Input()\n set tuiSidebar(open: boolean) {\n if (open) {\n this.show();\n } else {\n this.hide();\n }\n }\n\n constructor(\n @Inject(TemplateRef) readonly content: TemplateRef<T>,\n @Inject(Injector) private readonly injector: Injector,\n @Inject(TuiDropdownPortalService)\n private readonly portalService: TuiDropdownPortalService,\n @Inject(ChangeDetectorRef) changeDetectorRef: ChangeDetectorRef,\n ) {\n super(content, changeDetectorRef);\n }\n\n ngOnDestroy(): void {\n this.hide();\n }\n\n private show(): void {\n if (this.sidebarRef !== null) {\n return;\n }\n\n this.sidebarRef = this.portalService.add(this.component);\n this.sidebarRef.changeDetectorRef.detectChanges();\n }\n\n private hide(): void {\n if (this.sidebarRef === null) {\n return;\n }\n\n this.portalService.remove(this.sidebarRef);\n this.sidebarRef = null;\n }\n}\n","import {AnimationOptions} from '@angular/animations';\nimport {\n ChangeDetectionStrategy,\n Component,\n DoCheck,\n HostBinding,\n Inject,\n} from '@angular/core';\nimport {\n TUI_ANIMATION_OPTIONS,\n TuiAnimationOptions,\n TuiHorizontalDirection,\n tuiSlideIn,\n} from '@taiga-ui/core';\nimport {PolymorpheusContent} from '@tinkoff/ng-polymorpheus';\n\n// TODO: find the best way for prevent cycle\n// eslint-disable-next-line import/no-cycle\nimport {TuiSidebarDirective} from './sidebar.directive';\n\n@Component({\n selector: 'aside[tuiSidebar]',\n templateUrl: './sidebar.template.html',\n styleUrls: ['./sidebar.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n animations: [tuiSlideIn],\n})\nexport class TuiSidebarComponent implements DoCheck {\n private readonly left = {\n value: 'left',\n ...this.options,\n } as const;\n\n private readonly right = {\n value: 'right',\n ...this.options,\n } as const;\n\n constructor(\n @Inject(TUI_ANIMATION_OPTIONS) private readonly options: AnimationOptions,\n @Inject(TuiSidebarDirective) private readonly directive: TuiSidebarDirective,\n ) {}\n\n @HostBinding('@tuiSlideIn')\n get animation(): TuiAnimationOptions {\n return this.direction === 'left' ? this.left : this.right;\n }\n\n @HostBinding('class')\n get directionHostClass(): string {\n return `t-${this.directive.direction}`;\n }\n\n get direction(): TuiHorizontalDirection {\n return this.directive.direction;\n }\n\n get content(): PolymorpheusContent {\n return this.directive.content;\n }\n\n get autoWidth(): boolean {\n return this.directive.autoWidth;\n }\n\n ngDoCheck(): void {\n this.directive.check();\n }\n}\n","<div\n tuiActiveZone\n class=\"t-wrapper\"\n [class.t-wrapper_auto-width]=\"autoWidth\"\n>\n <ng-container *polymorpheusOutlet=\"content as text\">\n {{ text }}\n </ng-container>\n</div>\n","import {NgModule} from '@angular/core';\nimport {TuiActiveZoneModule} from '@taiga-ui/cdk';\nimport {PolymorpheusModule} from '@tinkoff/ng-polymorpheus';\n\nimport {TuiSidebarComponent} from './sidebar.component';\nimport {TuiSidebarDirective} from './sidebar.directive';\n\n@NgModule({\n imports: [TuiActiveZoneModule, PolymorpheusModule],\n declarations: [TuiSidebarDirective, TuiSidebarComponent],\n exports: [TuiSidebarDirective],\n})\nexport class TuiSidebarModule {}\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-sidebar.js","sources":["../../../projects/addon-mobile/directives/sidebar/sidebar.directive.ts","../../../projects/addon-mobile/directives/sidebar/sidebar.component.ts","../../../projects/addon-mobile/directives/sidebar/sidebar.template.html","../../../projects/addon-mobile/directives/sidebar/sidebar.module.ts","../../../projects/addon-mobile/directives/sidebar/taiga-ui-addon-mobile-directives-sidebar.ts"],"sourcesContent":["import {\n ChangeDetectorRef,\n ComponentRef,\n Directive,\n Inject,\n Injector,\n Input,\n OnDestroy,\n TemplateRef,\n} from '@angular/core';\nimport {TuiDropdownPortalService} from '@taiga-ui/cdk';\nimport {TuiHorizontalDirection} from '@taiga-ui/core';\nimport {PolymorpheusComponent, PolymorpheusTemplate} from '@tinkoff/ng-polymorpheus';\n\n// TODO: find the best way for prevent cycle\n// eslint-disable-next-line import/no-cycle\nimport {TuiSidebarComponent} from './sidebar.component';\n\n@Directive({\n selector: '[tuiSidebar]',\n})\nexport class TuiSidebarDirective<T = Record<string, unknown>>\n extends PolymorpheusTemplate<T>\n implements OnDestroy\n{\n private readonly component = new PolymorpheusComponent(\n TuiSidebarComponent,\n this.injector,\n );\n\n private sidebarRef: ComponentRef<TuiSidebarComponent> | null = null;\n\n @Input('tuiSidebarDirection')\n direction: TuiHorizontalDirection = 'left';\n\n @Input('tuiSidebarAutoWidth')\n autoWidth = false;\n\n @Input()\n set tuiSidebar(open: boolean) {\n if (open) {\n this.show();\n } else {\n this.hide();\n }\n }\n\n constructor(\n @Inject(TemplateRef) readonly content: TemplateRef<T>,\n @Inject(Injector) private readonly injector: Injector,\n @Inject(TuiDropdownPortalService)\n private readonly portalService: TuiDropdownPortalService,\n @Inject(ChangeDetectorRef) cdr: ChangeDetectorRef,\n ) {\n super(content, cdr);\n }\n\n ngOnDestroy(): void {\n this.hide();\n }\n\n private show(): void {\n if (this.sidebarRef !== null) {\n return;\n }\n\n this.sidebarRef = this.portalService.add(this.component);\n this.sidebarRef.changeDetectorRef.detectChanges();\n }\n\n private hide(): void {\n if (this.sidebarRef === null) {\n return;\n }\n\n this.portalService.remove(this.sidebarRef);\n this.sidebarRef = null;\n }\n}\n","import {AnimationOptions} from '@angular/animations';\nimport {\n ChangeDetectionStrategy,\n Component,\n DoCheck,\n HostBinding,\n Inject,\n} from '@angular/core';\nimport {\n TUI_ANIMATION_OPTIONS,\n TuiAnimationOptions,\n TuiHorizontalDirection,\n tuiSlideIn,\n} from '@taiga-ui/core';\nimport {PolymorpheusContent} from '@tinkoff/ng-polymorpheus';\n\n// TODO: find the best way for prevent cycle\n// eslint-disable-next-line import/no-cycle\nimport {TuiSidebarDirective} from './sidebar.directive';\n\n@Component({\n selector: 'aside[tuiSidebar]',\n templateUrl: './sidebar.template.html',\n styleUrls: ['./sidebar.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n animations: [tuiSlideIn],\n})\nexport class TuiSidebarComponent implements DoCheck {\n private readonly left = {\n value: 'left',\n ...this.options,\n } as const;\n\n private readonly right = {\n value: 'right',\n ...this.options,\n } as const;\n\n constructor(\n @Inject(TUI_ANIMATION_OPTIONS) private readonly options: AnimationOptions,\n @Inject(TuiSidebarDirective) private readonly directive: TuiSidebarDirective,\n ) {}\n\n @HostBinding('@tuiSlideIn')\n get animation(): TuiAnimationOptions {\n return this.direction === 'left' ? this.left : this.right;\n }\n\n @HostBinding('class')\n get directionHostClass(): string {\n return `t-${this.directive.direction}`;\n }\n\n get direction(): TuiHorizontalDirection {\n return this.directive.direction;\n }\n\n get content(): PolymorpheusContent {\n return this.directive.content;\n }\n\n get autoWidth(): boolean {\n return this.directive.autoWidth;\n }\n\n ngDoCheck(): void {\n this.directive.check();\n }\n}\n","<div\n tuiActiveZone\n class=\"t-wrapper\"\n [class.t-wrapper_auto-width]=\"autoWidth\"\n>\n <ng-container *polymorpheusOutlet=\"content as text\">\n {{ text }}\n </ng-container>\n</div>\n","import {NgModule} from '@angular/core';\nimport {TuiActiveZoneModule} from '@taiga-ui/cdk';\nimport {PolymorpheusModule} from '@tinkoff/ng-polymorpheus';\n\nimport {TuiSidebarComponent} from './sidebar.component';\nimport {TuiSidebarDirective} from './sidebar.directive';\n\n@NgModule({\n imports: [TuiActiveZoneModule, PolymorpheusModule],\n declarations: [TuiSidebarDirective, TuiSidebarComponent],\n exports: [TuiSidebarDirective],\n})\nexport class TuiSidebarModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -14,12 +14,12 @@ const STYLE = {
14
14
  background: 'rgba(146, 153, 162, 0.12)',
15
15
  };
16
16
  class TuiTouchableDirective {
17
- constructor(elementRef, isIos, { nativeElement }, renderer, destroy$) {
17
+ constructor(el, isIos, { nativeElement }, renderer, destroy$) {
18
18
  this.tuiTouchable = '';
19
19
  if (!isIos) {
20
20
  return;
21
21
  }
22
- const element = elementRef ? elementRef.nativeElement : nativeElement;
22
+ const element = (el === null || el === void 0 ? void 0 : el.nativeElement) || nativeElement;
23
23
  tuiTypedFromEvent(element, 'touchstart', { passive: true })
24
24
  .pipe(tap(() => {
25
25
  this.onTouchStart(renderer, element);
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-addon-mobile-directives-touchable.js","sources":["../../../projects/addon-mobile/directives/touchable/touchable.directive.ts","../../../projects/addon-mobile/directives/touchable/touchable.module.ts","../../../projects/addon-mobile/directives/touchable/taiga-ui-addon-mobile-directives-touchable.ts"],"sourcesContent":["import {\n Directive,\n ElementRef,\n Inject,\n Input,\n Optional,\n Renderer2,\n Self,\n} from '@angular/core';\nimport {TuiTouchMode} from '@taiga-ui/addon-mobile/types';\nimport {tuiFindTouchIndex} from '@taiga-ui/addon-mobile/utils';\nimport {\n TUI_IS_IOS,\n tuiDefaultProp,\n TuiDestroyService,\n tuiTypedFromEvent,\n} from '@taiga-ui/cdk';\nimport {TUI_ELEMENT_REF} from '@taiga-ui/core';\nimport {race} from 'rxjs';\nimport {filter, map, switchMap, take, takeUntil, tap} from 'rxjs/operators';\n\nconst STYLE = {\n transform: 'scale(0.95)',\n opacity: '0.6',\n background: 'rgba(146, 153, 162, 0.12)',\n} as const;\n\n@Directive({\n selector: '[tuiTouchable]',\n providers: [TuiDestroyService],\n})\nexport class TuiTouchableDirective {\n @Input()\n @tuiDefaultProp()\n tuiTouchable: TuiTouchMode | '' = '';\n\n constructor(\n @Optional() @Inject(TUI_ELEMENT_REF) elementRef: ElementRef<HTMLElement> | null,\n @Inject(TUI_IS_IOS) isIos: boolean,\n @Inject(ElementRef) {nativeElement}: ElementRef<HTMLElement>,\n @Inject(Renderer2) renderer: Renderer2,\n @Self() @Inject(TuiDestroyService) destroy$: TuiDestroyService,\n ) {\n if (!isIos) {\n return;\n }\n\n const element = elementRef ? elementRef.nativeElement : nativeElement;\n\n tuiTypedFromEvent(element, 'touchstart', {passive: true})\n .pipe(\n tap(() => {\n this.onTouchStart(renderer, element);\n }),\n map(({touches}) => touches[touches.length - 1].identifier),\n switchMap(identifier =>\n race(\n tuiTypedFromEvent(element, 'touchmove', {passive: true}).pipe(\n filter(({touches}) =>\n this.hasTouchLeft(element, touches, identifier),\n ),\n ),\n tuiTypedFromEvent(element, 'touchend'),\n ).pipe(take(1)),\n ),\n takeUntil(destroy$),\n )\n .subscribe(() => {\n renderer.removeStyle(element, 'transform');\n renderer.removeStyle(element, 'opacity');\n renderer.removeStyle(element, 'background');\n });\n }\n\n get style(): TuiTouchMode {\n return this.tuiTouchable || 'transform';\n }\n\n private hasTouchLeft(\n element: HTMLElement,\n touches: TouchList,\n identifier: number,\n ): boolean {\n const {ownerDocument} = element;\n const id = tuiFindTouchIndex(touches, identifier);\n\n if (!ownerDocument || id === -1) {\n return true;\n }\n\n const {clientX, clientY} = touches[id];\n\n return !element.contains(ownerDocument.elementFromPoint(clientX, clientY));\n }\n\n private onTouchStart(renderer: Renderer2, element: HTMLElement): void {\n if (this.style !== 'transform') {\n renderer.removeStyle(element, 'transition');\n } else {\n renderer.setStyle(element, 'transition', 'transform 0.2s');\n }\n\n renderer.setStyle(element, this.style, STYLE[this.style]);\n }\n}\n","import {NgModule} from '@angular/core';\n\nimport {TuiTouchableDirective} from './touchable.directive';\n\n@NgModule({\n declarations: [TuiTouchableDirective],\n exports: [TuiTouchableDirective],\n})\nexport class TuiTouchableModule {}\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-touchable.js","sources":["../../../projects/addon-mobile/directives/touchable/touchable.directive.ts","../../../projects/addon-mobile/directives/touchable/touchable.module.ts","../../../projects/addon-mobile/directives/touchable/taiga-ui-addon-mobile-directives-touchable.ts"],"sourcesContent":["import {\n Directive,\n ElementRef,\n Inject,\n Input,\n Optional,\n Renderer2,\n Self,\n} from '@angular/core';\nimport {TuiTouchMode} from '@taiga-ui/addon-mobile/types';\nimport {tuiFindTouchIndex} from '@taiga-ui/addon-mobile/utils';\nimport {\n TUI_IS_IOS,\n tuiDefaultProp,\n TuiDestroyService,\n tuiTypedFromEvent,\n} from '@taiga-ui/cdk';\nimport {TUI_ELEMENT_REF} from '@taiga-ui/core';\nimport {race} from 'rxjs';\nimport {filter, map, switchMap, take, takeUntil, tap} from 'rxjs/operators';\n\nconst STYLE = {\n transform: 'scale(0.95)',\n opacity: '0.6',\n background: 'rgba(146, 153, 162, 0.12)',\n} as const;\n\n@Directive({\n selector: '[tuiTouchable]',\n providers: [TuiDestroyService],\n})\nexport class TuiTouchableDirective {\n @Input()\n @tuiDefaultProp()\n tuiTouchable: TuiTouchMode | '' = '';\n\n constructor(\n @Optional() @Inject(TUI_ELEMENT_REF) el: ElementRef<HTMLElement> | null,\n @Inject(TUI_IS_IOS) isIos: boolean,\n @Inject(ElementRef) {nativeElement}: ElementRef<HTMLElement>,\n @Inject(Renderer2) renderer: Renderer2,\n @Self() @Inject(TuiDestroyService) destroy$: TuiDestroyService,\n ) {\n if (!isIos) {\n return;\n }\n\n const element = el?.nativeElement || nativeElement;\n\n tuiTypedFromEvent(element, 'touchstart', {passive: true})\n .pipe(\n tap(() => {\n this.onTouchStart(renderer, element);\n }),\n map(({touches}) => touches[touches.length - 1].identifier),\n switchMap(identifier =>\n race(\n tuiTypedFromEvent(element, 'touchmove', {passive: true}).pipe(\n filter(({touches}) =>\n this.hasTouchLeft(element, touches, identifier),\n ),\n ),\n tuiTypedFromEvent(element, 'touchend'),\n ).pipe(take(1)),\n ),\n takeUntil(destroy$),\n )\n .subscribe(() => {\n renderer.removeStyle(element, 'transform');\n renderer.removeStyle(element, 'opacity');\n renderer.removeStyle(element, 'background');\n });\n }\n\n get style(): TuiTouchMode {\n return this.tuiTouchable || 'transform';\n }\n\n private hasTouchLeft(\n element: HTMLElement,\n touches: TouchList,\n identifier: number,\n ): boolean {\n const {ownerDocument} = element;\n const id = tuiFindTouchIndex(touches, identifier);\n\n if (!ownerDocument || id === -1) {\n return true;\n }\n\n const {clientX, clientY} = touches[id];\n\n return !element.contains(ownerDocument.elementFromPoint(clientX, clientY));\n }\n\n private onTouchStart(renderer: Renderer2, element: HTMLElement): void {\n if (this.style !== 'transform') {\n renderer.removeStyle(element, 'transition');\n } else {\n renderer.setStyle(element, 'transition', 'transform 0.2s');\n }\n\n renderer.setStyle(element, this.style, STYLE[this.style]);\n }\n}\n","import {NgModule} from '@angular/core';\n\nimport {TuiTouchableDirective} from './touchable.directive';\n\n@NgModule({\n declarations: [TuiTouchableDirective],\n exports: [TuiTouchableDirective],\n})\nexport class TuiTouchableModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@taiga-ui/addon-mobile",
3
- "version": "3.23.1-dev.main-14214d9",
3
+ "version": "3.23.1-dev.main-3d032b2",
4
4
  "description": "Extension package for Taiga UI that adds support for mobile specific behaviors such as custom data pickers, dropdowns, etc.",
5
5
  "keywords": [
6
6
  "angular",