@taiga-ui/addon-mobile 2.25.0 → 2.28.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 (56) hide show
  1. package/bundles/taiga-ui-addon-mobile-components-mobile-calendar.umd.js +10 -10
  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-sheet.umd.js +19 -15
  6. package/bundles/taiga-ui-addon-mobile-components-sheet.umd.js.map +1 -1
  7. package/bundles/taiga-ui-addon-mobile-components-sheet.umd.min.js +1 -1
  8. package/bundles/taiga-ui-addon-mobile-components-sheet.umd.min.js.map +1 -1
  9. package/bundles/taiga-ui-addon-mobile-directives-ripple.umd.js +6 -6
  10. package/bundles/taiga-ui-addon-mobile-directives-ripple.umd.js.map +1 -1
  11. package/bundles/taiga-ui-addon-mobile-directives-ripple.umd.min.js +1 -1
  12. package/bundles/taiga-ui-addon-mobile-directives-ripple.umd.min.js.map +1 -1
  13. package/bundles/taiga-ui-addon-mobile-directives-sidebar.umd.js +1 -1
  14. package/bundles/taiga-ui-addon-mobile-directives-sidebar.umd.js.map +1 -1
  15. package/bundles/taiga-ui-addon-mobile-directives-sidebar.umd.min.js +1 -1
  16. package/bundles/taiga-ui-addon-mobile-directives-sidebar.umd.min.js.map +1 -1
  17. package/components/mobile-calendar/mobile-calendar.component.d.ts +7 -7
  18. package/components/mobile-calendar/taiga-ui-addon-mobile-components-mobile-calendar.metadata.json +1 -1
  19. package/components/sheet/components/sheet/sheet.component.d.ts +4 -4
  20. package/components/sheet/directives/sheet-close/sheet-close.directive.d.ts +3 -2
  21. package/components/sheet/directives/sheet-wrapper/sheet-wrapper.directive.d.ts +1 -1
  22. package/components/sheet/taiga-ui-addon-mobile-components-sheet.metadata.json +1 -1
  23. package/directives/ripple/ripple.providers.d.ts +2 -2
  24. package/directives/ripple/taiga-ui-addon-mobile-directives-ripple.metadata.json +1 -1
  25. package/directives/sidebar/sidebar.directive.d.ts +1 -1
  26. package/directives/sidebar/taiga-ui-addon-mobile-directives-sidebar.metadata.json +1 -1
  27. package/esm2015/components/mobile-calendar/mobile-calendar.component.js +11 -11
  28. package/esm2015/components/sheet/components/sheet/sheet.component.js +10 -9
  29. package/esm2015/components/sheet/directives/sheet-close/sheet-close.directive.js +14 -11
  30. package/esm2015/components/sheet/directives/sheet-wrapper/sheet-wrapper.directive.js +1 -1
  31. package/esm2015/directives/ripple/ripple.providers.js +8 -8
  32. package/esm2015/directives/sidebar/sidebar.directive.js +2 -2
  33. package/esm5/components/mobile-calendar/mobile-calendar.component.js +11 -11
  34. package/esm5/components/sheet/components/sheet/sheet.component.js +10 -9
  35. package/esm5/components/sheet/directives/sheet-close/sheet-close.directive.js +14 -11
  36. package/esm5/components/sheet/directives/sheet-wrapper/sheet-wrapper.directive.js +1 -1
  37. package/esm5/directives/ripple/ripple.providers.js +8 -8
  38. package/esm5/directives/sidebar/sidebar.directive.js +2 -2
  39. package/fesm2015/taiga-ui-addon-mobile-components-mobile-calendar.js +12 -12
  40. package/fesm2015/taiga-ui-addon-mobile-components-mobile-calendar.js.map +1 -1
  41. package/fesm2015/taiga-ui-addon-mobile-components-sheet.js +20 -16
  42. package/fesm2015/taiga-ui-addon-mobile-components-sheet.js.map +1 -1
  43. package/fesm2015/taiga-ui-addon-mobile-directives-ripple.js +7 -7
  44. package/fesm2015/taiga-ui-addon-mobile-directives-ripple.js.map +1 -1
  45. package/fesm2015/taiga-ui-addon-mobile-directives-sidebar.js +1 -1
  46. package/fesm2015/taiga-ui-addon-mobile-directives-sidebar.js.map +1 -1
  47. package/fesm5/taiga-ui-addon-mobile-components-mobile-calendar.js +12 -12
  48. package/fesm5/taiga-ui-addon-mobile-components-mobile-calendar.js.map +1 -1
  49. package/fesm5/taiga-ui-addon-mobile-components-sheet.js +20 -16
  50. package/fesm5/taiga-ui-addon-mobile-components-sheet.js.map +1 -1
  51. package/fesm5/taiga-ui-addon-mobile-directives-ripple.js +7 -7
  52. package/fesm5/taiga-ui-addon-mobile-directives-ripple.js.map +1 -1
  53. package/fesm5/taiga-ui-addon-mobile-directives-sidebar.js +1 -1
  54. package/fesm5/taiga-ui-addon-mobile-directives-sidebar.js.map +1 -1
  55. package/package.json +5 -4
  56. package/styles/tinkoff-ui-angular-mobile.less +1 -0
