@taiga-ui/addon-mobile 3.16.0 → 3.17.0-dev.main-ab1c8d2
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.
- package/bundles/taiga-ui-addon-mobile-components-mobile-calendar.umd.js +7 -3
- package/bundles/taiga-ui-addon-mobile-components-mobile-calendar.umd.js.map +1 -1
- package/bundles/taiga-ui-addon-mobile-components-sheet.umd.js +8 -8
- package/bundles/taiga-ui-addon-mobile-components-sheet.umd.js.map +1 -1
- package/bundles/taiga-ui-addon-mobile-directives-mobile-tabs.umd.js +4 -2
- package/bundles/taiga-ui-addon-mobile-directives-mobile-tabs.umd.js.map +1 -1
- package/bundles/taiga-ui-addon-mobile-directives-ripple.umd.js +3 -1
- package/bundles/taiga-ui-addon-mobile-directives-ripple.umd.js.map +1 -1
- package/components/mobile-calendar/mobile-calendar.component.d.ts +5 -4
- package/components/sheet/sheet.directive.d.ts +1 -1
- package/directives/mobile-tabs/mobile-tabs.component.d.ts +1 -1
- package/directives/ripple/ripple-styles.component.d.ts +1 -1
- package/esm2015/components/mobile-calendar/mobile-calendar.component.js +9 -5
- package/esm2015/components/sheet/components/sheet/sheet.component.js +3 -3
- package/esm2015/components/sheet/components/sheet-bar/sheet-bar.component.js +3 -3
- package/esm2015/components/sheet/components/sheet-heading/sheet-heading.component.js +3 -3
- package/esm2015/components/sheet/components/sheets-host/sheets-host.component.js +3 -3
- package/esm2015/components/sheet/directives/sheet-close/sheet-close.directive.js +1 -1
- package/esm2015/components/sheet/sheet.directive.js +1 -1
- package/esm2015/directives/mobile-tabs/mobile-tabs.component.js +6 -4
- package/esm2015/directives/ripple/ripple-styles.component.js +5 -3
- package/fesm2015/taiga-ui-addon-mobile-components-mobile-calendar.js +8 -4
- package/fesm2015/taiga-ui-addon-mobile-components-mobile-calendar.js.map +1 -1
- package/fesm2015/taiga-ui-addon-mobile-components-sheet.js +8 -8
- package/fesm2015/taiga-ui-addon-mobile-components-sheet.js.map +1 -1
- package/fesm2015/taiga-ui-addon-mobile-directives-mobile-tabs.js +5 -3
- package/fesm2015/taiga-ui-addon-mobile-directives-mobile-tabs.js.map +1 -1
- package/fesm2015/taiga-ui-addon-mobile-directives-ripple.js +4 -2
- package/fesm2015/taiga-ui-addon-mobile-directives-ripple.js.map +1 -1
- package/package.json +4 -4
|
@@ -1,15 +1,17 @@
|
|
|
1
|
-
import { Component, ViewEncapsulation } from '@angular/core';
|
|
1
|
+
import { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';
|
|
2
2
|
import * as i0 from "@angular/core";
|
|
3
3
|
export class TuiMobileTabsComponent {
|
|
4
4
|
}
|
|
5
5
|
TuiMobileTabsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: TuiMobileTabsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
6
|
-
TuiMobileTabsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: TuiMobileTabsComponent, selector: "
|
|
6
|
+
TuiMobileTabsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: TuiMobileTabsComponent, selector: "tui-mobile-tabs", ngImport: i0, template: '', isInline: true, styles: ["tui-tabs[tuiMobileTabs][data-platform=android],[tuiMobileTabs] tui-tabs[data-platform=android]{height:auto}tui-tabs[tuiMobileTabs][data-platform=android] tui-underline,[tuiMobileTabs] tui-tabs[data-platform=android] tui-underline{box-shadow:inset 0 -.1875rem var(--tui-link)}tui-tabs[tuiMobileTabs][data-platform=android] [tuiTab],[tuiMobileTabs] tui-tabs[data-platform=android] [tuiTab]{transition-property:opacity;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;height:3rem;flex:1;flex-shrink:0;justify-content:center;text-transform:uppercase;color:var(--tui-base-09);opacity:.5;font-size:.875rem;font-weight:500;letter-spacing:-.008125rem;font-family:-apple-system,BlinkMacSystemFont,Roboto,\"Helvetica Neue\",sans-serif}tui-tabs[tuiMobileTabs][data-platform=android] [tuiTab]:hover,[tuiMobileTabs] tui-tabs[data-platform=android] [tuiTab]:hover{box-shadow:none}tui-tabs[tuiMobileTabs][data-platform=android] [tuiTab]._active,[tuiMobileTabs] tui-tabs[data-platform=android] [tuiTab]._active{opacity:1;color:var(--tui-base-09)}tui-tabs[tuiMobileTabs][data-platform=ios],[tuiMobileTabs] tui-tabs[data-platform=ios]{height:auto;border:2px solid transparent;border-radius:.5625rem;background:var(--tui-link);box-shadow:none}tui-tabs[tuiMobileTabs][data-platform=ios] tui-underline,[tuiMobileTabs] tui-tabs[data-platform=ios] tui-underline{border-radius:.4375rem;background:var(--tui-base-01);box-shadow:0 .1875rem .0625rem rgba(0,0,0,.04),0 .1875rem .5rem rgba(0,0,0,.12)}tui-tabs[tuiMobileTabs][data-platform=ios] [tuiTab],[tuiMobileTabs] tui-tabs[data-platform=ios] [tuiTab]{height:1.75rem;flex:1;flex-shrink:0;justify-content:center;color:var(--tui-base-01);opacity:1;font-size:.8125rem;font-weight:500;letter-spacing:-.005rem;font-family:-apple-system,BlinkMacSystemFont,Roboto,\"Helvetica Neue\",sans-serif}tui-tabs[tuiMobileTabs][data-platform=ios] [tuiTab]:hover,[tuiMobileTabs] tui-tabs[data-platform=ios] [tuiTab]:hover{box-shadow:none}tui-tabs[tuiMobileTabs][data-platform=ios] [tuiTab]._active,[tuiMobileTabs] tui-tabs[data-platform=ios] [tuiTab]._active{font-size:.875rem;font-weight:600;color:var(--tui-link)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
7
7
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: TuiMobileTabsComponent, decorators: [{
|
|
8
8
|
type: Component,
|
|
9
9
|
args: [{
|
|
10
|
+
selector: 'tui-mobile-tabs',
|
|
10
11
|
template: '',
|
|
11
|
-
styleUrls: ['mobile-tabs.style.less'],
|
|
12
|
+
styleUrls: ['./mobile-tabs.style.less'],
|
|
12
13
|
encapsulation: ViewEncapsulation.None,
|
|
14
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
13
15
|
}]
|
|
14
16
|
}] });
|
|
15
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
17
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9iaWxlLXRhYnMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYWRkb24tbW9iaWxlL2RpcmVjdGl2ZXMvbW9iaWxlLXRhYnMvbW9iaWxlLXRhYnMuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsaUJBQWlCLEVBQUMsTUFBTSxlQUFlLENBQUM7O0FBU3BGLE1BQU0sT0FBTyxzQkFBc0I7O29IQUF0QixzQkFBc0I7d0dBQXRCLHNCQUFzQix1REFMckIsRUFBRTs0RkFLSCxzQkFBc0I7a0JBUGxDLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLGlCQUFpQjtvQkFDM0IsUUFBUSxFQUFFLEVBQUU7b0JBQ1osU0FBUyxFQUFFLENBQUMsMEJBQTBCLENBQUM7b0JBQ3ZDLGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJO29CQUNyQyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtpQkFDbEQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIFZpZXdFbmNhcHN1bGF0aW9ufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICd0dWktbW9iaWxlLXRhYnMnLFxuICAgIHRlbXBsYXRlOiAnJyxcbiAgICBzdHlsZVVybHM6IFsnLi9tb2JpbGUtdGFicy5zdHlsZS5sZXNzJ10sXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgVHVpTW9iaWxlVGFic0NvbXBvbmVudCB7fVxuIl19
|
|
@@ -1,15 +1,17 @@
|
|
|
1
|
-
import { Component, ViewEncapsulation } from '@angular/core';
|
|
1
|
+
import { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';
|
|
2
2
|
import * as i0 from "@angular/core";
|
|
3
3
|
export class TuiRippleStylesComponent {
|
|
4
4
|
}
|
|
5
5
|
TuiRippleStylesComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: TuiRippleStylesComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
6
|
-
TuiRippleStylesComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: TuiRippleStylesComponent, selector: "
|
|
6
|
+
TuiRippleStylesComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: TuiRippleStylesComponent, selector: "tui-ripple", ngImport: i0, template: '', isInline: true, styles: ["@keyframes tuiRippleOn{0%{transform:scale(0);opacity:.12}to{transform:none;opacity:.12}}@keyframes tuiRippleOff{0%{transform:none;opacity:.12}to{transform:none;opacity:0}}*[tuiRipple]{position:relative;overflow:hidden}.tui-ripple{position:absolute;z-index:100;border-radius:100%;background:currentColor;transform:scale(0);animation-duration:.45s;animation-fill-mode:forwards;pointer-events:none}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
7
7
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: TuiRippleStylesComponent, decorators: [{
|
|
8
8
|
type: Component,
|
|
9
9
|
args: [{
|
|
10
|
+
selector: 'tui-ripple',
|
|
10
11
|
template: '',
|
|
11
12
|
styleUrls: ['./ripple.style.less'],
|
|
12
13
|
encapsulation: ViewEncapsulation.None,
|
|
14
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
13
15
|
}]
|
|
14
16
|
}] });
|
|
15
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
17
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmlwcGxlLXN0eWxlcy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hZGRvbi1tb2JpbGUvZGlyZWN0aXZlcy9yaXBwbGUvcmlwcGxlLXN0eWxlcy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxpQkFBaUIsRUFBQyxNQUFNLGVBQWUsQ0FBQzs7QUFTcEYsTUFBTSxPQUFPLHdCQUF3Qjs7c0hBQXhCLHdCQUF3QjswR0FBeEIsd0JBQXdCLGtEQUx2QixFQUFFOzRGQUtILHdCQUF3QjtrQkFQcEMsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsWUFBWTtvQkFDdEIsUUFBUSxFQUFFLEVBQUU7b0JBQ1osU0FBUyxFQUFFLENBQUMscUJBQXFCLENBQUM7b0JBQ2xDLGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJO29CQUNyQyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtpQkFDbEQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIFZpZXdFbmNhcHN1bGF0aW9ufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICd0dWktcmlwcGxlJyxcbiAgICB0ZW1wbGF0ZTogJycsXG4gICAgc3R5bGVVcmxzOiBbJy4vcmlwcGxlLnN0eWxlLmxlc3MnXSxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBUdWlSaXBwbGVTdHlsZXNDb21wb25lbnQge31cbiJdfQ==
|
|
@@ -6,7 +6,7 @@ import { InjectionToken, Optional, ChangeDetectorRef, EventEmitter, Component, C
|
|
|
6
6
|
import * as i7 from '@taiga-ui/cdk';
|
|
7
7
|
import { MONTHS_IN_YEAR, tuiPure, TuiDestroyService, TuiScrollService, TUI_IS_IOS, tuiWatch, TuiDay, TUI_FIRST_DAY, TUI_LAST_DAY, ALWAYS_FALSE_HANDLER, TuiMonth, TuiDayRange, tuiTypedFromEvent, TUI_IS_CYPRESS, tuiDefaultProp, TuiMapperPipeModule } from '@taiga-ui/cdk';
|
|
8
8
|
import * as i1 from '@taiga-ui/core';
|
|
9
|
-
import { TUI_CLOSE_WORD, TUI_SHORT_WEEK_DAYS, TuiLinkModule, TuiButtonModule, TuiMonthPipeModule, TuiOrderWeekDaysPipeModule } from '@taiga-ui/core';
|
|
9
|
+
import { TUI_CLOSE_WORD, TUI_SHORT_WEEK_DAYS, TUI_ANIMATIONS_DURATION, TuiLinkModule, TuiButtonModule, TuiMonthPipeModule, TuiOrderWeekDaysPipeModule } from '@taiga-ui/core';
|
|
10
10
|
import { TUI_CALENDAR_DATE_STREAM, TUI_CANCEL_WORD, TUI_DONE_WORD, TUI_CHOOSE_DAY_OR_RANGE_TEXTS } from '@taiga-ui/kit';
|
|
11
11
|
import * as i8 from 'rxjs';
|
|
12
12
|
import { Subject, EMPTY, identity, race, timer } from 'rxjs';
|
|
@@ -182,7 +182,7 @@ const TUI_MOBILE_CALENDAR_PROVIDERS = [
|
|
|
182
182
|
];
|
|
183
183
|
|
|
184
184
|
class TuiMobileCalendarComponent {
|
|
185
|
-
constructor(isIOS, isCypress, documentRef, destroy$, valueChanges, closeWord$, cancelWord$, doneWord$, unorderedWeekDays$, chooseDayOrRangeTexts
|
|
185
|
+
constructor(isIOS, isCypress, documentRef, destroy$, valueChanges, closeWord$, cancelWord$, doneWord$, unorderedWeekDays$, chooseDayOrRangeTexts$, duration) {
|
|
186
186
|
this.isIOS = isIOS;
|
|
187
187
|
this.isCypress = isCypress;
|
|
188
188
|
this.documentRef = documentRef;
|
|
@@ -192,6 +192,7 @@ class TuiMobileCalendarComponent {
|
|
|
192
192
|
this.doneWord$ = doneWord$;
|
|
193
193
|
this.unorderedWeekDays$ = unorderedWeekDays$;
|
|
194
194
|
this.chooseDayOrRangeTexts$ = chooseDayOrRangeTexts$;
|
|
195
|
+
this.duration = duration;
|
|
195
196
|
this.today = TuiDay.currentLocal();
|
|
196
197
|
this.activeYear = this.initialYear;
|
|
197
198
|
this.activeMonth = this.initialMonth;
|
|
@@ -310,7 +311,7 @@ class TuiMobileCalendarComponent {
|
|
|
310
311
|
waitScrolledChange() {
|
|
311
312
|
var _a;
|
|
312
313
|
this.updateViewportDimension();
|
|
313
|
-
(_a = this.monthsScrollRef) === null || _a === void 0 ? void 0 : _a.scrolledIndexChange.pipe(this.lateInit(), take(1), takeUntil(this.destroy$)).subscribe(() => {
|
|
314
|
+
(_a = this.monthsScrollRef) === null || _a === void 0 ? void 0 : _a.scrolledIndexChange.pipe(delay(this.duration), this.lateInit(), take(1), takeUntil(this.destroy$)).subscribe(() => {
|
|
314
315
|
this.updateViewportDimension();
|
|
315
316
|
this.initYearScroll();
|
|
316
317
|
this.initMonthScroll();
|
|
@@ -376,7 +377,7 @@ class TuiMobileCalendarComponent {
|
|
|
376
377
|
return (year - this.activeYear) * MONTHS_IN_YEAR;
|
|
377
378
|
}
|
|
378
379
|
}
|
|
379
|
-
TuiMobileCalendarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: TuiMobileCalendarComponent, deps: [{ token: TUI_IS_IOS }, { token: TUI_IS_CYPRESS }, { token: DOCUMENT }, { token: TuiDestroyService, self: true }, { token: TUI_VALUE_STREAM }, { token: TUI_CLOSE_WORD }, { token: TUI_CANCEL_WORD }, { token: TUI_DONE_WORD }, { token: TUI_SHORT_WEEK_DAYS }, { token: TUI_CHOOSE_DAY_OR_RANGE_TEXTS }], target: i0.ɵɵFactoryTarget.Component });
|
|
380
|
+
TuiMobileCalendarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: TuiMobileCalendarComponent, deps: [{ token: TUI_IS_IOS }, { token: TUI_IS_CYPRESS }, { token: DOCUMENT }, { token: TuiDestroyService, self: true }, { token: TUI_VALUE_STREAM }, { token: TUI_CLOSE_WORD }, { token: TUI_CANCEL_WORD }, { token: TUI_DONE_WORD }, { token: TUI_SHORT_WEEK_DAYS }, { token: TUI_CHOOSE_DAY_OR_RANGE_TEXTS }, { token: TUI_ANIMATIONS_DURATION }], target: i0.ɵɵFactoryTarget.Component });
|
|
380
381
|
TuiMobileCalendarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: TuiMobileCalendarComponent, selector: "tui-mobile-calendar", inputs: { single: "single", min: "min", max: "max", disabledItemHandler: "disabledItemHandler" }, outputs: { cancel: "cancel", confirm: "confirm" }, host: { properties: { "class._ios": "isIOS" } }, providers: TUI_MOBILE_CALENDAR_PROVIDERS, viewQueries: [{ propertyName: "yearsScrollRef", first: true, predicate: ["yearsScrollRef"], descendants: true }, { propertyName: "monthsScrollRef", first: true, predicate: ["monthsScrollRef"], descendants: true }], ngImport: i0, template: "<header class=\"t-header\">\n <button\n tuiIconButton\n type=\"button\"\n automation-id=\"tui-mobile-calendar__cancel\"\n icon=\"tuiIconRemoveLarge\"\n shape=\"rounded\"\n appearance=\"\"\n tuiRipple\n class=\"t-close\"\n [title]=\"closeWord$ | async\"\n (click)=\"onClose()\"\n ></button>\n <button\n tuiLink\n tuiTouchable=\"opacity\"\n type=\"button\"\n class=\"t-link t-link_close\"\n (click)=\"onClose()\"\n >\n {{ cancelWord$ | async }}\n </button>\n <h2\n *ngIf=\"chooseDayOrRangeTexts$ | async as texts\"\n automation-id=\"tui-mobile-calendar__label\"\n class=\"t-label\"\n >\n {{ single ? texts[0] : texts[1] }}\n </h2>\n <button\n tuiLink\n tuiTouchable=\"opacity\"\n type=\"button\"\n automation-id=\"tui-mobile-calendar__confirm\"\n class=\"t-link\"\n (click)=\"onConfirm()\"\n >\n {{ doneWord$ | async }}\n </button>\n</header>\n<cdk-virtual-scroll-viewport\n #yearsScrollRef\n orientation=\"horizontal\"\n class=\"t-years\"\n [itemSize]=\"yearWidth\"\n>\n <div class=\"t-years-wrapper\">\n <button\n *cdkVirtualFor=\"let index of years\"\n type=\"button\"\n class=\"t-year\"\n [attr.data-state]=\"getState(index)\"\n (click)=\"setYear(index)\"\n >\n {{ index }}\n </button>\n </div>\n</cdk-virtual-scroll-viewport>\n<div class=\"t-week\">\n <div\n *ngFor=\"let day of unorderedWeekDays$ | tuiOrderWeekDays | async\"\n class=\"t-day\"\n >\n {{ day }}\n </div>\n</div>\n<cdk-virtual-scroll-viewport\n #monthsScrollRef\n class=\"t-months\"\n (scrolledIndexChange)=\"onMonthChange($event)\"\n>\n <section\n *cdkVirtualFor=\"let month of months; templateCacheSize: 10\"\n class=\"t-month-wrapper\"\n >\n <h2 class=\"t-month\">{{ month | tuiMonth | async }}</h2>\n <tui-primitive-calendar-mobile\n class=\"t-calendar\"\n [month]=\"month\"\n [value]=\"value\"\n [disabledItemHandler]=\"disabledItemHandler | tuiMapper : disabledItemHandlerMapper : min : max\"\n (dayClick)=\"onDayClick($event)\"\n ></tui-primitive-calendar-mobile>\n </section>\n</cdk-virtual-scroll-viewport>\n", styles: [":host{display:block;height:100%;font-family:-apple-system,BlinkMacSystemFont,Roboto,sans-serif;color:var(--tui-text-01);-webkit-tap-highlight-color:transparent}.t-header{position:relative;display:flex;align-items:center;height:3.5rem;padding:0 1rem;border-bottom:.5px solid var(--tui-base-03)}:host._ios .t-header{height:2.75rem;border-bottom:none}.t-close{width:1.5rem;height:1.5rem;margin-right:2rem}:host._ios .t-close{display:none}.t-link{margin-left:auto;flex-shrink:0;font-size:.875rem;line-height:1rem;font-weight:500;text-transform:uppercase;color:var(--tui-link)}.t-link_close{display:none}:host._ios .t-link{min-width:3.75rem;text-align:right;font-size:.9375rem;line-height:1.125rem;font-weight:400;letter-spacing:.018125rem;text-transform:none}:host._ios .t-link_close{display:block;margin:0 auto 0 0;text-align:left}.t-label{position:relative;overflow:hidden;flex-grow:1;margin:0;font-size:1.25rem;line-height:3.5rem;font-weight:500;letter-spacing:-.0125rem;white-space:nowrap}.t-label:after{content:\"\";position:absolute;top:0;right:0;width:1.875rem;height:100%;background-image:linear-gradient(to right,transparent 0%,var(--tui-base-01) 80%,var(--tui-base-01) 100%);pointer-events:none}:host._ios .t-label{font-size:1.0625rem;font-weight:600;letter-spacing:-.025625rem;text-align:center}.t-label:after{background-image:linear-gradient(to right,rgba(255,255,255,0) 0%,var(--tui-base-01) 80%,var(--tui-base-01) 100%)}:host-context([data-mode=\"onDark\"]) .t-label:after{background-image:linear-gradient(to right,rgba(34,34,34,0) 0%,var(--tui-base-01) 80%,var(--tui-base-01) 100%)}.t-years{scrollbar-width:none;-ms-overflow-style:none;height:4.0625rem;background-color:var(--tui-base-01);box-shadow:0 .5px var(--tui-base-03)}.t-years::-webkit-scrollbar,.t-years::-webkit-scrollbar-thumb{background:transparent;width:0;height:0}:host._ios .t-years{background-color:transparent}.t-years-wrapper{display:flex;height:4.0625rem}.t-year{-webkit-appearance:none;-moz-appearance:none;appearance:none;padding:0;border:0;background:none;font-size:inherit;line-height:inherit;outline:none;width:20vw;flex-shrink:0;font-size:.9375rem;font-weight:700;letter-spacing:.015625rem;cursor:pointer;opacity:.1;transform:scale(.73);transition:color,opacity,transform .2s}.t-year[data-state=adjacent]{transform:scale(.86);opacity:.3}.t-year[data-state=active]{color:var(--tui-link);opacity:1;transform:scale(1)}.t-week{display:flex;align-items:center;height:1.875rem;width:20.75rem;max-width:100%;margin:0 auto;font-size:.75rem}:host._ios .t-week{width:22.625rem;font-size:.6875rem;font-weight:500;color:var(--tui-text-02)}.t-day{flex:1;text-align:center}.t-months{scrollbar-width:none;-ms-overflow-style:none;height:calc(100% - 9.5rem);box-shadow:0 -1px var(--tui-base-03);overflow-x:hidden}.t-months::-webkit-scrollbar,.t-months::-webkit-scrollbar-thumb{background:transparent;width:0;height:0}:host._ios .t-months{height:calc(100% - 8.75rem)}.t-month-wrapper{margin:.625rem 0 -.625rem}.t-month{height:2.75rem;line-height:2.75rem;padding-left:1rem;font-size:.875rem;font-weight:500;text-transform:uppercase;margin:0 0 1.25rem;box-sizing:border-box;border-bottom:.5px solid var(--tui-base-03)}:host._ios .t-month{height:3.125rem;margin:0;border-bottom:none;text-transform:none;font-size:1.375rem;line-height:3.125rem;letter-spacing:.02rem;font-weight:700}.t-calendar{margin:0 auto;font-family:inherit;font-size:1.125rem;transition:opacity .2s}:host._ios .t-calendar{font-size:1.0625rem}\n"], components: [{ type: i1.TuiButtonComponent, selector: "button[tuiButton], button[tuiIconButton], a[tuiButton], a[tuiIconButton]", inputs: ["appearance", "disabled", "icon", "iconRight", "shape", "showLoader", "size"] }, { type: i1.TuiLinkComponent, selector: "a[tuiLink], button[tuiLink]", inputs: ["pseudo", "icon", "iconAlign", "iconRotated", "mode"], exportAs: ["tuiLink"] }, { type: i2.CdkVirtualScrollViewport, selector: "cdk-virtual-scroll-viewport", inputs: ["orientation", "appendOnly"], outputs: ["scrolledIndexChange"] }, { type: i3.TuiPrimitiveCalendarMobileComponent, selector: "tui-primitive-calendar-mobile" }], directives: [{ type: i4.TuiRippleDirective, selector: "[tuiRipple]", inputs: ["tuiRipple"] }, { type: i5.TuiTouchableDirective, selector: "[tuiTouchable]", inputs: ["tuiTouchable"] }, { type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.CdkFixedSizeVirtualScroll, selector: "cdk-virtual-scroll-viewport[itemSize]", inputs: ["itemSize", "minBufferPx", "maxBufferPx"] }, { type: i2.CdkVirtualForOf, selector: "[cdkVirtualFor][cdkVirtualForOf]", inputs: ["cdkVirtualForOf", "cdkVirtualForTrackBy", "cdkVirtualForTemplate", "cdkVirtualForTemplateCacheSize"] }, { type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], pipes: { "async": i6.AsyncPipe, "tuiOrderWeekDays": i1.TuiOrderWeekDaysPipe, "tuiMonth": i1.TuiMonthPipe, "tuiMapper": i7.TuiMapperPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
381
382
|
__decorate([
|
|
382
383
|
tuiDefaultProp()
|
|
@@ -432,6 +433,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
|
|
|
432
433
|
}] }, { type: i8.Observable, decorators: [{
|
|
433
434
|
type: Inject,
|
|
434
435
|
args: [TUI_CHOOSE_DAY_OR_RANGE_TEXTS]
|
|
436
|
+
}] }, { type: undefined, decorators: [{
|
|
437
|
+
type: Inject,
|
|
438
|
+
args: [TUI_ANIMATIONS_DURATION]
|
|
435
439
|
}] }]; }, propDecorators: { yearsScrollRef: [{
|
|
436
440
|
type: ViewChild,
|
|
437
441
|
args: ['yearsScrollRef']
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"taiga-ui-addon-mobile-components-mobile-calendar.js","sources":["../../../projects/addon-mobile/components/mobile-calendar/mobile-calendar.const.ts","../../../projects/addon-mobile/components/mobile-calendar/mobile-calendar.strategy.ts","../../../projects/addon-mobile/components/mobile-calendar/mobile-calendar.providers.ts","../../../projects/addon-mobile/components/mobile-calendar/mobile-calendar.component.ts","../../../projects/addon-mobile/components/mobile-calendar/mobile-calendar.template.html","../../../projects/addon-mobile/components/mobile-calendar/mobile-calendar.module.ts","../../../projects/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): void {\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(): void {\n this.index$.complete();\n this.viewport = null;\n }\n\n onContentScrolled(): void {\n if (this.viewport) {\n this.updateRenderedRange(this.viewport);\n }\n }\n\n /** These do not matter for this case */\n onDataLengthChanged(): void {}\n onContentRendered(): void {}\n onRenderedOffsetChanged(): void {}\n\n scrollToIndex(index: number, behavior: ScrollBehavior): void {\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): void {\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 tuiWatch,\n} from '@taiga-ui/cdk';\nimport {TUI_CALENDAR_DATE_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 `[TUI_VALUE_STREAM]: 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_DATE_STREAM],\n TuiDestroyService,\n ChangeDetectorRef,\n ],\n useFactory: (\n value$: Observable<TuiDayRange | null> | null,\n destroy$: Observable<void>,\n changeDetectorRef: ChangeDetectorRef,\n ): Observable<TuiDayRange | null> => {\n return (value$ || EMPTY).pipe(\n tuiWatch(changeDetectorRef),\n takeUntil(destroy$),\n );\n },\n },\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 Self,\n ViewChild,\n} from '@angular/core';\nimport {\n ALWAYS_FALSE_HANDLER,\n MONTHS_IN_YEAR,\n TUI_FIRST_DAY,\n TUI_IS_CYPRESS,\n TUI_IS_IOS,\n TUI_LAST_DAY,\n TuiBooleanHandler,\n TuiDay,\n TuiDayRange,\n tuiDefaultProp,\n TuiDestroyService,\n TuiInjectionTokenType,\n TuiMapper,\n TuiMonth,\n tuiTypedFromEvent,\n} from '@taiga-ui/cdk';\nimport {TUI_CLOSE_WORD, TUI_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 map,\n mergeMap,\n switchMap,\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@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<TuiDay | TuiDayRange>();\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(TUI_IS_CYPRESS) readonly isCypress: boolean,\n @Inject(DOCUMENT) private readonly documentRef: Document,\n @Self()\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_SHORT_WEEK_DAYS)\n readonly unorderedWeekDays$: TuiInjectionTokenType<typeof TUI_SHORT_WEEK_DAYS>,\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(): void {\n // Virtual scroll has not yet rendered items even in ngAfterViewInit\n this.waitScrolledChange();\n }\n\n onClose(): void {\n this.cancel.emit();\n }\n\n onConfirm(): void {\n if (this.value) {\n this.confirm.emit(this.value);\n } else {\n this.cancel.emit();\n }\n }\n\n onDayClick(day: TuiDay): void {\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): void {\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): void {\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(): number {\n return this.yearsScrollRef?.getViewportSize() || 0;\n }\n\n private updateViewportDimension(): void {\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(): void {\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(): void {\n const {yearsScrollRef} = this;\n\n if (!yearsScrollRef) {\n return;\n }\n\n const touchstart$ = tuiTypedFromEvent(\n yearsScrollRef.elementRef.nativeElement,\n 'touchstart',\n );\n const touchend$ = tuiTypedFromEvent(\n yearsScrollRef.elementRef.nativeElement,\n 'touchend',\n );\n const click$ = tuiTypedFromEvent(\n yearsScrollRef.elementRef.nativeElement,\n 'click',\n );\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 mergeMap(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(\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(() => this.scrollToActiveYear('smooth'));\n }\n\n private initMonthScroll(): void {\n const {monthsScrollRef} = this;\n\n if (!monthsScrollRef) {\n return;\n }\n\n const touchstart$ = tuiTypedFromEvent(\n monthsScrollRef.elementRef.nativeElement,\n 'touchstart',\n {passive: true},\n );\n const touchend$ = tuiTypedFromEvent(\n monthsScrollRef.elementRef.nativeElement,\n 'touchend',\n );\n\n // Smooth scroll to the closest month after scrolling is done\n touchstart$\n .pipe(\n switchMap(() => touchend$),\n switchMap(() =>\n race(\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(() => this.scrollToActiveMonth('smooth'));\n }\n\n private scrollToActiveYear(behavior: ScrollBehavior = 'auto'): void {\n this.yearsScrollRef?.scrollToIndex(\n Math.max(this.activeYear - STARTING_YEAR - 2, 0),\n this.isCypress ? 'auto' : behavior,\n );\n }\n\n private scrollToActiveMonth(behavior: ScrollBehavior = 'auto'): void {\n this.monthsScrollRef?.scrollToIndex(\n this.activeMonth,\n this.isCypress ? 'auto' : 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","<header class=\"t-header\">\n <button\n tuiIconButton\n type=\"button\"\n automation-id=\"tui-mobile-calendar__cancel\"\n icon=\"tuiIconRemoveLarge\"\n shape=\"rounded\"\n appearance=\"\"\n tuiRipple\n class=\"t-close\"\n [title]=\"closeWord$ | async\"\n (click)=\"onClose()\"\n ></button>\n <button\n tuiLink\n tuiTouchable=\"opacity\"\n type=\"button\"\n class=\"t-link t-link_close\"\n (click)=\"onClose()\"\n >\n {{ cancelWord$ | async }}\n </button>\n <h2\n *ngIf=\"chooseDayOrRangeTexts$ | async as texts\"\n automation-id=\"tui-mobile-calendar__label\"\n class=\"t-label\"\n >\n {{ single ? texts[0] : texts[1] }}\n </h2>\n <button\n tuiLink\n tuiTouchable=\"opacity\"\n type=\"button\"\n automation-id=\"tui-mobile-calendar__confirm\"\n class=\"t-link\"\n (click)=\"onConfirm()\"\n >\n {{ doneWord$ | async }}\n </button>\n</header>\n<cdk-virtual-scroll-viewport\n #yearsScrollRef\n orientation=\"horizontal\"\n class=\"t-years\"\n [itemSize]=\"yearWidth\"\n>\n <div class=\"t-years-wrapper\">\n <button\n *cdkVirtualFor=\"let index of years\"\n type=\"button\"\n class=\"t-year\"\n [attr.data-state]=\"getState(index)\"\n (click)=\"setYear(index)\"\n >\n {{ index }}\n </button>\n </div>\n</cdk-virtual-scroll-viewport>\n<div class=\"t-week\">\n <div\n *ngFor=\"let day of unorderedWeekDays$ | tuiOrderWeekDays | async\"\n class=\"t-day\"\n >\n {{ day }}\n </div>\n</div>\n<cdk-virtual-scroll-viewport\n #monthsScrollRef\n class=\"t-months\"\n (scrolledIndexChange)=\"onMonthChange($event)\"\n>\n <section\n *cdkVirtualFor=\"let month of months; templateCacheSize: 10\"\n class=\"t-month-wrapper\"\n >\n <h2 class=\"t-month\">{{ month | tuiMonth | async }}</h2>\n <tui-primitive-calendar-mobile\n class=\"t-calendar\"\n [month]=\"month\"\n [value]=\"value\"\n [disabledItemHandler]=\"disabledItemHandler | tuiMapper : disabledItemHandlerMapper : min : max\"\n (dayClick)=\"onDayClick($event)\"\n ></tui-primitive-calendar-mobile>\n </section>\n</cdk-virtual-scroll-viewport>\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 {\n TuiButtonModule,\n TuiLinkModule,\n TuiMonthPipeModule,\n TuiOrderWeekDaysPipeModule,\n} 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 TuiOrderWeekDaysPipeModule,\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":["../../../projects/addon-mobile/components/mobile-calendar/mobile-calendar.const.ts","../../../projects/addon-mobile/components/mobile-calendar/mobile-calendar.strategy.ts","../../../projects/addon-mobile/components/mobile-calendar/mobile-calendar.providers.ts","../../../projects/addon-mobile/components/mobile-calendar/mobile-calendar.component.ts","../../../projects/addon-mobile/components/mobile-calendar/mobile-calendar.template.html","../../../projects/addon-mobile/components/mobile-calendar/mobile-calendar.module.ts","../../../projects/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): void {\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(): void {\n this.index$.complete();\n this.viewport = null;\n }\n\n onContentScrolled(): void {\n if (this.viewport) {\n this.updateRenderedRange(this.viewport);\n }\n }\n\n /** These do not matter for this case */\n onDataLengthChanged(): void {}\n onContentRendered(): void {}\n onRenderedOffsetChanged(): void {}\n\n scrollToIndex(index: number, behavior: ScrollBehavior): void {\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): void {\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 tuiWatch,\n} from '@taiga-ui/cdk';\nimport {TUI_CALENDAR_DATE_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 `[TUI_VALUE_STREAM]: 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_DATE_STREAM],\n TuiDestroyService,\n ChangeDetectorRef,\n ],\n useFactory: (\n value$: Observable<TuiDayRange | null> | null,\n destroy$: Observable<void>,\n changeDetectorRef: ChangeDetectorRef,\n ): Observable<TuiDayRange | null> => {\n return (value$ || EMPTY).pipe(\n tuiWatch(changeDetectorRef),\n takeUntil(destroy$),\n );\n },\n },\n];\n","import {CdkVirtualScrollViewport} from '@angular/cdk/scrolling';\nimport {DOCUMENT} from '@angular/common';\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Inject,\n Input,\n Output,\n Self,\n ViewChild,\n} from '@angular/core';\nimport {\n ALWAYS_FALSE_HANDLER,\n MONTHS_IN_YEAR,\n TUI_FIRST_DAY,\n TUI_IS_CYPRESS,\n TUI_IS_IOS,\n TUI_LAST_DAY,\n TuiBooleanHandler,\n TuiDay,\n TuiDayRange,\n tuiDefaultProp,\n TuiDestroyService,\n TuiInjectionTokenType,\n TuiMapper,\n TuiMonth,\n tuiTypedFromEvent,\n} from '@taiga-ui/cdk';\nimport {\n TUI_ANIMATIONS_DURATION,\n TUI_CLOSE_WORD,\n TUI_SHORT_WEEK_DAYS,\n} 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 map,\n mergeMap,\n switchMap,\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@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 implements AfterViewInit {\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<TuiDay | TuiDayRange>();\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(TUI_IS_CYPRESS) readonly isCypress: boolean,\n @Inject(DOCUMENT) private readonly documentRef: Document,\n @Self()\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_SHORT_WEEK_DAYS)\n readonly unorderedWeekDays$: TuiInjectionTokenType<typeof TUI_SHORT_WEEK_DAYS>,\n @Inject(TUI_CHOOSE_DAY_OR_RANGE_TEXTS)\n readonly chooseDayOrRangeTexts$: Observable<[string, string]>,\n @Inject(TUI_ANIMATIONS_DURATION) private readonly duration: number,\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(): void {\n // Virtual scroll has not yet rendered items even in ngAfterViewInit\n this.waitScrolledChange();\n }\n\n onClose(): void {\n this.cancel.emit();\n }\n\n onConfirm(): void {\n if (this.value) {\n this.confirm.emit(this.value);\n } else {\n this.cancel.emit();\n }\n }\n\n onDayClick(day: TuiDay): void {\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): void {\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): void {\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(): number {\n return this.yearsScrollRef?.getViewportSize() || 0;\n }\n\n private updateViewportDimension(): void {\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(): void {\n this.updateViewportDimension();\n\n this.monthsScrollRef?.scrolledIndexChange\n .pipe(\n delay(this.duration),\n this.lateInit(),\n take(1),\n takeUntil(this.destroy$),\n )\n .subscribe(() => {\n this.updateViewportDimension();\n this.initYearScroll();\n this.initMonthScroll();\n this.scrollToActiveYear();\n this.scrollToActiveMonth();\n });\n }\n\n private initYearScroll(): void {\n const {yearsScrollRef} = this;\n\n if (!yearsScrollRef) {\n return;\n }\n\n const touchstart$ = tuiTypedFromEvent(\n yearsScrollRef.elementRef.nativeElement,\n 'touchstart',\n );\n const touchend$ = tuiTypedFromEvent(\n yearsScrollRef.elementRef.nativeElement,\n 'touchend',\n );\n const click$ = tuiTypedFromEvent(\n yearsScrollRef.elementRef.nativeElement,\n 'click',\n );\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 mergeMap(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(\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(() => this.scrollToActiveYear('smooth'));\n }\n\n private initMonthScroll(): void {\n const {monthsScrollRef} = this;\n\n if (!monthsScrollRef) {\n return;\n }\n\n const touchstart$ = tuiTypedFromEvent(\n monthsScrollRef.elementRef.nativeElement,\n 'touchstart',\n {passive: true},\n );\n const touchend$ = tuiTypedFromEvent(\n monthsScrollRef.elementRef.nativeElement,\n 'touchend',\n );\n\n // Smooth scroll to the closest month after scrolling is done\n touchstart$\n .pipe(\n switchMap(() => touchend$),\n switchMap(() =>\n race(\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(() => this.scrollToActiveMonth('smooth'));\n }\n\n private scrollToActiveYear(behavior: ScrollBehavior = 'auto'): void {\n this.yearsScrollRef?.scrollToIndex(\n Math.max(this.activeYear - STARTING_YEAR - 2, 0),\n this.isCypress ? 'auto' : behavior,\n );\n }\n\n private scrollToActiveMonth(behavior: ScrollBehavior = 'auto'): void {\n this.monthsScrollRef?.scrollToIndex(\n this.activeMonth,\n this.isCypress ? 'auto' : 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","<header class=\"t-header\">\n <button\n tuiIconButton\n type=\"button\"\n automation-id=\"tui-mobile-calendar__cancel\"\n icon=\"tuiIconRemoveLarge\"\n shape=\"rounded\"\n appearance=\"\"\n tuiRipple\n class=\"t-close\"\n [title]=\"closeWord$ | async\"\n (click)=\"onClose()\"\n ></button>\n <button\n tuiLink\n tuiTouchable=\"opacity\"\n type=\"button\"\n class=\"t-link t-link_close\"\n (click)=\"onClose()\"\n >\n {{ cancelWord$ | async }}\n </button>\n <h2\n *ngIf=\"chooseDayOrRangeTexts$ | async as texts\"\n automation-id=\"tui-mobile-calendar__label\"\n class=\"t-label\"\n >\n {{ single ? texts[0] : texts[1] }}\n </h2>\n <button\n tuiLink\n tuiTouchable=\"opacity\"\n type=\"button\"\n automation-id=\"tui-mobile-calendar__confirm\"\n class=\"t-link\"\n (click)=\"onConfirm()\"\n >\n {{ doneWord$ | async }}\n </button>\n</header>\n<cdk-virtual-scroll-viewport\n #yearsScrollRef\n orientation=\"horizontal\"\n class=\"t-years\"\n [itemSize]=\"yearWidth\"\n>\n <div class=\"t-years-wrapper\">\n <button\n *cdkVirtualFor=\"let index of years\"\n type=\"button\"\n class=\"t-year\"\n [attr.data-state]=\"getState(index)\"\n (click)=\"setYear(index)\"\n >\n {{ index }}\n </button>\n </div>\n</cdk-virtual-scroll-viewport>\n<div class=\"t-week\">\n <div\n *ngFor=\"let day of unorderedWeekDays$ | tuiOrderWeekDays | async\"\n class=\"t-day\"\n >\n {{ day }}\n </div>\n</div>\n<cdk-virtual-scroll-viewport\n #monthsScrollRef\n class=\"t-months\"\n (scrolledIndexChange)=\"onMonthChange($event)\"\n>\n <section\n *cdkVirtualFor=\"let month of months; templateCacheSize: 10\"\n class=\"t-month-wrapper\"\n >\n <h2 class=\"t-month\">{{ month | tuiMonth | async }}</h2>\n <tui-primitive-calendar-mobile\n class=\"t-calendar\"\n [month]=\"month\"\n [value]=\"value\"\n [disabledItemHandler]=\"disabledItemHandler | tuiMapper : disabledItemHandlerMapper : min : max\"\n (dayClick)=\"onDayClick($event)\"\n ></tui-primitive-calendar-mobile>\n </section>\n</cdk-virtual-scroll-viewport>\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 {\n TuiButtonModule,\n TuiLinkModule,\n TuiMonthPipeModule,\n TuiOrderWeekDaysPipeModule,\n} 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 TuiOrderWeekDaysPipeModule,\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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"}
|
|
@@ -74,8 +74,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
|
|
|
74
74
|
type: Component,
|
|
75
75
|
args: [{
|
|
76
76
|
selector: '[tuiSheetHeading]',
|
|
77
|
-
templateUrl: 'sheet-heading.template.html',
|
|
78
|
-
styleUrls: ['sheet-heading.style.less'],
|
|
77
|
+
templateUrl: './sheet-heading.template.html',
|
|
78
|
+
styleUrls: ['./sheet-heading.style.less'],
|
|
79
79
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
80
80
|
}]
|
|
81
81
|
}], ctorParameters: function () { return [{ type: i3.TuiIdService, decorators: [{
|
|
@@ -133,8 +133,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
|
|
|
133
133
|
type: Component,
|
|
134
134
|
args: [{
|
|
135
135
|
selector: 'tui-sheet-bar',
|
|
136
|
-
templateUrl: 'sheet-bar.template.html',
|
|
137
|
-
styleUrls: ['sheet-bar.style.less'],
|
|
136
|
+
templateUrl: './sheet-bar.template.html',
|
|
137
|
+
styleUrls: ['./sheet-bar.style.less'],
|
|
138
138
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
139
139
|
}]
|
|
140
140
|
}], ctorParameters: function () { return [{ type: undefined, decorators: [{
|
|
@@ -305,8 +305,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
|
|
|
305
305
|
type: Component,
|
|
306
306
|
args: [{
|
|
307
307
|
selector: 'tui-sheet',
|
|
308
|
-
templateUrl: 'sheet.template.html',
|
|
309
|
-
styleUrls: ['sheet.style.less'],
|
|
308
|
+
templateUrl: './sheet.template.html',
|
|
309
|
+
styleUrls: ['./sheet.style.less'],
|
|
310
310
|
providers: TUI_SHEET_PROVIDERS,
|
|
311
311
|
animations: [tuiSlideInTop],
|
|
312
312
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
@@ -532,8 +532,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
|
|
|
532
532
|
type: Component,
|
|
533
533
|
args: [{
|
|
534
534
|
selector: 'tui-sheets-host',
|
|
535
|
-
templateUrl: 'sheets-host.template.html',
|
|
536
|
-
styleUrls: ['sheets-host.style.less'],
|
|
535
|
+
templateUrl: './sheets-host.template.html',
|
|
536
|
+
styleUrls: ['./sheets-host.style.less'],
|
|
537
537
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
538
538
|
animations: [tuiSlideInTop, tuiFadeIn],
|
|
539
539
|
}]
|