@taiga-ui/addon-mobile 2.41.0 → 2.43.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (53) hide show
  1. package/bundles/taiga-ui-addon-mobile-components-mobile-calendar.umd.js +1 -1
  2. package/bundles/taiga-ui-addon-mobile-components-mobile-calendar.umd.js.map +1 -1
  3. package/bundles/taiga-ui-addon-mobile-components-mobile-calendar.umd.min.js +1 -1
  4. package/bundles/taiga-ui-addon-mobile-components-mobile-calendar.umd.min.js.map +1 -1
  5. package/bundles/taiga-ui-addon-mobile-components-pull-to-refresh.umd.js +1 -1
  6. package/bundles/taiga-ui-addon-mobile-components-pull-to-refresh.umd.js.map +1 -1
  7. package/bundles/taiga-ui-addon-mobile-components-pull-to-refresh.umd.min.js +1 -1
  8. package/bundles/taiga-ui-addon-mobile-components-pull-to-refresh.umd.min.js.map +1 -1
  9. package/bundles/taiga-ui-addon-mobile-directives-elastic-sticky.umd.js +1 -1
  10. package/bundles/taiga-ui-addon-mobile-directives-elastic-sticky.umd.js.map +1 -1
  11. package/bundles/taiga-ui-addon-mobile-directives-elastic-sticky.umd.min.js +1 -1
  12. package/bundles/taiga-ui-addon-mobile-directives-elastic-sticky.umd.min.js.map +1 -1
  13. package/bundles/taiga-ui-addon-mobile-directives-ripple.umd.js +3 -1
  14. package/bundles/taiga-ui-addon-mobile-directives-ripple.umd.js.map +1 -1
  15. package/bundles/taiga-ui-addon-mobile-directives-ripple.umd.min.js.map +1 -1
  16. package/bundles/taiga-ui-addon-mobile-directives-sidebar.umd.js.map +1 -1
  17. package/bundles/taiga-ui-addon-mobile-directives-sidebar.umd.min.js.map +1 -1
  18. package/components/mobile-calendar/taiga-ui-addon-mobile-components-mobile-calendar.metadata.json +1 -1
  19. package/components/pull-to-refresh/taiga-ui-addon-mobile-components-pull-to-refresh.metadata.json +1 -1
  20. package/components/sheet/sheet.d.ts +1 -1
  21. package/directives/sidebar/sidebar.directive.d.ts +3 -3
  22. package/directives/sidebar/taiga-ui-addon-mobile-directives-sidebar.metadata.json +1 -1
  23. package/esm2015/components/mobile-calendar/mobile-calendar.providers.js +2 -2
  24. package/esm2015/components/pull-to-refresh/pull-to-refresh.component.js +2 -2
  25. package/esm2015/components/sheet/sheet.js +1 -1
  26. package/esm2015/directives/elastic-sticky/elastic-sticky.service.js +2 -2
  27. package/esm2015/directives/ripple/ripple.directive.js +4 -2
  28. package/esm2015/directives/sidebar/sidebar.directive.js +1 -1
  29. package/esm5/components/mobile-calendar/mobile-calendar.providers.js +2 -2
  30. package/esm5/components/pull-to-refresh/pull-to-refresh.component.js +2 -2
  31. package/esm5/components/sheet/sheet.js +1 -1
  32. package/esm5/directives/elastic-sticky/elastic-sticky.service.js +2 -2
  33. package/esm5/directives/ripple/ripple.directive.js +4 -2
  34. package/esm5/directives/sidebar/sidebar.directive.js +1 -1
  35. package/fesm2015/taiga-ui-addon-mobile-components-mobile-calendar.js +1 -1
  36. package/fesm2015/taiga-ui-addon-mobile-components-mobile-calendar.js.map +1 -1
  37. package/fesm2015/taiga-ui-addon-mobile-components-pull-to-refresh.js +1 -1
  38. package/fesm2015/taiga-ui-addon-mobile-components-pull-to-refresh.js.map +1 -1
  39. package/fesm2015/taiga-ui-addon-mobile-directives-elastic-sticky.js +2 -2
  40. package/fesm2015/taiga-ui-addon-mobile-directives-elastic-sticky.js.map +1 -1
  41. package/fesm2015/taiga-ui-addon-mobile-directives-ripple.js +3 -1
  42. package/fesm2015/taiga-ui-addon-mobile-directives-ripple.js.map +1 -1
  43. package/fesm2015/taiga-ui-addon-mobile-directives-sidebar.js.map +1 -1
  44. package/fesm5/taiga-ui-addon-mobile-components-mobile-calendar.js +1 -1
  45. package/fesm5/taiga-ui-addon-mobile-components-mobile-calendar.js.map +1 -1
  46. package/fesm5/taiga-ui-addon-mobile-components-pull-to-refresh.js +1 -1
  47. package/fesm5/taiga-ui-addon-mobile-components-pull-to-refresh.js.map +1 -1
  48. package/fesm5/taiga-ui-addon-mobile-directives-elastic-sticky.js +2 -2
  49. package/fesm5/taiga-ui-addon-mobile-directives-elastic-sticky.js.map +1 -1
  50. package/fesm5/taiga-ui-addon-mobile-directives-ripple.js +3 -1
  51. package/fesm5/taiga-ui-addon-mobile-directives-ripple.js.map +1 -1
  52. package/fesm5/taiga-ui-addon-mobile-directives-sidebar.js.map +1 -1
  53. package/package.json +6 -6
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-addon-mobile-directives-sidebar.js","sources":["ng://@taiga-ui/addon-mobile/directives/sidebar/sidebar.directive.ts","ng://@taiga-ui/addon-mobile/directives/sidebar/sidebar.component.ts","ng://@taiga-ui/addon-mobile/directives/sidebar/sidebar.module.ts","ng://@taiga-ui/addon-mobile/directives/sidebar/taiga-ui-addon-mobile-directives-sidebar.ts"],"sourcesContent":["import {\n ChangeDetectorRef,\n ComponentFactoryResolver,\n ComponentRef,\n Directive,\n Inject,\n Injector,\n Input,\n OnDestroy,\n TemplateRef,\n} from '@angular/core';\nimport {TuiPortalService} from '@taiga-ui/cdk';\nimport {TuiHorizontalDirection} from '@taiga-ui/core';\nimport {PolymorpheusTemplate} from '@tinkoff/ng-polymorpheus';\n\nimport {TuiSidebarComponent} from './sidebar.component';\n\n@Directive({\n selector: '[tuiSidebar]',\n})\nexport class TuiSidebarDirective extends PolymorpheusTemplate<{}> implements OnDestroy {\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<{}>,\n @Inject(Injector) private readonly injector: Injector,\n @Inject(ComponentFactoryResolver)\n private readonly componentFactoryResolver: ComponentFactoryResolver,\n @Inject(TuiPortalService)\n private readonly portalService: TuiPortalService,\n @Inject(ChangeDetectorRef) changeDetectorRef: ChangeDetectorRef,\n ) {\n super(content, changeDetectorRef);\n }\n\n ngOnDestroy() {\n this.hide();\n }\n\n private show() {\n if (this.sidebarRef !== null) {\n return;\n }\n\n const componentFactory =\n this.componentFactoryResolver.resolveComponentFactory(TuiSidebarComponent);\n\n this.sidebarRef = this.portalService.add(componentFactory, this.injector);\n this.sidebarRef.changeDetectorRef.detectChanges();\n }\n\n private hide() {\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\nimport {TuiSidebarDirective} from './sidebar.directive';\n\n// @dynamic\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 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() {\n this.directive.check();\n }\n}\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 entryComponents: [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":["ng://@taiga-ui/addon-mobile/directives/sidebar/sidebar.directive.ts","ng://@taiga-ui/addon-mobile/directives/sidebar/sidebar.component.ts","ng://@taiga-ui/addon-mobile/directives/sidebar/sidebar.module.ts","ng://@taiga-ui/addon-mobile/directives/sidebar/taiga-ui-addon-mobile-directives-sidebar.ts"],"sourcesContent":["import {\n ChangeDetectorRef,\n ComponentFactoryResolver,\n ComponentRef,\n Directive,\n Inject,\n Injector,\n Input,\n OnDestroy,\n TemplateRef,\n} from '@angular/core';\nimport {TuiPortalService} from '@taiga-ui/cdk';\nimport {TuiHorizontalDirection} from '@taiga-ui/core';\nimport {PolymorpheusTemplate} from '@tinkoff/ng-polymorpheus';\n\nimport {TuiSidebarComponent} from './sidebar.component';\n\n@Directive({\n selector: '[tuiSidebar]',\n})\nexport class TuiSidebarDirective<T = {}>\n extends PolymorpheusTemplate<T>\n implements OnDestroy\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(ComponentFactoryResolver)\n private readonly componentFactoryResolver: ComponentFactoryResolver,\n @Inject(TuiPortalService)\n private readonly portalService: TuiPortalService,\n @Inject(ChangeDetectorRef) changeDetectorRef: ChangeDetectorRef,\n ) {\n super(content, changeDetectorRef);\n }\n\n ngOnDestroy() {\n this.hide();\n }\n\n private show() {\n if (this.sidebarRef !== null) {\n return;\n }\n\n const componentFactory =\n this.componentFactoryResolver.resolveComponentFactory(TuiSidebarComponent);\n\n this.sidebarRef = this.portalService.add(componentFactory, this.injector);\n this.sidebarRef.changeDetectorRef.detectChanges();\n }\n\n private hide() {\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\nimport {TuiSidebarDirective} from './sidebar.directive';\n\n// @dynamic\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 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() {\n this.directive.check();\n }\n}\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 entryComponents: [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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"}
@@ -183,7 +183,7 @@ var TUI_MOBILE_CALENDAR_PROVIDERS = [
183
183
  },
184
184
  ];
185
185
  function valueStreamFactory(value$, destroy$, changeDetectorRef) {
186
- return (value$ || EMPTY).pipe(takeUntil(destroy$), watch(changeDetectorRef));
186
+ return (value$ || EMPTY).pipe(watch(changeDetectorRef), takeUntil(destroy$));
187
187
  }
188
188
 