@@ -11,9 +11,9 @@ let TuiSidebarDirective = class TuiSidebarDirective extends PolymorpheusTemplate
11
11
  this.injector = injector;
12
12
  this.componentFactoryResolver = componentFactoryResolver;
13
13
  this.portalService = portalService;
14
+ this.sidebarRef = null;
14
15
  this.direction = 'left';
15
16
  this.autoWidth = false;
16
- this.sidebarRef = null;
17
17
  }
18
18
  set tuiSidebar(open) {
19
19
  if (open) {
@@ -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 @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 private sidebarRef: ComponentRef<TuiSidebarComponent> | null = null;\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) 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":";;;;;;IAoBa,mBAAmB,GAAhC,MAAa,mBAAoB,SAAQ,oBAAwB;IAkB7D,YACkC,OAAwB,EACnB,QAAkB,EAEpC,wBAAkD,EACxB,aAA+B,EAC/C,iBAAoC;QAE/D,KAAK,CAAC,OAAO,EAAE,iBAAiB,CAAC,CAAC;QAPJ,YAAO,GAAP,OAAO,CAAiB;QACnB,aAAQ,GAAR,QAAQ,CAAU;QAEpC,6BAAwB,GAAxB,wBAAwB,CAA0B;QACxB,kBAAa,GAAb,aAAa,CAAkB;QArB9E,cAAS,GAA2B,MAAM,CAAC;QAG3C,cAAS,GAAG,KAAK,CAAC;QAWV,eAAU,GAA6C,IAAI,CAAC;KAWnE;IAnBD,IAAI,UAAU,CAAC,IAAa;QACxB,IAAI,IAAI,EAAE;YACN,IAAI,CAAC,IAAI,EAAE,CAAC;SACf;aAAM;YACH,IAAI,CAAC,IAAI,EAAE,CAAC;SACf;KACJ;IAeD,WAAW;QACP,IAAI,CAAC,IAAI,EAAE,CAAC;KACf;IAEO,IAAI;QACR,IAAI,IAAI,CAAC,UAAU,KAAK,IAAI,EAAE;YAC1B,OAAO;SACV;QAED,MAAM,gBAAgB,GAClB,IAAI,CAAC,wBAAwB,CAAC,uBAAuB,CAAC,mBAAmB,CAAC,CAAC;QAE/E,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,gBAAgB,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC1E,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC,aAAa,EAAE,CAAC;KACrD;IAEO,IAAI;QACR,IAAI,IAAI,CAAC,UAAU,KAAK,IAAI,EAAE;YAC1B,OAAO;SACV;QAED,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC3C,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;KAC1B;EACJ;;YAlC8C,WAAW,uBAAjD,MAAM,SAAC,WAAW;YAC0B,QAAQ,uBAApD,MAAM,SAAC,QAAQ;YAE2B,wBAAwB,uBADlE,MAAM,SAAC,wBAAwB;YAE0B,gBAAgB,uBAAzE,MAAM,SAAC,gBAAgB;YACsB,iBAAiB,uBAA9D,MAAM,SAAC,iBAAiB;;AAtB7B;IADC,KAAK,CAAC,qBAAqB,CAAC;sDACc;AAG3C;IADC,KAAK,CAAC,qBAAqB,CAAC;sDACX;AAGlB;IADC,KAAK,EAAE;qDAOP;AAdQ,mBAAmB;IAH/B,SAAS,CAAC;QACP,QAAQ,EAAE,cAAc;KAC3B,CAAC;IAoBO,WAAA,MAAM,CAAC,WAAW,CAAC,CAAA;IACnB,WAAA,MAAM,CAAC,QAAQ,CAAC,CAAA;IAChB,WAAA,MAAM,CAAC,wBAAwB,CAAC,CAAA;IAEhC,WAAA,MAAM,CAAC,gBAAgB,CAAC,CAAA;IACxB,WAAA,MAAM,CAAC,iBAAiB,CAAC,CAAA;GAxBrB,mBAAmB,CAqD/B;;ACvDD;IAQa,mBAAmB,GAAhC,MAAa,mBAAmB;IAW5B,YACoD,OAAyB,EAC3B,SAA8B;QAD5B,YAAO,GAAP,OAAO,CAAkB;QAC3B,cAAS,GAAT,SAAS,CAAqB;QAZ/D,SAAI,GAAG,gBACpB,KAAK,EAAE,MAAM,IACV,IAAI,CAAC,OAAO,CACT,CAAC;QAEM,UAAK,GAAG,gBACrB,KAAK,EAAE,OAAO,IACX,IAAI,CAAC,OAAO,CACT,CAAC;KAKP;IAGJ,IAAI,SAAS;QACT,OAAO,IAAI,CAAC,SAAS,KAAK,MAAM,GAAG,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC;KAC7D;IAGD,IAAI,SAAS;QACT,OAAO,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC;KACnC;IAED,IAAI,OAAO;QACP,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;KACjC;IAED,IAAI,SAAS;QACT,OAAO,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC;KACnC;IAED,SAAS;QACL,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;KAC1B;EACJ;;4CAzBQ,MAAM,SAAC,qBAAqB;YAC4B,mBAAmB,uBAA3E,MAAM,SAAC,mBAAmB;;AAI/B;IADC,WAAW,CAAC,aAAa,CAAC;oDAG1B;AAGD;IADC,WAAW,CAAC,OAAO,CAAC;oDAGpB;AAxBQ,mBAAmB;IAP/B,SAAS,CAAC;QACP,QAAQ,EAAE,mBAAmB;QAC7B,2KAAsC;QAEtC,eAAe,EAAE,uBAAuB,CAAC,MAAM;QAC/C,UAAU,EAAE,CAAC,UAAU,CAAC;;KAC3B,CAAC;IAaO,WAAA,MAAM,CAAC,qBAAqB,CAAC,CAAA;IAC7B,WAAA,MAAM,CAAC,mBAAmB,CAAC,CAAA;GAbvB,mBAAmB,CAqC/B;;IClDY,gBAAgB,GAA7B,MAAa,gBAAgB;EAAG;AAAnB,gBAAgB;IAN5B,QAAQ,CAAC;QACN,OAAO,EAAE,CAAC,mBAAmB,EAAE,kBAAkB,CAAC;QAClD,YAAY,EAAE,CAAC,mBAAmB,EAAE,mBAAmB,CAAC;QACxD,eAAe,EAAE,CAAC,mBAAmB,CAAC;QACtC,OAAO,EAAE,CAAC,mBAAmB,CAAC;KACjC,CAAC;GACW,gBAAgB,CAAG;;ACbhC;;;;;;"}
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) 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,7 +1,7 @@
1
1
  import { __decorate, __param } from 'tslib';
