@taiga-ui/core 4.46.0 → 4.47.0-canary.fa64a58

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.
@@ -1,7 +1,7 @@
1
1
  import * as i1 from '@angular/common';
2
2
  import { CommonModule, AsyncPipe, NgIf } from '@angular/common';
3
3
  import * as i0 from '@angular/core';
4
- import { InjectionToken, inject, EventEmitter, Component, ChangeDetectionStrategy, Input, Output, ChangeDetectorRef } from '@angular/core';
4
+ import { InjectionToken, inject, EventEmitter, Component, ChangeDetectionStrategy, Input, Output, signal, computed, ChangeDetectorRef } from '@angular/core';
5
5
  import { TuiDay, TuiMonth, TuiDayRange, TUI_FIRST_DAY, TUI_LAST_DAY, MIN_YEAR, MAX_YEAR, TuiYear, TuiMonthRange, TUI_LAST_DISPLAYED_DAY } from '@taiga-ui/cdk/date-time';
6
6
  import { TuiMapperPipe } from '@taiga-ui/cdk/pipes/mapper';
7
7
  import { tuiProvideOptions, tuiNullableSame, tuiPure, tuiIsNumber } from '@taiga-ui/cdk/utils/miscellaneous';
@@ -226,25 +226,43 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
226
226
 
227
227
  const LIMIT = 100;
228
228
  const ITEMS_IN_ROW = 4;