189
189
  // @dynamic
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-addon-mobile-components-mobile-calendar.js","sources":["ng://@taiga-ui/addon-mobile/components/mobile-calendar/mobile-calendar.const.ts","ng://@taiga-ui/addon-mobile/components/mobile-calendar/mobile-calendar.strategy.ts","ng://@taiga-ui/addon-mobile/components/mobile-calendar/mobile-calendar.providers.ts","ng://@taiga-ui/addon-mobile/components/mobile-calendar/mobile-calendar.component.ts","ng://@taiga-ui/addon-mobile/components/mobile-calendar/mobile-calendar.module.ts","ng://@taiga-ui/addon-mobile/components/mobile-calendar/taiga-ui-addon-mobile-components-mobile-calendar.ts"],"sourcesContent":["import {MONTHS_IN_YEAR} from '@taiga-ui/cdk';\n\nexport const SCROLL_DEBOUNCE_TIME = 80;\nexport const YEARS_IN_ROW = 5;\nexport const STARTING_YEAR = 1900;\nexport const RANGE = 196;\nexport const BUFFER = 500;\nexport const ANDROID_LABEL = 64;\nexport const ANDROID_WEEK = 48;\nexport const IOS_LABEL = 50;\nexport const IOS_WEEK = 50;\nexport const YEARLY_CYCLE = 28;\nexport const ANDROID_CYCLE = getCycle(ANDROID_LABEL, ANDROID_WEEK);\nexport const IOS_CYCLE = getCycle(IOS_LABEL, IOS_WEEK);\n\nfunction getCycle(label: number, week: number): ReadonlyArray<readonly number[]> {\n return Array.from({length: YEARLY_CYCLE}, (_, i) =>\n Array.from(\n {length: MONTHS_IN_YEAR},\n (_, month) => label + weekCount(i, month) * week,\n ),\n );\n}\n\nfunction weekCount(year: number, month: number): number {\n const firstOfMonth = new Date(year + STARTING_YEAR, month, 1);\n const lastOfMonth = new Date(year + STARTING_YEAR, month + 1, 0);\n const days = lastOfMonth.getDate() + (firstOfMonth.getDay() || 7) - 1;\n\n return Math.ceil(days / 7);\n}\n","import {CdkVirtualScrollViewport, VirtualScrollStrategy} from '@angular/cdk/scrolling';\nimport {MONTHS_IN_YEAR, tuiPure, TuiScrollService} from '@taiga-ui/cdk';\nimport {Observable, Subject} from 'rxjs';\nimport {distinctUntilChanged} from 'rxjs/operators';\n\nimport {\n ANDROID_CYCLE,\n BUFFER,\n IOS_CYCLE,\n RANGE,\n YEARLY_CYCLE,\n} from './mobile-calendar.const';\n\nconst ANDROID_CYCLE_HEIGHT = reduceCycle(ANDROID_CYCLE);\nconst IOS_CYCLE_HEIGHT = reduceCycle(IOS_CYCLE);\n\nfunction reduceCycle(\n cycle: ReadonlyArray<readonly number[]>,\n lastYear: number = 28,\n lastMonth: number = 12,\n): number {\n return cycle.reduce(\n (total, year, yearIndex) =>\n yearIndex <= lastYear\n ? total +\n year.reduce(\n (sum, month, monthIndex) =>\n yearIndex < lastYear ||\n (yearIndex === lastYear && monthIndex < lastMonth)\n ? sum + month\n : sum,\n 0,\n )\n : total,\n 0,\n );\n}\n\n/**\n * This scroll strategy is hard wired with styles for iOS and Android.\n * It is dependent on month height on those platforms and is designed to\n * work for {@link TuiMobileCalendarComponent} with years 1906 to 2102\n */\nexport class TuiMobileCalendarStrategy implements VirtualScrollStrategy {\n private readonly index$ = new Subject<number>();\n\n private viewport: CdkVirtualScrollViewport | null = null;\n\n constructor(\n private readonly isIos: boolean,\n private readonly scrollService: TuiScrollService,\n ) {}\n\n @tuiPure\n get scrolledIndexChange(): Observable<number> {\n return this.index$.pipe(distinctUntilChanged());\n }\n\n attach(viewport: CdkVirtualScrollViewport) {\n const cycle = this.isIos ? IOS_CYCLE_HEIGHT : ANDROID_CYCLE_HEIGHT;\n\n this.viewport = viewport;\n this.viewport.setTotalContentSize(cycle * 7);\n this.updateRenderedRange(this.viewport);\n }\n\n detach() {\n this.index$.complete();\n this.viewport = null;\n }\n\n onContentScrolled() {\n if (this.viewport) {\n this.updateRenderedRange(this.viewport);\n }\n }\n\n /** These do not matter for this case */\n onDataLengthChanged() {}\n onContentRendered() {}\n onRenderedOffsetChanged() {}\n\n scrollToIndex(index: number, behavior: ScrollBehavior) {\n if (!this.viewport) {\n return;\n }\n\n const scrollTop = this.getOffsetForIndex(index);\n\n if (behavior !== 'smooth') {\n this.viewport.scrollToOffset(scrollTop, behavior);\n\n return;\n }\n\n this.scrollService\n .scroll$(this.viewport.elementRef.nativeElement, scrollTop)\n .subscribe();\n }\n\n private getOffsetForIndex(index: number): number {\n const month = index % MONTHS_IN_YEAR;\n const year = (index - month) / MONTHS_IN_YEAR;\n\n return this.computeHeight(year, month);\n }\n\n private getIndexForOffset(offset: number): number {\n const cycle = this.isIos ? IOS_CYCLE : ANDROID_CYCLE;\n const cycleHeight = this.isIos ? IOS_CYCLE_HEIGHT : ANDROID_CYCLE_HEIGHT;\n const remainder = offset % cycleHeight;\n const years = ((offset - remainder) / cycleHeight) * YEARLY_CYCLE;\n\n let accumulator = 0;\n\n for (let year = 0; year < cycle.length; year++) {\n for (let month = 0; month < cycle[year].length; month++) {\n accumulator += cycle[year][month];\n\n if (accumulator - cycle[year][month] / 2 > remainder) {\n return Math.max((years + year) * MONTHS_IN_YEAR + month, 0);\n }\n }\n }\n\n return RANGE;\n }\n\n private computeHeight(year: number, month?: number): number {\n const cycle = this.isIos ? IOS_CYCLE : ANDROID_CYCLE;\n const remainder = year % YEARLY_CYCLE;\n const remainderHeight = reduceCycle(cycle, remainder, month);\n const fullCycles = (year - remainder) / YEARLY_CYCLE;\n const fullCyclesHeight = this.isIos\n ? fullCycles * IOS_CYCLE_HEIGHT\n : fullCycles * ANDROID_CYCLE_HEIGHT;\n\n return fullCyclesHeight + remainderHeight;\n }\n\n private updateRenderedRange(viewport: CdkVirtualScrollViewport) {\n const offset = viewport.measureScrollOffset();\n const {start, end} = viewport.getRenderedRange();\n const viewportSize = viewport.getViewportSize();\n const dataLength = viewport.getDataLength();\n const newRange = {start, end};\n const firstVisibleIndex = this.getIndexForOffset(offset);\n const startBuffer = offset - this.getOffsetForIndex(start);\n\n if (startBuffer < BUFFER && start !== 0) {\n newRange.start = Math.max(0, this.getIndexForOffset(offset - BUFFER * 2));\n newRange.end = Math.min(\n dataLength,\n this.getIndexForOffset(offset + viewportSize + BUFFER),\n );\n } else {\n const endBuffer = this.getOffsetForIndex(end) - offset - viewportSize;\n\n if (endBuffer < BUFFER && end !== dataLength) {\n newRange.start = Math.max(0, this.getIndexForOffset(offset - BUFFER));\n newRange.end = Math.min(\n dataLength,\n this.getIndexForOffset(offset + viewportSize + BUFFER * 2),\n );\n }\n }\n\n viewport.setRenderedRange(newRange);\n viewport.setRenderedContentOffset(this.getOffsetForIndex(newRange.start));\n this.index$.next(firstVisibleIndex);\n }\n}\n","import {VIRTUAL_SCROLL_STRATEGY} from '@angular/cdk/scrolling';\nimport {ChangeDetectorRef, InjectionToken, Optional, Provider} from '@angular/core';\nimport {\n TUI_IS_IOS,\n TuiDayRange,\n TuiDestroyService,\n TuiScrollService,\n watch,\n} from '@taiga-ui/cdk';\nimport {TUI_CALENDAR_DATA_STREAM} from '@taiga-ui/kit';\nimport {EMPTY, Observable} from 'rxjs';\nimport {takeUntil} from 'rxjs/operators';\n\nimport {TuiMobileCalendarStrategy} from './mobile-calendar.strategy';\n\nexport const TUI_VALUE_STREAM = new InjectionToken<Observable<TuiDayRange | null>>(\n 'Stream for updating value',\n);\nexport const TUI_MOBILE_CALENDAR_PROVIDERS: Provider[] = [\n TuiDestroyService,\n TuiScrollService,\n {\n provide: VIRTUAL_SCROLL_STRATEGY,\n deps: [TUI_IS_IOS, TuiScrollService],\n useClass: TuiMobileCalendarStrategy,\n },\n {\n provide: TUI_VALUE_STREAM,\n deps: [\n [new Optional(), TUI_CALENDAR_DATA_STREAM],\n TuiDestroyService,\n ChangeDetectorRef,\n ],\n useFactory: valueStreamFactory,\n },\n];\n\nexport function valueStreamFactory(\n value$: Observable<TuiDayRange | null> | null,\n destroy$: Observable<void>,\n changeDetectorRef: ChangeDetectorRef,\n): Observable<TuiDayRange | null> {\n return (value$ || EMPTY).pipe(takeUntil(destroy$), watch(changeDetectorRef));\n}\n","import {CdkVirtualScrollViewport} from '@angular/cdk/scrolling';\nimport {DOCUMENT} from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Inject,\n Input,\n Output,\n ViewChild,\n} from '@angular/core';\nimport {\n ALWAYS_FALSE_HANDLER,\n MONTHS_IN_YEAR,\n TUI_FIRST_DAY,\n TUI_IS_IOS,\n TUI_LAST_DAY,\n TuiBooleanHandler,\n TuiDay,\n TuiDayRange,\n tuiDefaultProp,\n TuiDestroyService,\n TuiMapper,\n TuiMonth,\n typedFromEvent,\n} from '@taiga-ui/cdk';\nimport {TUI_CLOSE_WORD, TUI_ORDERED_SHORT_WEEK_DAYS} from '@taiga-ui/core';\nimport {\n TUI_CANCEL_WORD,\n TUI_CHOOSE_DAY_OR_RANGE_TEXTS,\n TUI_DONE_WORD,\n} from '@taiga-ui/kit';\nimport {identity, MonoTypeOperatorFunction, Observable, race, timer} from 'rxjs';\nimport {\n debounceTime,\n delay,\n filter,\n flatMap,\n map,\n switchMap,\n switchMapTo,\n take,\n takeUntil,\n windowToggle,\n} from 'rxjs/operators';\n\nimport {\n RANGE,\n SCROLL_DEBOUNCE_TIME,\n STARTING_YEAR,\n YEARS_IN_ROW,\n} from './mobile-calendar.const';\nimport {\n TUI_MOBILE_CALENDAR_PROVIDERS,\n TUI_VALUE_STREAM,\n} from './mobile-calendar.providers';\n\n// @dynamic\n@Component({\n selector: 'tui-mobile-calendar',\n templateUrl: './mobile-calendar.template.html',\n styleUrls: ['./mobile-calendar.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: TUI_MOBILE_CALENDAR_PROVIDERS,\n host: {'[class._ios]': 'isIOS'},\n})\nexport class TuiMobileCalendarComponent {\n @ViewChild('yearsScrollRef')\n private readonly yearsScrollRef?: CdkVirtualScrollViewport;\n\n @ViewChild('monthsScrollRef')\n private readonly monthsScrollRef?: CdkVirtualScrollViewport;\n\n private readonly today = TuiDay.currentLocal();\n private activeYear = this.initialYear;\n private activeMonth = this.initialMonth;\n\n @Input()\n @tuiDefaultProp()\n single = true;\n\n @Input()\n @tuiDefaultProp()\n min = TUI_FIRST_DAY;\n\n @Input()\n @tuiDefaultProp()\n max = TUI_LAST_DAY;\n\n @Input()\n @tuiDefaultProp()\n disabledItemHandler: TuiBooleanHandler<TuiDay> = ALWAYS_FALSE_HANDLER;\n\n @Output()\n readonly cancel = new EventEmitter<void>();\n\n @Output()\n readonly confirm = new EventEmitter<TuiDayRange | TuiDay>();\n\n value: TuiDay | TuiDayRange | null = null;\n\n readonly years = Array.from({length: RANGE}, (_, i) => i + STARTING_YEAR);\n\n readonly months = Array.from(\n {length: RANGE * 12},\n (_, i) =>\n new TuiMonth(\n Math.floor(i / MONTHS_IN_YEAR) + STARTING_YEAR,\n i % MONTHS_IN_YEAR,\n ),\n );\n\n constructor(\n @Inject(TUI_IS_IOS) readonly isIOS: boolean,\n @Inject(DOCUMENT) private readonly documentRef: Document,\n @Inject(TuiDestroyService)\n private readonly destroy$: TuiDestroyService,\n @Inject(TUI_VALUE_STREAM) valueChanges: Observable<TuiDayRange | null>,\n @Inject(TUI_CLOSE_WORD) readonly closeWord$: Observable<string>,\n @Inject(TUI_CANCEL_WORD) readonly cancelWord$: Observable<string>,\n @Inject(TUI_DONE_WORD) readonly doneWord$: Observable<string>,\n @Inject(TUI_ORDERED_SHORT_WEEK_DAYS)\n readonly weekDays$: Observable<\n [string, string, string, string, string, string, string]\n >,\n @Inject(TUI_CHOOSE_DAY_OR_RANGE_TEXTS)\n readonly chooseDayOrRangeTexts$: Observable<[string, string]>,\n ) {\n valueChanges.pipe(takeUntil(this.destroy$)).subscribe(value => {\n this.value = value;\n });\n }\n\n get yearWidth(): number {\n return this.documentRef.documentElement.clientWidth / YEARS_IN_ROW;\n }\n\n ngAfterViewInit() {\n // Virtual scroll has not yet rendered items even in ngAfterViewInit\n this.waitScrolledChange();\n }\n\n onClose() {\n this.cancel.emit();\n }\n\n onConfirm() {\n if (this.value) {\n this.confirm.emit(this.value);\n } else {\n this.cancel.emit();\n }\n }\n\n onDayClick(day: TuiDay) {\n if (this.single) {\n this.value = day;\n\n return;\n }\n\n if (\n this.value === null ||\n this.value instanceof TuiDay ||\n !this.value.isSingleDay\n ) {\n this.value = new TuiDayRange(day, day);\n\n return;\n }\n\n this.value = TuiDayRange.sort(this.value.from, day);\n }\n\n getState(index: number): 'active' | 'adjacent' | null {\n if (this.isYearActive(index)) {\n return 'active';\n }\n\n if (this.isYearActive(index - 1) || this.isYearActive(index + 1)) {\n return 'adjacent';\n }\n\n return null;\n }\n\n onMonthChange(month: number) {\n // Skipping initial callback where index === 0\n if (!month || this.activeMonth === month) {\n return;\n }\n\n this.activeMonth = month;\n\n const activeYear = this.monthToYear(month);\n\n if (activeYear === this.activeYear) {\n return;\n }\n\n this.activeYear = activeYear;\n this.scrollToActiveYear();\n }\n\n setYear(year: number) {\n if (this.activeYear === year) {\n return;\n }\n\n this.activeMonth += this.getMonthOffset(year);\n this.activeYear = year;\n this.scrollToActiveYear('smooth');\n\n // Delay is required to run months scroll in the next frame to prevent flicker\n setTimeout(() => {\n this.scrollToActiveMonth();\n });\n }\n\n readonly disabledItemHandlerMapper: TuiMapper<\n TuiBooleanHandler<TuiDay>,\n TuiBooleanHandler<TuiDay>\n > = (disabledItemHandler, min: TuiDay, max: TuiDay) => item =>\n item.dayBefore(min) ||\n (max !== null && item.dayAfter(max)) ||\n disabledItemHandler(item);\n\n private get initialYear(): number {\n if (!this.value) {\n return this.today.year;\n }\n\n if (this.value instanceof TuiDay) {\n return this.value.year;\n }\n\n return this.value.from.year;\n }\n\n private get initialMonth(): number {\n if (!this.value) {\n return this.today.month + (this.today.year - STARTING_YEAR) * MONTHS_IN_YEAR;\n }\n\n if (this.value instanceof TuiDay) {\n return this.value.month + (this.value.year - STARTING_YEAR) * MONTHS_IN_YEAR;\n }\n\n return (\n this.value.from.month +\n (this.value.from.year - STARTING_YEAR) * MONTHS_IN_YEAR\n );\n }\n\n private getYearsViewportSize() {\n return this.yearsScrollRef?.getViewportSize() || 0;\n }\n\n private updateViewportDimension() {\n this.yearsScrollRef?.checkViewportSize();\n this.monthsScrollRef?.checkViewportSize();\n }\n\n private lateInit(): MonoTypeOperatorFunction<number> {\n return this.getYearsViewportSize() > 0 ? identity : delay(200);\n }\n\n private waitScrolledChange() {\n this.updateViewportDimension();\n\n this.monthsScrollRef?.scrolledIndexChange\n .pipe(this.lateInit(), take(1), takeUntil(this.destroy$))\n .subscribe(() => {\n this.updateViewportDimension();\n this.initYearScroll();\n this.initMonthScroll();\n this.scrollToActiveYear();\n this.scrollToActiveMonth();\n });\n }\n\n private initYearScroll() {\n const {yearsScrollRef} = this;\n\n if (!yearsScrollRef) {\n return;\n }\n\n const touchstart$ = typedFromEvent(\n yearsScrollRef.elementRef.nativeElement,\n 'touchstart',\n );\n const touchend$ = typedFromEvent(\n yearsScrollRef.elementRef.nativeElement,\n 'touchend',\n );\n const click$ = typedFromEvent(yearsScrollRef.elementRef.nativeElement, 'click');\n\n // Refresh activeYear\n yearsScrollRef\n .elementScrolled()\n .pipe(\n // Ignore smooth scroll resulting from click on the exact year\n windowToggle(touchstart$, () => click$),\n flatMap(x => x),\n // Delay is required to run months scroll in the next frame to prevent flicker\n delay(0),\n map(\n () =>\n Math.round(\n yearsScrollRef.measureScrollOffset() / this.yearWidth,\n ) +\n Math.floor(YEARS_IN_ROW / 2) +\n STARTING_YEAR,\n ),\n filter(activeYear => activeYear !== this.activeYear),\n takeUntil(this.destroy$),\n )\n .subscribe(activeYear => {\n this.activeMonth += this.getMonthOffset(activeYear);\n this.activeYear = activeYear;\n this.scrollToActiveMonth();\n });\n\n // Smooth scroll to activeYear after scrolling is done\n touchstart$\n .pipe(\n switchMap(() => touchend$),\n switchMap(() =>\n race<unknown>(\n yearsScrollRef.elementScrolled(),\n timer(SCROLL_DEBOUNCE_TIME),\n ).pipe(\n debounceTime(SCROLL_DEBOUNCE_TIME * 2),\n take(1),\n takeUntil(touchstart$),\n ),\n ),\n takeUntil(this.destroy$),\n )\n .subscribe(() => {\n this.scrollToActiveYear('smooth');\n });\n }\n\n private initMonthScroll() {\n const {monthsScrollRef} = this;\n\n if (!monthsScrollRef) {\n return;\n }\n\n const touchstart$ = typedFromEvent(\n monthsScrollRef.elementRef.nativeElement,\n 'touchstart',\n {passive: true},\n );\n const touchend$ = typedFromEvent(\n monthsScrollRef.elementRef.nativeElement,\n 'touchend',\n );\n\n // Smooth scroll to the closest month after scrolling is done\n touchstart$\n .pipe(\n switchMapTo(touchend$),\n switchMapTo(\n race<unknown>(\n monthsScrollRef.elementScrolled(),\n timer(SCROLL_DEBOUNCE_TIME),\n ).pipe(\n debounceTime(SCROLL_DEBOUNCE_TIME * 2),\n take(1),\n takeUntil(touchstart$),\n ),\n ),\n takeUntil(this.destroy$),\n )\n .subscribe(() => {\n this.scrollToActiveMonth('smooth');\n });\n }\n\n private scrollToActiveYear(behavior?: ScrollBehavior) {\n this.yearsScrollRef?.scrollToIndex(\n Math.max(this.activeYear - STARTING_YEAR - 2, 0),\n behavior,\n );\n }\n\n private scrollToActiveMonth(behavior?: ScrollBehavior) {\n this.monthsScrollRef?.scrollToIndex(this.activeMonth, behavior);\n }\n\n private isYearActive(index: number): boolean {\n return index === this.activeYear;\n }\n\n private monthToYear(month: number): number {\n return Math.ceil((month + 1) / MONTHS_IN_YEAR) + STARTING_YEAR - 1;\n }\n\n private getMonthOffset(year: number): number {\n return (year - this.activeYear) * MONTHS_IN_YEAR;\n }\n}\n","import {ScrollingModule} from '@angular/cdk/scrolling';\nimport {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {TuiRippleModule} from '@taiga-ui/addon-mobile/directives/ripple';\nimport {TuiTouchableModule} from '@taiga-ui/addon-mobile/directives/touchable';\nimport {TuiPrimitiveCalendarMobileModule} from '@taiga-ui/addon-mobile/internal/primitive-calendar-mobile';\nimport {TuiMapperPipeModule} from '@taiga-ui/cdk';\nimport {TuiButtonModule, TuiLinkModule, TuiMonthPipeModule} from '@taiga-ui/core';\n\nimport {TuiMobileCalendarComponent} from './mobile-calendar.component';\n\n@NgModule({\n imports: [\n CommonModule,\n ScrollingModule,\n TuiTouchableModule,\n TuiRippleModule,\n TuiMapperPipeModule,\n TuiLinkModule,\n TuiPrimitiveCalendarMobileModule,\n TuiButtonModule,\n TuiMonthPipeModule,\n ],\n declarations: [TuiMobileCalendarComponent],\n exports: [TuiMobileCalendarComponent],\n})\nexport class TuiMobileCalendarModule {}\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-mobile-calendar.js","sources":["ng://@taiga-ui/addon-mobile/components/mobile-calendar/mobile-calendar.const.ts","ng://@taiga-ui/addon-mobile/components/mobile-calendar/mobile-calendar.strategy.ts","ng://@taiga-ui/addon-mobile/components/mobile-calendar/mobile-calendar.providers.ts","ng://@taiga-ui/addon-mobile/components/mobile-calendar/mobile-calendar.component.ts","ng://@taiga-ui/addon-mobile/components/mobile-calendar/mobile-calendar.module.ts","ng://@taiga-ui/addon-mobile/components/mobile-calendar/taiga-ui-addon-mobile-components-mobile-calendar.ts"],"sourcesContent":["import {MONTHS_IN_YEAR} from '@taiga-ui/cdk';\n\nexport const SCROLL_DEBOUNCE_TIME = 80;\nexport const YEARS_IN_ROW = 5;\nexport const STARTING_YEAR = 1900;\nexport const RANGE = 196;\nexport const BUFFER = 500;\nexport const ANDROID_LABEL = 64;\nexport const ANDROID_WEEK = 48;\nexport const IOS_LABEL = 50;\nexport const IOS_WEEK = 50;\nexport const YEARLY_CYCLE = 28;\nexport const ANDROID_CYCLE = getCycle(ANDROID_LABEL, ANDROID_WEEK);\nexport const IOS_CYCLE = getCycle(IOS_LABEL, IOS_WEEK);\n\nfunction getCycle(label: number, week: number): ReadonlyArray<readonly number[]> {\n return Array.from({length: YEARLY_CYCLE}, (_, i) =>\n Array.from(\n {length: MONTHS_IN_YEAR},\n (_, month) => label + weekCount(i, month) * week,\n ),\n );\n}\n\nfunction weekCount(year: number, month: number): number {\n const firstOfMonth = new Date(year + STARTING_YEAR, month, 1);\n const lastOfMonth = new Date(year + STARTING_YEAR, month + 1, 0);\n const days = lastOfMonth.getDate() + (firstOfMonth.getDay() || 7) - 1;\n\n return Math.ceil(days / 7);\n}\n","import {CdkVirtualScrollViewport, VirtualScrollStrategy} from '@angular/cdk/scrolling';\nimport {MONTHS_IN_YEAR, tuiPure, TuiScrollService} from '@taiga-ui/cdk';\nimport {Observable, Subject} from 'rxjs';\nimport {distinctUntilChanged} from 'rxjs/operators';\n\nimport {\n ANDROID_CYCLE,\n BUFFER,\n IOS_CYCLE,\n RANGE,\n YEARLY_CYCLE,\n} from './mobile-calendar.const';\n\nconst ANDROID_CYCLE_HEIGHT = reduceCycle(ANDROID_CYCLE);\nconst IOS_CYCLE_HEIGHT = reduceCycle(IOS_CYCLE);\n\nfunction reduceCycle(\n cycle: ReadonlyArray<readonly number[]>,\n lastYear: number = 28,\n lastMonth: number = 12,\n): number {\n return cycle.reduce(\n (total, year, yearIndex) =>\n yearIndex <= lastYear\n ? total +\n year.reduce(\n (sum, month, monthIndex) =>\n yearIndex < lastYear ||\n (yearIndex === lastYear && monthIndex < lastMonth)\n ? sum + month\n : sum,\n 0,\n )\n : total,\n 0,\n );\n}\n\n/**\n * This scroll strategy is hard wired with styles for iOS and Android.\n * It is dependent on month height on those platforms and is designed to\n * work for {@link TuiMobileCalendarComponent} with years 1906 to 2102\n */\nexport class TuiMobileCalendarStrategy implements VirtualScrollStrategy {\n private readonly index$ = new Subject<number>();\n\n private viewport: CdkVirtualScrollViewport | null = null;\n\n constructor(\n private readonly isIos: boolean,\n private readonly scrollService: TuiScrollService,\n ) {}\n\n @tuiPure\n get scrolledIndexChange(): Observable<number> {\n return this.index$.pipe(distinctUntilChanged());\n }\n\n attach(viewport: CdkVirtualScrollViewport) {\n const cycle = this.isIos ? IOS_CYCLE_HEIGHT : ANDROID_CYCLE_HEIGHT;\n\n this.viewport = viewport;\n this.viewport.setTotalContentSize(cycle * 7);\n this.updateRenderedRange(this.viewport);\n }\n\n detach() {\n this.index$.complete();\n this.viewport = null;\n }\n\n onContentScrolled() {\n if (this.viewport) {\n this.updateRenderedRange(this.viewport);\n }\n }\n\n /** These do not matter for this case */\n onDataLengthChanged() {}\n onContentRendered() {}\n onRenderedOffsetChanged() {}\n\n scrollToIndex(index: number, behavior: ScrollBehavior) {\n if (!this.viewport) {\n return;\n }\n\n const scrollTop = this.getOffsetForIndex(index);\n\n if (behavior !== 'smooth') {\n this.viewport.scrollToOffset(scrollTop, behavior);\n\n return;\n }\n\n this.scrollService\n .scroll$(this.viewport.elementRef.nativeElement, scrollTop)\n .subscribe();\n }\n\n private getOffsetForIndex(index: number): number {\n const month = index % MONTHS_IN_YEAR;\n const year = (index - month) / MONTHS_IN_YEAR;\n\n return this.computeHeight(year, month);\n }\n\n private getIndexForOffset(offset: number): number {\n const cycle = this.isIos ? IOS_CYCLE : ANDROID_CYCLE;\n const cycleHeight = this.isIos ? IOS_CYCLE_HEIGHT : ANDROID_CYCLE_HEIGHT;\n const remainder = offset % cycleHeight;\n const years = ((offset - remainder) / cycleHeight) * YEARLY_CYCLE;\n\n let accumulator = 0;\n\n for (let year = 0; year < cycle.length; year++) {\n for (let month = 0; month < cycle[year].length; month++) {\n accumulator += cycle[year][month];\n\n if (accumulator - cycle[year][month] / 2 > remainder) {\n return Math.max((years + year) * MONTHS_IN_YEAR + month, 0);\n }\n }\n }\n\n return RANGE;\n }\n\n private computeHeight(year: number, month?: number): number {\n const cycle = this.isIos ? IOS_CYCLE : ANDROID_CYCLE;\n const remainder = year % YEARLY_CYCLE;\n const remainderHeight = reduceCycle(cycle, remainder, month);\n const fullCycles = (year - remainder) / YEARLY_CYCLE;\n const fullCyclesHeight = this.isIos\n ? fullCycles * IOS_CYCLE_HEIGHT\n : fullCycles * ANDROID_CYCLE_HEIGHT;\n\n return fullCyclesHeight + remainderHeight;\n }\n\n private updateRenderedRange(viewport: CdkVirtualScrollViewport) {\n const offset = viewport.measureScrollOffset();\n const {start, end} = viewport.getRenderedRange();\n const viewportSize = viewport.getViewportSize();\n const dataLength = viewport.getDataLength();\n const newRange = {start, end};\n const firstVisibleIndex = this.getIndexForOffset(offset);\n const startBuffer = offset - this.getOffsetForIndex(start);\n\n if (startBuffer < BUFFER && start !== 0) {\n newRange.start = Math.max(0, this.getIndexForOffset(offset - BUFFER * 2));\n newRange.end = Math.min(\n dataLength,\n this.getIndexForOffset(offset + viewportSize + BUFFER),\n );\n } else {\n const endBuffer = this.getOffsetForIndex(end) - offset - viewportSize;\n\n if (endBuffer < BUFFER && end !== dataLength) {\n newRange.start = Math.max(0, this.getIndexForOffset(offset - BUFFER));\n newRange.end = Math.min(\n dataLength,\n this.getIndexForOffset(offset + viewportSize + BUFFER * 2),\n );\n }\n }\n\n viewport.setRenderedRange(newRange);\n viewport.setRenderedContentOffset(this.getOffsetForIndex(newRange.start));\n this.index$.next(firstVisibleIndex);\n }\n}\n","import {VIRTUAL_SCROLL_STRATEGY} from '@angular/cdk/scrolling';\nimport {ChangeDetectorRef, InjectionToken, Optional, Provider} from '@angular/core';\nimport {\n TUI_IS_IOS,\n TuiDayRange,\n TuiDestroyService,\n TuiScrollService,\n watch,\n} from '@taiga-ui/cdk';\nimport {TUI_CALENDAR_DATA_STREAM} from '@taiga-ui/kit';\nimport {EMPTY, Observable} from 'rxjs';\nimport {takeUntil} from 'rxjs/operators';\n\nimport {TuiMobileCalendarStrategy} from './mobile-calendar.strategy';\n\nexport const TUI_VALUE_STREAM = new InjectionToken<Observable<TuiDayRange | null>>(\n 'Stream for updating value',\n);\nexport const TUI_MOBILE_CALENDAR_PROVIDERS: Provider[] = [\n TuiDestroyService,\n TuiScrollService,\n {\n provide: VIRTUAL_SCROLL_STRATEGY,\n deps: [TUI_IS_IOS, TuiScrollService],\n useClass: TuiMobileCalendarStrategy,\n },\n {\n provide: TUI_VALUE_STREAM,\n deps: [\n [new Optional(), TUI_CALENDAR_DATA_STREAM],\n TuiDestroyService,\n ChangeDetectorRef,\n ],\n useFactory: valueStreamFactory,\n },\n];\n\nexport function valueStreamFactory(\n value$: Observable<TuiDayRange | null> | null,\n destroy$: Observable<void>,\n changeDetectorRef: ChangeDetectorRef,\n): Observable<TuiDayRange | null> {\n return (value$ || EMPTY).pipe(watch(changeDetectorRef), takeUntil(destroy$));\n}\n","import {CdkVirtualScrollViewport} from '@angular/cdk/scrolling';\nimport {DOCUMENT} from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Inject,\n Input,\n Output,\n ViewChild,\n} from '@angular/core';\nimport {\n ALWAYS_FALSE_HANDLER,\n MONTHS_IN_YEAR,\n TUI_FIRST_DAY,\n TUI_IS_IOS,\n TUI_LAST_DAY,\n TuiBooleanHandler,\n TuiDay,\n TuiDayRange,\n tuiDefaultProp,\n TuiDestroyService,\n TuiMapper,\n TuiMonth,\n typedFromEvent,\n} from '@taiga-ui/cdk';\nimport {TUI_CLOSE_WORD, TUI_ORDERED_SHORT_WEEK_DAYS} from '@taiga-ui/core';\nimport {\n TUI_CANCEL_WORD,\n TUI_CHOOSE_DAY_OR_RANGE_TEXTS,\n TUI_DONE_WORD,\n} from '@taiga-ui/kit';\nimport {identity, MonoTypeOperatorFunction, Observable, race, timer} from 'rxjs';\nimport {\n debounceTime,\n delay,\n filter,\n flatMap,\n map,\n switchMap,\n switchMapTo,\n take,\n takeUntil,\n windowToggle,\n} from 'rxjs/operators';\n\nimport {\n RANGE,\n SCROLL_DEBOUNCE_TIME,\n STARTING_YEAR,\n YEARS_IN_ROW,\n} from './mobile-calendar.const';\nimport {\n TUI_MOBILE_CALENDAR_PROVIDERS,\n TUI_VALUE_STREAM,\n} from './mobile-calendar.providers';\n\n// @dynamic\n@Component({\n selector: 'tui-mobile-calendar',\n templateUrl: './mobile-calendar.template.html',\n styleUrls: ['./mobile-calendar.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: TUI_MOBILE_CALENDAR_PROVIDERS,\n host: {'[class._ios]': 'isIOS'},\n})\nexport class TuiMobileCalendarComponent {\n @ViewChild('yearsScrollRef')\n private readonly yearsScrollRef?: CdkVirtualScrollViewport;\n\n @ViewChild('monthsScrollRef')\n private readonly monthsScrollRef?: CdkVirtualScrollViewport;\n\n private readonly today = TuiDay.currentLocal();\n private activeYear = this.initialYear;\n private activeMonth = this.initialMonth;\n\n @Input()\n @tuiDefaultProp()\n single = true;\n\n @Input()\n @tuiDefaultProp()\n min = TUI_FIRST_DAY;\n\n @Input()\n @tuiDefaultProp()\n max = TUI_LAST_DAY;\n\n @Input()\n @tuiDefaultProp()\n disabledItemHandler: TuiBooleanHandler<TuiDay> = ALWAYS_FALSE_HANDLER;\n\n @Output()\n readonly cancel = new EventEmitter<void>();\n\n @Output()\n readonly confirm = new EventEmitter<TuiDayRange | TuiDay>();\n\n value: TuiDay | TuiDayRange | null = null;\n\n readonly years = Array.from({length: RANGE}, (_, i) => i + STARTING_YEAR);\n\n readonly months = Array.from(\n {length: RANGE * 12},\n (_, i) =>\n new TuiMonth(\n Math.floor(i / MONTHS_IN_YEAR) + STARTING_YEAR,\n i % MONTHS_IN_YEAR,\n ),\n );\n\n constructor(\n @Inject(TUI_IS_IOS) readonly isIOS: boolean,\n @Inject(DOCUMENT) private readonly documentRef: Document,\n @Inject(TuiDestroyService)\n private readonly destroy$: TuiDestroyService,\n @Inject(TUI_VALUE_STREAM) valueChanges: Observable<TuiDayRange | null>,\n @Inject(TUI_CLOSE_WORD) readonly closeWord$: Observable<string>,\n @Inject(TUI_CANCEL_WORD) readonly cancelWord$: Observable<string>,\n @Inject(TUI_DONE_WORD) readonly doneWord$: Observable<string>,\n @Inject(TUI_ORDERED_SHORT_WEEK_DAYS)\n readonly weekDays$: Observable<\n [string, string, string, string, string, string, string]\n >,\n @Inject(TUI_CHOOSE_DAY_OR_RANGE_TEXTS)\n readonly chooseDayOrRangeTexts$: Observable<[string, string]>,\n ) {\n valueChanges.pipe(takeUntil(this.destroy$)).subscribe(value => {\n this.value = value;\n });\n }\n\n get yearWidth(): number {\n return this.documentRef.documentElement.clientWidth / YEARS_IN_ROW;\n }\n\n ngAfterViewInit() {\n // Virtual scroll has not yet rendered items even in ngAfterViewInit\n this.waitScrolledChange();\n }\n\n onClose() {\n this.cancel.emit();\n }\n\n onConfirm() {\n if (this.value) {\n this.confirm.emit(this.value);\n } else {\n this.cancel.emit();\n }\n }\n\n onDayClick(day: TuiDay) {\n if (this.single) {\n this.value = day;\n\n return;\n }\n\n if (\n this.value === null ||\n this.value instanceof TuiDay ||\n !this.value.isSingleDay\n ) {\n this.value = new TuiDayRange(day, day);\n\n return;\n }\n\n this.value = TuiDayRange.sort(this.value.from, day);\n }\n\n getState(index: number): 'active' | 'adjacent' | null {\n if (this.isYearActive(index)) {\n return 'active';\n }\n\n if (this.isYearActive(index - 1) || this.isYearActive(index + 1)) {\n return 'adjacent';\n }\n\n return null;\n }\n\n onMonthChange(month: number) {\n // Skipping initial callback where index === 0\n if (!month || this.activeMonth === month) {\n return;\n }\n\n this.activeMonth = month;\n\n const activeYear = this.monthToYear(month);\n\n if (activeYear === this.activeYear) {\n return;\n }\n\n this.activeYear = activeYear;\n this.scrollToActiveYear();\n }\n\n setYear(year: number) {\n if (this.activeYear === year) {\n return;\n }\n\n this.activeMonth += this.getMonthOffset(year);\n this.activeYear = year;\n this.scrollToActiveYear('smooth');\n\n // Delay is required to run months scroll in the next frame to prevent flicker\n setTimeout(() => {\n this.scrollToActiveMonth();\n });\n }\n\n readonly disabledItemHandlerMapper: TuiMapper<\n TuiBooleanHandler<TuiDay>,\n TuiBooleanHandler<TuiDay>\n > = (disabledItemHandler, min: TuiDay, max: TuiDay) => item =>\n item.dayBefore(min) ||\n (max !== null && item.dayAfter(max)) ||\n disabledItemHandler(item);\n\n private get initialYear(): number {\n if (!this.value) {\n return this.today.year;\n }\n\n if (this.value instanceof TuiDay) {\n return this.value.year;\n }\n\n return this.value.from.year;\n }\n\n private get initialMonth(): number {\n if (!this.value) {\n return this.today.month + (this.today.year - STARTING_YEAR) * MONTHS_IN_YEAR;\n }\n\n if (this.value instanceof TuiDay) {\n return this.value.month + (this.value.year - STARTING_YEAR) * MONTHS_IN_YEAR;\n }\n\n return (\n this.value.from.month +\n (this.value.from.year - STARTING_YEAR) * MONTHS_IN_YEAR\n );\n }\n\n private getYearsViewportSize() {\n return this.yearsScrollRef?.getViewportSize() || 0;\n }\n\n private updateViewportDimension() {\n this.yearsScrollRef?.checkViewportSize();\n this.monthsScrollRef?.checkViewportSize();\n }\n\n private lateInit(): MonoTypeOperatorFunction<number> {\n return this.getYearsViewportSize() > 0 ? identity : delay(200);\n }\n\n private waitScrolledChange() {\n this.updateViewportDimension();\n\n this.monthsScrollRef?.scrolledIndexChange\n .pipe(this.lateInit(), take(1), takeUntil(this.destroy$))\n .subscribe(() => {\n this.updateViewportDimension();\n this.initYearScroll();\n this.initMonthScroll();\n this.scrollToActiveYear();\n this.scrollToActiveMonth();\n });\n }\n\n private initYearScroll() {\n const {yearsScrollRef} = this;\n\n if (!yearsScrollRef) {\n return;\n }\n\n const touchstart$ = typedFromEvent(\n yearsScrollRef.elementRef.nativeElement,\n 'touchstart',\n );\n const touchend$ = typedFromEvent(\n yearsScrollRef.elementRef.nativeElement,\n 'touchend',\n );\n const click$ = typedFromEvent(yearsScrollRef.elementRef.nativeElement, 'click');\n\n // Refresh activeYear\n yearsScrollRef\n .elementScrolled()\n .pipe(\n // Ignore smooth scroll resulting from click on the exact year\n windowToggle(touchstart$, () => click$),\n flatMap(x => x),\n // Delay is required to run months scroll in the next frame to prevent flicker\n delay(0),\n map(\n () =>\n Math.round(\n yearsScrollRef.measureScrollOffset() / this.yearWidth,\n ) +\n Math.floor(YEARS_IN_ROW / 2) +\n STARTING_YEAR,\n ),\n filter(activeYear => activeYear !== this.activeYear),\n takeUntil(this.destroy$),\n )\n .subscribe(activeYear => {\n this.activeMonth += this.getMonthOffset(activeYear);\n this.activeYear = activeYear;\n this.scrollToActiveMonth();\n });\n\n // Smooth scroll to activeYear after scrolling is done\n touchstart$\n .pipe(\n switchMap(() => touchend$),\n switchMap(() =>\n race<unknown>(\n yearsScrollRef.elementScrolled(),\n timer(SCROLL_DEBOUNCE_TIME),\n ).pipe(\n debounceTime(SCROLL_DEBOUNCE_TIME * 2),\n take(1),\n takeUntil(touchstart$),\n ),\n ),\n takeUntil(this.destroy$),\n )\n .subscribe(() => {\n this.scrollToActiveYear('smooth');\n });\n }\n\n private initMonthScroll() {\n const {monthsScrollRef} = this;\n\n if (!monthsScrollRef) {\n return;\n }\n\n const touchstart$ = typedFromEvent(\n monthsScrollRef.elementRef.nativeElement,\n 'touchstart',\n {passive: true},\n );\n const touchend$ = typedFromEvent(\n monthsScrollRef.elementRef.nativeElement,\n 'touchend',\n );\n\n // Smooth scroll to the closest month after scrolling is done\n touchstart$\n .pipe(\n switchMapTo(touchend$),\n switchMapTo(\n race<unknown>(\n monthsScrollRef.elementScrolled(),\n timer(SCROLL_DEBOUNCE_TIME),\n ).pipe(\n debounceTime(SCROLL_DEBOUNCE_TIME * 2),\n take(1),\n takeUntil(touchstart$),\n ),\n ),\n takeUntil(this.destroy$),\n )\n .subscribe(() => {\n this.scrollToActiveMonth('smooth');\n });\n }\n\n private scrollToActiveYear(behavior?: ScrollBehavior) {\n this.yearsScrollRef?.scrollToIndex(\n Math.max(this.activeYear - STARTING_YEAR - 2, 0),\n behavior,\n );\n }\n\n private scrollToActiveMonth(behavior?: ScrollBehavior) {\n this.monthsScrollRef?.scrollToIndex(this.activeMonth, behavior);\n }\n\n private isYearActive(index: number): boolean {\n return index === this.activeYear;\n }\n\n private monthToYear(month: number): number {\n return Math.ceil((month + 1) / MONTHS_IN_YEAR) + STARTING_YEAR - 1;\n }\n\n private getMonthOffset(year: number): number {\n return (year - this.activeYear) * MONTHS_IN_YEAR;\n }\n}\n","import {ScrollingModule} from '@angular/cdk/scrolling';\nimport {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {TuiRippleModule} from '@taiga-ui/addon-mobile/directives/ripple';\nimport {TuiTouchableModule} from '@taiga-ui/addon-mobile/directives/touchable';\nimport {TuiPrimitiveCalendarMobileModule} from '@taiga-ui/addon-mobile/internal/primitive-calendar-mobile';\nimport {TuiMapperPipeModule} from '@taiga-ui/cdk';\nimport {TuiButtonModule, TuiLinkModule, TuiMonthPipeModule} from '@taiga-ui/core';\n\nimport {TuiMobileCalendarComponent} from './mobile-calendar.component';\n\n@NgModule({\n imports: [\n CommonModule,\n ScrollingModule,\n TuiTouchableModule,\n TuiRippleModule,\n TuiMapperPipeModule,\n TuiLinkModule,\n TuiPrimitiveCalendarMobileModule,\n TuiButtonModule,\n TuiMonthPipeModule,\n ],\n declarations: [TuiMobileCalendarComponent],\n exports: [TuiMobileCalendarComponent],\n})\nexport class TuiMobileCalendarModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -148,7 +148,7 @@ var TuiPullToRefreshComponent = /** @class */ (function () {
148
148
  TuiPullToRefreshComponent = __decorate([
149
149
  Component({
150
150
  selector: 'tui-pull-to-refresh',
151
- template: "<div\n tuiOverscroll\n [class.t-drop-animation]=\"dropped$ | async\"\n [style.transform]=\"contentTransform$ | async\"\n>\n <ng-content></ng-content>\n</div>\n\n<tui-mobile-ios-loader\n *ngIf=\"isIOS; else angroidLoader\"\n class=\"t-ios-spinner\"\n [pulled]=\"pulledInPercent$ | async\"\n></tui-mobile-ios-loader>\n\n<ng-template #angroidLoader>\n <tui-mobile-android-loader\n class=\"t-android-loader\"\n [class.t-drop-animation]=\"dropped$ | async\"\n [style.transform]=\"loaderTransform$ | async\"\n [pulled]=\"pulledInPercent$ | async\"\n ></tui-mobile-android-loader>\n</ng-template>\n",
151
+ template: "<div\n tuiOverscroll\n [class.t-drop-animation]=\"dropped$ | async\"\n [style.transform]=\"contentTransform$ | async\"\n>\n <ng-content></ng-content>\n</div>\n\n<tui-mobile-ios-loader\n *ngIf=\"isIOS; else androidLoader\"\n class=\"t-ios-spinner\"\n [pulled]=\"(pulledInPercent$ | async) || 0\"\n></tui-mobile-ios-loader>\n\n<ng-template #androidLoader>\n <tui-mobile-android-loader\n class=\"t-android-loader\"\n [class.t-drop-animation]=\"dropped$ | async\"\n [style.transform]=\"loaderTransform$ | async\"\n [pulled]=\"(pulledInPercent$ | async) || 0\"\n ></tui-mobile-android-loader>\n</ng-template>\n",
152
152
  changeDetection: ChangeDetectionStrategy.OnPush,
153
153
  providers: [TUI_PULL_TO_REFRESH_PROVIDERS],
154
154
  styles: [":host{position:relative;display:block;overflow:hidden}.t-ios-spinner{position:absolute;top:-.5rem;left:50%;margin-left:-1.125rem}.t-android-loader{position:absolute;top:-1.5rem;left:50%;margin-left:-1.125rem}.t-drop-animation{transition:all var(--tui-duration) cubic-bezier(.4,0,.2,1)}"]
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-addon-mobile-components-pull-to-refresh.js","sources":["ng://@taiga-ui/addon-mobile/components/pull-to-refresh/loader-android/loader-android.component.ts","ng://@taiga-ui/addon-mobile/components/pull-to-refresh/loader-iOS/loader-iOS.component.ts","ng://@taiga-ui/addon-mobile/components/pull-to-refresh/pull-to-refresh.providers.ts","ng://@taiga-ui/addon-mobile/components/pull-to-refresh/pull-to-refresh.component.ts","ng://@taiga-ui/addon-mobile/components/pull-to-refresh/pull-to-refresh.module.ts","ng://@taiga-ui/addon-mobile/components/pull-to-refresh/taiga-ui-addon-mobile-components-pull-to-refresh.ts"],"sourcesContent":["import {ChangeDetectionStrategy, Component, HostBinding, Input} from '@angular/core';\n\nconst HIDDEN_DISTANCE = 2;\nconst ROTATE_X_DEFAULT = 180;\nconst ROTATE_X_MAX = 500;\nconst ROTATE_X_MULTIPLIER = 2.3;\n\n@Component({\n selector: 'tui-mobile-android-loader',\n templateUrl: './loader-android.template.html',\n styleUrls: ['./loader-android.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TuiMobileLoaderAndroidComponent {\n @Input()\n pulled = 0;\n\n get transform(): string {\n const rotateX = Math.min(\n ROTATE_X_DEFAULT + this.pulled * ROTATE_X_MULTIPLIER,\n ROTATE_X_MAX,\n );\n\n return `rotate(${rotateX} 0 0)`;\n }\n\n @HostBinding('class._hidden')\n get hidden(): boolean {\n return this.pulled < HIDDEN_DISTANCE;\n }\n}\n","import {ChangeDetectionStrategy, Component, Input} from '@angular/core';\nimport {TuiDestroyService} from '@taiga-ui/cdk';\n\nconst LOADED_STEP = 8;\nconst ROTATE_X_STEP = 30;\n\n@Component({\n selector: 'tui-mobile-ios-loader',\n templateUrl: './loader-iOS.template.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [TuiDestroyService],\n})\nexport class TuiMobileLoaderIOSComponent {\n @Input()\n pulled = 0;\n\n readonly steps = 12;\n\n get finished(): boolean {\n return this.pulled >= 100;\n }\n\n isShown(index: number): boolean {\n return this.pulled > (index + 1) * LOADED_STEP;\n }\n\n calculateTransform(index: number): string {\n return `rotate(${index * ROTATE_X_STEP} 50 50)`;\n }\n\n calculateAnimationBegin(index: number): string {\n return `${(index * LOADED_STEP) / 100}s`;\n }\n}\n","import {ElementRef, InjectionToken, Provider} from '@angular/core';\nimport {TUI_LOADED} from '@taiga-ui/addon-mobile/tokens';\nimport {TUI_IS_IOS, typedFromEvent} from '@taiga-ui/cdk';\nimport {merge, Observable} from 'rxjs';\nimport {endWith, filter, map, mapTo, scan, switchMap, takeUntil} from 'rxjs/operators';\n\nexport const MICRO_OFFSET = 10 ** -6;\nexport const PULLED_DISTANCE = 50;\n\nexport const TUI_PULLING = new InjectionToken<Observable<number>>(\n 'Stream that emits content pulling',\n);\n\nexport const TUI_PULL_TO_REFRESH_PROVIDERS: Provider[] = [\n {\n provide: TUI_PULLING,\n deps: [TUI_IS_IOS, TUI_LOADED, ElementRef],\n useFactory: pullingFactory,\n },\n];\n\nexport function pullingFactory(\n isIOS: boolean,\n loaded$: Observable<unknown>,\n {nativeElement}: ElementRef<HTMLElement>,\n): Observable<number> {\n return merge(\n typedFromEvent(nativeElement, 'touchstart', {passive: true}).pipe(\n filter(() => nativeElement.scrollTop === 0),\n switchMap(touchStart =>\n typedFromEvent(nativeElement, 'touchmove').pipe(\n map(\n touchMove =>\n touchMove.touches[0].clientY - touchStart.touches[0].clientY,\n ),\n takeUntil(typedFromEvent(nativeElement, 'touchend')),\n endWith(0),\n ),\n ),\n ),\n loaded$.pipe(mapTo(NaN)),\n ).pipe(\n scan((max, current) => {\n if (isNaN(current)) {\n return 0;\n }\n\n const androidLoading = !isIOS && max === PULLED_DISTANCE;\n const dropped = current === 0 && max > PULLED_DISTANCE;\n\n return androidLoading || dropped ? PULLED_DISTANCE : current + MICRO_OFFSET;\n }, 0),\n );\n}\n","import {ChangeDetectionStrategy, Component, Inject, Output} from '@angular/core';\nimport {TUI_IS_IOS, tuiPure} from '@taiga-ui/cdk';\nimport {Observable, of} from 'rxjs';\nimport {distinctUntilChanged, filter, map, mapTo} from 'rxjs/operators';\n\nimport {\n MICRO_OFFSET,\n PULLED_DISTANCE,\n TUI_PULL_TO_REFRESH_PROVIDERS,\n TUI_PULLING,\n} from './pull-to-refresh.providers';\n\nconst IOS_LOADING_DISTANCE = PULLED_DISTANCE / 2;\nconst ANDROID_MAX_DISTANCE = PULLED_DISTANCE * 1.5;\n\nfunction translateY(distance: number): string {\n return `translateY(${distance}px)`;\n}\n\n@Component({\n selector: 'tui-pull-to-refresh',\n templateUrl: './pull-to-refresh.template.html',\n styleUrls: ['./pull-to-refresh.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [TUI_PULL_TO_REFRESH_PROVIDERS],\n})\nexport class TuiPullToRefreshComponent {\n @Output()\n readonly pulled: Observable<void> = this.pulling$.pipe(\n distinctUntilChanged(),\n filter(distance => distance === PULLED_DISTANCE),\n mapTo(undefined),\n );\n\n readonly pulledInPercent$: Observable<number> = this.pulling$.pipe(\n map(distance => (distance * 100) / PULLED_DISTANCE),\n );\n\n readonly dropped$: Observable<boolean> = this.pulling$.pipe(\n map(distance => distance <= MICRO_OFFSET || distance === PULLED_DISTANCE),\n distinctUntilChanged(),\n );\n\n readonly contentTransform$: Observable<string | null> = this.isIOS\n ? this.pulling$.pipe(\n map(distance =>\n distance === PULLED_DISTANCE ? IOS_LOADING_DISTANCE : distance,\n ),\n map(translateY),\n )\n : of(null);\n\n constructor(\n @Inject(TUI_IS_IOS) readonly isIOS: boolean,\n @Inject(TUI_PULLING) private readonly pulling$: Observable<number>,\n ) {}\n\n @tuiPure\n get loaderTransform$(): Observable<string> {\n return this.pulling$.pipe(\n map(distance => translateY(Math.min(distance, ANDROID_MAX_DISTANCE))),\n );\n }\n}\n","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {TuiOverscrollModule, TuiRepeatTimesModule} from '@taiga-ui/cdk';\nimport {TuiSvgModule} from '@taiga-ui/core';\n\nimport {TuiMobileLoaderAndroidComponent} from './loader-android/loader-android.component';\nimport {TuiMobileLoaderIOSComponent} from './loader-iOS/loader-iOS.component';\nimport {TuiPullToRefreshComponent} from './pull-to-refresh.component';\n\n@NgModule({\n imports: [CommonModule, TuiSvgModule, TuiOverscrollModule, TuiRepeatTimesModule],\n declarations: [\n TuiPullToRefreshComponent,\n TuiMobileLoaderAndroidComponent,\n TuiMobileLoaderIOSComponent,\n ],\n exports: [TuiPullToRefreshComponent],\n})\nexport class TuiPullToRefreshModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"taiga-ui-addon-mobile-components-pull-to-refresh.js","sources":["ng://@taiga-ui/addon-mobile/components/pull-to-refresh/loader-android/loader-android.component.ts","ng://@taiga-ui/addon-mobile/components/pull-to-refresh/loader-iOS/loader-iOS.component.ts","ng://@taiga-ui/addon-mobile/components/pull-to-refresh/pull-to-refresh.providers.ts","ng://@taiga-ui/addon-mobile/components/pull-to-refresh/pull-to-refresh.component.ts","ng://@taiga-ui/addon-mobile/components/pull-to-refresh/pull-to-refresh.module.ts","ng://@taiga-ui/addon-mobile/components/pull-to-refresh/taiga-ui-addon-mobile-components-pull-to-refresh.ts"],"sourcesContent":["import {ChangeDetectionStrategy, Component, HostBinding, Input} from '@angular/core';\n\nconst HIDDEN_DISTANCE = 2;\nconst ROTATE_X_DEFAULT = 180;\nconst ROTATE_X_MAX = 500;\nconst ROTATE_X_MULTIPLIER = 2.3;\n\n@Component({\n selector: 'tui-mobile-android-loader',\n templateUrl: './loader-android.template.html',\n styleUrls: ['./loader-android.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TuiMobileLoaderAndroidComponent {\n @Input()\n pulled = 0;\n\n get transform(): string {\n const rotateX = Math.min(\n ROTATE_X_DEFAULT + this.pulled * ROTATE_X_MULTIPLIER,\n ROTATE_X_MAX,\n );\n\n return `rotate(${rotateX} 0 0)`;\n }\n\n @HostBinding('class._hidden')\n get hidden(): boolean {\n return this.pulled < HIDDEN_DISTANCE;\n }\n}\n","import {ChangeDetectionStrategy, Component, Input} from '@angular/core';\nimport {TuiDestroyService} from '@taiga-ui/cdk';\n\nconst LOADED_STEP = 8;\nconst ROTATE_X_STEP = 30;\n\n@Component({\n selector: 'tui-mobile-ios-loader',\n templateUrl: './loader-iOS.template.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [TuiDestroyService],\n})\nexport class TuiMobileLoaderIOSComponent {\n @Input()\n pulled = 0;\n\n readonly steps = 12;\n\n get finished(): boolean {\n return this.pulled >= 100;\n }\n\n isShown(index: number): boolean {\n return this.pulled > (index + 1) * LOADED_STEP;\n }\n\n calculateTransform(index: number): string {\n return `rotate(${index * ROTATE_X_STEP} 50 50)`;\n }\n\n calculateAnimationBegin(index: number): string {\n return `${(index * LOADED_STEP) / 100}s`;\n }\n}\n","import {ElementRef, InjectionToken, Provider} from '@angular/core';\nimport {TUI_LOADED} from '@taiga-ui/addon-mobile/tokens';\nimport {TUI_IS_IOS, typedFromEvent} from '@taiga-ui/cdk';\nimport {merge, Observable} from 'rxjs';\nimport {endWith, filter, map, mapTo, scan, switchMap, takeUntil} from 'rxjs/operators';\n\nexport const MICRO_OFFSET = 10 ** -6;\nexport const PULLED_DISTANCE = 50;\n\nexport const TUI_PULLING = new InjectionToken<Observable<number>>(\n 'Stream that emits content pulling',\n);\n\nexport const TUI_PULL_TO_REFRESH_PROVIDERS: Provider[] = [\n {\n provide: TUI_PULLING,\n deps: [TUI_IS_IOS, TUI_LOADED, ElementRef],\n useFactory: pullingFactory,\n },\n];\n\nexport function pullingFactory(\n isIOS: boolean,\n loaded$: Observable<unknown>,\n {nativeElement}: ElementRef<HTMLElement>,\n): Observable<number> {\n return merge(\n typedFromEvent(nativeElement, 'touchstart', {passive: true}).pipe(\n filter(() => nativeElement.scrollTop === 0),\n switchMap(touchStart =>\n typedFromEvent(nativeElement, 'touchmove').pipe(\n map(\n touchMove =>\n touchMove.touches[0].clientY - touchStart.touches[0].clientY,\n ),\n takeUntil(typedFromEvent(nativeElement, 'touchend')),\n endWith(0),\n ),\n ),\n ),\n loaded$.pipe(mapTo(NaN)),\n ).pipe(\n scan((max, current) => {\n if (isNaN(current)) {\n return 0;\n }\n\n const androidLoading = !isIOS && max === PULLED_DISTANCE;\n const dropped = current === 0 && max > PULLED_DISTANCE;\n\n return androidLoading || dropped ? PULLED_DISTANCE : current + MICRO_OFFSET;\n }, 0),\n );\n}\n","import {ChangeDetectionStrategy, Component, Inject, Output} from '@angular/core';\nimport {TUI_IS_IOS, tuiPure} from '@taiga-ui/cdk';\nimport {Observable, of} from 'rxjs';\nimport {distinctUntilChanged, filter, map, mapTo} from 'rxjs/operators';\n\nimport {\n MICRO_OFFSET,\n PULLED_DISTANCE,\n TUI_PULL_TO_REFRESH_PROVIDERS,\n TUI_PULLING,\n} from './pull-to-refresh.providers';\n\nconst IOS_LOADING_DISTANCE = PULLED_DISTANCE / 2;\nconst ANDROID_MAX_DISTANCE = PULLED_DISTANCE * 1.5;\n\nfunction translateY(distance: number): string {\n return `translateY(${distance}px)`;\n}\n\n@Component({\n selector: 'tui-pull-to-refresh',\n templateUrl: './pull-to-refresh.template.html',\n styleUrls: ['./pull-to-refresh.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [TUI_PULL_TO_REFRESH_PROVIDERS],\n})\nexport class TuiPullToRefreshComponent {\n @Output()\n readonly pulled: Observable<void> = this.pulling$.pipe(\n distinctUntilChanged(),\n filter(distance => distance === PULLED_DISTANCE),\n mapTo(undefined),\n );\n\n readonly pulledInPercent$: Observable<number> = this.pulling$.pipe(\n map(distance => (distance * 100) / PULLED_DISTANCE),\n );\n\n readonly dropped$: Observable<boolean> = this.pulling$.pipe(\n map(distance => distance <= MICRO_OFFSET || distance === PULLED_DISTANCE),\n distinctUntilChanged(),\n );\n\n readonly contentTransform$: Observable<string | null> = this.isIOS\n ? this.pulling$.pipe(\n map(distance =>\n distance === PULLED_DISTANCE ? IOS_LOADING_DISTANCE : distance,\n ),\n map(translateY),\n )\n : of(null);\n\n constructor(\n @Inject(TUI_IS_IOS) readonly isIOS: boolean,\n @Inject(TUI_PULLING) private readonly pulling$: Observable<number>,\n ) {}\n\n @tuiPure\n get loaderTransform$(): Observable<string> {\n return this.pulling$.pipe(\n map(distance => translateY(Math.min(distance, ANDROID_MAX_DISTANCE))),\n );\n }\n}\n","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {TuiOverscrollModule, TuiRepeatTimesModule} from '@taiga-ui/cdk';\nimport {TuiSvgModule} from '@taiga-ui/core';\n\nimport {TuiMobileLoaderAndroidComponent} from './loader-android/loader-android.component';\nimport {TuiMobileLoaderIOSComponent} from './loader-iOS/loader-iOS.component';\nimport {TuiPullToRefreshComponent} from './pull-to-refresh.component';\n\n@NgModule({\n imports: [CommonModule, TuiSvgModule, TuiOverscrollModule, TuiRepeatTimesModule],\n declarations: [\n TuiPullToRefreshComponent,\n TuiMobileLoaderAndroidComponent,\n TuiMobileLoaderIOSComponent,\n ],\n exports: [TuiPullToRefreshComponent],\n})\nexport class TuiPullToRefreshModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -4,7 +4,7 @@ import { typedFromEvent, tuiZoneOptimized, getElementOffset, TuiDestroyService }
4
4
  import { WINDOW } from '@ng-web-apis/common';
5
5
  import { SCROLL_REF_SELECTOR, TUI_SCROLL_REF } from '@taiga-ui/core';
6
6
  import { Observable } from 'rxjs';
7
- import { take, switchMap, map, startWith, distinctUntilChanged, takeUntil, skip } from 'rxjs/operators';
7
+ import { take, switchMap, map, startWith, distinctUntilChanged, skip, takeUntil } from 'rxjs/operators';
8
8
 
9
9
  // @dynamic
10
10
  var TuiElasticStickyService = /** @class */ (function (_super) {
@@ -26,7 +26,7 @@ var TuiElasticStickyService = /** @class */ (function (_super) {
26
26
  : windowRef.pageYOffset) - offsetTop, 0) /
27
27
  offsetHeight, 0);
28
28
  }));
29
- }), startWith(1), distinctUntilChanged(), takeUntil(destroy$), skip(1), tuiZoneOptimized(ngZone))
29
+ }), startWith(1), distinctUntilChanged(), skip(1), tuiZoneOptimized(ngZone), takeUntil(destroy$))
30
30
  .subscribe(subscriber);