2
2
  import { DOCUMENT, CommonModule } from '@angular/common';
3
- import { InjectionToken, Optional, ChangeDetectorRef, EventEmitter, Inject, Input, Output, HostBinding, ViewChild, Component, ChangeDetectionStrategy, NgModule } from '@angular/core';
4
- import { MONTHS_IN_YEAR, tuiPure, TuiDestroyService, TuiScrollService, TUI_IS_IOS, watch, TUI_FIRST_DAY, TUI_LAST_DAY, ALWAYS_FALSE_HANDLER, TuiMonth, TuiDay, TuiDayRange, typedFromEvent, tuiDefaultProp, TuiMapperPipeModule } from '@taiga-ui/cdk';
3
+ import { InjectionToken, Optional, ChangeDetectorRef, EventEmitter, Inject, ViewChild, Input, Output, HostBinding, Component, ChangeDetectionStrategy, NgModule } from '@angular/core';
4
+ import { MONTHS_IN_YEAR, tuiPure, TuiDestroyService, TuiScrollService, TUI_IS_IOS, watch, TuiDay, TUI_FIRST_DAY, TUI_LAST_DAY, ALWAYS_FALSE_HANDLER, TuiMonth, TuiDayRange, typedFromEvent, tuiDefaultProp, TuiMapperPipeModule } from '@taiga-ui/cdk';
5
5
  import { TUI_CLOSE_WORD, TUI_ORDERED_SHORT_WEEK_DAYS, TuiLinkModule, TuiButtonModule, TuiMonthPipeModule } from '@taiga-ui/core';