229
+ const CURRENT_YEAR = TuiMonth.currentLocal().year;
229
230
  class TuiCalendarYear {
230
231
  constructor() {
231
- this.hoveredItem = null;
232
- this.currentYear = TuiMonth.currentLocal().year;
233
- this.value = null;
234
- this.initialItem = this.currentYear;
235
- this.min = MIN_YEAR;
236
- this.max = MAX_YEAR;
232
+ this.hoveredItem = signal(null);
233
+ this.isRangePicking = computed((x = this.value()) => this.rangeMode && (x instanceof TuiDay || x instanceof TuiMonth));
237
234
  this.rangeMode = false;
238
- this.disabledItemHandler = TUI_FALSE_HANDLER;
235
+ this.disabledItemHandler = inject(TUI_ITEMS_HANDLERS).disabledItemHandler();
239
236
  this.yearClick = new EventEmitter();
237
+ this.initialItem = signal(CURRENT_YEAR);
238
+ this.min = signal(MIN_YEAR);
239
+ this.max = signal(MAX_YEAR);
240
+ this.value = signal(null);
241
+ }
242
+ // TODO(v5): use signal inputs
243
+ set initialItemSetter(x) {
244
+ this.initialItem.set(x ?? CURRENT_YEAR);
245
+ }
246
+ // TODO(v5): use signal inputs
247
+ set minSetter(x) {
248
+ this.min.set(x);
249
+ }
250
+ // TODO(v5): use signal inputs
251
+ set maxSetter(x) {
252
+ this.max.set(x);
253
+ }
254
+ // TODO(v5): use signal inputs
255
+ set valueSetter(x) {
256
+ this.value.set(x);
240
257
  }
241
258
  isDisabled(item) {
242
- return ((this.max && this.max < item) ||
243
- (this.min && this.min > item) ||
259
+ return ((this.max() && this.max() < item) ||
260
+ (this.min() && this.min() > item) ||
244
261
  this.disabledItemHandler(item));
245
262
  }
246
263
  getItemRange(item) {
247
- const { value, hoveredItem } = this;
264
+ const value = this.value();
265
+ const hoveredItem = this.hoveredItem();
248
266
  if (value instanceof TuiYear && value.year === item) {
249
267
  return 'active';
250
268
  }
@@ -254,7 +272,7 @@ class TuiCalendarYear {
254
272
  if (!(value instanceof TuiMonthRange) && !(value instanceof TuiYear)) {
255
273
  return value?.find((day) => day.year === item) ? 'active' : null;
256
274
  }
257
- const hovered = this.isRangePicking ? hoveredItem : null;
275
+ const hovered = this.isRangePicking() ? hoveredItem : null;
258
276
  const from = 'from' in value ? value.from?.year : value.year;
259
277
  const to = 'from' in value ? value.to.year : value.year;
260
278
  const min = Math.min(from, hovered ?? to);
@@ -271,59 +289,56 @@ class TuiCalendarYear {
271
289
  return min < item && item < max ? 'middle' : null;
272
290
  }
273
291
  onItemHovered(hovered, item) {
274
- this.updateHoveredItem(hovered, item);
275
- }
276
- get isRangePicking() {
277
- return (this.rangeMode &&
278
- (this.value instanceof TuiDay || this.value instanceof TuiMonth));
292
+ this.hoveredItem.set(hovered ? item : null);
279
293
  }
280
294
  get rows() {
281
295
  return Math.ceil((this.calculatedMax - this.calculatedMin) / ITEMS_IN_ROW);
282
296
  }
283
297
  scrollItemIntoView(item) {
284
- return this.initialItem === item;
298
+ return this.initialItem() === item;
285
299
  }
286
300
  getItem(rowIndex, colIndex) {
287
301
  return rowIndex * ITEMS_IN_ROW + colIndex + this.calculatedMin;
288
302
  }
289
303
  itemIsToday(item) {
290
- return this.currentYear === item;
304
+ return CURRENT_YEAR === item;
291
305
  }
292
306
  get calculatedMin() {
293
- const initial = this.initialItem - LIMIT;
294
- const min = this.min ?? MIN_YEAR;
307
+ const initial = this.initialItem() - LIMIT;
308
+ const min = this.min() ?? MIN_YEAR;
295
309
  return min > initial ? min : initial;
296
310
  }
297
311
  get calculatedMax() {
298
- const initial = this.initialItem + LIMIT;
299
- const max = this.max ?? MAX_YEAR;
312
+ const initial = this.initialItem() + LIMIT;
313
+ const max = this.max() ?? MAX_YEAR;
300
314
  return max < initial ? max + 1 : initial;
301
315
  }
302
- updateHoveredItem(hovered, item) {
303
- this.hoveredItem = hovered ? item : null;
304
- }
305
316
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiCalendarYear, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
306
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TuiCalendarYear, isStandalone: true, selector: "tui-calendar-year", inputs: { value: "value", initialItem: "initialItem", min: "min", max: "max", rangeMode: "rangeMode", disabledItemHandler: "disabledItemHandler" }, outputs: { yearClick: "yearClick" }, host: { properties: { "class._picking": "isRangePicking" } }, ngImport: i0, template: "<div\n *tuiRepeatTimes=\"let rowIndex of rows\"\n automation-id=\"tui-calendar-year__row\"\n class=\"t-row\"\n>\n <ng-container *tuiRepeatTimes=\"let colIndex of 4\">\n <div\n *tuiLet=\"getItem(rowIndex, colIndex) as item\"\n automation-id=\"tui-calendar-year__cell\"\n class=\"t-cell\"\n [attr.data-range]=\"getItemRange(item)\"\n [class.t-cell_disabled]=\"isDisabled(item)\"\n [class.t-cell_today]=\"itemIsToday(item)\"\n [tuiScrollIntoView]=\"scrollItemIntoView(item)\"\n (click)=\"yearClick.emit(item)\"\n (tuiHoveredChange)=\"onItemHovered($event, item)\"\n >\n {{ item }}\n </div>\n </ng-container>\n</div>\n", styles: [".t-row{display:flex;justify-content:flex-start;font:var(--tui-font-text-m)}.t-row:first-child{justify-content:flex-end}.t-row:last-child{justify-content:flex-start}.t-cell{position:relative;display:flex;align-items:center;justify-content:center;line-height:2rem;isolation:isolate;cursor:pointer;overflow:hidden;border:.125rem solid transparent;box-sizing:border-box;-webkit-mask:linear-gradient(transparent calc(50% - 1rem),#000 calc(50% - 1rem),#000 calc(50% + 1rem),transparent calc(50% + 1rem));mask:linear-gradient(transparent calc(50% - 1rem),#000 calc(50% - 1rem),#000 calc(50% + 1rem),transparent calc(50% + 1rem))}.t-cell:first-child{border-inline-start-color:transparent!important}.t-cell:last-child{border-inline-end-color:transparent!important}.t-cell:before,.t-cell:after{position:absolute;top:0;left:0;bottom:0;right:0;content:\"\";z-index:-1;border-radius:var(--tui-radius-m)}.t-cell:after{-webkit-mask:url('data:image/svg+xml,<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 12 32\"><path d=\"M0.2856 0L0.6763 0C2.9265 0 4.9876 1.259 6.0147 3.2611L10.2442 11.5048C11.5301 14.0113 11.5683 16.9754 10.3472 19.5141L5.9766 28.6007C4.9772 30.6786 2.8754 32 0.5696 32H0.285645V0Z\"></path></svg>') right / .75rem 100% no-repeat,linear-gradient(#000,#000) left / calc(100% - .7rem) 100% no-repeat;mask:url('data:image/svg+xml,<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 12 32\"><path d=\"M0.2856 0L0.6763 0C2.9265 0 4.9876 1.259 6.0147 3.2611L10.2442 11.5048C11.5301 14.0113 11.5683 16.9754 10.3472 19.5141L5.9766 28.6007C4.9772 30.6786 2.8754 32 0.5696 32H0.285645V0Z\"></path></svg>') right / .75rem 100% no-repeat,linear-gradient(#000,#000) left / calc(100% - .7rem) 100% no-repeat}.t-cell[data-range]:before{background:var(--tui-background-neutral-1)}:host._picking .t-cell[data-range]:before{background:var(--tui-background-neutral-1-hover)}.t-cell[data-range=middle]{border-color:var(--tui-background-neutral-1)}:host._picking .t-cell[data-range=middle]{border-color:var(--tui-background-neutral-1-hover)}.t-cell[data-range=middle]:not(:first-child):before{border-top-left-radius:0;border-bottom-left-radius:0}.t-cell[data-range=middle]:not(:last-child):before{border-top-right-radius:0;border-bottom-right-radius:0}.t-cell[data-range=start]{border-inline-end-color:var(--tui-background-neutral-1);color:var(--tui-text-primary-on-accent-1)}:host._picking .t-cell[data-range=start]{border-inline-end-color:var(--tui-background-neutral-1-hover)}.t-cell[data-range=start]:not(:last-child):before{right:-1rem}.t-cell[data-range=start]:after{background:var(--tui-background-accent-1)}.t-cell[data-range=end]{border-inline-start-color:var(--tui-background-neutral-1);color:var(--tui-text-primary-on-accent-1)}:host._picking .t-cell[data-range=end]{border-inline-start-color:var(--tui-background-neutral-1-hover)}.t-cell[data-range=end]:not(:first-child):before{left:-1rem}.t-cell[data-range=end]:after{background:var(--tui-background-accent-1);transform:scaleX(-1)}.t-cell[data-range=active]{color:var(--tui-text-primary-on-accent-1)}.t-cell[data-range=active]:after{background:var(--tui-background-accent-1);-webkit-mask:none;mask:none}.t-cell_disabled{opacity:var(--tui-disabled-opacity);pointer-events:none}.t-cell_today{text-decoration:underline;text-underline-offset:.25rem}@media (hover: hover) and (pointer: fine){.t-cell:hover:not([data-range=start]):not([data-range=end]):before{background:var(--tui-background-neutral-1-hover)}.t-cell[data-range=start]:hover:after,.t-cell[data-range=end]:hover:after,.t-cell[data-range=active]:hover:after{background:var(--tui-background-accent-1-hover)}}:host{display:block;padding-inline-end:1rem}.t-cell{flex:1;border-block-start-width:.5rem;border-block-end-width:.5rem}\n"], dependencies: [{ kind: "directive", type: TuiHovered, selector: "[tuiHoveredChange]", outputs: ["tuiHoveredChange"] }, { kind: "directive", type: TuiLet, selector: "[tuiLet]", inputs: ["tuiLet"] }, { kind: "directive", type: TuiRepeatTimes, selector: "[tuiRepeatTimes][tuiRepeatTimesOf]", inputs: ["tuiRepeatTimesOf"] }, { kind: "directive", type: TuiScrollIntoView, selector: "[tuiScrollIntoView]", inputs: ["tuiScrollIntoView"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
317
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "16.2.12", type: TuiCalendarYear, isStandalone: true, selector: "tui-calendar-year", inputs: { rangeMode: "rangeMode", disabledItemHandler: "disabledItemHandler", initialItemSetter: ["initialItem", "initialItemSetter", (x) => x ?? CURRENT_YEAR], minSetter: ["min", "minSetter", (x) => x ?? MIN_YEAR], maxSetter: ["max", "maxSetter", (x) => x ?? MAX_YEAR], valueSetter: ["value", "valueSetter"] }, outputs: { yearClick: "yearClick" }, host: { properties: { "class._picking": "isRangePicking()" } }, providers: [tuiAsAuxiliary(TuiCalendarYear)], ngImport: i0, template: "<div\n *tuiRepeatTimes=\"let rowIndex of rows\"\n automation-id=\"tui-calendar-year__row\"\n class=\"t-row\"\n>\n <ng-container *tuiRepeatTimes=\"let colIndex of 4\">\n <div\n *tuiLet=\"getItem(rowIndex, colIndex) as item\"\n automation-id=\"tui-calendar-year__cell\"\n class=\"t-cell\"\n [attr.data-range]=\"getItemRange(item)\"\n [class.t-cell_disabled]=\"isDisabled(item)\"\n [class.t-cell_today]=\"itemIsToday(item)\"\n [tuiScrollIntoView]=\"scrollItemIntoView(item)\"\n (click)=\"yearClick.emit(item)\"\n (tuiHoveredChange)=\"onItemHovered($event, item)\"\n >\n {{ item }}\n </div>\n </ng-container>\n</div>\n", styles: [".t-row{display:flex;justify-content:flex-start;font:var(--tui-font-text-m)}.t-row:first-child{justify-content:flex-end}.t-row:last-child{justify-content:flex-start}.t-cell{position:relative;display:flex;align-items:center;justify-content:center;line-height:2rem;isolation:isolate;cursor:pointer;overflow:hidden;border:.125rem solid transparent;box-sizing:border-box;-webkit-mask:linear-gradient(transparent calc(50% - 1rem),#000 calc(50% - 1rem),#000 calc(50% + 1rem),transparent calc(50% + 1rem));mask:linear-gradient(transparent calc(50% - 1rem),#000 calc(50% - 1rem),#000 calc(50% + 1rem),transparent calc(50% + 1rem))}.t-cell:first-child{border-inline-start-color:transparent!important}.t-cell:last-child{border-inline-end-color:transparent!important}.t-cell:before,.t-cell:after{position:absolute;top:0;left:0;bottom:0;right:0;content:\"\";z-index:-1;border-radius:var(--tui-radius-m)}.t-cell:after{-webkit-mask:url('data:image/svg+xml,<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 12 32\"><path d=\"M0.2856 0L0.6763 0C2.9265 0 4.9876 1.259 6.0147 3.2611L10.2442 11.5048C11.5301 14.0113 11.5683 16.9754 10.3472 19.5141L5.9766 28.6007C4.9772 30.6786 2.8754 32 0.5696 32H0.285645V0Z\"></path></svg>') right / .75rem 100% no-repeat,linear-gradient(#000,#000) left / calc(100% - .7rem) 100% no-repeat;mask:url('data:image/svg+xml,<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 12 32\"><path d=\"M0.2856 0L0.6763 0C2.9265 0 4.9876 1.259 6.0147 3.2611L10.2442 11.5048C11.5301 14.0113 11.5683 16.9754 10.3472 19.5141L5.9766 28.6007C4.9772 30.6786 2.8754 32 0.5696 32H0.285645V0Z\"></path></svg>') right / .75rem 100% no-repeat,linear-gradient(#000,#000) left / calc(100% - .7rem) 100% no-repeat}.t-cell[data-range]:before{background:var(--tui-background-neutral-1)}:host._picking .t-cell[data-range]:before{background:var(--tui-background-neutral-1-hover)}.t-cell[data-range=middle]{border-color:var(--tui-background-neutral-1)}:host._picking .t-cell[data-range=middle]{border-color:var(--tui-background-neutral-1-hover)}.t-cell[data-range=middle]:not(:first-child):before{border-top-left-radius:0;border-bottom-left-radius:0}.t-cell[data-range=middle]:not(:last-child):before{border-top-right-radius:0;border-bottom-right-radius:0}.t-cell[data-range=start]{border-inline-end-color:var(--tui-background-neutral-1);color:var(--tui-text-primary-on-accent-1)}:host._picking .t-cell[data-range=start]{border-inline-end-color:var(--tui-background-neutral-1-hover)}.t-cell[data-range=start]:not(:last-child):before{right:-1rem}.t-cell[data-range=start]:after{background:var(--tui-background-accent-1)}.t-cell[data-range=end]{border-inline-start-color:var(--tui-background-neutral-1);color:var(--tui-text-primary-on-accent-1)}:host._picking .t-cell[data-range=end]{border-inline-start-color:var(--tui-background-neutral-1-hover)}.t-cell[data-range=end]:not(:first-child):before{left:-1rem}.t-cell[data-range=end]:after{background:var(--tui-background-accent-1);transform:scaleX(-1)}.t-cell[data-range=active]{color:var(--tui-text-primary-on-accent-1)}.t-cell[data-range=active]:after{background:var(--tui-background-accent-1);-webkit-mask:none;mask:none}.t-cell_disabled{opacity:var(--tui-disabled-opacity);pointer-events:none}.t-cell_today{text-decoration:underline;text-underline-offset:.25rem}@media (hover: hover) and (pointer: fine){.t-cell:hover:not([data-range=start]):not([data-range=end]):before{background:var(--tui-background-neutral-1-hover)}.t-cell[data-range=start]:hover:after,.t-cell[data-range=end]:hover:after,.t-cell[data-range=active]:hover:after{background:var(--tui-background-accent-1-hover)}}:host{display:block;padding-inline-end:1rem;inline-size:15.75rem;padding:0 1.125rem}.t-cell{flex:1;border-block-start-width:.5rem;border-block-end-width:.5rem}\n"], dependencies: [{ kind: "directive", type: TuiHovered, selector: "[tuiHoveredChange]", outputs: ["tuiHoveredChange"] }, { kind: "directive", type: TuiLet, selector: "[tuiLet]", inputs: ["tuiLet"] }, { kind: "directive", type: TuiRepeatTimes, selector: "[tuiRepeatTimes][tuiRepeatTimesOf]", inputs: ["tuiRepeatTimesOf"] }, { kind: "directive", type: TuiScrollIntoView, selector: "[tuiScrollIntoView]", inputs: ["tuiScrollIntoView"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
307
318
  }
308
319
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiCalendarYear, decorators: [{
309
320
  type: Component,
310
- args: [{ standalone: true, selector: 'tui-calendar-year', imports: [TuiHovered, TuiLet, TuiRepeatTimes, TuiScrollIntoView], changeDetection: ChangeDetectionStrategy.OnPush, host: {
311
- '[class._picking]': 'isRangePicking',
312
- }, template: "<div\n *tuiRepeatTimes=\"let rowIndex of rows\"\n automation-id=\"tui-calendar-year__row\"\n class=\"t-row\"\n>\n <ng-container *tuiRepeatTimes=\"let colIndex of 4\">\n <div\n *tuiLet=\"getItem(rowIndex, colIndex) as item\"\n automation-id=\"tui-calendar-year__cell\"\n class=\"t-cell\"\n [attr.data-range]=\"getItemRange(item)\"\n [class.t-cell_disabled]=\"isDisabled(item)\"\n [class.t-cell_today]=\"itemIsToday(item)\"\n [tuiScrollIntoView]=\"scrollItemIntoView(item)\"\n (click)=\"yearClick.emit(item)\"\n (tuiHoveredChange)=\"onItemHovered($event, item)\"\n >\n {{ item }}\n </div>\n </ng-container>\n</div>\n", styles: [".t-row{display:flex;justify-content:flex-start;font:var(--tui-font-text-m)}.t-row:first-child{justify-content:flex-end}.t-row:last-child{justify-content:flex-start}.t-cell{position:relative;display:flex;align-items:center;justify-content:center;line-height:2rem;isolation:isolate;cursor:pointer;overflow:hidden;border:.125rem solid transparent;box-sizing:border-box;-webkit-mask:linear-gradient(transparent calc(50% - 1rem),#000 calc(50% - 1rem),#000 calc(50% + 1rem),transparent calc(50% + 1rem));mask:linear-gradient(transparent calc(50% - 1rem),#000 calc(50% - 1rem),#000 calc(50% + 1rem),transparent calc(50% + 1rem))}.t-cell:first-child{border-inline-start-color:transparent!important}.t-cell:last-child{border-inline-end-color:transparent!important}.t-cell:before,.t-cell:after{position:absolute;top:0;left:0;bottom:0;right:0;content:\"\";z-index:-1;border-radius:var(--tui-radius-m)}.t-cell:after{-webkit-mask:url('data:image/svg+xml,<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 12 32\"><path d=\"M0.2856 0L0.6763 0C2.9265 0 4.9876 1.259 6.0147 3.2611L10.2442 11.5048C11.5301 14.0113 11.5683 16.9754 10.3472 19.5141L5.9766 28.6007C4.9772 30.6786 2.8754 32 0.5696 32H0.285645V0Z\"></path></svg>') right / .75rem 100% no-repeat,linear-gradient(#000,#000) left / calc(100% - .7rem) 100% no-repeat;mask:url('data:image/svg+xml,<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 12 32\"><path d=\"M0.2856 0L0.6763 0C2.9265 0 4.9876 1.259 6.0147 3.2611L10.2442 11.5048C11.5301 14.0113 11.5683 16.9754 10.3472 19.5141L5.9766 28.6007C4.9772 30.6786 2.8754 32 0.5696 32H0.285645V0Z\"></path></svg>') right / .75rem 100% no-repeat,linear-gradient(#000,#000) left / calc(100% - .7rem) 100% no-repeat}.t-cell[data-range]:before{background:var(--tui-background-neutral-1)}:host._picking .t-cell[data-range]:before{background:var(--tui-background-neutral-1-hover)}.t-cell[data-range=middle]{border-color:var(--tui-background-neutral-1)}:host._picking .t-cell[data-range=middle]{border-color:var(--tui-background-neutral-1-hover)}.t-cell[data-range=middle]:not(:first-child):before{border-top-left-radius:0;border-bottom-left-radius:0}.t-cell[data-range=middle]:not(:last-child):before{border-top-right-radius:0;border-bottom-right-radius:0}.t-cell[data-range=start]{border-inline-end-color:var(--tui-background-neutral-1);color:var(--tui-text-primary-on-accent-1)}:host._picking .t-cell[data-range=start]{border-inline-end-color:var(--tui-background-neutral-1-hover)}.t-cell[data-range=start]:not(:last-child):before{right:-1rem}.t-cell[data-range=start]:after{background:var(--tui-background-accent-1)}.t-cell[data-range=end]{border-inline-start-color:var(--tui-background-neutral-1);color:var(--tui-text-primary-on-accent-1)}:host._picking .t-cell[data-range=end]{border-inline-start-color:var(--tui-background-neutral-1-hover)}.t-cell[data-range=end]:not(:first-child):before{left:-1rem}.t-cell[data-range=end]:after{background:var(--tui-background-accent-1);transform:scaleX(-1)}.t-cell[data-range=active]{color:var(--tui-text-primary-on-accent-1)}.t-cell[data-range=active]:after{background:var(--tui-background-accent-1);-webkit-mask:none;mask:none}.t-cell_disabled{opacity:var(--tui-disabled-opacity);pointer-events:none}.t-cell_today{text-decoration:underline;text-underline-offset:.25rem}@media (hover: hover) and (pointer: fine){.t-cell:hover:not([data-range=start]):not([data-range=end]):before{background:var(--tui-background-neutral-1-hover)}.t-cell[data-range=start]:hover:after,.t-cell[data-range=end]:hover:after,.t-cell[data-range=active]:hover:after{background:var(--tui-background-accent-1-hover)}}:host{display:block;padding-inline-end:1rem}.t-cell{flex:1;border-block-start-width:.5rem;border-block-end-width:.5rem}\n"] }]
313
- }], propDecorators: { value: [{
314
- type: Input
315
- }], initialItem: [{
316
- type: Input
317
- }], min: [{
318
- type: Input
319
- }], max: [{
320
- type: Input
321
- }], rangeMode: [{
321
+ args: [{ standalone: true, selector: 'tui-calendar-year', imports: [TuiHovered, TuiLet, TuiRepeatTimes, TuiScrollIntoView], changeDetection: ChangeDetectionStrategy.OnPush, providers: [tuiAsAuxiliary(TuiCalendarYear)], host: {
322
+ '[class._picking]': 'isRangePicking()',
323
+ }, template: "<div\n *tuiRepeatTimes=\"let rowIndex of rows\"\n automation-id=\"tui-calendar-year__row\"\n class=\"t-row\"\n>\n <ng-container *tuiRepeatTimes=\"let colIndex of 4\">\n <div\n *tuiLet=\"getItem(rowIndex, colIndex) as item\"\n automation-id=\"tui-calendar-year__cell\"\n class=\"t-cell\"\n [attr.data-range]=\"getItemRange(item)\"\n [class.t-cell_disabled]=\"isDisabled(item)\"\n [class.t-cell_today]=\"itemIsToday(item)\"\n [tuiScrollIntoView]=\"scrollItemIntoView(item)\"\n (click)=\"yearClick.emit(item)\"\n (tuiHoveredChange)=\"onItemHovered($event, item)\"\n >\n {{ item }}\n </div>\n </ng-container>\n</div>\n", styles: [".t-row{display:flex;justify-content:flex-start;font:var(--tui-font-text-m)}.t-row:first-child{justify-content:flex-end}.t-row:last-child{justify-content:flex-start}.t-cell{position:relative;display:flex;align-items:center;justify-content:center;line-height:2rem;isolation:isolate;cursor:pointer;overflow:hidden;border:.125rem solid transparent;box-sizing:border-box;-webkit-mask:linear-gradient(transparent calc(50% - 1rem),#000 calc(50% - 1rem),#000 calc(50% + 1rem),transparent calc(50% + 1rem));mask:linear-gradient(transparent calc(50% - 1rem),#000 calc(50% - 1rem),#000 calc(50% + 1rem),transparent calc(50% + 1rem))}.t-cell:first-child{border-inline-start-color:transparent!important}.t-cell:last-child{border-inline-end-color:transparent!important}.t-cell:before,.t-cell:after{position:absolute;top:0;left:0;bottom:0;right:0;content:\"\";z-index:-1;border-radius:var(--tui-radius-m)}.t-cell:after{-webkit-mask:url('data:image/svg+xml,<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 12 32\"><path d=\"M0.2856 0L0.6763 0C2.9265 0 4.9876 1.259 6.0147 3.2611L10.2442 11.5048C11.5301 14.0113 11.5683 16.9754 10.3472 19.5141L5.9766 28.6007C4.9772 30.6786 2.8754 32 0.5696 32H0.285645V0Z\"></path></svg>') right / .75rem 100% no-repeat,linear-gradient(#000,#000) left / calc(100% - .7rem) 100% no-repeat;mask:url('data:image/svg+xml,<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 12 32\"><path d=\"M0.2856 0L0.6763 0C2.9265 0 4.9876 1.259 6.0147 3.2611L10.2442 11.5048C11.5301 14.0113 11.5683 16.9754 10.3472 19.5141L5.9766 28.6007C4.9772 30.6786 2.8754 32 0.5696 32H0.285645V0Z\"></path></svg>') right / .75rem 100% no-repeat,linear-gradient(#000,#000) left / calc(100% - .7rem) 100% no-repeat}.t-cell[data-range]:before{background:var(--tui-background-neutral-1)}:host._picking .t-cell[data-range]:before{background:var(--tui-background-neutral-1-hover)}.t-cell[data-range=middle]{border-color:var(--tui-background-neutral-1)}:host._picking .t-cell[data-range=middle]{border-color:var(--tui-background-neutral-1-hover)}.t-cell[data-range=middle]:not(:first-child):before{border-top-left-radius:0;border-bottom-left-radius:0}.t-cell[data-range=middle]:not(:last-child):before{border-top-right-radius:0;border-bottom-right-radius:0}.t-cell[data-range=start]{border-inline-end-color:var(--tui-background-neutral-1);color:var(--tui-text-primary-on-accent-1)}:host._picking .t-cell[data-range=start]{border-inline-end-color:var(--tui-background-neutral-1-hover)}.t-cell[data-range=start]:not(:last-child):before{right:-1rem}.t-cell[data-range=start]:after{background:var(--tui-background-accent-1)}.t-cell[data-range=end]{border-inline-start-color:var(--tui-background-neutral-1);color:var(--tui-text-primary-on-accent-1)}:host._picking .t-cell[data-range=end]{border-inline-start-color:var(--tui-background-neutral-1-hover)}.t-cell[data-range=end]:not(:first-child):before{left:-1rem}.t-cell[data-range=end]:after{background:var(--tui-background-accent-1);transform:scaleX(-1)}.t-cell[data-range=active]{color:var(--tui-text-primary-on-accent-1)}.t-cell[data-range=active]:after{background:var(--tui-background-accent-1);-webkit-mask:none;mask:none}.t-cell_disabled{opacity:var(--tui-disabled-opacity);pointer-events:none}.t-cell_today{text-decoration:underline;text-underline-offset:.25rem}@media (hover: hover) and (pointer: fine){.t-cell:hover:not([data-range=start]):not([data-range=end]):before{background:var(--tui-background-neutral-1-hover)}.t-cell[data-range=start]:hover:after,.t-cell[data-range=end]:hover:after,.t-cell[data-range=active]:hover:after{background:var(--tui-background-accent-1-hover)}}:host{display:block;padding-inline-end:1rem;inline-size:15.75rem;padding:0 1.125rem}.t-cell{flex:1;border-block-start-width:.5rem;border-block-end-width:.5rem}\n"] }]
324
+ }], propDecorators: { rangeMode: [{
322
325
  type: Input
323
326
  }], disabledItemHandler: [{
324
327
  type: Input
325
328
  }], yearClick: [{
326
329
  type: Output
330
+ }], initialItemSetter: [{
331
+ type: Input,
332
+ args: [{ alias: 'initialItem', transform: (x) => x ?? CURRENT_YEAR }]
333
+ }], minSetter: [{
334
+ type: Input,
335
+ args: [{ alias: 'min', transform: (x) => x ?? MIN_YEAR }]
336
+ }], maxSetter: [{
337
+ type: Input,
338
+ args: [{ alias: 'max', transform: (x) => x ?? MAX_YEAR }]
339
+ }], valueSetter: [{
340
+ type: Input,
341
+ args: ['value']
327
342
  }] } });
328
343
 
329
344
  class TuiCalendar {
@@ -414,7 +429,7 @@ class TuiCalendar {
414
429
  this.hoveredItemChange.emit(day);
415
430
  }
416
431
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiCalendar, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
417
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TuiCalendar, isStandalone: true, selector: "tui-calendar", inputs: { month: "month", disabledItemHandler: "disabledItemHandler", min: "min", max: "max", minViewedMonth: "minViewedMonth", maxViewedMonth: "maxViewedMonth", hoveredItem: "hoveredItem", showAdjacent: "showAdjacent", markerHandler: "markerHandler", value: "value", initialView: "initialView" }, outputs: { dayClick: "dayClick", monthChange: "monthChange", hoveredItemChange: "hoveredItemChange" }, host: { listeners: { "pointerdown.prevent.zoneless": "0" } }, providers: [tuiAsAuxiliary(TuiCalendar)], ngImport: i0, template: "<tui-scrollbar\n *ngIf=\"isInYearView; else calendar\"\n automation-id=\"tui-calendar__scrollbar\"\n class=\"t-scrollbar\"\n>\n <tui-calendar-year\n automation-id=\"tui-calendar__year\"\n [initialItem]=\"month.year\"\n [max]=\"computedMax.year\"\n [min]=\"computedMin.year\"\n [rangeMode]=\"options.rangeMode\"\n [value]=\"value\"\n (yearClick)=\"onPickerYearClick($event)\"\n />\n</tui-scrollbar>\n<ng-template #calendar>\n <tui-calendar-spin\n automation-id=\"tui-calendar__pagination\"\n class=\"t-pagination\"\n [max]=\"computedMaxViewedMonth\"\n [min]=\"computedMinViewedMonth\"\n [value]=\"month\"\n (valueChange)=\"onPaginationValueChange($event)\"\n (yearClick)=\"onPaginationYearClick()\"\n />\n <tui-calendar-sheet\n automation-id=\"tui-calendar__calendar\"\n [disabledItemHandler]=\"disabledItemHandler | tuiMapper: disabledItemHandlerMapper : computedMin : computedMax\"\n [hoveredItem]=\"hoveredItem\"\n [markerHandler]=\"markerHandler\"\n [month]=\"month\"\n [showAdjacent]=\"showAdjacent\"\n [value]=\"value\"\n (dayClick)=\"onDayClick($event)\"\n (hoveredItemChange)=\"onHoveredItemChange($event)\"\n />\n</ng-template>\n", styles: [":host{display:block;min-block-size:20.25rem;inline-size:18rem;padding:1rem 1.125rem;box-sizing:border-box;flex-shrink:0}:host-context(tui-dropdown-mobile){inline-size:100%}.t-scrollbar{block-size:18.25rem;inline-size:calc(100% + 1rem)}.t-pagination{margin-block-end:1rem}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: TuiCalendarSheet, selector: "tui-calendar-sheet", inputs: ["month", "disabledItemHandler", "markerHandler", "value", "hoveredItem", "showAdjacent", "single"], outputs: ["hoveredItemChange", "dayClick"] }, { kind: "component", type: TuiCalendarSpin, selector: "tui-calendar-spin", inputs: ["value", "min", "max"], outputs: ["valueChange", "yearClick"] }, { kind: "component", type: TuiCalendarYear, selector: "tui-calendar-year", inputs: ["value", "initialItem", "min", "max", "rangeMode", "disabledItemHandler"], outputs: ["yearClick"] }, { kind: "pipe", type: TuiMapperPipe, name: "tuiMapper" }, { kind: "component", type: TuiScrollbar, selector: "tui-scrollbar", inputs: ["hidden"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
432
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TuiCalendar, isStandalone: true, selector: "tui-calendar", inputs: { month: "month", disabledItemHandler: "disabledItemHandler", min: "min", max: "max", minViewedMonth: "minViewedMonth", maxViewedMonth: "maxViewedMonth", hoveredItem: "hoveredItem", showAdjacent: "showAdjacent", markerHandler: "markerHandler", value: "value", initialView: "initialView" }, outputs: { dayClick: "dayClick", monthChange: "monthChange", hoveredItemChange: "hoveredItemChange" }, host: { listeners: { "pointerdown.prevent.zoneless": "0" } }, providers: [tuiAsAuxiliary(TuiCalendar)], ngImport: i0, template: "<tui-scrollbar\n *ngIf=\"isInYearView; else calendar\"\n automation-id=\"tui-calendar__scrollbar\"\n class=\"t-scrollbar\"\n>\n <tui-calendar-year\n automation-id=\"tui-calendar__year\"\n [initialItem]=\"month.year\"\n [max]=\"computedMax.year\"\n [min]=\"computedMin.year\"\n [rangeMode]=\"options.rangeMode\"\n [value]=\"value\"\n (yearClick)=\"onPickerYearClick($event)\"\n />\n</tui-scrollbar>\n<ng-template #calendar>\n <tui-calendar-spin\n automation-id=\"tui-calendar__pagination\"\n class=\"t-pagination\"\n [max]=\"computedMaxViewedMonth\"\n [min]=\"computedMinViewedMonth\"\n [value]=\"month\"\n (valueChange)=\"onPaginationValueChange($event)\"\n (yearClick)=\"onPaginationYearClick()\"\n />\n <tui-calendar-sheet\n automation-id=\"tui-calendar__calendar\"\n [disabledItemHandler]=\"disabledItemHandler | tuiMapper: disabledItemHandlerMapper : computedMin : computedMax\"\n [hoveredItem]=\"hoveredItem\"\n [markerHandler]=\"markerHandler\"\n [month]=\"month\"\n [showAdjacent]=\"showAdjacent\"\n [value]=\"value\"\n (dayClick)=\"onDayClick($event)\"\n (hoveredItemChange)=\"onHoveredItemChange($event)\"\n />\n</ng-template>\n", styles: [":host{display:block;min-block-size:20.25rem;inline-size:18rem;padding:1rem 1.125rem;box-sizing:border-box;flex-shrink:0}:host-context(tui-dropdown-mobile){inline-size:100%}tui-calendar-year{padding:0}.t-scrollbar{block-size:18.25rem;inline-size:calc(100% + 1rem)}.t-pagination{margin-block-end:1rem}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: TuiCalendarSheet, selector: "tui-calendar-sheet", inputs: ["month", "disabledItemHandler", "markerHandler", "value", "hoveredItem", "showAdjacent", "single"], outputs: ["hoveredItemChange", "dayClick"] }, { kind: "component", type: TuiCalendarSpin, selector: "tui-calendar-spin", inputs: ["value", "min", "max"], outputs: ["valueChange", "yearClick"] }, { kind: "component", type: TuiCalendarYear, selector: "tui-calendar-year", inputs: ["rangeMode", "disabledItemHandler", "initialItem", "min", "max", "value"], outputs: ["yearClick"] }, { kind: "pipe", type: TuiMapperPipe, name: "tuiMapper" }, { kind: "component", type: TuiScrollbar, selector: "tui-scrollbar", inputs: ["hidden"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
418
433
  }
419
434
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiCalendar, decorators: [{
420
435
  type: Component,
@@ -427,7 +442,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
427
442
  TuiScrollbar,
428
443
  ], changeDetection: ChangeDetectionStrategy.OnPush, providers: [tuiAsAuxiliary(TuiCalendar)], host: {
429
444
  '(pointerdown.prevent.zoneless)': '0',
430
- }, template: "<tui-scrollbar\n *ngIf=\"isInYearView; else calendar\"\n automation-id=\"tui-calendar__scrollbar\"\n class=\"t-scrollbar\"\n>\n <tui-calendar-year\n automation-id=\"tui-calendar__year\"\n [initialItem]=\"month.year\"\n [max]=\"computedMax.year\"\n [min]=\"computedMin.year\"\n [rangeMode]=\"options.rangeMode\"\n [value]=\"value\"\n (yearClick)=\"onPickerYearClick($event)\"\n />\n</tui-scrollbar>\n<ng-template #calendar>\n <tui-calendar-spin\n automation-id=\"tui-calendar__pagination\"\n class=\"t-pagination\"\n [max]=\"computedMaxViewedMonth\"\n [min]=\"computedMinViewedMonth\"\n [value]=\"month\"\n (valueChange)=\"onPaginationValueChange($event)\"\n (yearClick)=\"onPaginationYearClick()\"\n />\n <tui-calendar-sheet\n automation-id=\"tui-calendar__calendar\"\n [disabledItemHandler]=\"disabledItemHandler | tuiMapper: disabledItemHandlerMapper : computedMin : computedMax\"\n [hoveredItem]=\"hoveredItem\"\n [markerHandler]=\"markerHandler\"\n [month]=\"month\"\n [showAdjacent]=\"showAdjacent\"\n [value]=\"value\"\n (dayClick)=\"onDayClick($event)\"\n (hoveredItemChange)=\"onHoveredItemChange($event)\"\n />\n</ng-template>\n", styles: [":host{display:block;min-block-size:20.25rem;inline-size:18rem;padding:1rem 1.125rem;box-sizing:border-box;flex-shrink:0}:host-context(tui-dropdown-mobile){inline-size:100%}.t-scrollbar{block-size:18.25rem;inline-size:calc(100% + 1rem)}.t-pagination{margin-block-end:1rem}\n"] }]
445
+ }, template: "<tui-scrollbar\n *ngIf=\"isInYearView; else calendar\"\n automation-id=\"tui-calendar__scrollbar\"\n class=\"t-scrollbar\"\n>\n <tui-calendar-year\n automation-id=\"tui-calendar__year\"\n [initialItem]=\"month.year\"\n [max]=\"computedMax.year\"\n [min]=\"computedMin.year\"\n [rangeMode]=\"options.rangeMode\"\n [value]=\"value\"\n (yearClick)=\"onPickerYearClick($event)\"\n />\n</tui-scrollbar>\n<ng-template #calendar>\n <tui-calendar-spin\n automation-id=\"tui-calendar__pagination\"\n class=\"t-pagination\"\n [max]=\"computedMaxViewedMonth\"\n [min]=\"computedMinViewedMonth\"\n [value]=\"month\"\n (valueChange)=\"onPaginationValueChange($event)\"\n (yearClick)=\"onPaginationYearClick()\"\n />\n <tui-calendar-sheet\n automation-id=\"tui-calendar__calendar\"\n [disabledItemHandler]=\"disabledItemHandler | tuiMapper: disabledItemHandlerMapper : computedMin : computedMax\"\n [hoveredItem]=\"hoveredItem\"\n [markerHandler]=\"markerHandler\"\n [month]=\"month\"\n [showAdjacent]=\"showAdjacent\"\n [value]=\"value\"\n (dayClick)=\"onDayClick($event)\"\n (hoveredItemChange)=\"onHoveredItemChange($event)\"\n />\n</ng-template>\n", styles: [":host{display:block;min-block-size:20.25rem;inline-size:18rem;padding:1rem 1.125rem;box-sizing:border-box;flex-shrink:0}:host-context(tui-dropdown-mobile){inline-size:100%}tui-calendar-year{padding:0}.t-scrollbar{block-size:18.25rem;inline-size:calc(100% + 1rem)}.t-pagination{margin-block-end:1rem}\n"] }]
431
446
  }], propDecorators: { month: [{
432
447
  type: Input
433
448
  }], disabledItemHandler: [{
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-core-components-calendar.mjs","sources":["../../../projects/core/components/calendar/calendar-sheet.options.ts","../../../projects/core/components/calendar/calendar-sheet.component.ts","../../../projects/core/components/calendar/calendar-sheet.template.html","../../../projects/core/components/calendar/calendar-spin.component.ts","../../../projects/core/components/calendar/calendar-spin.template.html","../../../projects/core/components/calendar/calendar-year.component.ts","../../../projects/core/components/calendar/calendar-year.template.html","../../../projects/core/components/calendar/calendar.component.ts","../../../projects/core/components/calendar/calendar.template.html","../../../projects/core/components/calendar/taiga-ui-core-components-calendar.ts"],"sourcesContent":["import type {Provider} from '@angular/core';\nimport {InjectionToken} from '@angular/core';\nimport {tuiProvideOptions} from '@taiga-ui/cdk/utils/miscellaneous';\n\nexport interface TuiCalendarSheetOptions {\n readonly rangeMode: boolean;\n}\n\nexport const TUI_CALENDAR_SHEET_DEFAULT_OPTIONS: TuiCalendarSheetOptions = {\n rangeMode: false,\n};\n\nexport const TUI_CALENDAR_SHEET_OPTIONS = new InjectionToken(\n ngDevMode ? 'TUI_CALENDAR_SHEET_OPTIONS' : '',\n {\n factory: () => TUI_CALENDAR_SHEET_DEFAULT_OPTIONS,\n },\n);\n\nexport function tuiCalendarSheetOptionsProvider(\n options: Partial<TuiCalendarSheetOptions>,\n): Provider {\n return tuiProvideOptions(\n TUI_CALENDAR_SHEET_OPTIONS,\n options,\n TUI_CALENDAR_SHEET_DEFAULT_OPTIONS,\n );\n}\n","import {CommonModule} from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n inject,\n Input,\n Output,\n} from '@angular/core';\nimport {TUI_FALSE_HANDLER} from '@taiga-ui/cdk/constants';\nimport {TuiDay, TuiDayRange, TuiMonth} from '@taiga-ui/cdk/date-time';\nimport {TuiHovered} from '@taiga-ui/cdk/directives/hovered';\nimport {TuiLet} from '@taiga-ui/cdk/directives/let';\nimport {TuiRepeatTimes} from '@taiga-ui/cdk/directives/repeat-times';\nimport {TuiMapperPipe} from '@taiga-ui/cdk/pipes/mapper';\nimport type {TuiBooleanHandler, TuiHandler} from '@taiga-ui/cdk/types';\nimport {tuiNullableSame, tuiPure} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {TuiCalendarSheetPipe, TuiOrderWeekDaysPipe} from '@taiga-ui/core/pipes';\nimport {TUI_DAY_TYPE_HANDLER, TUI_SHORT_WEEK_DAYS} from '@taiga-ui/core/tokens';\n\nimport {TUI_CALENDAR_SHEET_OPTIONS} from './calendar-sheet.options';\n\nexport type TuiMarkerHandler = TuiHandler<TuiDay, [] | [string, string] | [string]>;\n\n@Component({\n standalone: true,\n selector: 'tui-calendar-sheet',\n imports: [\n CommonModule,\n TuiCalendarSheetPipe,\n TuiHovered,\n TuiLet,\n TuiMapperPipe,\n TuiOrderWeekDaysPipe,\n TuiRepeatTimes,\n ],\n templateUrl: './calendar-sheet.template.html',\n styleUrls: ['./calendar-sheet.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[class._picking]': 'isRangePicking',\n },\n})\nexport class TuiCalendarSheet {\n private readonly options = inject(TUI_CALENDAR_SHEET_OPTIONS);\n private readonly today = TuiDay.currentLocal();\n\n protected readonly unorderedWeekDays$ = inject(TUI_SHORT_WEEK_DAYS);\n protected readonly dayTypeHandler = inject(TUI_DAY_TYPE_HANDLER);\n\n @Input()\n public month: TuiMonth = TuiMonth.currentLocal();\n\n @Input()\n public disabledItemHandler: TuiBooleanHandler<TuiDay> = TUI_FALSE_HANDLER;\n\n @Input()\n public markerHandler: TuiMarkerHandler | null = null;\n\n @Input()\n public value: TuiDay | TuiDayRange | readonly TuiDay[] | null = null;\n\n @Input()\n public hoveredItem: TuiDay | null = null;\n\n @Input()\n public showAdjacent = true;\n\n /**\n * @deprecated use static DI options instead\n * ```\n * tuiCalendarSheetOptionsProvider({rangeMode: true})\n * ```\n * TODO(v5): delete it\n */\n @Input()\n public single = true;\n\n @Output()\n public readonly hoveredItemChange = new EventEmitter<TuiDay | null>();\n\n @Output()\n public readonly dayClick = new EventEmitter<TuiDay>();\n\n /**\n * @deprecated TODO(v5): delete it. It is used nowhere except unit tests\n */\n public itemIsInterval(day: TuiDay): boolean {\n const {value, hoveredItem} = this;\n\n if (!(value instanceof TuiDayRange)) {\n return false;\n }\n\n if (!value.isSingleDay) {\n return value.from.daySameOrBefore(day) && value.to.dayAfter(day);\n }\n\n if (hoveredItem === null) {\n return false;\n }\n\n const range = TuiDayRange.sort(value.from, hoveredItem);\n\n return range.from.daySameOrBefore(day) && range.to.dayAfter(day);\n }\n\n public onItemHovered(item: TuiDay | false): void {\n this.updateHoveredItem(item || null);\n }\n\n public getItemRange(item: TuiDay): 'active' | 'end' | 'middle' | 'start' | null {\n const {value, hoveredItem} = this;\n\n if (!value) {\n return null;\n }\n\n if (value instanceof TuiDay && !this.computedRangeMode) {\n return value.daySame(item) ? 'active' : null;\n }\n\n if (value instanceof TuiDayRange && value.isSingleDay) {\n return value.from.daySame(item) ? 'active' : null;\n }\n\n if (!(value instanceof TuiDay) && !(value instanceof TuiDayRange)) {\n return value.find((day) => day.daySame(item)) ? 'active' : null;\n }\n\n const range = this.getRange(value, hoveredItem);\n\n if (range.isSingleDay && range.from.daySame(item)) {\n return 'active';\n }\n\n if (range.from.daySame(item)) {\n return 'start';\n }\n\n if (range.to.daySame(item)) {\n return 'end';\n }\n\n return range.from.dayBefore(item) && range.to.dayAfter(item) ? 'middle' : null;\n }\n\n protected get computedRangeMode(): boolean {\n return !this.single || this.options.rangeMode;\n }\n\n protected get isRangePicking(): boolean {\n return this.computedRangeMode\n ? this.value instanceof TuiDay\n : /**\n * Only for backward compatibility!\n * TODO(v5): replace with `this.options.rangeMode && this.value instanceof TuiDay`\n */\n this.value instanceof TuiDayRange && this.value.isSingleDay;\n }\n\n protected readonly toMarkers = (\n day: TuiDay,\n today: boolean,\n range: string | null,\n markerHandler: TuiMarkerHandler | null,\n ): [string, string] | [string] | null => {\n if (today || ['active', 'end', 'start'].includes(range || '')) {\n return null;\n }\n\n const markers = markerHandler?.(day);\n\n return markers?.length ? markers : null;\n };\n\n protected itemIsToday(item: TuiDay): boolean {\n return this.today.daySame(item);\n }\n\n protected itemIsUnavailable(item: TuiDay): boolean {\n return !this.month.monthSame(item);\n }\n\n protected onItemClick(item: TuiDay): void {\n this.dayClick.emit(item);\n }\n\n @tuiPure\n private getRange(\n value: TuiDay | TuiDayRange,\n hoveredItem: TuiDay | null,\n ): TuiDayRange {\n if (value instanceof TuiDay) {\n return TuiDayRange.sort(value, hoveredItem ?? value);\n }\n\n return value.isSingleDay\n ? TuiDayRange.sort(value.from, hoveredItem ?? value.to)\n : value;\n }\n\n private updateHoveredItem(day: TuiDay | null): void {\n if (tuiNullableSame(this.hoveredItem, day, (a, b) => a.daySame(b))) {\n return;\n }\n\n this.hoveredItem = day;\n this.hoveredItemChange.emit(day);\n }\n}\n","<div class=\"t-row t-row_weekday\">\n <div\n *ngFor=\"let day of unorderedWeekDays$ | tuiOrderWeekDays | async\"\n class=\"t-cell\"\n [textContent]=\"day\"\n ></div>\n</div>\n<div *tuiLet=\"month | tuiCalendarSheet: true as sheet\">\n <div\n *tuiRepeatTimes=\"let rowIndex of sheet.length\"\n automation-id=\"tui-calendar-sheet__row\"\n class=\"t-row\"\n >\n <ng-container *tuiRepeatTimes=\"let colIndex of sheet[rowIndex]?.length || 0\">\n <ng-container *tuiLet=\"sheet[rowIndex]?.[colIndex] as item\">\n <div\n *ngIf=\"item && (!itemIsUnavailable(item) || showAdjacent)\"\n automation-id=\"tui-calendar-sheet__cell\"\n class=\"t-cell\"\n [attr.data-range]=\"getItemRange(item)\"\n [attr.data-type]=\"item | tuiMapper: dayTypeHandler\"\n [class.t-cell_disabled]=\"disabledItemHandler(item)\"\n [class.t-cell_today]=\"itemIsToday(item)\"\n [class.t-cell_unavailable]=\"itemIsUnavailable(item)\"\n (click)=\"onItemClick(item)\"\n (tuiHoveredChange)=\"onItemHovered($event && item)\"\n >\n {{ item.day }}\n <div\n *ngIf=\"\n item\n | tuiMapper\n : toMarkers\n : itemIsToday(item)\n : getItemRange(item)\n : markerHandler as markers\n \"\n class=\"t-dots\"\n >\n <div\n class=\"t-dot\"\n [style.background]=\"markers?.[0]\"\n ></div>\n <div\n *ngIf=\"markers.length > 1\"\n class=\"t-dot\"\n [style.background]=\"markers?.[1] || ''\"\n ></div>\n </div>\n </div>\n </ng-container>\n </ng-container>\n </div>\n</div>\n","import {AsyncPipe, NgIf} from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Input,\n Output,\n} from '@angular/core';\nimport type {TuiMonthLike, TuiYear} from '@taiga-ui/cdk/date-time';\nimport {TUI_FIRST_DAY, TUI_LAST_DAY, TuiMonth} from '@taiga-ui/cdk/date-time';\nimport {TuiLink} from '@taiga-ui/core/components/link';\nimport {TuiSpinButton} from '@taiga-ui/core/components/spin-button';\nimport {TuiMonthPipe} from '@taiga-ui/core/pipes';\n\n@Component({\n standalone: true,\n selector: 'tui-calendar-spin',\n imports: [AsyncPipe, NgIf, TuiLink, TuiMonthPipe, TuiSpinButton],\n templateUrl: './calendar-spin.template.html',\n styleUrls: ['./calendar-spin.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TuiCalendarSpin {\n @Input()\n public value = TuiMonth.currentLocal();\n\n @Input()\n public min: TuiMonth = TUI_FIRST_DAY;\n\n @Input()\n public max: TuiMonth = TUI_LAST_DAY;\n\n @Output()\n public readonly valueChange = new EventEmitter<TuiMonth>();\n\n @Output()\n public readonly yearClick = new EventEmitter<TuiYear>();\n\n protected onYearClick(): void {\n this.yearClick.next(this.value);\n }\n\n protected append(date: TuiMonthLike): void {\n const value = this.value.append(date);\n\n if (this.min.monthSameOrAfter(value)) {\n this.updateValue(this.min);\n } else {\n this.updateValue(this.max.monthSameOrBefore(value) ? this.max : value);\n }\n }\n\n private updateValue(value: TuiMonth): void {\n if (this.value.monthSame(value)) {\n return;\n }\n\n this.value = value;\n this.valueChange.emit(value);\n }\n}\n","<tui-spin-button\n [focusable]=\"false\"\n [leftDisabled]=\"value.monthSameOrBefore(min)\"\n [rightDisabled]=\"value.monthSameOrAfter(max)\"\n (leftClick)=\"append({month: -1})\"\n (rightClick)=\"append({month: 1})\"\n>\n {{ value | tuiMonth | async }}\n <ng-container *ngIf=\"min.year === max.year; else button\">\n {{ value.formattedYear }}\n </ng-container>\n <ng-template #button>\n <button\n id=\"year-btn\"\n automation-id=\"tui-primitive-year-month-pagination__year-button\"\n tabIndex=\"-1\"\n tuiLink\n type=\"button\"\n (click)=\"onYearClick()\"\n >\n {{ value.formattedYear }}\n </button>\n </ng-template>\n</tui-spin-button>\n","import {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Input,\n Output,\n} from '@angular/core';\nimport {TUI_FALSE_HANDLER} from '@taiga-ui/cdk/constants';\nimport type {TuiDayRange} from '@taiga-ui/cdk/date-time';\nimport {\n MAX_YEAR,\n MIN_YEAR,\n TuiDay,\n TuiMonth,\n TuiMonthRange,\n TuiYear,\n} from '@taiga-ui/cdk/date-time';\nimport {TuiHovered} from '@taiga-ui/cdk/directives/hovered';\nimport {TuiLet} from '@taiga-ui/cdk/directives/let';\nimport {TuiRepeatTimes} from '@taiga-ui/cdk/directives/repeat-times';\nimport type {TuiBooleanHandler} from '@taiga-ui/cdk/types';\nimport {tuiIsNumber} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {TuiScrollIntoView} from '@taiga-ui/core/components/scrollbar';\n\nconst LIMIT = 100;\nconst ITEMS_IN_ROW = 4;\n\n@Component({\n standalone: true,\n selector: 'tui-calendar-year',\n imports: [TuiHovered, TuiLet, TuiRepeatTimes, TuiScrollIntoView],\n templateUrl: './calendar-year.template.html',\n styleUrls: ['./calendar-year.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[class._picking]': 'isRangePicking',\n },\n})\nexport class TuiCalendarYear {\n private hoveredItem: number | null = null;\n private readonly currentYear = TuiMonth.currentLocal().year;\n\n @Input()\n public value:\n | TuiDayRange\n | TuiMonthRange\n | TuiYear\n | number\n | readonly TuiDay[]\n | null = null;\n\n @Input()\n public initialItem: number = this.currentYear;\n\n @Input()\n public min: number | null = MIN_YEAR;\n\n @Input()\n public max: number | null = MAX_YEAR;\n\n @Input()\n public rangeMode = false;\n\n @Input()\n public disabledItemHandler: TuiBooleanHandler<number> = TUI_FALSE_HANDLER;\n\n @Output()\n public readonly yearClick = new EventEmitter<number>();\n\n public isDisabled(item: number): boolean {\n return (\n (this.max && this.max < item) ||\n (this.min && this.min > item) ||\n this.disabledItemHandler(item)\n );\n }\n\n public getItemRange(item: number): 'active' | 'end' | 'middle' | 'start' | null {\n const {value, hoveredItem} = this;\n\n if (value instanceof TuiYear && value.year === item) {\n return 'active';\n }\n\n if (tuiIsNumber(value)) {\n return value === item ? 'active' : null;\n }\n\n if (!(value instanceof TuiMonthRange) && !(value instanceof TuiYear)) {\n return value?.find((day) => day.year === item) ? 'active' : null;\n }\n\n const hovered = this.isRangePicking ? hoveredItem : null;\n const from = 'from' in value ? value.from?.year : value.year;\n const to = 'from' in value ? value.to.year : value.year;\n\n const min = Math.min(from, hovered ?? to);\n const max = Math.max(from, hovered ?? to);\n\n if (min === max && from === to && from === item) {\n return 'active';\n }\n\n if (min === item) {\n return 'start';\n }\n\n if (max === item) {\n return 'end';\n }\n\n return min < item && item < max ? 'middle' : null;\n }\n\n public onItemHovered(hovered: boolean, item: number): void {\n this.updateHoveredItem(hovered, item);\n }\n\n protected get isRangePicking(): boolean {\n return (\n this.rangeMode &&\n (this.value instanceof TuiDay || this.value instanceof TuiMonth)\n );\n }\n\n protected get rows(): number {\n return Math.ceil((this.calculatedMax - this.calculatedMin) / ITEMS_IN_ROW);\n }\n\n protected scrollItemIntoView(item: number): boolean {\n return this.initialItem === item;\n }\n\n protected getItem(rowIndex: number, colIndex: number): number {\n return rowIndex * ITEMS_IN_ROW + colIndex + this.calculatedMin;\n }\n\n protected itemIsToday(item: number): boolean {\n return this.currentYear === item;\n }\n\n private get calculatedMin(): number {\n const initial = this.initialItem - LIMIT;\n const min = this.min ?? MIN_YEAR;\n\n return min > initial ? min : initial;\n }\n\n private get calculatedMax(): number {\n const initial = this.initialItem + LIMIT;\n const max = this.max ?? MAX_YEAR;\n\n return max < initial ? max + 1 : initial;\n }\n\n private updateHoveredItem(hovered: boolean, item: number): void {\n this.hoveredItem = hovered ? item : null;\n }\n}\n","<div\n *tuiRepeatTimes=\"let rowIndex of rows\"\n automation-id=\"tui-calendar-year__row\"\n class=\"t-row\"\n>\n <ng-container *tuiRepeatTimes=\"let colIndex of 4\">\n <div\n *tuiLet=\"getItem(rowIndex, colIndex) as item\"\n automation-id=\"tui-calendar-year__cell\"\n class=\"t-cell\"\n [attr.data-range]=\"getItemRange(item)\"\n [class.t-cell_disabled]=\"isDisabled(item)\"\n [class.t-cell_today]=\"itemIsToday(item)\"\n [tuiScrollIntoView]=\"scrollItemIntoView(item)\"\n (click)=\"yearClick.emit(item)\"\n (tuiHoveredChange)=\"onItemHovered($event, item)\"\n >\n {{ item }}\n </div>\n </ng-container>\n</div>\n","import {NgIf} from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n EventEmitter,\n inject,\n Input,\n Output,\n} from '@angular/core';\nimport type {TuiDayRange} from '@taiga-ui/cdk/date-time';\nimport {\n TUI_FIRST_DAY,\n TUI_LAST_DAY,\n TUI_LAST_DISPLAYED_DAY,\n TuiDay,\n TuiMonth,\n} from '@taiga-ui/cdk/date-time';\nimport {TuiMapperPipe} from '@taiga-ui/cdk/pipes/mapper';\nimport type {TuiBooleanHandler, TuiMapper} from '@taiga-ui/cdk/types';\nimport {tuiNullableSame} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {TuiScrollbar} from '@taiga-ui/core/components/scrollbar';\nimport {TUI_ITEMS_HANDLERS} from '@taiga-ui/core/directives';\nimport {tuiAsAuxiliary} from '@taiga-ui/core/tokens';\nimport {Subject} from 'rxjs';\n\nimport type {TuiMarkerHandler} from './calendar-sheet.component';\nimport {TuiCalendarSheet} from './calendar-sheet.component';\nimport {TUI_CALENDAR_SHEET_OPTIONS} from './calendar-sheet.options';\nimport {TuiCalendarSpin} from './calendar-spin.component';\nimport {TuiCalendarYear} from './calendar-year.component';\n\n@Component({\n standalone: true,\n selector: 'tui-calendar',\n imports: [\n NgIf,\n TuiCalendarSheet,\n TuiCalendarSpin,\n TuiCalendarYear,\n TuiMapperPipe,\n TuiScrollbar,\n ],\n templateUrl: './calendar.template.html',\n styleUrls: ['./calendar.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [tuiAsAuxiliary(TuiCalendar)],\n host: {\n '(pointerdown.prevent.zoneless)': '0',\n },\n})\nexport class TuiCalendar {\n private readonly cdr = inject(ChangeDetectorRef);\n private day: TuiDay | TuiDayRange | readonly TuiDay[] | null = null;\n private view: 'month' | 'year' = 'month';\n protected readonly options = inject(TUI_CALENDAR_SHEET_OPTIONS);\n\n @Input()\n public month: TuiMonth = TuiMonth.currentLocal();\n\n @Input()\n public disabledItemHandler: TuiBooleanHandler<TuiDay> =\n inject(TUI_ITEMS_HANDLERS).disabledItemHandler();\n\n @Input()\n public min: TuiDay | null = TUI_FIRST_DAY;\n\n @Input()\n public max: TuiDay | null = TUI_LAST_DAY;\n\n @Input()\n public minViewedMonth: TuiMonth | null = TUI_FIRST_DAY;\n\n @Input()\n public maxViewedMonth: TuiMonth | null = TUI_LAST_DAY;\n\n @Input()\n public hoveredItem: TuiDay | null = null;\n\n @Input()\n public showAdjacent = true;\n\n @Input()\n public markerHandler: TuiMarkerHandler | null = null;\n\n @Output()\n public readonly dayClick = new EventEmitter<TuiDay>();\n\n @Output()\n public readonly monthChange = new EventEmitter<TuiMonth>();\n\n @Output()\n public readonly hoveredItemChange = new EventEmitter<TuiDay | null>();\n\n /** @deprecated for private use only until Calendars are refactored */\n public readonly valueChange = new Subject<TuiDay>();\n\n @Input()\n public set value(value: TuiDay | TuiDayRange | readonly TuiDay[] | null) {\n this.cdr.markForCheck();\n this.day = value;\n\n if (\n this.showAdjacent &&\n value instanceof TuiDay &&\n value.daySameOrBefore(TUI_LAST_DISPLAYED_DAY)\n ) {\n this.month = value;\n }\n }\n\n @Input()\n public set initialView(view: 'month' | 'year') {\n this.view = view;\n }\n\n public get value(): TuiDay | TuiDayRange | readonly TuiDay[] | null {\n return this.day;\n }\n\n public onPaginationValueChange(month: TuiMonth): void {\n this.updateViewedMonth(month);\n }\n\n public onDayClick(day: TuiDay): void {\n this.dayClick.emit(day);\n this.valueChange.next(day);\n }\n\n public onHoveredItemChange(day: TuiDay | null): void {\n this.updateHoveredDay(day);\n }\n\n protected get computedMin(): TuiDay {\n return this.min ?? TUI_FIRST_DAY;\n }\n\n protected get computedMax(): TuiDay {\n return this.max ?? TUI_LAST_DAY;\n }\n\n protected get computedMinViewedMonth(): TuiMonth {\n const min = this.computedMin;\n const minViewed = this.minViewedMonth ?? TUI_FIRST_DAY;\n\n return minViewed.monthSameOrAfter(min) ? minViewed : min;\n }\n\n protected get computedMaxViewedMonth(): TuiMonth {\n const max = this.computedMax;\n const maxViewed = this.maxViewedMonth ?? TUI_LAST_DAY;\n\n return maxViewed.monthSameOrBefore(max) ? maxViewed : max;\n }\n\n protected get isInYearView(): boolean {\n return this.view === 'year';\n }\n\n protected readonly disabledItemHandlerMapper: TuiMapper<\n [TuiBooleanHandler<TuiDay>, TuiDay, TuiDay],\n TuiBooleanHandler<TuiDay>\n > = (disabledItemHandler, min, max) => (item) =>\n item.dayBefore(min) || item.dayAfter(max) || disabledItemHandler(item);\n\n protected onPaginationYearClick(): void {\n this.view = 'year';\n }\n\n protected onPickerYearClick(year: number): void {\n this.view = 'month';\n this.updateViewedMonth(new TuiMonth(year, this.month.month));\n }\n\n private updateViewedMonth(month: TuiMonth): void {\n if (this.month.monthSame(month)) {\n return;\n }\n\n this.month = month;\n this.monthChange.emit(month);\n }\n\n private updateHoveredDay(day: TuiDay | null): void {\n if (tuiNullableSame(this.hoveredItem, day, (a, b) => a.daySame(b))) {\n return;\n }\n\n this.hoveredItem = day;\n this.hoveredItemChange.emit(day);\n }\n}\n","<tui-scrollbar\n *ngIf=\"isInYearView; else calendar\"\n automation-id=\"tui-calendar__scrollbar\"\n class=\"t-scrollbar\"\n>\n <tui-calendar-year\n automation-id=\"tui-calendar__year\"\n [initialItem]=\"month.year\"\n [max]=\"computedMax.year\"\n [min]=\"computedMin.year\"\n [rangeMode]=\"options.rangeMode\"\n [value]=\"value\"\n (yearClick)=\"onPickerYearClick($event)\"\n />\n</tui-scrollbar>\n<ng-template #calendar>\n <tui-calendar-spin\n automation-id=\"tui-calendar__pagination\"\n class=\"t-pagination\"\n [max]=\"computedMaxViewedMonth\"\n [min]=\"computedMinViewedMonth\"\n [value]=\"month\"\n (valueChange)=\"onPaginationValueChange($event)\"\n (yearClick)=\"onPaginationYearClick()\"\n />\n <tui-calendar-sheet\n automation-id=\"tui-calendar__calendar\"\n [disabledItemHandler]=\"disabledItemHandler | tuiMapper: disabledItemHandlerMapper : computedMin : computedMax\"\n [hoveredItem]=\"hoveredItem\"\n [markerHandler]=\"markerHandler\"\n [month]=\"month\"\n [showAdjacent]=\"showAdjacent\"\n [value]=\"value\"\n (dayClick)=\"onDayClick($event)\"\n (hoveredItemChange)=\"onHoveredItemChange($event)\"\n />\n</ng-template>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;AAQa,MAAA,kCAAkC,GAA4B;AACvE,IAAA,SAAS,EAAE,KAAK;EAClB;AAEW,MAAA,0BAA0B,GAAG,IAAI,cAAc,CACxD,SAAS,GAAG,4BAA4B,GAAG,EAAE,EAC7C;AACI,IAAA,OAAO,EAAE,MAAM,kCAAkC;AACpD,CAAA,EACH;AAEI,SAAU,+BAA+B,CAC3C,OAAyC,EAAA;IAEzC,OAAO,iBAAiB,CACpB,0BAA0B,EAC1B,OAAO,EACP,kCAAkC,CACrC,CAAC;AACN;;ACHA,MAmBa,gBAAgB,CAAA;AAnB7B,IAAA,WAAA,GAAA;AAoBqB,QAAA,IAAA,CAAA,OAAO,GAAG,MAAM,CAAC,0BAA0B,CAAC,CAAC;AAC7C,QAAA,IAAA,CAAA,KAAK,GAAG,MAAM,CAAC,YAAY,EAAE,CAAC;AAE5B,QAAA,IAAA,CAAA,kBAAkB,GAAG,MAAM,CAAC,mBAAmB,CAAC,CAAC;AACjD,QAAA,IAAA,CAAA,cAAc,GAAG,MAAM,CAAC,oBAAoB,CAAC,CAAC;AAG1D,QAAA,IAAA,CAAA,KAAK,GAAa,QAAQ,CAAC,YAAY,EAAE,CAAC;QAG1C,IAAmB,CAAA,mBAAA,GAA8B,iBAAiB,CAAC;QAGnE,IAAa,CAAA,aAAA,GAA4B,IAAI,CAAC;QAG9C,IAAK,CAAA,KAAA,GAAoD,IAAI,CAAC;QAG9D,IAAW,CAAA,WAAA,GAAkB,IAAI,CAAC;QAGlC,IAAY,CAAA,YAAA,GAAG,IAAI,CAAC;AAE3B;;;;;;AAMG;QAEI,IAAM,CAAA,MAAA,GAAG,IAAI,CAAC;AAGL,QAAA,IAAA,CAAA,iBAAiB,GAAG,IAAI,YAAY,EAAiB,CAAC;AAGtD,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,YAAY,EAAU,CAAC;QA+EnC,IAAS,CAAA,SAAA,GAAG,CAC3B,GAAW,EACX,KAAc,EACd,KAAoB,EACpB,aAAsC,KACF;AACpC,YAAA,IAAI,KAAK,IAAI,CAAC,QAAQ,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC,QAAQ,CAAC,KAAK,IAAI,EAAE,CAAC,EAAE;AAC3D,gBAAA,OAAO,IAAI,CAAC;AACf,aAAA;AAED,YAAA,MAAM,OAAO,GAAG,aAAa,GAAG,GAAG,CAAC,CAAC;YAErC,OAAO,OAAO,EAAE,MAAM,GAAG,OAAO,GAAG,IAAI,CAAC;AAC5C,SAAC,CAAC;AAoCL,KAAA;AA9HG;;AAEG;AACI,IAAA,cAAc,CAAC,GAAW,EAAA;AAC7B,QAAA,MAAM,EAAC,KAAK,EAAE,WAAW,EAAC,GAAG,IAAI,CAAC;AAElC,QAAA,IAAI,EAAE,KAAK,YAAY,WAAW,CAAC,EAAE;AACjC,YAAA,OAAO,KAAK,CAAC;AAChB,SAAA;AAED,QAAA,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE;AACpB,YAAA,OAAO,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;AACpE,SAAA;QAED,IAAI,WAAW,KAAK,IAAI,EAAE;AACtB,YAAA,OAAO,KAAK,CAAC;AAChB,SAAA;AAED,QAAA,MAAM,KAAK,GAAG,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;AAExD,QAAA,OAAO,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;KACpE;AAEM,IAAA,aAAa,CAAC,IAAoB,EAAA;AACrC,QAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC;KACxC;AAEM,IAAA,YAAY,CAAC,IAAY,EAAA;AAC5B,QAAA,MAAM,EAAC,KAAK,EAAE,WAAW,EAAC,GAAG,IAAI,CAAC;QAElC,IAAI,CAAC,KAAK,EAAE;AACR,YAAA,OAAO,IAAI,CAAC;AACf,SAAA;QAED,IAAI,KAAK,YAAY,MAAM,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE;AACpD,YAAA,OAAO,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,QAAQ,GAAG,IAAI,CAAC;AAChD,SAAA;AAED,QAAA,IAAI,KAAK,YAAY,WAAW,IAAI,KAAK,CAAC,WAAW,EAAE;AACnD,YAAA,OAAO,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,QAAQ,GAAG,IAAI,CAAC;AACrD,SAAA;AAED,QAAA,IAAI,EAAE,KAAK,YAAY,MAAM,CAAC,IAAI,EAAE,KAAK,YAAY,WAAW,CAAC,EAAE;YAC/D,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,QAAQ,GAAG,IAAI,CAAC;AACnE,SAAA;QAED,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;AAEhD,QAAA,IAAI,KAAK,CAAC,WAAW,IAAI,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;AAC/C,YAAA,OAAO,QAAQ,CAAC;AACnB,SAAA;QAED,IAAI,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;AAC1B,YAAA,OAAO,OAAO,CAAC;AAClB,SAAA;QAED,IAAI,KAAK,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;AACxB,YAAA,OAAO,KAAK,CAAC;AAChB,SAAA;QAED,OAAO,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,QAAQ,GAAG,IAAI,CAAC;KAClF;AAED,IAAA,IAAc,iBAAiB,GAAA;QAC3B,OAAO,CAAC,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;KACjD;AAED,IAAA,IAAc,cAAc,GAAA;QACxB,OAAO,IAAI,CAAC,iBAAiB;AACzB,cAAE,IAAI,CAAC,KAAK,YAAY,MAAM;AAC9B;;;AAGK;gBACH,IAAI,CAAC,KAAK,YAAY,WAAW,IAAI,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC;KACrE;AAiBS,IAAA,WAAW,CAAC,IAAY,EAAA;QAC9B,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;KACnC;AAES,IAAA,iBAAiB,CAAC,IAAY,EAAA;QACpC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;KACtC;AAES,IAAA,WAAW,CAAC,IAAY,EAAA;AAC9B,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KAC5B;IAGO,QAAQ,CACZ,KAA2B,EAC3B,WAA0B,EAAA;QAE1B,IAAI,KAAK,YAAY,MAAM,EAAE;YACzB,OAAO,WAAW,CAAC,IAAI,CAAC,KAAK,EAAE,WAAW,IAAI,KAAK,CAAC,CAAC;AACxD,SAAA;QAED,OAAO,KAAK,CAAC,WAAW;AACpB,cAAE,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,WAAW,IAAI,KAAK,CAAC,EAAE,CAAC;cACrD,KAAK,CAAC;KACf;AAEO,IAAA,iBAAiB,CAAC,GAAkB,EAAA;QACxC,IAAI,eAAe,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE;YAChE,OAAO;AACV,SAAA;AAED,QAAA,IAAI,CAAC,WAAW,GAAG,GAAG,CAAC;AACvB,QAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;KACpC;+GAtKQ,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAhB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,gBAAgB,EC3C7B,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,mBAAA,EAAA,qBAAA,EAAA,aAAA,EAAA,eAAA,EAAA,KAAA,EAAA,OAAA,EAAA,WAAA,EAAA,aAAA,EAAA,YAAA,EAAA,cAAA,EAAA,MAAA,EAAA,QAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,gBAAA,EAAA,gBAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,ywEAsDA,ED1BQ,MAAA,EAAA,CAAA,+kIAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,YAAY,gTACZ,oBAAoB,EAAA,IAAA,EAAA,kBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACpB,UAAU,EAAA,QAAA,EAAA,oBAAA,EAAA,OAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACV,MAAM,EACN,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,aAAa,EACb,IAAA,EAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,oBAAoB,yDACpB,cAAc,EAAA,QAAA,EAAA,oCAAA,EAAA,MAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;AA2JV,UAAA,CAAA;IADP,OAAO;AAYP,CAAA,EAAA,gBAAA,CAAA,SAAA,EAAA,UAAA,EAAA,IAAA,CAAA,CAAA;4FA7JQ,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAnB5B,SAAS;iCACM,IAAI,EAAA,QAAA,EACN,oBAAoB,EACrB,OAAA,EAAA;wBACL,YAAY;wBACZ,oBAAoB;wBACpB,UAAU;wBACV,MAAM;wBACN,aAAa;wBACb,oBAAoB;wBACpB,cAAc;qBACjB,EAGgB,eAAA,EAAA,uBAAuB,CAAC,MAAM,EACzC,IAAA,EAAA;AACF,wBAAA,kBAAkB,EAAE,gBAAgB;AACvC,qBAAA,EAAA,QAAA,EAAA,ywEAAA,EAAA,MAAA,EAAA,CAAA,+kIAAA,CAAA,EAAA,CAAA;8BAUM,KAAK,EAAA,CAAA;sBADX,KAAK;gBAIC,mBAAmB,EAAA,CAAA;sBADzB,KAAK;gBAIC,aAAa,EAAA,CAAA;sBADnB,KAAK;gBAIC,KAAK,EAAA,CAAA;sBADX,KAAK;gBAIC,WAAW,EAAA,CAAA;sBADjB,KAAK;gBAIC,YAAY,EAAA,CAAA;sBADlB,KAAK;gBAWC,MAAM,EAAA,CAAA;sBADZ,KAAK;gBAIU,iBAAiB,EAAA,CAAA;sBADhC,MAAM;gBAIS,QAAQ,EAAA,CAAA;sBADvB,MAAM;gBA4GC,QAAQ,EAAA,EAAA,EAAA,EAAA,CAAA;;AE/KpB,MAQa,eAAe,CAAA;AAR5B,IAAA,WAAA,GAAA;AAUW,QAAA,IAAA,CAAA,KAAK,GAAG,QAAQ,CAAC,YAAY,EAAE,CAAC;QAGhC,IAAG,CAAA,GAAA,GAAa,aAAa,CAAC;QAG9B,IAAG,CAAA,GAAA,GAAa,YAAY,CAAC;AAGpB,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,YAAY,EAAY,CAAC;AAG3C,QAAA,IAAA,CAAA,SAAS,GAAG,IAAI,YAAY,EAAW,CAAC;AAwB3D,KAAA;IAtBa,WAAW,GAAA;QACjB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KACnC;AAES,IAAA,MAAM,CAAC,IAAkB,EAAA;QAC/B,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAEtC,IAAI,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,KAAK,CAAC,EAAE;AAClC,YAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC9B,SAAA;AAAM,aAAA;YACH,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,iBAAiB,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,GAAG,KAAK,CAAC,CAAC;AAC1E,SAAA;KACJ;AAEO,IAAA,WAAW,CAAC,KAAe,EAAA;QAC/B,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE;YAC7B,OAAO;AACV,SAAA;AAED,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;AACnB,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KAChC;+GArCQ,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;mGAAf,eAAe,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,GAAA,EAAA,KAAA,EAAA,GAAA,EAAA,KAAA,EAAA,EAAA,OAAA,EAAA,EAAA,WAAA,EAAA,aAAA,EAAA,SAAA,EAAA,WAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECtB5B,uwBAwBA,EAAA,MAAA,EAAA,CAAA,wBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EDPc,SAAS,EAAA,IAAA,EAAA,OAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,IAAI,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,OAAO,EAAA,QAAA,EAAA,6BAAA,EAAA,MAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAE,YAAY,EAAA,IAAA,EAAA,UAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,aAAa,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,UAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,OAAA,EAAA,CAAA,WAAA,EAAA,YAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;4FAKtD,eAAe,EAAA,UAAA,EAAA,CAAA;kBAR3B,SAAS;AACM,YAAA,IAAA,EAAA,CAAA,EAAA,UAAA,EAAA,IAAI,YACN,mBAAmB,EAAA,OAAA,EACpB,CAAC,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,YAAY,EAAE,aAAa,CAAC,EAG/C,eAAA,EAAA,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,uwBAAA,EAAA,MAAA,EAAA,CAAA,wBAAA,CAAA,EAAA,CAAA;8BAIxC,KAAK,EAAA,CAAA;sBADX,KAAK;gBAIC,GAAG,EAAA,CAAA;sBADT,KAAK;gBAIC,GAAG,EAAA,CAAA;sBADT,KAAK;gBAIU,WAAW,EAAA,CAAA;sBAD1B,MAAM;gBAIS,SAAS,EAAA,CAAA;sBADxB,MAAM;;;AEXX,MAAM,KAAK,GAAG,GAAG,CAAC;AAClB,MAAM,YAAY,GAAG,CAAC,CAAC;AAEvB,MAWa,eAAe,CAAA;AAX5B,IAAA,WAAA,GAAA;QAYY,IAAW,CAAA,WAAA,GAAkB,IAAI,CAAC;AACzB,QAAA,IAAA,CAAA,WAAW,GAAG,QAAQ,CAAC,YAAY,EAAE,CAAC,IAAI,CAAC;QAGrD,IAAK,CAAA,KAAA,GAMC,IAAI,CAAC;AAGX,QAAA,IAAA,CAAA,WAAW,GAAW,IAAI,CAAC,WAAW,CAAC;QAGvC,IAAG,CAAA,GAAA,GAAkB,QAAQ,CAAC;QAG9B,IAAG,CAAA,GAAA,GAAkB,QAAQ,CAAC;QAG9B,IAAS,CAAA,SAAA,GAAG,KAAK,CAAC;QAGlB,IAAmB,CAAA,mBAAA,GAA8B,iBAAiB,CAAC;AAG1D,QAAA,IAAA,CAAA,SAAS,GAAG,IAAI,YAAY,EAAU,CAAC;AA2F1D,KAAA;AAzFU,IAAA,UAAU,CAAC,IAAY,EAAA;QAC1B,QACI,CAAC,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,GAAG,IAAI;aAC3B,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC;AAC7B,YAAA,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,EAChC;KACL;AAEM,IAAA,YAAY,CAAC,IAAY,EAAA;AAC5B,QAAA,MAAM,EAAC,KAAK,EAAE,WAAW,EAAC,GAAG,IAAI,CAAC;QAElC,IAAI,KAAK,YAAY,OAAO,IAAI,KAAK,CAAC,IAAI,KAAK,IAAI,EAAE;AACjD,YAAA,OAAO,QAAQ,CAAC;AACnB,SAAA;AAED,QAAA,IAAI,WAAW,CAAC,KAAK,CAAC,EAAE;YACpB,OAAO,KAAK,KAAK,IAAI,GAAG,QAAQ,GAAG,IAAI,CAAC;AAC3C,SAAA;AAED,QAAA,IAAI,EAAE,KAAK,YAAY,aAAa,CAAC,IAAI,EAAE,KAAK,YAAY,OAAO,CAAC,EAAE;YAClE,OAAO,KAAK,EAAE,IAAI,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,IAAI,KAAK,IAAI,CAAC,GAAG,QAAQ,GAAG,IAAI,CAAC;AACpE,SAAA;AAED,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,GAAG,WAAW,GAAG,IAAI,CAAC;AACzD,QAAA,MAAM,IAAI,GAAG,MAAM,IAAI,KAAK,GAAG,KAAK,CAAC,IAAI,EAAE,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;AAC7D,QAAA,MAAM,EAAE,GAAG,MAAM,IAAI,KAAK,GAAG,KAAK,CAAC,EAAE,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;AAExD,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,IAAI,EAAE,CAAC,CAAC;AAC1C,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,IAAI,EAAE,CAAC,CAAC;QAE1C,IAAI,GAAG,KAAK,GAAG,IAAI,IAAI,KAAK,EAAE,IAAI,IAAI,KAAK,IAAI,EAAE;AAC7C,YAAA,OAAO,QAAQ,CAAC;AACnB,SAAA;QAED,IAAI,GAAG,KAAK,IAAI,EAAE;AACd,YAAA,OAAO,OAAO,CAAC;AAClB,SAAA;QAED,IAAI,GAAG,KAAK,IAAI,EAAE;AACd,YAAA,OAAO,KAAK,CAAC;AAChB,SAAA;AAED,QAAA,OAAO,GAAG,GAAG,IAAI,IAAI,IAAI,GAAG,GAAG,GAAG,QAAQ,GAAG,IAAI,CAAC;KACrD;IAEM,aAAa,CAAC,OAAgB,EAAE,IAAY,EAAA;AAC/C,QAAA,IAAI,CAAC,iBAAiB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;KACzC;AAED,IAAA,IAAc,cAAc,GAAA;QACxB,QACI,IAAI,CAAC,SAAS;AACd,aAAC,IAAI,CAAC,KAAK,YAAY,MAAM,IAAI,IAAI,CAAC,KAAK,YAAY,QAAQ,CAAC,EAClE;KACL;AAED,IAAA,IAAc,IAAI,GAAA;AACd,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,IAAI,YAAY,CAAC,CAAC;KAC9E;AAES,IAAA,kBAAkB,CAAC,IAAY,EAAA;AACrC,QAAA,OAAO,IAAI,CAAC,WAAW,KAAK,IAAI,CAAC;KACpC;IAES,OAAO,CAAC,QAAgB,EAAE,QAAgB,EAAA;QAChD,OAAO,QAAQ,GAAG,YAAY,GAAG,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC;KAClE;AAES,IAAA,WAAW,CAAC,IAAY,EAAA;AAC9B,QAAA,OAAO,IAAI,CAAC,WAAW,KAAK,IAAI,CAAC;KACpC;AAED,IAAA,IAAY,aAAa,GAAA;AACrB,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;AACzC,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,QAAQ,CAAC;QAEjC,OAAO,GAAG,GAAG,OAAO,GAAG,GAAG,GAAG,OAAO,CAAC;KACxC;AAED,IAAA,IAAY,aAAa,GAAA;AACrB,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;AACzC,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,QAAQ,CAAC;AAEjC,QAAA,OAAO,GAAG,GAAG,OAAO,GAAG,GAAG,GAAG,CAAC,GAAG,OAAO,CAAC;KAC5C;IAEO,iBAAiB,CAAC,OAAgB,EAAE,IAAY,EAAA;AACpD,QAAA,IAAI,CAAC,WAAW,GAAG,OAAO,GAAG,IAAI,GAAG,IAAI,CAAC;KAC5C;+GAvHQ,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;mGAAf,eAAe,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,WAAA,EAAA,aAAA,EAAA,GAAA,EAAA,KAAA,EAAA,GAAA,EAAA,KAAA,EAAA,SAAA,EAAA,WAAA,EAAA,mBAAA,EAAA,qBAAA,EAAA,EAAA,OAAA,EAAA,EAAA,SAAA,EAAA,WAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,gBAAA,EAAA,gBAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECtC5B,0vBAqBA,EDSc,MAAA,EAAA,CAAA,qqHAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,UAAU,8FAAE,MAAM,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,cAAc,EAAA,QAAA,EAAA,oCAAA,EAAA,MAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,iBAAiB,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;4FAQtD,eAAe,EAAA,UAAA,EAAA,CAAA;kBAX3B,SAAS;AACM,YAAA,IAAA,EAAA,CAAA,EAAA,UAAA,EAAA,IAAI,YACN,mBAAmB,EAAA,OAAA,EACpB,CAAC,UAAU,EAAE,MAAM,EAAE,cAAc,EAAE,iBAAiB,CAAC,EAAA,eAAA,EAG/C,uBAAuB,CAAC,MAAM,EACzC,IAAA,EAAA;AACF,wBAAA,kBAAkB,EAAE,gBAAgB;AACvC,qBAAA,EAAA,QAAA,EAAA,0vBAAA,EAAA,MAAA,EAAA,CAAA,qqHAAA,CAAA,EAAA,CAAA;8BAOM,KAAK,EAAA,CAAA;sBADX,KAAK;gBAUC,WAAW,EAAA,CAAA;sBADjB,KAAK;gBAIC,GAAG,EAAA,CAAA;sBADT,KAAK;gBAIC,GAAG,EAAA,CAAA;sBADT,KAAK;gBAIC,SAAS,EAAA,CAAA;sBADf,KAAK;gBAIC,mBAAmB,EAAA,CAAA;sBADzB,KAAK;gBAIU,SAAS,EAAA,CAAA;sBADxB,MAAM;;;AElCX,MAmBa,WAAW,CAAA;AAnBxB,IAAA,WAAA,GAAA;AAoBqB,QAAA,IAAA,CAAA,GAAG,GAAG,MAAM,CAAC,iBAAiB,CAAC,CAAC;QACzC,IAAG,CAAA,GAAA,GAAoD,IAAI,CAAC;QAC5D,IAAI,CAAA,IAAA,GAAqB,OAAO,CAAC;AACtB,QAAA,IAAA,CAAA,OAAO,GAAG,MAAM,CAAC,0BAA0B,CAAC,CAAC;AAGzD,QAAA,IAAA,CAAA,KAAK,GAAa,QAAQ,CAAC,YAAY,EAAE,CAAC;QAG1C,IAAmB,CAAA,mBAAA,GACtB,MAAM,CAAC,kBAAkB,CAAC,CAAC,mBAAmB,EAAE,CAAC;QAG9C,IAAG,CAAA,GAAA,GAAkB,aAAa,CAAC;QAGnC,IAAG,CAAA,GAAA,GAAkB,YAAY,CAAC;QAGlC,IAAc,CAAA,cAAA,GAAoB,aAAa,CAAC;QAGhD,IAAc,CAAA,cAAA,GAAoB,YAAY,CAAC;QAG/C,IAAW,CAAA,WAAA,GAAkB,IAAI,CAAC;QAGlC,IAAY,CAAA,YAAA,GAAG,IAAI,CAAC;QAGpB,IAAa,CAAA,aAAA,GAA4B,IAAI,CAAC;AAGrC,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,YAAY,EAAU,CAAC;AAGtC,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,YAAY,EAAY,CAAC;AAG3C,QAAA,IAAA,CAAA,iBAAiB,GAAG,IAAI,YAAY,EAAiB,CAAC;;AAGtD,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,OAAO,EAAU,CAAC;AAgEjC,QAAA,IAAA,CAAA,yBAAyB,GAGxC,CAAC,mBAAmB,EAAE,GAAG,EAAE,GAAG,KAAK,CAAC,IAAI,KACxC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,mBAAmB,CAAC,IAAI,CAAC,CAAC;AA4B9E,KAAA;IA9FG,IACW,KAAK,CAAC,KAAsD,EAAA;AACnE,QAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;AACxB,QAAA,IAAI,CAAC,GAAG,GAAG,KAAK,CAAC;QAEjB,IACI,IAAI,CAAC,YAAY;AACjB,YAAA,KAAK,YAAY,MAAM;AACvB,YAAA,KAAK,CAAC,eAAe,CAAC,sBAAsB,CAAC,EAC/C;AACE,YAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;AACtB,SAAA;KACJ;IAED,IACW,WAAW,CAAC,IAAsB,EAAA;AACzC,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;KACpB;AAED,IAAA,IAAW,KAAK,GAAA;QACZ,OAAO,IAAI,CAAC,GAAG,CAAC;KACnB;AAEM,IAAA,uBAAuB,CAAC,KAAe,EAAA;AAC1C,QAAA,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;KACjC;AAEM,IAAA,UAAU,CAAC,GAAW,EAAA;AACzB,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACxB,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;KAC9B;AAEM,IAAA,mBAAmB,CAAC,GAAkB,EAAA;AACzC,QAAA,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;KAC9B;AAED,IAAA,IAAc,WAAW,GAAA;AACrB,QAAA,OAAO,IAAI,CAAC,GAAG,IAAI,aAAa,CAAC;KACpC;AAED,IAAA,IAAc,WAAW,GAAA;AACrB,QAAA,OAAO,IAAI,CAAC,GAAG,IAAI,YAAY,CAAC;KACnC;AAED,IAAA,IAAc,sBAAsB,GAAA;AAChC,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC;AAC7B,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,cAAc,IAAI,aAAa,CAAC;AAEvD,QAAA,OAAO,SAAS,CAAC,gBAAgB,CAAC,GAAG,CAAC,GAAG,SAAS,GAAG,GAAG,CAAC;KAC5D;AAED,IAAA,IAAc,sBAAsB,GAAA;AAChC,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC;AAC7B,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,cAAc,IAAI,YAAY,CAAC;AAEtD,QAAA,OAAO,SAAS,CAAC,iBAAiB,CAAC,GAAG,CAAC,GAAG,SAAS,GAAG,GAAG,CAAC;KAC7D;AAED,IAAA,IAAc,YAAY,GAAA;AACtB,QAAA,OAAO,IAAI,CAAC,IAAI,KAAK,MAAM,CAAC;KAC/B;IAQS,qBAAqB,GAAA;AAC3B,QAAA,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC;KACtB;AAES,IAAA,iBAAiB,CAAC,IAAY,EAAA;AACpC,QAAA,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC;AACpB,QAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;KAChE;AAEO,IAAA,iBAAiB,CAAC,KAAe,EAAA;QACrC,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE;YAC7B,OAAO;AACV,SAAA;AAED,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;AACnB,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KAChC;AAEO,IAAA,gBAAgB,CAAC,GAAkB,EAAA;QACvC,IAAI,eAAe,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE;YAChE,OAAO;AACV,SAAA;AAED,QAAA,IAAI,CAAC,WAAW,GAAG,GAAG,CAAC;AACvB,QAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;KACpC;+GA3IQ,WAAW,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;mGAAX,WAAW,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,mBAAA,EAAA,qBAAA,EAAA,GAAA,EAAA,KAAA,EAAA,GAAA,EAAA,KAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,WAAA,EAAA,aAAA,EAAA,YAAA,EAAA,cAAA,EAAA,aAAA,EAAA,eAAA,EAAA,KAAA,EAAA,OAAA,EAAA,WAAA,EAAA,aAAA,EAAA,EAAA,OAAA,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,WAAA,EAAA,aAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,8BAAA,EAAA,GAAA,EAAA,EAAA,EAAA,SAAA,EALT,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC,0BC9C5C,+yCAqCA,EAAA,MAAA,EAAA,CAAA,mRAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDDQ,IAAI,EACJ,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,gBAAgB,wNAChB,eAAe,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,KAAA,EAAA,KAAA,CAAA,EAAA,OAAA,EAAA,CAAA,aAAA,EAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACf,eAAe,EACf,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,aAAA,EAAA,KAAA,EAAA,KAAA,EAAA,WAAA,EAAA,qBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,aAAa,kDACb,YAAY,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,QAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;4FAUP,WAAW,EAAA,UAAA,EAAA,CAAA;kBAnBvB,SAAS;iCACM,IAAI,EAAA,QAAA,EACN,cAAc,EACf,OAAA,EAAA;wBACL,IAAI;wBACJ,gBAAgB;wBAChB,eAAe;wBACf,eAAe;wBACf,aAAa;wBACb,YAAY;qBACf,EAGgB,eAAA,EAAA,uBAAuB,CAAC,MAAM,EAAA,SAAA,EACpC,CAAC,cAAc,CAAA,WAAA,CAAa,CAAC,EAClC,IAAA,EAAA;AACF,wBAAA,gCAAgC,EAAE,GAAG;AACxC,qBAAA,EAAA,QAAA,EAAA,+yCAAA,EAAA,MAAA,EAAA,CAAA,mRAAA,CAAA,EAAA,CAAA;8BASM,KAAK,EAAA,CAAA;sBADX,KAAK;gBAIC,mBAAmB,EAAA,CAAA;sBADzB,KAAK;gBAKC,GAAG,EAAA,CAAA;sBADT,KAAK;gBAIC,GAAG,EAAA,CAAA;sBADT,KAAK;gBAIC,cAAc,EAAA,CAAA;sBADpB,KAAK;gBAIC,cAAc,EAAA,CAAA;sBADpB,KAAK;gBAIC,WAAW,EAAA,CAAA;sBADjB,KAAK;gBAIC,YAAY,EAAA,CAAA;sBADlB,KAAK;gBAIC,aAAa,EAAA,CAAA;sBADnB,KAAK;gBAIU,QAAQ,EAAA,CAAA;sBADvB,MAAM;gBAIS,WAAW,EAAA,CAAA;sBAD1B,MAAM;gBAIS,iBAAiB,EAAA,CAAA;sBADhC,MAAM;gBAOI,KAAK,EAAA,CAAA;sBADf,KAAK;gBAeK,WAAW,EAAA,CAAA;sBADrB,KAAK;;;AE/GV;;AAEG;;;;"}
1
+ {"version":3,"file":"taiga-ui-core-components-calendar.mjs","sources":["../../../projects/core/components/calendar/calendar-sheet.options.ts","../../../projects/core/components/calendar/calendar-sheet.component.ts","../../../projects/core/components/calendar/calendar-sheet.template.html","../../../projects/core/components/calendar/calendar-spin.component.ts","../../../projects/core/components/calendar/calendar-spin.template.html","../../../projects/core/components/calendar/calendar-year.component.ts","../../../projects/core/components/calendar/calendar-year.template.html","../../../projects/core/components/calendar/calendar.component.ts","../../../projects/core/components/calendar/calendar.template.html","../../../projects/core/components/calendar/taiga-ui-core-components-calendar.ts"],"sourcesContent":["import type {Provider} from '@angular/core';\nimport {InjectionToken} from '@angular/core';\nimport {tuiProvideOptions} from '@taiga-ui/cdk/utils/miscellaneous';\n\nexport interface TuiCalendarSheetOptions {\n readonly rangeMode: boolean;\n}\n\nexport const TUI_CALENDAR_SHEET_DEFAULT_OPTIONS: TuiCalendarSheetOptions = {\n rangeMode: false,\n};\n\nexport const TUI_CALENDAR_SHEET_OPTIONS = new InjectionToken(\n ngDevMode ? 'TUI_CALENDAR_SHEET_OPTIONS' : '',\n {\n factory: () => TUI_CALENDAR_SHEET_DEFAULT_OPTIONS,\n },\n);\n\nexport function tuiCalendarSheetOptionsProvider(\n options: Partial<TuiCalendarSheetOptions>,\n): Provider {\n return tuiProvideOptions(\n TUI_CALENDAR_SHEET_OPTIONS,\n options,\n TUI_CALENDAR_SHEET_DEFAULT_OPTIONS,\n );\n}\n","import {CommonModule} from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n inject,\n Input,\n Output,\n} from '@angular/core';\nimport {TUI_FALSE_HANDLER} from '@taiga-ui/cdk/constants';\nimport {TuiDay, TuiDayRange, TuiMonth} from '@taiga-ui/cdk/date-time';\nimport {TuiHovered} from '@taiga-ui/cdk/directives/hovered';\nimport {TuiLet} from '@taiga-ui/cdk/directives/let';\nimport {TuiRepeatTimes} from '@taiga-ui/cdk/directives/repeat-times';\nimport {TuiMapperPipe} from '@taiga-ui/cdk/pipes/mapper';\nimport type {TuiBooleanHandler, TuiHandler} from '@taiga-ui/cdk/types';\nimport {tuiNullableSame, tuiPure} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {TuiCalendarSheetPipe, TuiOrderWeekDaysPipe} from '@taiga-ui/core/pipes';\nimport {TUI_DAY_TYPE_HANDLER, TUI_SHORT_WEEK_DAYS} from '@taiga-ui/core/tokens';\n\nimport {TUI_CALENDAR_SHEET_OPTIONS} from './calendar-sheet.options';\n\nexport type TuiMarkerHandler = TuiHandler<TuiDay, [] | [string, string] | [string]>;\n\n@Component({\n standalone: true,\n selector: 'tui-calendar-sheet',\n imports: [\n CommonModule,\n TuiCalendarSheetPipe,\n TuiHovered,\n TuiLet,\n TuiMapperPipe,\n TuiOrderWeekDaysPipe,\n TuiRepeatTimes,\n ],\n templateUrl: './calendar-sheet.template.html',\n styleUrls: ['./calendar-sheet.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[class._picking]': 'isRangePicking',\n },\n})\nexport class TuiCalendarSheet {\n private readonly options = inject(TUI_CALENDAR_SHEET_OPTIONS);\n private readonly today = TuiDay.currentLocal();\n\n protected readonly unorderedWeekDays$ = inject(TUI_SHORT_WEEK_DAYS);\n protected readonly dayTypeHandler = inject(TUI_DAY_TYPE_HANDLER);\n\n @Input()\n public month: TuiMonth = TuiMonth.currentLocal();\n\n @Input()\n public disabledItemHandler: TuiBooleanHandler<TuiDay> = TUI_FALSE_HANDLER;\n\n @Input()\n public markerHandler: TuiMarkerHandler | null = null;\n\n @Input()\n public value: TuiDay | TuiDayRange | readonly TuiDay[] | null = null;\n\n @Input()\n public hoveredItem: TuiDay | null = null;\n\n @Input()\n public showAdjacent = true;\n\n /**\n * @deprecated use static DI options instead\n * ```\n * tuiCalendarSheetOptionsProvider({rangeMode: true})\n * ```\n * TODO(v5): delete it\n */\n @Input()\n public single = true;\n\n @Output()\n public readonly hoveredItemChange = new EventEmitter<TuiDay | null>();\n\n @Output()\n public readonly dayClick = new EventEmitter<TuiDay>();\n\n /**\n * @deprecated TODO(v5): delete it. It is used nowhere except unit tests\n */\n public itemIsInterval(day: TuiDay): boolean {\n const {value, hoveredItem} = this;\n\n if (!(value instanceof TuiDayRange)) {\n return false;\n }\n\n if (!value.isSingleDay) {\n return value.from.daySameOrBefore(day) && value.to.dayAfter(day);\n }\n\n if (hoveredItem === null) {\n return false;\n }\n\n const range = TuiDayRange.sort(value.from, hoveredItem);\n\n return range.from.daySameOrBefore(day) && range.to.dayAfter(day);\n }\n\n public onItemHovered(item: TuiDay | false): void {\n this.updateHoveredItem(item || null);\n }\n\n public getItemRange(item: TuiDay): 'active' | 'end' | 'middle' | 'start' | null {\n const {value, hoveredItem} = this;\n\n if (!value) {\n return null;\n }\n\n if (value instanceof TuiDay && !this.computedRangeMode) {\n return value.daySame(item) ? 'active' : null;\n }\n\n if (value instanceof TuiDayRange && value.isSingleDay) {\n return value.from.daySame(item) ? 'active' : null;\n }\n\n if (!(value instanceof TuiDay) && !(value instanceof TuiDayRange)) {\n return value.find((day) => day.daySame(item)) ? 'active' : null;\n }\n\n const range = this.getRange(value, hoveredItem);\n\n if (range.isSingleDay && range.from.daySame(item)) {\n return 'active';\n }\n\n if (range.from.daySame(item)) {\n return 'start';\n }\n\n if (range.to.daySame(item)) {\n return 'end';\n }\n\n return range.from.dayBefore(item) && range.to.dayAfter(item) ? 'middle' : null;\n }\n\n protected get computedRangeMode(): boolean {\n return !this.single || this.options.rangeMode;\n }\n\n protected get isRangePicking(): boolean {\n return this.computedRangeMode\n ? this.value instanceof TuiDay\n : /**\n * Only for backward compatibility!\n * TODO(v5): replace with `this.options.rangeMode && this.value instanceof TuiDay`\n */\n this.value instanceof TuiDayRange && this.value.isSingleDay;\n }\n\n protected readonly toMarkers = (\n day: TuiDay,\n today: boolean,\n range: string | null,\n markerHandler: TuiMarkerHandler | null,\n ): [string, string] | [string] | null => {\n if (today || ['active', 'end', 'start'].includes(range || '')) {\n return null;\n }\n\n const markers = markerHandler?.(day);\n\n return markers?.length ? markers : null;\n };\n\n protected itemIsToday(item: TuiDay): boolean {\n return this.today.daySame(item);\n }\n\n protected itemIsUnavailable(item: TuiDay): boolean {\n return !this.month.monthSame(item);\n }\n\n protected onItemClick(item: TuiDay): void {\n this.dayClick.emit(item);\n }\n\n @tuiPure\n private getRange(\n value: TuiDay | TuiDayRange,\n hoveredItem: TuiDay | null,\n ): TuiDayRange {\n if (value instanceof TuiDay) {\n return TuiDayRange.sort(value, hoveredItem ?? value);\n }\n\n return value.isSingleDay\n ? TuiDayRange.sort(value.from, hoveredItem ?? value.to)\n : value;\n }\n\n private updateHoveredItem(day: TuiDay | null): void {\n if (tuiNullableSame(this.hoveredItem, day, (a, b) => a.daySame(b))) {\n return;\n }\n\n this.hoveredItem = day;\n this.hoveredItemChange.emit(day);\n }\n}\n","<div class=\"t-row t-row_weekday\">\n <div\n *ngFor=\"let day of unorderedWeekDays$ | tuiOrderWeekDays | async\"\n class=\"t-cell\"\n [textContent]=\"day\"\n ></div>\n</div>\n<div *tuiLet=\"month | tuiCalendarSheet: true as sheet\">\n <div\n *tuiRepeatTimes=\"let rowIndex of sheet.length\"\n automation-id=\"tui-calendar-sheet__row\"\n class=\"t-row\"\n >\n <ng-container *tuiRepeatTimes=\"let colIndex of sheet[rowIndex]?.length || 0\">\n <ng-container *tuiLet=\"sheet[rowIndex]?.[colIndex] as item\">\n <div\n *ngIf=\"item && (!itemIsUnavailable(item) || showAdjacent)\"\n automation-id=\"tui-calendar-sheet__cell\"\n class=\"t-cell\"\n [attr.data-range]=\"getItemRange(item)\"\n [attr.data-type]=\"item | tuiMapper: dayTypeHandler\"\n [class.t-cell_disabled]=\"disabledItemHandler(item)\"\n [class.t-cell_today]=\"itemIsToday(item)\"\n [class.t-cell_unavailable]=\"itemIsUnavailable(item)\"\n (click)=\"onItemClick(item)\"\n (tuiHoveredChange)=\"onItemHovered($event && item)\"\n >\n {{ item.day }}\n <div\n *ngIf=\"\n item\n | tuiMapper\n : toMarkers\n : itemIsToday(item)\n : getItemRange(item)\n : markerHandler as markers\n \"\n class=\"t-dots\"\n >\n <div\n class=\"t-dot\"\n [style.background]=\"markers?.[0]\"\n ></div>\n <div\n *ngIf=\"markers.length > 1\"\n class=\"t-dot\"\n [style.background]=\"markers?.[1] || ''\"\n ></div>\n </div>\n </div>\n </ng-container>\n </ng-container>\n </div>\n</div>\n","import {AsyncPipe, NgIf} from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Input,\n Output,\n} from '@angular/core';\nimport type {TuiMonthLike, TuiYear} from '@taiga-ui/cdk/date-time';\nimport {TUI_FIRST_DAY, TUI_LAST_DAY, TuiMonth} from '@taiga-ui/cdk/date-time';\nimport {TuiLink} from '@taiga-ui/core/components/link';\nimport {TuiSpinButton} from '@taiga-ui/core/components/spin-button';\nimport {TuiMonthPipe} from '@taiga-ui/core/pipes';\n\n@Component({\n standalone: true,\n selector: 'tui-calendar-spin',\n imports: [AsyncPipe, NgIf, TuiLink, TuiMonthPipe, TuiSpinButton],\n templateUrl: './calendar-spin.template.html',\n styleUrls: ['./calendar-spin.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TuiCalendarSpin {\n @Input()\n public value = TuiMonth.currentLocal();\n\n @Input()\n public min: TuiMonth = TUI_FIRST_DAY;\n\n @Input()\n public max: TuiMonth = TUI_LAST_DAY;\n\n @Output()\n public readonly valueChange = new EventEmitter<TuiMonth>();\n\n @Output()\n public readonly yearClick = new EventEmitter<TuiYear>();\n\n protected onYearClick(): void {\n this.yearClick.next(this.value);\n }\n\n protected append(date: TuiMonthLike): void {\n const value = this.value.append(date);\n\n if (this.min.monthSameOrAfter(value)) {\n this.updateValue(this.min);\n } else {\n this.updateValue(this.max.monthSameOrBefore(value) ? this.max : value);\n }\n }\n\n private updateValue(value: TuiMonth): void {\n if (this.value.monthSame(value)) {\n return;\n }\n\n this.value = value;\n this.valueChange.emit(value);\n }\n}\n","<tui-spin-button\n [focusable]=\"false\"\n [leftDisabled]=\"value.monthSameOrBefore(min)\"\n [rightDisabled]=\"value.monthSameOrAfter(max)\"\n (leftClick)=\"append({month: -1})\"\n (rightClick)=\"append({month: 1})\"\n>\n {{ value | tuiMonth | async }}\n <ng-container *ngIf=\"min.year === max.year; else button\">\n {{ value.formattedYear }}\n </ng-container>\n <ng-template #button>\n <button\n id=\"year-btn\"\n automation-id=\"tui-primitive-year-month-pagination__year-button\"\n tabIndex=\"-1\"\n tuiLink\n type=\"button\"\n (click)=\"onYearClick()\"\n >\n {{ value.formattedYear }}\n </button>\n </ng-template>\n</tui-spin-button>\n","import {\n ChangeDetectionStrategy,\n Component,\n computed,\n EventEmitter,\n inject,\n Input,\n Output,\n signal,\n} from '@angular/core';\nimport type {TuiDayRange} from '@taiga-ui/cdk/date-time';\nimport {\n MAX_YEAR,\n MIN_YEAR,\n TuiDay,\n TuiMonth,\n TuiMonthRange,\n TuiYear,\n} from '@taiga-ui/cdk/date-time';\nimport {TuiHovered} from '@taiga-ui/cdk/directives/hovered';\nimport {TuiLet} from '@taiga-ui/cdk/directives/let';\nimport {TuiRepeatTimes} from '@taiga-ui/cdk/directives/repeat-times';\nimport type {TuiBooleanHandler} from '@taiga-ui/cdk/types';\nimport {tuiIsNumber} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {TuiScrollIntoView} from '@taiga-ui/core/components/scrollbar';\nimport {TUI_ITEMS_HANDLERS} from '@taiga-ui/core/directives';\nimport {tuiAsAuxiliary} from '@taiga-ui/core/tokens';\n\nconst LIMIT = 100;\nconst ITEMS_IN_ROW = 4;\nconst CURRENT_YEAR = TuiMonth.currentLocal().year;\n\n@Component({\n standalone: true,\n selector: 'tui-calendar-year',\n imports: [TuiHovered, TuiLet, TuiRepeatTimes, TuiScrollIntoView],\n templateUrl: './calendar-year.template.html',\n styleUrls: ['./calendar-year.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [tuiAsAuxiliary(TuiCalendarYear)],\n host: {\n '[class._picking]': 'isRangePicking()',\n },\n})\nexport class TuiCalendarYear {\n private readonly hoveredItem = signal<number | null>(null);\n\n protected readonly isRangePicking = computed(\n (x = this.value()) =>\n this.rangeMode && (x instanceof TuiDay || x instanceof TuiMonth),\n );\n\n @Input()\n public rangeMode = false;\n\n @Input()\n public disabledItemHandler: TuiBooleanHandler<number> =\n inject(TUI_ITEMS_HANDLERS).disabledItemHandler();\n\n @Output()\n public readonly yearClick = new EventEmitter<number>();\n\n public readonly initialItem = signal<number>(CURRENT_YEAR);\n public readonly min = signal(MIN_YEAR);\n public readonly max = signal(MAX_YEAR);\n public readonly value = signal<\n TuiDayRange | TuiMonthRange | TuiYear | number | readonly TuiDay[] | null\n >(null);\n\n // TODO(v5): use signal inputs\n @Input({alias: 'initialItem', transform: (x: number | null) => x ?? CURRENT_YEAR})\n public set initialItemSetter(x: number | null) {\n this.initialItem.set(x ?? CURRENT_YEAR);\n }\n\n // TODO(v5): use signal inputs\n @Input({alias: 'min', transform: (x: number | null) => x ?? MIN_YEAR})\n public set minSetter(x: number) {\n this.min.set(x);\n }\n\n // TODO(v5): use signal inputs\n @Input({alias: 'max', transform: (x: number | null) => x ?? MAX_YEAR})\n public set maxSetter(x: number) {\n this.max.set(x);\n }\n\n // TODO(v5): use signal inputs\n @Input('value')\n public set valueSetter(\n x: TuiDayRange | TuiMonthRange | TuiYear | number | readonly TuiDay[] | null,\n ) {\n this.value.set(x);\n }\n\n public isDisabled(item: number): boolean {\n return (\n (this.max() && this.max() < item) ||\n (this.min() && this.min() > item) ||\n this.disabledItemHandler(item)\n );\n }\n\n public getItemRange(item: number): 'active' | 'end' | 'middle' | 'start' | null {\n const value = this.value();\n const hoveredItem = this.hoveredItem();\n\n if (value instanceof TuiYear && value.year === item) {\n return 'active';\n }\n\n if (tuiIsNumber(value)) {\n return value === item ? 'active' : null;\n }\n\n if (!(value instanceof TuiMonthRange) && !(value instanceof TuiYear)) {\n return value?.find((day) => day.year === item) ? 'active' : null;\n }\n\n const hovered = this.isRangePicking() ? hoveredItem : null;\n const from = 'from' in value ? value.from?.year : value.year;\n const to = 'from' in value ? value.to.year : value.year;\n\n const min = Math.min(from, hovered ?? to);\n const max = Math.max(from, hovered ?? to);\n\n if (min === max && from === to && from === item) {\n return 'active';\n }\n\n if (min === item) {\n return 'start';\n }\n\n if (max === item) {\n return 'end';\n }\n\n return min < item && item < max ? 'middle' : null;\n }\n\n public onItemHovered(hovered: boolean, item: number): void {\n this.hoveredItem.set(hovered ? item : null);\n }\n\n protected get rows(): number {\n return Math.ceil((this.calculatedMax - this.calculatedMin) / ITEMS_IN_ROW);\n }\n\n protected scrollItemIntoView(item: number): boolean {\n return this.initialItem() === item;\n }\n\n protected getItem(rowIndex: number, colIndex: number): number {\n return rowIndex * ITEMS_IN_ROW + colIndex + this.calculatedMin;\n }\n\n protected itemIsToday(item: number): boolean {\n return CURRENT_YEAR === item;\n }\n\n private get calculatedMin(): number {\n const initial = this.initialItem() - LIMIT;\n const min = this.min() ?? MIN_YEAR;\n\n return min > initial ? min : initial;\n }\n\n private get calculatedMax(): number {\n const initial = this.initialItem() + LIMIT;\n const max = this.max() ?? MAX_YEAR;\n\n return max < initial ? max + 1 : initial;\n }\n}\n","<div\n *tuiRepeatTimes=\"let rowIndex of rows\"\n automation-id=\"tui-calendar-year__row\"\n class=\"t-row\"\n>\n <ng-container *tuiRepeatTimes=\"let colIndex of 4\">\n <div\n *tuiLet=\"getItem(rowIndex, colIndex) as item\"\n automation-id=\"tui-calendar-year__cell\"\n class=\"t-cell\"\n [attr.data-range]=\"getItemRange(item)\"\n [class.t-cell_disabled]=\"isDisabled(item)\"\n [class.t-cell_today]=\"itemIsToday(item)\"\n [tuiScrollIntoView]=\"scrollItemIntoView(item)\"\n (click)=\"yearClick.emit(item)\"\n (tuiHoveredChange)=\"onItemHovered($event, item)\"\n >\n {{ item }}\n </div>\n </ng-container>\n</div>\n","import {NgIf} from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n EventEmitter,\n inject,\n Input,\n Output,\n} from '@angular/core';\nimport type {TuiDayRange} from '@taiga-ui/cdk/date-time';\nimport {\n TUI_FIRST_DAY,\n TUI_LAST_DAY,\n TUI_LAST_DISPLAYED_DAY,\n TuiDay,\n TuiMonth,\n} from '@taiga-ui/cdk/date-time';\nimport {TuiMapperPipe} from '@taiga-ui/cdk/pipes/mapper';\nimport type {TuiBooleanHandler, TuiMapper} from '@taiga-ui/cdk/types';\nimport {tuiNullableSame} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {TuiScrollbar} from '@taiga-ui/core/components/scrollbar';\nimport {TUI_ITEMS_HANDLERS} from '@taiga-ui/core/directives';\nimport {tuiAsAuxiliary} from '@taiga-ui/core/tokens';\nimport {Subject} from 'rxjs';\n\nimport type {TuiMarkerHandler} from './calendar-sheet.component';\nimport {TuiCalendarSheet} from './calendar-sheet.component';\nimport {TUI_CALENDAR_SHEET_OPTIONS} from './calendar-sheet.options';\nimport {TuiCalendarSpin} from './calendar-spin.component';\nimport {TuiCalendarYear} from './calendar-year.component';\n\n@Component({\n standalone: true,\n selector: 'tui-calendar',\n imports: [\n NgIf,\n TuiCalendarSheet,\n TuiCalendarSpin,\n TuiCalendarYear,\n TuiMapperPipe,\n TuiScrollbar,\n ],\n templateUrl: './calendar.template.html',\n styleUrls: ['./calendar.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [tuiAsAuxiliary(TuiCalendar)],\n host: {\n '(pointerdown.prevent.zoneless)': '0',\n },\n})\nexport class TuiCalendar {\n private readonly cdr = inject(ChangeDetectorRef);\n private day: TuiDay | TuiDayRange | readonly TuiDay[] | null = null;\n private view: 'month' | 'year' = 'month';\n protected readonly options = inject(TUI_CALENDAR_SHEET_OPTIONS);\n\n @Input()\n public month: TuiMonth = TuiMonth.currentLocal();\n\n @Input()\n public disabledItemHandler: TuiBooleanHandler<TuiDay> =\n inject(TUI_ITEMS_HANDLERS).disabledItemHandler();\n\n @Input()\n public min: TuiDay | null = TUI_FIRST_DAY;\n\n @Input()\n public max: TuiDay | null = TUI_LAST_DAY;\n\n @Input()\n public minViewedMonth: TuiMonth | null = TUI_FIRST_DAY;\n\n @Input()\n public maxViewedMonth: TuiMonth | null = TUI_LAST_DAY;\n\n @Input()\n public hoveredItem: TuiDay | null = null;\n\n @Input()\n public showAdjacent = true;\n\n @Input()\n public markerHandler: TuiMarkerHandler | null = null;\n\n @Output()\n public readonly dayClick = new EventEmitter<TuiDay>();\n\n @Output()\n public readonly monthChange = new EventEmitter<TuiMonth>();\n\n @Output()\n public readonly hoveredItemChange = new EventEmitter<TuiDay | null>();\n\n /** @deprecated for private use only until Calendars are refactored */\n public readonly valueChange = new Subject<TuiDay>();\n\n @Input()\n public set value(value: TuiDay | TuiDayRange | readonly TuiDay[] | null) {\n this.cdr.markForCheck();\n this.day = value;\n\n if (\n this.showAdjacent &&\n value instanceof TuiDay &&\n value.daySameOrBefore(TUI_LAST_DISPLAYED_DAY)\n ) {\n this.month = value;\n }\n }\n\n @Input()\n public set initialView(view: 'month' | 'year') {\n this.view = view;\n }\n\n public get value(): TuiDay | TuiDayRange | readonly TuiDay[] | null {\n return this.day;\n }\n\n public onPaginationValueChange(month: TuiMonth): void {\n this.updateViewedMonth(month);\n }\n\n public onDayClick(day: TuiDay): void {\n this.dayClick.emit(day);\n this.valueChange.next(day);\n }\n\n public onHoveredItemChange(day: TuiDay | null): void {\n this.updateHoveredDay(day);\n }\n\n protected get computedMin(): TuiDay {\n return this.min ?? TUI_FIRST_DAY;\n }\n\n protected get computedMax(): TuiDay {\n return this.max ?? TUI_LAST_DAY;\n }\n\n protected get computedMinViewedMonth(): TuiMonth {\n const min = this.computedMin;\n const minViewed = this.minViewedMonth ?? TUI_FIRST_DAY;\n\n return minViewed.monthSameOrAfter(min) ? minViewed : min;\n }\n\n protected get computedMaxViewedMonth(): TuiMonth {\n const max = this.computedMax;\n const maxViewed = this.maxViewedMonth ?? TUI_LAST_DAY;\n\n return maxViewed.monthSameOrBefore(max) ? maxViewed : max;\n }\n\n protected get isInYearView(): boolean {\n return this.view === 'year';\n }\n\n protected readonly disabledItemHandlerMapper: TuiMapper<\n [TuiBooleanHandler<TuiDay>, TuiDay, TuiDay],\n TuiBooleanHandler<TuiDay>\n > = (disabledItemHandler, min, max) => (item) =>\n item.dayBefore(min) || item.dayAfter(max) || disabledItemHandler(item);\n\n protected onPaginationYearClick(): void {\n this.view = 'year';\n }\n\n protected onPickerYearClick(year: number): void {\n this.view = 'month';\n this.updateViewedMonth(new TuiMonth(year, this.month.month));\n }\n\n private updateViewedMonth(month: TuiMonth): void {\n if (this.month.monthSame(month)) {\n return;\n }\n\n this.month = month;\n this.monthChange.emit(month);\n }\n\n private updateHoveredDay(day: TuiDay | null): void {\n if (tuiNullableSame(this.hoveredItem, day, (a, b) => a.daySame(b))) {\n return;\n }\n\n this.hoveredItem = day;\n this.hoveredItemChange.emit(day);\n }\n}\n","<tui-scrollbar\n *ngIf=\"isInYearView; else calendar\"\n automation-id=\"tui-calendar__scrollbar\"\n class=\"t-scrollbar\"\n>\n <tui-calendar-year\n automation-id=\"tui-calendar__year\"\n [initialItem]=\"month.year\"\n [max]=\"computedMax.year\"\n [min]=\"computedMin.year\"\n [rangeMode]=\"options.rangeMode\"\n [value]=\"value\"\n (yearClick)=\"onPickerYearClick($event)\"\n />\n</tui-scrollbar>\n<ng-template #calendar>\n <tui-calendar-spin\n automation-id=\"tui-calendar__pagination\"\n class=\"t-pagination\"\n [max]=\"computedMaxViewedMonth\"\n [min]=\"computedMinViewedMonth\"\n [value]=\"month\"\n (valueChange)=\"onPaginationValueChange($event)\"\n (yearClick)=\"onPaginationYearClick()\"\n />\n <tui-calendar-sheet\n automation-id=\"tui-calendar__calendar\"\n [disabledItemHandler]=\"disabledItemHandler | tuiMapper: disabledItemHandlerMapper : computedMin : computedMax\"\n [hoveredItem]=\"hoveredItem\"\n [markerHandler]=\"markerHandler\"\n [month]=\"month\"\n [showAdjacent]=\"showAdjacent\"\n [value]=\"value\"\n (dayClick)=\"onDayClick($event)\"\n (hoveredItemChange)=\"onHoveredItemChange($event)\"\n />\n</ng-template>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -60,7 +60,7 @@ class TuiRoot {
60
60
  : !this.isChildRoot;
61
61
  }
62
62
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiRoot, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
63
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TuiRoot, isStandalone: true, selector: "tui-root", host: { attributes: { "data-tui-version": "4.46.0" }, listeners: { "touchstart.passive.zoneless": "0", "document:fullscreenchange": "top.set(isTopLayer)" }, properties: { "style.--tui-duration.ms": "duration", "style.--tui-scroll-behavior": "reducedMotion ? \"auto\" : \"smooth\"", "class._mobile": "isMobileRes()" } }, hostDirectives: [{ directive: i1.TuiPlatform }, { directive: i2.TuiVisualViewport }, { directive: i3.TuiFontSize }], ngImport: i0, template: "<div class=\"t-root-content\"><ng-content /></div>\n<ng-container *ngIf=\"top()\">\n <tui-scroll-controls\n *ngIf=\"scrollbars\"\n class=\"t-root-scrollbar\"\n />\n <tui-popups />\n <ng-content select=\"tuiOverContent\" />\n <tui-dialogs />\n <ng-content select=\"tuiOverDialogs\" />\n <tui-alerts />\n <ng-content select=\"tuiOverAlerts\" />\n <tui-dropdowns />\n <ng-content select=\"tuiOverDropdowns\" />\n <tui-hints />\n <ng-content select=\"tuiOverHints\" />\n</ng-container>\n", styles: ["@keyframes tuiSkeletonVibe{to{opacity:.5}}@keyframes tuiPresent{to{content:\"\"}}@keyframes tuiFade{0%{opacity:0}}@keyframes tuiSlide{0%{transform:var(--tui-from, translateY(100%))}}@keyframes tuiScale{0%{transform:scale(0)}}@keyframes tuiCollapse{0%{grid-template-rows:0fr}to{grid-template-rows:1fr}}.tui-enter,.tui-leave{animation-duration:var(--tui-duration);animation-timing-function:ease-in-out;pointer-events:none}.tui-leave{animation-direction:reverse}\n", ".tui-zero-scrollbar{scrollbar-width:none;-ms-overflow-style:none}.tui-zero-scrollbar::-webkit-scrollbar,.tui-zero-scrollbar::-webkit-scrollbar-thumb{display:none}body,input{margin:0}tui-root{position:relative;display:block;font:var(--tui-font-text-s);color:var(--tui-text-primary);flex:1;border-image:conic-gradient(var(--tui-background-base) 0 0) fill 0/0/0 0 100vh 0;-webkit-tap-highlight-color:transparent}:root{--tui-inline-start: left;--tui-inline-end: right;--tui-inline: 1}[dir=rtl]{--tui-inline-start: right;--tui-inline-end: left;--tui-inline: -1}tui-root>.t-root-scrollbar{position:fixed;top:0;left:0;bottom:0;right:0;z-index:0;display:none;margin:0}[data-tui-theme] tui-root>.t-root-scrollbar{display:block}.t-root-content{position:relative;top:var(--t-root-top);block-size:100%;isolation:isolate}.t-root-content>*{--t-root-top: 0}[tuiDropdownButton][tuiDropdownButton]{display:none}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: TuiAlerts, selector: "tui-alerts" }, { kind: "component", type: TuiDialogs, selector: "tui-dialogs" }, { kind: "component", type: TuiDropdowns, selector: "tui-dropdowns" }, { kind: "component", type: TuiHints, selector: "tui-hints" }, { kind: "component", type: TuiPopups, selector: "tui-popups" }, { kind: "component", type: TuiScrollControls, selector: "tui-scroll-controls" }], changeDetection: i0.ChangeDetectionStrategy.Default, encapsulation: i0.ViewEncapsulation.None }); }
63
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TuiRoot, isStandalone: true, selector: "tui-root", host: { attributes: { "data-tui-version": "4.47.0-canary.fa64a58" }, listeners: { "touchstart.passive.zoneless": "0", "document:fullscreenchange": "top.set(isTopLayer)" }, properties: { "style.--tui-duration.ms": "duration", "style.--tui-scroll-behavior": "reducedMotion ? \"auto\" : \"smooth\"", "class._mobile": "isMobileRes()" } }, hostDirectives: [{ directive: i1.TuiPlatform }, { directive: i2.TuiVisualViewport }, { directive: i3.TuiFontSize }], ngImport: i0, template: "<div class=\"t-root-content\">\n <ng-content />\n</div>\n<ng-container *ngIf=\"top()\">\n <tui-scroll-controls\n *ngIf=\"scrollbars\"\n class=\"t-root-scrollbar\"\n />\n <tui-popups />\n <ng-content select=\"tuiOverContent\" />\n <tui-dialogs />\n <ng-content select=\"tuiOverDialogs\" />\n <tui-alerts />\n <ng-content select=\"tuiOverAlerts\" />\n <tui-dropdowns />\n <ng-content select=\"tuiOverDropdowns\" />\n <tui-hints />\n <ng-content select=\"tuiOverHints\" />\n</ng-container>\n", styles: ["@keyframes tuiSkeletonVibe{to{opacity:.5}}@keyframes tuiPresent{to{content:\"\"}}@keyframes tuiFade{0%{opacity:0}}@keyframes tuiSlide{0%{transform:var(--tui-from, translateY(100%))}}@keyframes tuiScale{0%{transform:scale(0)}}@keyframes tuiCollapse{0%{grid-template-rows:0fr}to{grid-template-rows:1fr}}.tui-enter,.tui-leave{animation-duration:var(--tui-duration);animation-timing-function:ease-in-out;pointer-events:none}.tui-leave{animation-direction:reverse}\n", ".tui-zero-scrollbar{scrollbar-width:none;-ms-overflow-style:none}.tui-zero-scrollbar::-webkit-scrollbar,.tui-zero-scrollbar::-webkit-scrollbar-thumb{display:none}body,input{margin:0}tui-root{position:relative;display:block;font:var(--tui-font-text-s);color:var(--tui-text-primary);flex:1;border-image:conic-gradient(var(--tui-background-base) 0 0) fill 0/0/0 0 100vh 0;-webkit-tap-highlight-color:transparent}:root{--tui-inline-start: left;--tui-inline-end: right;--tui-inline: 1}[dir=rtl]{--tui-inline-start: right;--tui-inline-end: left;--tui-inline: -1}tui-root>.t-root-scrollbar{position:fixed;top:0;left:0;bottom:0;right:0;z-index:0;display:none;margin:0}[data-tui-theme] tui-root>.t-root-scrollbar{display:block}.t-root-content{position:relative;top:var(--t-root-top);block-size:100%;isolation:isolate}.t-root-content>*{--t-root-top: 0}[tuiDropdownButton][tuiDropdownButton]{display:none}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: TuiAlerts, selector: "tui-alerts" }, { kind: "component", type: TuiDialogs, selector: "tui-dialogs" }, { kind: "component", type: TuiDropdowns, selector: "tui-dropdowns" }, { kind: "component", type: TuiHints, selector: "tui-hints" }, { kind: "component", type: TuiPopups, selector: "tui-popups" }, { kind: "component", type: TuiScrollControls, selector: "tui-scroll-controls" }], changeDetection: i0.ChangeDetectionStrategy.Default, encapsulation: i0.ViewEncapsulation.None }); }
64
64
  }
65
65
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiRoot, decorators: [{
66
66
  type: Component,
@@ -80,7 +80,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
80
80
  // Required for the :active state to work in Safari. https://stackoverflow.com/a/33681490
81
81
  '(touchstart.passive.zoneless)': '0',
82
82
  '(document:fullscreenchange)': 'top.set(isTopLayer)',
83
- }, template: "<div class=\"t-root-content\"><ng-content /></div>\n<ng-container *ngIf=\"top()\">\n <tui-scroll-controls\n *ngIf=\"scrollbars\"\n class=\"t-root-scrollbar\"\n />\n <tui-popups />\n <ng-content select=\"tuiOverContent\" />\n <tui-dialogs />\n <ng-content select=\"tuiOverDialogs\" />\n <tui-alerts />\n <ng-content select=\"tuiOverAlerts\" />\n <tui-dropdowns />\n <ng-content select=\"tuiOverDropdowns\" />\n <tui-hints />\n <ng-content select=\"tuiOverHints\" />\n</ng-container>\n", styles: ["@keyframes tuiSkeletonVibe{to{opacity:.5}}@keyframes tuiPresent{to{content:\"\"}}@keyframes tuiFade{0%{opacity:0}}@keyframes tuiSlide{0%{transform:var(--tui-from, translateY(100%))}}@keyframes tuiScale{0%{transform:scale(0)}}@keyframes tuiCollapse{0%{grid-template-rows:0fr}to{grid-template-rows:1fr}}.tui-enter,.tui-leave{animation-duration:var(--tui-duration);animation-timing-function:ease-in-out;pointer-events:none}.tui-leave{animation-direction:reverse}\n", ".tui-zero-scrollbar{scrollbar-width:none;-ms-overflow-style:none}.tui-zero-scrollbar::-webkit-scrollbar,.tui-zero-scrollbar::-webkit-scrollbar-thumb{display:none}body,input{margin:0}tui-root{position:relative;display:block;font:var(--tui-font-text-s);color:var(--tui-text-primary);flex:1;border-image:conic-gradient(var(--tui-background-base) 0 0) fill 0/0/0 0 100vh 0;-webkit-tap-highlight-color:transparent}:root{--tui-inline-start: left;--tui-inline-end: right;--tui-inline: 1}[dir=rtl]{--tui-inline-start: right;--tui-inline-end: left;--tui-inline: -1}tui-root>.t-root-scrollbar{position:fixed;top:0;left:0;bottom:0;right:0;z-index:0;display:none;margin:0}[data-tui-theme] tui-root>.t-root-scrollbar{display:block}.t-root-content{position:relative;top:var(--t-root-top);block-size:100%;isolation:isolate}.t-root-content>*{--t-root-top: 0}[tuiDropdownButton][tuiDropdownButton]{display:none}\n"] }]
83
+ }, template: "<div class=\"t-root-content\">\n <ng-content />\n</div>\n<ng-container *ngIf=\"top()\">\n <tui-scroll-controls\n *ngIf=\"scrollbars\"\n class=\"t-root-scrollbar\"\n />\n <tui-popups />\n <ng-content select=\"tuiOverContent\" />\n <tui-dialogs />\n <ng-content select=\"tuiOverDialogs\" />\n <tui-alerts />\n <ng-content select=\"tuiOverAlerts\" />\n <tui-dropdowns />\n <ng-content select=\"tuiOverDropdowns\" />\n <tui-hints />\n <ng-content select=\"tuiOverHints\" />\n</ng-container>\n", styles: ["@keyframes tuiSkeletonVibe{to{opacity:.5}}@keyframes tuiPresent{to{content:\"\"}}@keyframes tuiFade{0%{opacity:0}}@keyframes tuiSlide{0%{transform:var(--tui-from, translateY(100%))}}@keyframes tuiScale{0%{transform:scale(0)}}@keyframes tuiCollapse{0%{grid-template-rows:0fr}to{grid-template-rows:1fr}}.tui-enter,.tui-leave{animation-duration:var(--tui-duration);animation-timing-function:ease-in-out;pointer-events:none}.tui-leave{animation-direction:reverse}\n", ".tui-zero-scrollbar{scrollbar-width:none;-ms-overflow-style:none}.tui-zero-scrollbar::-webkit-scrollbar,.tui-zero-scrollbar::-webkit-scrollbar-thumb{display:none}body,input{margin:0}tui-root{position:relative;display:block;font:var(--tui-font-text-s);color:var(--tui-text-primary);flex:1;border-image:conic-gradient(var(--tui-background-base) 0 0) fill 0/0/0 0 100vh 0;-webkit-tap-highlight-color:transparent}:root{--tui-inline-start: left;--tui-inline-end: right;--tui-inline: 1}[dir=rtl]{--tui-inline-start: right;--tui-inline-end: left;--tui-inline: -1}tui-root>.t-root-scrollbar{position:fixed;top:0;left:0;bottom:0;right:0;z-index:0;display:none;margin:0}[data-tui-theme] tui-root>.t-root-scrollbar{display:block}.t-root-content{position:relative;top:var(--t-root-top);block-size:100%;isolation:isolate}.t-root-content>*{--t-root-top: 0}[tuiDropdownButton][tuiDropdownButton]{display:none}\n"] }]
84
84
  }], ctorParameters: function () { return []; } });