31
31
  }) || this;
32
32
  return _this;
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-addon-mobile-directives-elastic-sticky.js","sources":["ng://@taiga-ui/addon-mobile/directives/elastic-sticky/elastic-sticky.service.ts","ng://@taiga-ui/addon-mobile/directives/elastic-sticky/elastic-sticky.directive.ts","ng://@taiga-ui/addon-mobile/directives/elastic-sticky/elastic-sticky.module.ts","ng://@taiga-ui/addon-mobile/directives/elastic-sticky/taiga-ui-addon-mobile-directives-elastic-sticky.ts"],"sourcesContent":["import {ElementRef, Inject, Injectable, NgZone, Optional} from '@angular/core';\nimport {WINDOW} from '@ng-web-apis/common';\nimport {\n getElementOffset,\n TuiDestroyService,\n tuiZoneOptimized,\n typedFromEvent,\n} from '@taiga-ui/cdk';\nimport {SCROLL_REF_SELECTOR, TUI_SCROLL_REF} from '@taiga-ui/core';\nimport {Observable} from 'rxjs';\nimport {\n distinctUntilChanged,\n map,\n skip,\n startWith,\n switchMap,\n take,\n takeUntil,\n} from 'rxjs/operators';\n\n// @dynamic\n@Injectable()\nexport class TuiElasticStickyService extends Observable<number> {\n constructor(\n @Optional()\n @Inject(TUI_SCROLL_REF)\n scrollRef: ElementRef<HTMLElement> | null,\n @Inject(ElementRef) {nativeElement}: ElementRef<HTMLElement>,\n @Inject(NgZone) ngZone: NgZone,\n @Inject(WINDOW) windowRef: Window,\n @Inject(TuiDestroyService) destroy$: TuiDestroyService,\n ) {\n super(subscriber =>\n ngZone.onStable\n .pipe(\n take(1),\n switchMap(() => {\n const closest = nativeElement.closest(SCROLL_REF_SELECTOR);\n const host = scrollRef?.nativeElement ?? closest;\n const {offsetHeight} = nativeElement;\n const offsetTop = this.getInitialOffset(\n host || windowRef,\n nativeElement,\n );\n\n return typedFromEvent(host || windowRef, 'scroll').pipe(\n map(() =>\n Math.max(\n 1 -\n Math.max(\n Math.round(\n host\n ? host.scrollTop\n : windowRef.pageYOffset,\n ) - offsetTop,\n 0,\n ) /\n offsetHeight,\n 0,\n ),\n ),\n );\n }),\n startWith(1),\n distinctUntilChanged(),\n takeUntil(destroy$),\n skip(1),\n tuiZoneOptimized(ngZone),\n )\n .subscribe(subscriber),\n );\n }\n\n private getInitialOffset(host: Element | Window, element: HTMLElement): number {\n // TODO: iframe warning\n return host instanceof Element\n ? getElementOffset(host, element).offsetTop\n : element.getBoundingClientRect().top;\n }\n}\n","import {Directive, Inject, Output} from '@angular/core';\nimport {TuiDestroyService} from '@taiga-ui/cdk';\nimport {Observable} from 'rxjs';\n\nimport {TuiElasticStickyService} from './elastic-sticky.service';\n\n@Directive({\n selector: '[tuiElasticSticky]',\n exportAs: 'tuiElasticSticky',\n providers: [TuiElasticStickyService, TuiDestroyService],\n})\nexport class TuiElasticStickyDirective {\n @Output()\n readonly tuiElasticSticky: Observable<number>;\n\n constructor(\n @Inject(TuiElasticStickyService) elasticStickyService: TuiElasticStickyService,\n ) {\n this.tuiElasticSticky = elasticStickyService;\n }\n}\n","import {NgModule} from '@angular/core';\n\nimport {TuiElasticStickyDirective} from './elastic-sticky.directive';\n\n@NgModule({\n declarations: [TuiElasticStickyDirective],\n exports: [TuiElasticStickyDirective],\n})\nexport class TuiElasticStickyModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"taiga-ui-addon-mobile-directives-elastic-sticky.js","sources":["ng://@taiga-ui/addon-mobile/directives/elastic-sticky/elastic-sticky.service.ts","ng://@taiga-ui/addon-mobile/directives/elastic-sticky/elastic-sticky.directive.ts","ng://@taiga-ui/addon-mobile/directives/elastic-sticky/elastic-sticky.module.ts","ng://@taiga-ui/addon-mobile/directives/elastic-sticky/taiga-ui-addon-mobile-directives-elastic-sticky.ts"],"sourcesContent":["import {ElementRef, Inject, Injectable, NgZone, Optional} from '@angular/core';\nimport {WINDOW} from '@ng-web-apis/common';\nimport {\n getElementOffset,\n TuiDestroyService,\n tuiZoneOptimized,\n typedFromEvent,\n} from '@taiga-ui/cdk';\nimport {SCROLL_REF_SELECTOR, TUI_SCROLL_REF} from '@taiga-ui/core';\nimport {Observable} from 'rxjs';\nimport {\n distinctUntilChanged,\n map,\n skip,\n startWith,\n switchMap,\n take,\n takeUntil,\n} from 'rxjs/operators';\n\n// @dynamic\n@Injectable()\nexport class TuiElasticStickyService extends Observable<number> {\n constructor(\n @Optional()\n @Inject(TUI_SCROLL_REF)\n scrollRef: ElementRef<HTMLElement> | null,\n @Inject(ElementRef) {nativeElement}: ElementRef<HTMLElement>,\n @Inject(NgZone) ngZone: NgZone,\n @Inject(WINDOW) windowRef: Window,\n @Inject(TuiDestroyService) destroy$: TuiDestroyService,\n ) {\n super(subscriber =>\n ngZone.onStable\n .pipe(\n take(1),\n switchMap(() => {\n const closest = nativeElement.closest(SCROLL_REF_SELECTOR);\n const host = scrollRef?.nativeElement ?? closest;\n const {offsetHeight} = nativeElement;\n const offsetTop = this.getInitialOffset(\n host || windowRef,\n nativeElement,\n );\n\n return typedFromEvent(host || windowRef, 'scroll').pipe(\n map(() =>\n Math.max(\n 1 -\n Math.max(\n Math.round(\n host\n ? host.scrollTop\n : windowRef.pageYOffset,\n ) - offsetTop,\n 0,\n ) /\n offsetHeight,\n 0,\n ),\n ),\n );\n }),\n startWith(1),\n distinctUntilChanged(),\n skip(1),\n tuiZoneOptimized(ngZone),\n takeUntil(destroy$),\n )\n .subscribe(subscriber),\n );\n }\n\n private getInitialOffset(host: Element | Window, element: HTMLElement): number {\n // TODO: iframe warning\n return host instanceof Element\n ? getElementOffset(host, element).offsetTop\n : element.getBoundingClientRect().top;\n }\n}\n","import {Directive, Inject, Output} from '@angular/core';\nimport {TuiDestroyService} from '@taiga-ui/cdk';\nimport {Observable} from 'rxjs';\n\nimport {TuiElasticStickyService} from './elastic-sticky.service';\n\n@Directive({\n selector: '[tuiElasticSticky]',\n exportAs: 'tuiElasticSticky',\n providers: [TuiElasticStickyService, TuiDestroyService],\n})\nexport class TuiElasticStickyDirective {\n @Output()\n readonly tuiElasticSticky: Observable<number>;\n\n constructor(\n @Inject(TuiElasticStickyService) elasticStickyService: TuiElasticStickyService,\n ) {\n this.tuiElasticSticky = elasticStickyService;\n }\n}\n","import {NgModule} from '@angular/core';\n\nimport {TuiElasticStickyDirective} from './elastic-sticky.directive';\n\n@NgModule({\n declarations: [TuiElasticStickyDirective],\n exports: [TuiElasticStickyDirective],\n})\nexport class TuiElasticStickyModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -67,7 +67,9 @@ var TuiRippleDirective = /** @class */ (function () {
67
67
  start$