6
6
  import { TUI_CALENDAR_DATA_STREAM, TUI_CANCEL_WORD, TUI_DONE_WORD, TUI_CHOOSE_DAY_OR_RANGE_TEXTS } from '@taiga-ui/kit';
7
7
  import { Subject, EMPTY, race, timer, Observable } from 'rxjs';
@@ -197,13 +197,16 @@ var TuiMobileCalendarComponent = /** @class */ (function () {
197
197
  this.doneWord$ = doneWord$;
198
198
  this.weekDays$ = weekDays$;
199
199
  this.chooseDayOrRangeTexts$ = chooseDayOrRangeTexts$;
200
+ this.today = TuiDay.currentLocal();
201
+ this.activeYear = this.initialYear;
202
+ this.activeMonth = this.initialMonth;
200
203
  this.single = true;
201
204
  this.min = TUI_FIRST_DAY;
202
205
  this.max = TUI_LAST_DAY;
203
206
  this.disabledItemHandler = ALWAYS_FALSE_HANDLER;
204
- this.value = null;
205
207
  this.cancel = new EventEmitter();
206
208
  this.confirm = new EventEmitter();
209
+ this.value = null;
207
210
  this.years = Array.from({ length: RANGE }, function (_, i) { return i + STARTING_YEAR; });
208
211
  this.months = Array.from({ length: RANGE * 12 }, function (_, i) {
209
212
  return new TuiMonth(Math.floor(i / MONTHS_IN_YEAR) + STARTING_YEAR, i % MONTHS_IN_YEAR);
@@ -213,9 +216,6 @@ var TuiMobileCalendarComponent = /** @class */ (function () {
213
216
  (max !== null && item.dayAfter(max)) ||
214
217
  disabledItemHandler(item);
215
218
  }; };
216
- this.today = TuiDay.currentLocal();
217
- this.activeYear = this.initialYear;
218
- this.activeMonth = this.initialMonth;
219
219
  this.isIOS = isIOS;
220
220
  valueChanges.pipe(takeUntil(this.destroy$)).subscribe(function (value) {
221
221
  _this.value = value;
@@ -409,6 +409,12 @@ var TuiMobileCalendarComponent = /** @class */ (function () {
409
409
  { type: Observable, decorators: [{ type: Inject, args: [TUI_ORDERED_SHORT_WEEK_DAYS,] }] },
410
410
  { type: Observable, decorators: [{ type: Inject, args: [TUI_CHOOSE_DAY_OR_RANGE_TEXTS,] }] }
411
411
  ]; };
412
+ __decorate([
413
+ ViewChild('yearsScrollRef')
414
+ ], TuiMobileCalendarComponent.prototype, "yearsScrollRef", void 0);
415
+ __decorate([
416
+ ViewChild('monthsScrollRef')
417
+ ], TuiMobileCalendarComponent.prototype, "monthsScrollRef", void 0);
412
418
  __decorate([
413
419
  Input(),
414
420
  tuiDefaultProp()
@@ -434,12 +440,6 @@ var TuiMobileCalendarComponent = /** @class */ (function () {
434
440
  __decorate([
435
441
  HostBinding('class._ios')
436
442
  ], TuiMobileCalendarComponent.prototype, "isIOS", void 0);
437
- __decorate([
438
- ViewChild('yearsScrollRef')
439
- ], TuiMobileCalendarComponent.prototype, "yearsScrollRef", void 0);
440
- __decorate([
441
- ViewChild('monthsScrollRef')
442
- ], TuiMobileCalendarComponent.prototype, "monthsScrollRef", void 0);
443
443
  TuiMobileCalendarComponent = __decorate([
444
444
  Component({
445
445
  selector: 'tui-mobile-calendar',
@@ -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 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 HostBinding,\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 {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})\nexport class TuiMobileCalendarComponent {\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 value: TuiDay | TuiDayRange | null = null;\n\n @Output()\n readonly cancel = new EventEmitter<void>();\n\n @Output()\n readonly confirm = new EventEmitter<TuiDayRange | TuiDay>();\n\n @HostBinding('class._ios')\n readonly isIOS: boolean;\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 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 readonly today = TuiDay.currentLocal();\n\n private activeYear = this.initialYear;\n\n private activeMonth = this.initialMonth;\n\n @ViewChild('yearsScrollRef')\n private readonly yearsScrollRef?: CdkVirtualScrollViewport;\n\n @ViewChild('monthsScrollRef')\n private readonly monthsScrollRef?: CdkVirtualScrollViewport;\n\n constructor(\n @Inject(TUI_IS_IOS) isIOS: boolean,\n @Inject(DOCUMENT) private readonly documentRef: Document,\n @Inject(TuiDestroyService)\n private readonly destroy$: TuiDestroyService,\n @Inject(TUI_VALUE_STREAM)\n 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 this.isIOS = isIOS;\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 if (!this.monthsScrollRef) {\n return;\n }\n\n // Virtual scroll has not yet rendered items even in ngAfterViewInit\n this.monthsScrollRef.scrolledIndexChange\n .pipe(take(1), takeUntil(this.destroy$))\n .subscribe(() => {\n this.scrollToActiveYear();\n this.scrollToActiveMonth();\n this.initYearScroll();\n this.initMonthScroll();\n });\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 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 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 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 if (this.yearsScrollRef) {\n this.yearsScrollRef.scrollToIndex(\n Math.max(this.activeYear - STARTING_YEAR - 2, 0),\n behavior,\n );\n }\n }\n\n private scrollToActiveMonth(behavior?: ScrollBehavior) {\n if (this.monthsScrollRef) {\n this.monthsScrollRef.scrollToIndex(this.activeMonth, behavior);\n }\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 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 HostBinding,\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 {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})\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 @HostBinding('class._ios')\n readonly isIOS: boolean;\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) isIOS: boolean,\n @Inject(DOCUMENT) private readonly documentRef: Document,\n @Inject(TuiDestroyService)\n private readonly destroy$: TuiDestroyService,\n @Inject(TUI_VALUE_STREAM)\n 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 this.isIOS = isIOS;\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 if (!this.monthsScrollRef) {\n return;\n }\n\n // Virtual scroll has not yet rendered items even in ngAfterViewInit\n this.monthsScrollRef.scrolledIndexChange\n .pipe(take(1), takeUntil(this.destroy$))\n .subscribe(() => {\n this.scrollToActiveYear();\n this.scrollToActiveMonth();\n this.initYearScroll();\n this.initMonthScroll();\n });\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 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 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 if (this.yearsScrollRef) {\n this.yearsScrollRef.scrollToIndex(\n Math.max(this.activeYear - STARTING_YEAR - 2, 0),\n behavior,\n );\n }\n }\n\n private scrollToActiveMonth(behavior?: ScrollBehavior) {\n if (this.monthsScrollRef) {\n this.monthsScrollRef.scrollToIndex(this.activeMonth, behavior);\n }\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,5 +1,5 @@
1
1
  import { __read, __decorate, __param, __assign, __spread, __extends } from 'tslib';
2
- import { Inject, ElementRef, Component, ChangeDetectionStrategy, InjectionToken, NgZone, Input, ViewChild, ViewChildren, HostListener, ɵɵdefineInjectable, ɵɵinject, Injectable, Output, Directive, ContentChild, ChangeDetectorRef, TemplateRef, NgModule, NO_ERRORS_SCHEMA } from '@angular/core';
2
+ import { Inject, ElementRef, Component, ChangeDetectionStrategy, InjectionToken, NgZone, ViewChild, ViewChildren, Input, HostListener, ɵɵdefineInjectable, ɵɵinject, Injectable, Output, Directive, ContentChild, ChangeDetectorRef, TemplateRef, NgModule, NO_ERRORS_SCHEMA } from '@angular/core';
3
3
  import { typedFromEvent, tuiZonefree, TuiIdService, TUI_IS_IOS, EMPTY_QUERY, tuiZonefull, tuiPure, clamp, TUI_WINDOW_HEIGHT, TuiDestroyService, tuiDefaultProp, tuiRequiredSetter, TuiLetModule, TuiOverscrollModule } from '@taiga-ui/cdk';
4
4
  import { TUI_CLOSE_WORD, TUI_SCROLL_REF, tuiSlideInTop, tuiZonefulMap, TUI_ANIMATION_OPTIONS, tuiFadeIn, TuiButtonModule, TuiScrollbarModule } from '@taiga-ui/core';
5
5
  import { TUI_MORE_WORD } from '@taiga-ui/kit';
@@ -119,9 +119,9 @@ var TuiSheetComponent = /** @class */ (function () {
119
119
  this.ngZone = ngZone;
120
120
  this.isIos = isIos;
121
121
  this.moreWord$ = moreWord$;
122
+ this.stopsRefs = EMPTY_QUERY;
122
123
  this.id = '';
123
124
  this.stuck$ = this.scroll$.pipe(map(function (y) { return Math.floor(y) > _this.contentTop; }));
124
- this.stopsRefs = EMPTY_QUERY;
125
125
  }
126
126
  Object.defineProperty(TuiSheetComponent.prototype, "stops", {
127
127
  get: function () {
@@ -151,13 +151,13 @@ var TuiSheetComponent = /** @class */ (function () {
151
151
  enumerable: true,
152
152
  configurable: true
153
153
  });
154
+ TuiSheetComponent.prototype.onId = function (id) {
155
+ this.id = id;
156
+ };
154
157
  TuiSheetComponent.prototype.ngAfterViewInit = function () {
155
158
  var stops = __spread(this.stops, [this.sheetTop, this.contentTop]);
156
159
  this.elementRef.nativeElement.scrollTop = stops[this.item.initial];
157
160
  };
158
- TuiSheetComponent.prototype.onId = function (id) {
159
- this.id = id;
160
- };
161
161
  TuiSheetComponent.prototype.scrollTo = function (top) {
162
162
  if (top === void 0) { top = this.sheetTop; }
163
163
  var nativeElement = this.elementRef.nativeElement;
@@ -197,9 +197,6 @@ var TuiSheetComponent = /** @class */ (function () {
197
197
  { type: Boolean, decorators: [{ type: Inject, args: [TUI_IS_IOS,] }] },
198
198
  { type: Observable, decorators: [{ type: Inject, args: [TUI_MORE_WORD,] }] }
199
199
  ]; };
200
- __decorate([
201
- Input()
202
- ], TuiSheetComponent.prototype, "item", void 0);
203
200
  __decorate([
204
201
  ViewChild('sheet')
205
202
  ], TuiSheetComponent.prototype, "sheet", void 0);
@@ -209,6 +206,9 @@ var TuiSheetComponent = /** @class */ (function () {
209
206
  __decorate([
210
207
  ViewChildren('stops')
211
208
  ], TuiSheetComponent.prototype, "stopsRefs", void 0);
209
+ __decorate([
210
+ Input()
211
+ ], TuiSheetComponent.prototype, "item", void 0);
212
212
  __decorate([
213
213
  tuiPure
214
214
  ], TuiSheetComponent.prototype, "context", null);
@@ -229,10 +229,11 @@ var TuiSheetComponent = /** @class */ (function () {
229
229
  role: 'dialog',
230
230
  '[attr.aria-labelledby]': 'id',
231
231
  '[class._ios]': 'isIos',
232
+ '[class._stuck]': 'true',
232
233
  '[$.class._stuck]': 'stuck$',
233
234
  '($.class._stuck)': 'stuck$',
234
235
  },
235
- styles: [":host{scrollbar-width:none;-ms-overflow-style:none;position:absolute;left:0;bottom:0;right:0;transition-property:transform;transition-duration:var(--tui-duration,300ms);transition-timing-function:ease-in-out;top:auto;border-radius:.75rem .75rem 0 0;overflow-y:auto;overflow-x:hidden;-ms-scroll-snap-type:y mandatory;scroll-snap-type:y mandatory;box-shadow:0 4rem var(--tui-base-01);padding-right:1rem;margin-left:-1rem;transform:scaleX(-1);-webkit-clip-path:inset(0 1rem 0 0 round .75rem .75rem 0 0);clip-path:inset(0 1rem 0 0 round .75rem .75rem 0 0)}:host::-webkit-scrollbar,:host::-webkit-scrollbar-thumb{background:0 0;width:0;height:0}:host._stuck{-ms-scroll-snap-type:none;scroll-snap-type:none}.t-bumpers{display:flex;height:100%;scroll-snap-align:start;scroll-margin:-1px}:host-context(.t-wrapper_closeable) .t-bumpers{scroll-snap-stop:always}.t-bumper{scroll-snap-stop:always;scroll-snap-align:start;height:1rem}.t-wrapper{border-radius:inherit;pointer-events:auto;scroll-snap-stop:always;scroll-snap-align:start}.t-wrapper_shadow{box-shadow:0 .25rem 1.5rem rgba(0,0,0,.12)}.t-top{box-shadow:0 .25rem 1.5rem rgba(0,0,0,.12);position:sticky;top:0;pointer-events:auto;border-radius:.8rem .8rem 0 0;transform:scaleX(-1);overflow:hidden}.t-top._clickthrough{pointer-events:none}:host-context(._overlay:not(._visible)) .t-top{transition-property:transform;transition-duration:var(--tui-duration,300ms);transition-timing-function:ease-in-out;transform:scaleX(-1)!important}.t-image{display:block;width:100%}.t-sheet{position:relative;border-radius:inherit;scroll-snap-stop:always;scroll-snap-align:start;transform:scaleX(-1);box-shadow:0 4rem var(--tui-base-01)}.t-top:not(._rounded)~.t-sheet .t-bar{border-radius:0}.t-bar{transition-property:border-radius;transition-duration:var(--tui-duration,300ms);transition-timing-function:ease-in-out;position:sticky;top:0;z-index:1;height:1.5rem;margin-bottom:-1.5rem;border-radius:inherit;background:var(--tui-base-01);box-shadow:inset 0 1px rgba(255,255,255,.25)}.t-button{position:absolute;top:0;height:1.5rem;width:3rem;padding:0;border:0;opacity:0}.t-content{padding:0 1rem 1rem;border-radius:inherit;background:var(--tui-base-01)}.t-heading{padding-bottom:.5rem}"]
236
+ styles: [":host{scrollbar-width:none;-ms-overflow-style:none;position:absolute;left:0;bottom:0;right:0;transition-property:transform;transition-duration:var(--tui-duration,300ms);transition-timing-function:ease-in-out;top:auto;border-radius:.75rem .75rem 0 0;overflow-y:auto;overflow-x:hidden;-ms-scroll-snap-type:y mandatory;scroll-snap-type:y mandatory;box-shadow:0 4rem var(--tui-base-01);padding-right:1rem;margin-left:-1rem;transform:scaleX(-1);-webkit-clip-path:inset(0 1rem 0 0 round .75rem .75rem 0 0);clip-path:inset(0 1rem 0 0 round .75rem .75rem 0 0)}:host::-webkit-scrollbar,:host::-webkit-scrollbar-thumb{background:0 0;width:0;height:0}:host._stuck{-ms-scroll-snap-type:none;scroll-snap-type:none}.t-bumpers{display:flex;height:100%}:host-context(.t-wrapper_closeable) .t-bumpers{scroll-snap-stop:always;scroll-snap-align:start;scroll-margin:-1px}.t-bumper{scroll-snap-stop:always;scroll-snap-align:start;height:1rem}.t-wrapper{border-radius:inherit;pointer-events:auto;scroll-snap-stop:always;scroll-snap-align:start}.t-wrapper_shadow{box-shadow:0 .25rem 1.5rem rgba(0,0,0,.12)}.t-top{box-shadow:0 .25rem 1.5rem rgba(0,0,0,.12);position:sticky;top:0;pointer-events:auto;border-radius:.8rem .8rem 0 0;transform:scaleX(-1);overflow:hidden}.t-top._clickthrough{pointer-events:none}:host-context(._overlay:not(._visible)) .t-top{transition-property:transform;transition-duration:var(--tui-duration,300ms);transition-timing-function:ease-in-out;transform:scaleX(-1)!important}.t-image{display:block;width:100%}.t-sheet{position:relative;border-radius:inherit;scroll-snap-stop:always;scroll-snap-align:start;transform:scaleX(-1);box-shadow:0 4rem var(--tui-base-01)}.t-top:not(._rounded)~.t-sheet .t-bar{border-radius:0}.t-bar{transition-property:border-radius;transition-duration:var(--tui-duration,300ms);transition-timing-function:ease-in-out;position:sticky;top:0;z-index:1;height:1.5rem;margin-bottom:-1.5rem;border-radius:inherit;background:var(--tui-base-01);box-shadow:inset 0 1px rgba(255,255,255,.25)}.t-button{position:absolute;top:0;height:1.5rem;width:3rem;padding:0;border:0;opacity:0}.t-content{padding:0 1rem 1rem;border-radius:inherit;background:var(--tui-base-01)}.t-heading{padding-bottom:.5rem}"]
236
237
  }),
237
238
  __param(0, Inject(TUI_SHEET_SCROLL)),
238
239
  __param(1, Inject(ElementRef)),
@@ -366,8 +367,9 @@ var TuiSheetsHostComponent = /** @class */ (function () {
366
367
 
367
368
  // @dynamic
368
369
  var TuiSheetCloseDirective = /** @class */ (function () {
369
- function TuiSheetCloseDirective(dragged$, scroll$, windowRef, elementRef, sheet) {
370
+ function TuiSheetCloseDirective(ngZone, dragged$, scroll$, windowRef, elementRef, sheet) {
370
371
  var _this = this;
372
+ this.ngZone = ngZone;
371
373
  this.dragged$ = dragged$;
372
374
  this.scroll$ = scroll$;
373
375
  this.windowRef = windowRef;
@@ -377,13 +379,14 @@ var TuiSheetCloseDirective = /** @class */ (function () {
377
379
  return dragged
378
380
  ? EMPTY
379
381
  : _this.scroll$.pipe(startWith(_this.elementRef.nativeElement.scrollTop));
380
- }), filter(function (y) { var _a; return ((_a = _this.sheet.item) === null || _a === void 0 ? void 0 : _a.closeable) && _this.shouldClose(y); })));
382
+ }), filter(function (y) { var _a; return ((_a = _this.sheet.item) === null || _a === void 0 ? void 0 : _a.closeable) && _this.shouldClose(y); }), distinctUntilChanged(), tuiZonefull(this.ngZone)));
381
383
  }
382
384
  TuiSheetCloseDirective.prototype.shouldClose = function (scrollTop) {
383
385
  var min = Math.min(this.elementRef.nativeElement.scrollHeight - this.windowRef.innerHeight, this.sheet.stops[0] || Infinity);
384
386
  return scrollTop < min / 2;
385
387
  };
386
388
  TuiSheetCloseDirective.ctorParameters = function () { return [
389
+ { type: NgZone, decorators: [{ type: Inject, args: [NgZone,] }] },
387
390
  { type: Observable, decorators: [{ type: Inject, args: [TUI_SHEET_DRAGGED,] }] },
388
391
  { type: Observable, decorators: [{ type: Inject, args: [TUI_SHEET_SCROLL,] }] },
389
392
  { type: Window, decorators: [{ type: Inject, args: [WINDOW,] }] },
@@ -397,11 +400,12 @@ var TuiSheetCloseDirective = /** @class */ (function () {
397
400
  Directive({
398
401
  selector: 'tui-sheet[close]',
399
402
  }),
400
- __param(0, Inject(TUI_SHEET_DRAGGED)),
401
- __param(1, Inject(TUI_SHEET_SCROLL)),
402
- __param(2, Inject(WINDOW)),
403
- __param(3, Inject(ElementRef)),
404
- __param(4, Inject(TuiSheetComponent))
403
+ __param(0, Inject(NgZone)),
404
+ __param(1, Inject(TUI_SHEET_DRAGGED)),
405
+ __param(2, Inject(TUI_SHEET_SCROLL)),
406
+ __param(3, Inject(WINDOW)),
407
+ __param(4, Inject(ElementRef)),
408
+ __param(5, Inject(TuiSheetComponent))
405
409
  ], TuiSheetCloseDirective);
406
410
  return TuiSheetCloseDirective;
407
411
  }());