85
85
 
86
86
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-core-components-root.mjs","sources":["../../../projects/core/components/root/root.component.ts","../../../projects/core/components/root/root.template.html","../../../projects/core/components/root/taiga-ui-core-components-root.ts"],"sourcesContent":["/// <reference types=\"@taiga-ui/tsconfig/ng-dev-mode\" />\nimport {DOCUMENT, NgIf} from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n inject,\n RendererFactory2,\n signal,\n ViewEncapsulation,\n} from '@angular/core';\nimport {toSignal} from '@angular/core/rxjs-interop';\nimport {EVENT_MANAGER_PLUGINS} from '@angular/platform-browser';\nimport {TUI_VERSION} from '@taiga-ui/cdk/constants';\nimport {TuiFontSize} from '@taiga-ui/cdk/directives/font-size';\nimport {TuiPlatform} from '@taiga-ui/cdk/directives/platform';\nimport {TuiVisualViewport} from '@taiga-ui/cdk/directives/visual-viewport';\nimport {tuiWatch} from '@taiga-ui/cdk/observables';\nimport {TUI_IS_MOBILE} from '@taiga-ui/cdk/tokens';\nimport {tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\nimport {TuiAlerts} from '@taiga-ui/core/components/alert';\nimport {TuiDialogs} from '@taiga-ui/core/components/dialog';\nimport {\n TUI_SCROLLBAR_OPTIONS,\n TuiScrollControls,\n} from '@taiga-ui/core/components/scrollbar';\nimport {TuiDropdowns} from '@taiga-ui/core/directives/dropdown';\nimport {TuiHints} from '@taiga-ui/core/directives/hint';\nimport {TuiPopups} from '@taiga-ui/core/directives/popup';\nimport {TuiBreakpointService} from '@taiga-ui/core/services';\nimport {TUI_ANIMATIONS_SPEED, TUI_REDUCED_MOTION, TUI_THEME} from '@taiga-ui/core/tokens';\nimport {tuiGetDuration} from '@taiga-ui/core/utils';\nimport {PreventEventPlugin} from '@taiga-ui/event-plugins';\nimport {map} from 'rxjs';\n\n@Component({\n standalone: true,\n selector: 'tui-root',\n imports: [\n NgIf,\n TuiAlerts,\n TuiDialogs,\n TuiDropdowns,\n TuiHints,\n TuiPopups,\n TuiScrollControls,\n ],\n templateUrl: './root.template.html',\n styleUrls: ['./animations.less', './root.style.less'],\n encapsulation: ViewEncapsulation.None,\n // eslint-disable-next-line @angular-eslint/prefer-on-push-component-change-detection\n changeDetection: ChangeDetectionStrategy.Default,\n hostDirectives: [TuiPlatform, TuiVisualViewport, TuiFontSize],\n host: {\n 'data-tui-version': TUI_VERSION,\n '[style.--tui-duration.ms]': 'duration',\n '[style.--tui-scroll-behavior]': 'reducedMotion ? \"auto\" : \"smooth\"',\n '[class._mobile]': 'isMobileRes()',\n // Required for the :active state to work in Safari. https://stackoverflow.com/a/33681490\n '(touchstart.passive.zoneless)': '0',\n '(document:fullscreenchange)': 'top.set(isTopLayer)',\n },\n})\nexport class TuiRoot {\n private readonly doc = inject(DOCUMENT);\n private readonly el = tuiInjectElement();\n protected readonly reducedMotion = inject(TUI_REDUCED_MOTION);\n protected readonly duration = tuiGetDuration(inject(TUI_ANIMATIONS_SPEED));\n protected readonly isChildRoot = !!inject(TuiRoot, {optional: true, skipSelf: true});\n protected readonly top = signal(!this.isChildRoot);\n protected readonly isMobileRes = toSignal(\n inject(TuiBreakpointService).pipe(\n map((breakpoint) => breakpoint === 'mobile'),\n tuiWatch(),\n ),\n {initialValue: false},\n );\n\n protected readonly nativeScrollbar = inject(TUI_SCROLLBAR_OPTIONS).mode === 'native';\n\n protected readonly scrollbars =\n !this.nativeScrollbar && !inject(TUI_IS_MOBILE) && !this.isChildRoot;\n\n constructor() {\n // TODO move to provideTaiga in v5\n const factory = inject<any>(RendererFactory2);\n\n factory.removeStylesOnCompDestroy = false;\n\n if (factory.delegate) {\n factory.delegate.removeStylesOnCompDestroy = false;\n }\n\n if (!this.top()) {\n return;\n }\n\n this.doc.documentElement.setAttribute(\n 'data-tui-theme',\n inject(TUI_THEME).toLowerCase(),\n );\n\n if (!this.nativeScrollbar) {\n this.doc.defaultView?.document.documentElement.classList.add(\n 'tui-zero-scrollbar',\n );\n }\n\n ngDevMode &&\n console.assert(\n !!inject<unknown[]>(EVENT_MANAGER_PLUGINS).find(\n (plugin) => plugin instanceof PreventEventPlugin,\n ),\n 'NG_EVENT_PLUGINS is missing from global providers',\n );\n }\n\n protected get isTopLayer(): boolean {\n return this.doc.fullscreenElement?.matches('tui-root')\n ? this.doc.fullscreenElement === this.el\n : !this.isChildRoot;\n }\n}\n","<div class=\"t-root-content\"><ng-content /></div>\n<ng-container *ngIf=\"top()\">\n <tui-scroll-controls\n *ngIf=\"scrollbars\"\n class=\"t-root-scrollbar\"\n />\n <tui-popups />\n <ng-content select=\"tuiOverContent\" />\n <tui-dialogs />\n <ng-content select=\"tuiOverDialogs\" />\n <tui-alerts />\n <ng-content select=\"tuiOverAlerts\" />\n <tui-dropdowns />\n <ng-content select=\"tuiOverDropdowns\" />\n <tui-hints />\n <ng-content select=\"tuiOverHints\" />\n</ng-container>\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-core-components-root.mjs","sources":["../../../projects/core/components/root/root.component.ts","../../../projects/core/components/root/root.template.html","../../../projects/core/components/root/taiga-ui-core-components-root.ts"],"sourcesContent":["/// <reference types=\"@taiga-ui/tsconfig/ng-dev-mode\" />\nimport {DOCUMENT, NgIf} from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n inject,\n RendererFactory2,\n signal,\n ViewEncapsulation,\n} from '@angular/core';\nimport {toSignal} from '@angular/core/rxjs-interop';\nimport {EVENT_MANAGER_PLUGINS} from '@angular/platform-browser';\nimport {TUI_VERSION} from '@taiga-ui/cdk/constants';\nimport {TuiFontSize} from '@taiga-ui/cdk/directives/font-size';\nimport {TuiPlatform} from '@taiga-ui/cdk/directives/platform';\nimport {TuiVisualViewport} from '@taiga-ui/cdk/directives/visual-viewport';\nimport {tuiWatch} from '@taiga-ui/cdk/observables';\nimport {TUI_IS_MOBILE} from '@taiga-ui/cdk/tokens';\nimport {tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\nimport {TuiAlerts} from '@taiga-ui/core/components/alert';\nimport {TuiDialogs} from '@taiga-ui/core/components/dialog';\nimport {\n TUI_SCROLLBAR_OPTIONS,\n TuiScrollControls,\n} from '@taiga-ui/core/components/scrollbar';\nimport {TuiDropdowns} from '@taiga-ui/core/directives/dropdown';\nimport {TuiHints} from '@taiga-ui/core/directives/hint';\nimport {TuiPopups} from '@taiga-ui/core/directives/popup';\nimport {TuiBreakpointService} from '@taiga-ui/core/services';\nimport {TUI_ANIMATIONS_SPEED, TUI_REDUCED_MOTION, TUI_THEME} from '@taiga-ui/core/tokens';\nimport {tuiGetDuration} from '@taiga-ui/core/utils';\nimport {PreventEventPlugin} from '@taiga-ui/event-plugins';\nimport {map} from 'rxjs';\n\n@Component({\n standalone: true,\n selector: 'tui-root',\n imports: [\n NgIf,\n TuiAlerts,\n TuiDialogs,\n TuiDropdowns,\n TuiHints,\n TuiPopups,\n TuiScrollControls,\n ],\n templateUrl: './root.template.html',\n styleUrls: ['./animations.less', './root.style.less'],\n encapsulation: ViewEncapsulation.None,\n // eslint-disable-next-line @angular-eslint/prefer-on-push-component-change-detection\n changeDetection: ChangeDetectionStrategy.Default,\n hostDirectives: [TuiPlatform, TuiVisualViewport, TuiFontSize],\n host: {\n 'data-tui-version': TUI_VERSION,\n '[style.--tui-duration.ms]': 'duration',\n '[style.--tui-scroll-behavior]': 'reducedMotion ? \"auto\" : \"smooth\"',\n '[class._mobile]': 'isMobileRes()',\n // Required for the :active state to work in Safari. https://stackoverflow.com/a/33681490\n '(touchstart.passive.zoneless)': '0',\n '(document:fullscreenchange)': 'top.set(isTopLayer)',\n },\n})\nexport class TuiRoot {\n private readonly doc = inject(DOCUMENT);\n private readonly el = tuiInjectElement();\n protected readonly reducedMotion = inject(TUI_REDUCED_MOTION);\n protected readonly duration = tuiGetDuration(inject(TUI_ANIMATIONS_SPEED));\n protected readonly isChildRoot = !!inject(TuiRoot, {optional: true, skipSelf: true});\n protected readonly top = signal(!this.isChildRoot);\n protected readonly isMobileRes = toSignal(\n inject(TuiBreakpointService).pipe(\n map((breakpoint) => breakpoint === 'mobile'),\n tuiWatch(),\n ),\n {initialValue: false},\n );\n\n protected readonly nativeScrollbar = inject(TUI_SCROLLBAR_OPTIONS).mode === 'native';\n\n protected readonly scrollbars =\n !this.nativeScrollbar && !inject(TUI_IS_MOBILE) && !this.isChildRoot;\n\n constructor() {\n // TODO move to provideTaiga in v5\n const factory = inject<any>(RendererFactory2);\n\n factory.removeStylesOnCompDestroy = false;\n\n if (factory.delegate) {\n factory.delegate.removeStylesOnCompDestroy = false;\n }\n\n if (!this.top()) {\n return;\n }\n\n this.doc.documentElement.setAttribute(\n 'data-tui-theme',\n inject(TUI_THEME).toLowerCase(),\n );\n\n if (!this.nativeScrollbar) {\n this.doc.defaultView?.document.documentElement.classList.add(\n 'tui-zero-scrollbar',\n );\n }\n\n ngDevMode &&\n console.assert(\n !!inject<unknown[]>(EVENT_MANAGER_PLUGINS).find(\n (plugin) => plugin instanceof PreventEventPlugin,\n ),\n 'NG_EVENT_PLUGINS is missing from global providers',\n );\n }\n\n protected get isTopLayer(): boolean {\n return this.doc.fullscreenElement?.matches('tui-root')\n ? this.doc.fullscreenElement === this.el\n : !this.isChildRoot;\n }\n}\n","<div class=\"t-root-content\">\n <ng-content />\n</div>\n<ng-container *ngIf=\"top()\">\n <tui-scroll-controls\n *ngIf=\"scrollbars\"\n class=\"t-root-scrollbar\"\n />\n <tui-popups />\n <ng-content select=\"tuiOverContent\" />\n <tui-dialogs />\n <ng-content select=\"tuiOverDialogs\" />\n <tui-alerts />\n <ng-content select=\"tuiOverAlerts\" />\n <tui-dropdowns />\n <ng-content select=\"tuiOverDropdowns\" />\n <tui-hints />\n <ng-content select=\"tuiOverHints\" />\n</ng-container>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}