68
68
  .pipe(mergeMap(function (ripple) {
69
69
  var animationEndOn$ = typedFromEvent(ripple, 'animationend');
70
- return race(timer(TOUCH_MOVE_DELAY).pipe(mapTo(false)), touchEnd$.pipe(mapTo(true))).pipe(take(1), takeUntil(touchMove$), tap(function () {
70
+ return race(timer(TOUCH_MOVE_DELAY).pipe(mapTo(false)), touchEnd$.pipe(mapTo(true))).pipe(take(1),
71
+ // eslint-disable-next-line rxjs/no-unsafe-takeuntil
72
+ takeUntil(touchMove$), tap(function () {
71
73
  renderer.setStyle(ripple, 'background', _this.tuiRipple || null);
72
74
  renderer.appendChild(nativeElement, ripple);
73
75
  }), switchMap(function (isTap) {
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-addon-mobile-directives-ripple.js","sources":["ng://@taiga-ui/addon-mobile/directives/ripple/ripple.providers.ts","ng://@taiga-ui/addon-mobile/directives/ripple/ripple.directive.ts","ng://@taiga-ui/addon-mobile/directives/ripple/ripple.module.ts","ng://@taiga-ui/addon-mobile/directives/ripple/taiga-ui-addon-mobile-directives-ripple.ts"],"sourcesContent":["import {ElementRef, InjectionToken, Provider, Renderer2} from '@angular/core';\nimport {\n isPresent,\n TUI_IS_IOS,\n TUI_TOUCH_SUPPORTED,\n TuiDestroyService,\n typedFromEvent,\n} from '@taiga-ui/cdk';\nimport {EMPTY, Observable} from 'rxjs';\nimport {filter, map, takeUntil} from 'rxjs/operators';\n\nexport const RIPPLE_ON = 'tuiRippleOn';\nexport const RIPPLE_OFF = 'tuiRippleOff';\nexport const TUI_RIPPLE_START = new InjectionToken<Observable<HTMLElement>>(\n 'Stream of ripple elements to add',\n);\nexport const TUI_RIPPLE_END = new InjectionToken<Observable<HTMLElement>>(\n 'Stream of ripple elements to remove',\n);\nexport const TUI_RIPPLE_PROVIDERS: Provider[] = [\n TuiDestroyService,\n {\n provide: TUI_RIPPLE_START,\n deps: [TUI_TOUCH_SUPPORTED, TUI_IS_IOS, ElementRef, Renderer2],\n useFactory: rippleStartFactory,\n },\n {\n provide: TUI_RIPPLE_END,\n deps: [TUI_TOUCH_SUPPORTED, TUI_IS_IOS, ElementRef, TuiDestroyService],\n useFactory: rippleEndFactory,\n },\n];\n\nexport function rippleStartFactory(\n touchSupported: boolean,\n isIOS: boolean,\n {nativeElement}: ElementRef<HTMLElement>,\n renderer: Renderer2,\n): Observable<HTMLElement> {\n return isIOS || !touchSupported\n ? EMPTY\n : typedFromEvent(nativeElement, 'touchstart').pipe(\n map(({touches}) => {\n const {clientX, clientY} = touches[touches.length - 1];\n const {width, height, top, left} =\n nativeElement.getBoundingClientRect();\n const radius = Math.sqrt(width * width + height * height);\n const dimension = radius * 2;\n const x = clientX - left - radius;\n const y = clientY - top - radius;\n const ripple = renderer.createElement('div');\n\n renderer.addClass(ripple, 'tui-ripple');\n renderer.setAttribute(\n ripple,\n 'style',\n `\n width: ${dimension}px;\n height: ${dimension}px;\n left: ${x}px;\n top: ${y}px;\n animation-name: ${RIPPLE_ON};\n `,\n );\n\n return ripple;\n }),\n );\n}\n\nexport function rippleEndFactory(\n touchSupported: boolean,\n isIOS: boolean,\n {nativeElement}: ElementRef<HTMLElement>,\n destroy$: Observable<void>,\n): Observable<EventTarget> {\n return isIOS || !touchSupported\n ? EMPTY\n : typedFromEvent(nativeElement, 'animationend').pipe(\n filter(({animationName}) => animationName === RIPPLE_OFF),\n map(({target}) => target),\n filter(isPresent),\n takeUntil(destroy$),\n );\n}\n","import {Directive, ElementRef, Inject, Input, Renderer2} from '@angular/core';\nimport {\n TuiDestroyService,\n TuiDirectiveStylesService,\n typedFromEvent,\n} from '@taiga-ui/cdk';\nimport {Observable, race, timer} from 'rxjs';\nimport {\n mapTo,\n mergeMap,\n switchMap,\n switchMapTo,\n take,\n takeUntil,\n tap,\n} from 'rxjs/operators';\n\nimport {\n RIPPLE_OFF,\n RIPPLE_ON,\n TUI_RIPPLE_END,\n TUI_RIPPLE_PROVIDERS,\n TUI_RIPPLE_START,\n} from './ripple.providers';\n\nconst TOUCH_MOVE_DELAY = 100;\nconst STYLE = `\n@keyframes ${RIPPLE_ON} {\n from {\n transform: scale(0);\n opacity: 0.12;\n }\n\n to {\n transform: none;\n opacity: 0.12;\n }\n}\n\n@keyframes ${RIPPLE_OFF} {\n from {\n transform: none;\n opacity: 0.12;\n }\n\n to {\n transform: none;\n opacity: 0;\n }\n}\n\n*[tuiRipple] {\n position: relative;\n overflow: hidden;\n}\n\n.tui-ripple {\n position: absolute;\n border-radius: 100%;\n background: currentColor;\n z-index: 100;\n transform: scale(0);\n animation-duration: 450ms;\n animation-fill-mode: forwards;\n pointer-events: none;\n}\n`;\n\n@Directive({\n selector: '[tuiRipple]',\n providers: TUI_RIPPLE_PROVIDERS,\n})\nexport class TuiRippleDirective {\n @Input()\n tuiRipple?: string;\n\n constructor(\n @Inject(ElementRef) {nativeElement}: ElementRef<HTMLElement>,\n @Inject(TuiDirectiveStylesService) directiveStyles: TuiDirectiveStylesService,\n @Inject(Renderer2) renderer: Renderer2,\n @Inject(TuiDestroyService) destroy$: TuiDestroyService,\n @Inject(TUI_RIPPLE_START) start$: Observable<HTMLElement>,\n @Inject(TUI_RIPPLE_END) end$: Observable<EventTarget>,\n ) {\n directiveStyles.addStyle(STYLE, 'TuiRippleDirective');\n\n const touchEnd$ = typedFromEvent(nativeElement, 'touchend');\n const touchMove$ = typedFromEvent(nativeElement, 'touchmove');\n\n end$.subscribe(element => {\n renderer.removeChild(nativeElement, element);\n });\n start$\n .pipe(\n mergeMap(ripple => {\n const animationEndOn$ = typedFromEvent(ripple, 'animationend');\n\n return race(\n timer(TOUCH_MOVE_DELAY).pipe(mapTo(false)),\n touchEnd$.pipe(mapTo(true)),\n ).pipe(\n take(1),\n takeUntil(touchMove$),\n tap(() => {\n renderer.setStyle(\n ripple,\n 'background',\n this.tuiRipple || null,\n );\n renderer.appendChild(nativeElement, ripple);\n }),\n switchMap(isTap =>\n isTap\n ? animationEndOn$\n : race<unknown>(\n touchEnd$.pipe(switchMapTo(animationEndOn$)),\n animationEndOn$.pipe(switchMapTo(touchEnd$)),\n ),\n ),\n mapTo(ripple),\n );\n }),\n takeUntil(destroy$),\n )\n .subscribe(element => {\n renderer.setStyle(element, 'animationName', RIPPLE_OFF);\n });\n }\n}\n","import {NgModule} from '@angular/core';\n\nimport {TuiRippleDirective} from './ripple.directive';\n\n@NgModule({\n declarations: [TuiRippleDirective],\n exports: [TuiRippleDirective],\n})\nexport class TuiRippleModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;IAWa,SAAS,GAAG,cAAc;IAC1B,UAAU,GAAG,eAAe;IAC5B,gBAAgB,GAAG,IAAI,cAAc,CAC9C,kCAAkC,EACpC;IACW,cAAc,GAAG,IAAI,cAAc,CAC5C,qCAAqC,EACvC;IACW,oBAAoB,GAAe;IAC5C,iBAAiB;IACjB;QACI,OAAO,EAAE,gBAAgB;QACzB,IAAI,EAAE,CAAC,mBAAmB,EAAE,UAAU,EAAE,UAAU,EAAE,SAAS,CAAC;QAC9D,UAAU,EAAE,kBAAkB;KACjC;IACD;QACI,OAAO,EAAE,cAAc;QACvB,IAAI,EAAE,CAAC,mBAAmB,EAAE,UAAU,EAAE,UAAU,EAAE,iBAAiB,CAAC;QACtE,UAAU,EAAE,gBAAgB;KAC/B;EACH;SAEc,kBAAkB,CAC9B,cAAuB,EACvB,KAAc,EACd,EAAwC,EACxC,QAAmB;QADlB,gCAAa;IAGd,OAAO,KAAK,IAAI,CAAC,cAAc;UACzB,KAAK;UACL,cAAc,CAAC,aAAa,EAAE,YAAY,CAAC,CAAC,IAAI,CAC5C,GAAG,CAAC,UAAC,EAAS;gBAAR,oBAAO;YACH,IAAA,gCAAgD,EAA/C,oBAAO,EAAE,oBAAsC,CAAC;YACjD,IAAA,0CACmC,EADlC,gBAAK,EAAE,kBAAM,EAAE,YAAG,EAAE,cACc,CAAC;YAC1C,IAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,KAAK,GAAG,MAAM,GAAG,MAAM,CAAC,CAAC;YAC1D,IAAM,SAAS,GAAG,MAAM,GAAG,CAAC,CAAC;YAC7B,IAAM,CAAC,GAAG,OAAO,GAAG,IAAI,GAAG,MAAM,CAAC;YAClC,IAAM,CAAC,GAAG,OAAO,GAAG,GAAG,GAAG,MAAM,CAAC;YACjC,IAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;YAE7C,QAAQ,CAAC,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;YACxC,QAAQ,CAAC,YAAY,CACjB,MAAM,EACN,OAAO,EACP,sCACW,SAAS,6CACR,SAAS,2CACX,CAAC,0CACF,CAAC,qDACU,SAAS,4BAC9B,CACF,CAAC;YAEF,OAAO,MAAM,CAAC;SACjB,CAAC,CACL,CAAC;AACZ,CAAC;SAEe,gBAAgB,CAC5B,cAAuB,EACvB,KAAc,EACd,EAAwC,EACxC,QAA0B;QADzB,gCAAa;IAGd,OAAO,KAAK,IAAI,CAAC,cAAc;UACzB,KAAK;UACL,cAAc,CAAC,aAAa,EAAE,cAAc,CAAC,CAAC,IAAI,CAC9C,MAAM,CAAC,UAAC,EAAe;gBAAd,gCAAa;YAAM,OAAA,aAAa,KAAK,UAAU;SAAA,CAAC,EACzD,GAAG,CAAC,UAAC,EAAQ;gBAAP,kBAAM;YAAM,OAAA,MAAM;SAAA,CAAC,EACzB,MAAM,CAAC,SAAS,CAAC,EACjB,SAAS,CAAC,QAAQ,CAAC,CACtB,CAAC;AACZ;;AC3DA,IAAM,gBAAgB,GAAG,GAAG,CAAC;AAC7B,IAAM,KAAK,GAAG,kBACD,SAAS,0KAYT,UAAU,0cA2BtB,CAAC;;IAUE,4BACwB,EAAwC,EACzB,eAA0C,EAC1D,QAAmB,EACX,QAA2B,EAC5B,MAA+B,EACjC,IAA6B;QANzD,iBAmDC;YAlDwB,gCAAa;QAOlC,eAAe,CAAC,QAAQ,CAAC,KAAK,EAAE,oBAAoB,CAAC,CAAC;QAEtD,IAAM,SAAS,GAAG,cAAc,CAAC,aAAa,EAAE,UAAU,CAAC,CAAC;QAC5D,IAAM,UAAU,GAAG,cAAc,CAAC,aAAa,EAAE,WAAW,CAAC,CAAC;QAE9D,IAAI,CAAC,SAAS,CAAC,UAAA,OAAO;YAClB,QAAQ,CAAC,WAAW,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;SAChD,CAAC,CAAC;QACH,MAAM;aACD,IAAI,CACD,QAAQ,CAAC,UAAA,MAAM;YACX,IAAM,eAAe,GAAG,cAAc,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;YAE/D,OAAO,IAAI,CACP,KAAK,CAAC,gBAAgB,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAC1C,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAC9B,CAAC,IAAI,CACF,IAAI,CAAC,CAAC,CAAC,EACP,SAAS,CAAC,UAAU,CAAC,EACrB,GAAG,CAAC;gBACA,QAAQ,CAAC,QAAQ,CACb,MAAM,EACN,YAAY,EACZ,KAAI,CAAC,SAAS,IAAI,IAAI,CACzB,CAAC;gBACF,QAAQ,CAAC,WAAW,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;aAC/C,CAAC,EACF,SAAS,CAAC,UAAA,KAAK;gBACX,OAAA,KAAK;sBACC,eAAe;sBACf,IAAI,CACA,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC,EAC5C,eAAe,CAAC,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,CAC/C;aAAA,CACV,EACD,KAAK,CAAC,MAAM,CAAC,CAChB,CAAC;SACL,CAAC,EACF,SAAS,CAAC,QAAQ,CAAC,CACtB;aACA,SAAS,CAAC,UAAA,OAAO;YACd,QAAQ,CAAC,QAAQ,CAAC,OAAO,EAAE,eAAe,EAAE,UAAU,CAAC,CAAC;SAC3D,CAAC,CAAC;KACV;;gBAlDwC,UAAU,uBAA9C,MAAM,SAAC,UAAU;gBACkC,yBAAyB,uBAA5E,MAAM,SAAC,yBAAyB;gBACJ,SAAS,uBAArC,MAAM,SAAC,SAAS;gBACoB,iBAAiB,uBAArD,MAAM,SAAC,iBAAiB;gBACS,UAAU,uBAA3C,MAAM,SAAC,gBAAgB;gBACM,UAAU,uBAAvC,MAAM,SAAC,cAAc;;IAR1B;QADC,KAAK,EAAE;yDACW;IAFV,kBAAkB;QAJ9B,SAAS,CAAC;YACP,QAAQ,EAAE,aAAa;YACvB,SAAS,EAAE,oBAAoB;SAClC,CAAC;QAMO,WAAA,MAAM,CAAC,UAAU,CAAC,CAAA;QAClB,WAAA,MAAM,CAAC,yBAAyB,CAAC,CAAA;QACjC,WAAA,MAAM,CAAC,SAAS,CAAC,CAAA;QACjB,WAAA,MAAM,CAAC,iBAAiB,CAAC,CAAA;QACzB,WAAA,MAAM,CAAC,gBAAgB,CAAC,CAAA;QACxB,WAAA,MAAM,CAAC,cAAc,CAAC,CAAA;OAVlB,kBAAkB,CAwD9B;IAAD,yBAAC;CAxDD;;;IChEA;KAA+B;IAAlB,eAAe;QAJ3B,QAAQ,CAAC;YACN,YAAY,EAAE,CAAC,kBAAkB,CAAC;YAClC,OAAO,EAAE,CAAC,kBAAkB,CAAC;SAChC,CAAC;OACW,eAAe,CAAG;IAAD,sBAAC;CAA/B;;ACRA;;;;;;"}
1
+ {"version":3,"file":"taiga-ui-addon-mobile-directives-ripple.js","sources":["ng://@taiga-ui/addon-mobile/directives/ripple/ripple.providers.ts","ng://@taiga-ui/addon-mobile/directives/ripple/ripple.directive.ts","ng://@taiga-ui/addon-mobile/directives/ripple/ripple.module.ts","ng://@taiga-ui/addon-mobile/directives/ripple/taiga-ui-addon-mobile-directives-ripple.ts"],"sourcesContent":["import {ElementRef, InjectionToken, Provider, Renderer2} from '@angular/core';\nimport {\n isPresent,\n TUI_IS_IOS,\n TUI_TOUCH_SUPPORTED,\n TuiDestroyService,\n typedFromEvent,\n} from '@taiga-ui/cdk';\nimport {EMPTY, Observable} from 'rxjs';\nimport {filter, map, takeUntil} from 'rxjs/operators';\n\nexport const RIPPLE_ON = 'tuiRippleOn';\nexport const RIPPLE_OFF = 'tuiRippleOff';\nexport const TUI_RIPPLE_START = new InjectionToken<Observable<HTMLElement>>(\n 'Stream of ripple elements to add',\n);\nexport const TUI_RIPPLE_END = new InjectionToken<Observable<HTMLElement>>(\n 'Stream of ripple elements to remove',\n);\nexport const TUI_RIPPLE_PROVIDERS: Provider[] = [\n TuiDestroyService,\n {\n provide: TUI_RIPPLE_START,\n deps: [TUI_TOUCH_SUPPORTED, TUI_IS_IOS, ElementRef, Renderer2],\n useFactory: rippleStartFactory,\n },\n {\n provide: TUI_RIPPLE_END,\n deps: [TUI_TOUCH_SUPPORTED, TUI_IS_IOS, ElementRef, TuiDestroyService],\n useFactory: rippleEndFactory,\n },\n];\n\nexport function rippleStartFactory(\n touchSupported: boolean,\n isIOS: boolean,\n {nativeElement}: ElementRef<HTMLElement>,\n renderer: Renderer2,\n): Observable<HTMLElement> {\n return isIOS || !touchSupported\n ? EMPTY\n : typedFromEvent(nativeElement, 'touchstart').pipe(\n map(({touches}) => {\n const {clientX, clientY} = touches[touches.length - 1];\n const {width, height, top, left} =\n nativeElement.getBoundingClientRect();\n const radius = Math.sqrt(width * width + height * height);\n const dimension = radius * 2;\n const x = clientX - left - radius;\n const y = clientY - top - radius;\n const ripple = renderer.createElement('div');\n\n renderer.addClass(ripple, 'tui-ripple');\n renderer.setAttribute(\n ripple,\n 'style',\n `\n width: ${dimension}px;\n height: ${dimension}px;\n left: ${x}px;\n top: ${y}px;\n animation-name: ${RIPPLE_ON};\n `,\n );\n\n return ripple;\n }),\n );\n}\n\nexport function rippleEndFactory(\n touchSupported: boolean,\n isIOS: boolean,\n {nativeElement}: ElementRef<HTMLElement>,\n destroy$: Observable<void>,\n): Observable<EventTarget> {\n return isIOS || !touchSupported\n ? EMPTY\n : typedFromEvent(nativeElement, 'animationend').pipe(\n filter(({animationName}) => animationName === RIPPLE_OFF),\n map(({target}) => target),\n filter(isPresent),\n takeUntil(destroy$),\n );\n}\n","import {Directive, ElementRef, Inject, Input, Renderer2} from '@angular/core';\nimport {\n TuiDestroyService,\n TuiDirectiveStylesService,\n typedFromEvent,\n} from '@taiga-ui/cdk';\nimport {Observable, race, timer} from 'rxjs';\nimport {\n mapTo,\n mergeMap,\n switchMap,\n switchMapTo,\n take,\n takeUntil,\n tap,\n} from 'rxjs/operators';\n\nimport {\n RIPPLE_OFF,\n RIPPLE_ON,\n TUI_RIPPLE_END,\n TUI_RIPPLE_PROVIDERS,\n TUI_RIPPLE_START,\n} from './ripple.providers';\n\nconst TOUCH_MOVE_DELAY = 100;\nconst STYLE = `\n@keyframes ${RIPPLE_ON} {\n from {\n transform: scale(0);\n opacity: 0.12;\n }\n\n to {\n transform: none;\n opacity: 0.12;\n }\n}\n\n@keyframes ${RIPPLE_OFF} {\n from {\n transform: none;\n opacity: 0.12;\n }\n\n to {\n transform: none;\n opacity: 0;\n }\n}\n\n*[tuiRipple] {\n position: relative;\n overflow: hidden;\n}\n\n.tui-ripple {\n position: absolute;\n border-radius: 100%;\n background: currentColor;\n z-index: 100;\n transform: scale(0);\n animation-duration: 450ms;\n animation-fill-mode: forwards;\n pointer-events: none;\n}\n`;\n\n@Directive({\n selector: '[tuiRipple]',\n providers: TUI_RIPPLE_PROVIDERS,\n})\nexport class TuiRippleDirective {\n @Input()\n tuiRipple?: string;\n\n constructor(\n @Inject(ElementRef) {nativeElement}: ElementRef<HTMLElement>,\n @Inject(TuiDirectiveStylesService) directiveStyles: TuiDirectiveStylesService,\n @Inject(Renderer2) renderer: Renderer2,\n @Inject(TuiDestroyService) destroy$: TuiDestroyService,\n @Inject(TUI_RIPPLE_START) start$: Observable<HTMLElement>,\n @Inject(TUI_RIPPLE_END) end$: Observable<EventTarget>,\n ) {\n directiveStyles.addStyle(STYLE, 'TuiRippleDirective');\n\n const touchEnd$ = typedFromEvent(nativeElement, 'touchend');\n const touchMove$ = typedFromEvent(nativeElement, 'touchmove');\n\n end$.subscribe(element => {\n renderer.removeChild(nativeElement, element);\n });\n start$\n .pipe(\n mergeMap(ripple => {\n const animationEndOn$ = typedFromEvent(ripple, 'animationend');\n\n return race(\n timer(TOUCH_MOVE_DELAY).pipe(mapTo(false)),\n touchEnd$.pipe(mapTo(true)),\n ).pipe(\n take(1),\n // eslint-disable-next-line rxjs/no-unsafe-takeuntil\n takeUntil(touchMove$),\n tap(() => {\n renderer.setStyle(\n ripple,\n 'background',\n this.tuiRipple || null,\n );\n renderer.appendChild(nativeElement, ripple);\n }),\n switchMap(isTap =>\n isTap\n ? animationEndOn$\n : race<unknown>(\n touchEnd$.pipe(switchMapTo(animationEndOn$)),\n animationEndOn$.pipe(switchMapTo(touchEnd$)),\n ),\n ),\n mapTo(ripple),\n );\n }),\n takeUntil(destroy$),\n )\n .subscribe(element => {\n renderer.setStyle(element, 'animationName', RIPPLE_OFF);\n });\n }\n}\n","import {NgModule} from '@angular/core';\n\nimport {TuiRippleDirective} from './ripple.directive';\n\n@NgModule({\n declarations: [TuiRippleDirective],\n exports: [TuiRippleDirective],\n})\nexport class TuiRippleModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-addon-mobile-directives-sidebar.js","sources":["ng://@taiga-ui/addon-mobile/directives/sidebar/sidebar.directive.ts","ng://@taiga-ui/addon-mobile/directives/sidebar/sidebar.component.ts","ng://@taiga-ui/addon-mobile/directives/sidebar/sidebar.module.ts","ng://@taiga-ui/addon-mobile/directives/sidebar/taiga-ui-addon-mobile-directives-sidebar.ts"],"sourcesContent":["import {\n ChangeDetectorRef,\n ComponentFactoryResolver,\n ComponentRef,\n Directive,\n Inject,\n Injector,\n Input,\n OnDestroy,\n TemplateRef,\n} from '@angular/core';\nimport {TuiPortalService} from '@taiga-ui/cdk';\nimport {TuiHorizontalDirection} from '@taiga-ui/core';\nimport {PolymorpheusTemplate} from '@tinkoff/ng-polymorpheus';\n\nimport {TuiSidebarComponent} from './sidebar.component';\n\n@Directive({\n selector: '[tuiSidebar]',\n})\nexport class TuiSidebarDirective extends PolymorpheusTemplate<{}> implements OnDestroy {\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<{}>,\n @Inject(Injector) private readonly injector: Injector,\n @Inject(ComponentFactoryResolver)\n private readonly componentFactoryResolver: ComponentFactoryResolver,\n @Inject(TuiPortalService)\n private readonly portalService: TuiPortalService,\n @Inject(ChangeDetectorRef) changeDetectorRef: ChangeDetectorRef,\n ) {\n super(content, changeDetectorRef);\n }\n\n ngOnDestroy() {\n this.hide();\n }\n\n private show() {\n if (this.sidebarRef !== null) {\n return;\n }\n\n const componentFactory =\n this.componentFactoryResolver.resolveComponentFactory(TuiSidebarComponent);\n\n this.sidebarRef = this.portalService.add(componentFactory, this.injector);\n this.sidebarRef.changeDetectorRef.detectChanges();\n }\n\n private hide() {\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\nimport {TuiSidebarDirective} from './sidebar.directive';\n\n// @dynamic\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 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() {\n this.directive.check();\n }\n}\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 entryComponents: [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":["ng://@taiga-ui/addon-mobile/directives/sidebar/sidebar.directive.ts","ng://@taiga-ui/addon-mobile/directives/sidebar/sidebar.component.ts","ng://@taiga-ui/addon-mobile/directives/sidebar/sidebar.module.ts","ng://@taiga-ui/addon-mobile/directives/sidebar/taiga-ui-addon-mobile-directives-sidebar.ts"],"sourcesContent":["import {\n ChangeDetectorRef,\n ComponentFactoryResolver,\n ComponentRef,\n Directive,\n Inject,\n Injector,\n Input,\n OnDestroy,\n TemplateRef,\n} from '@angular/core';\nimport {TuiPortalService} from '@taiga-ui/cdk';\nimport {TuiHorizontalDirection} from '@taiga-ui/core';\nimport {PolymorpheusTemplate} from '@tinkoff/ng-polymorpheus';\n\nimport {TuiSidebarComponent} from './sidebar.component';\n\n@Directive({\n selector: '[tuiSidebar]',\n})\nexport class TuiSidebarDirective<T = {}>\n extends PolymorpheusTemplate<T>\n implements OnDestroy\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(ComponentFactoryResolver)\n private readonly componentFactoryResolver: ComponentFactoryResolver,\n @Inject(TuiPortalService)\n private readonly portalService: TuiPortalService,\n @Inject(ChangeDetectorRef) changeDetectorRef: ChangeDetectorRef,\n ) {\n super(content, changeDetectorRef);\n }\n\n ngOnDestroy() {\n this.hide();\n }\n\n private show() {\n if (this.sidebarRef !== null) {\n return;\n }\n\n const componentFactory =\n this.componentFactoryResolver.resolveComponentFactory(TuiSidebarComponent);\n\n this.sidebarRef = this.portalService.add(componentFactory, this.injector);\n this.sidebarRef.changeDetectorRef.detectChanges();\n }\n\n private hide() {\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\nimport {TuiSidebarDirective} from './sidebar.directive';\n\n// @dynamic\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 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() {\n this.directive.check();\n }\n}\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 entryComponents: [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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"}
package/package.json CHANGED
@@ -1,24 +1,24 @@
1
1
  {
2
2
  "name": "@taiga-ui/addon-mobile",
3
- "version": "2.41.0",
3
+ "version": "2.43.0",
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",
7
7
  "component",
8
8
  "mobile"
9
9
  ],
10
- "license": "Apache-2.0",
11
- "repository": "https://github.com/tinkoff/taiga-ui",
12
10
  "homepage": "https://github.com/tinkoff/taiga-ui",
11
+ "repository": "https://github.com/tinkoff/taiga-ui",
12
+ "license": "Apache-2.0",
13
13
  "peerDependencies": {
14
14
  "@angular/cdk": ">=9.0.0",
15
15
  "@angular/common": ">=9.0.0",
16
16
  "@angular/core": ">=9.0.0",
17
17
  "@ng-web-apis/common": ">=1.12.1 < 2",
18
+ "@taiga-ui/cdk": ">=2.43.0",
19
+ "@taiga-ui/core": ">=2.43.0",
20
+ "@taiga-ui/kit": ">=2.43.0",
18
21
  "@tinkoff/ng-polymorpheus": ">=3.1.12 < 4",
19
- "@taiga-ui/cdk": ">=2.41.0",
20
- "@taiga-ui/core": ">=2.41.0",
21
- "@taiga-ui/kit": ">=2.41.0",
22
22
  "rxjs": ">=6.0.0"
23
23
  },
24
24
  "main": "bundles/taiga-ui-addon-mobile.umd.js",