Выбор нескольких дат для календаря года в окне Выбора даты материала (Угловой)

#node.js #angular #angular-material

Вопрос:

У меня есть требование, чтобы пользователь мог выбрать несколько дат в средстве выбора дат. Как я могу реализовать функцию выбора нескольких дат в средстве выбора дат углового материала для календаря года? Я поделился двумя изображениями, ниже ожидается одно.

ожидаемый результат

Я получаю один и тот же месяц во всех месяцах, так как я не могу найти правильное свойство для привязки месяца по умолчанию в mat-календаре

Текущий Результат

Я попробовал это с помощью мат-календаря. Для календаря года я использовал директиву ngFor.

HTML-код :

 <mat-grid-list cols="4" rowHeight="260px"  [gutterSize]="'3px'">
<mat-grid-tile *ngFor="let _ of [1,2,3,4,5,6,7,8,9,10,11,12]">

    <div (click)="$event.stopPropagation()">
        <mat-calendar #calendar (selectedChange)="select($event,calendar)" [dateClass]="isSelected">
        </mat-calendar>
    </div>

</mat-grid-tile>
 

Файл TS:

   daysSelected: any[] = []; event: any;
isSelected = (event: any) => {
const date =
  event.getFullYear()  
  "-"  
  ("00"   (event.getMonth()   1)).slice(-2)  
  "-"  
  ("00"   event.getDate()).slice(-2);
return this.daysSelected.find(x => x == date) ? "selected" : null; };


  select(event: any, calendar: any) {
console.log();
const date =
  event.getFullYear()  
  "-"  
  ("00"   (event.getMonth()   1)).slice(-2)  
  "-"  
  ("00"   event.getDate()).slice(-2);
const index = this.daysSelected.findIndex(x => x == date);
if (index < 0) this.daysSelected.push(date);
else this.daysSelected.splice(index, 1);
calendar.updateTodaysDate();  }