{"version":3,"file":"ng-pro-calendar.mjs","sources":["../../../projects/pro-calendar/src/lib/pro-calendar.service.ts","../../../projects/pro-calendar/src/lib/services/store.service.ts","../../../projects/pro-calendar/src/lib/services/translate.service.ts","../../../projects/pro-calendar/src/lib/common/main.ts","../../../projects/pro-calendar/src/lib/pipes/tr.pipe.ts","../../../projects/pro-calendar/src/lib/services/utilities.service.ts","../../../projects/pro-calendar/src/lib/modules/calendar-assets/close-button/close-button.component.ts","../../../projects/pro-calendar/src/lib/modules/calendar-assets/close-button/close-button.component.html","../../../projects/pro-calendar/src/lib/directives/input-typing.directive.ts","../../../projects/pro-calendar/src/lib/modules/calendar-assets/calendar-search/calendar-search.component.ts","../../../projects/pro-calendar/src/lib/modules/calendar-assets/calendar-search/calendar-search.component.html","../../../projects/pro-calendar/src/lib/modules/calendar-assets/loader-widget/loader-widget.component.ts","../../../projects/pro-calendar/src/lib/modules/calendar-assets/loader-widget/loader-widget.component.html","../../../projects/pro-calendar/src/lib/modules/calendar-assets/calendar-arrows/calendar-arrows.component.ts","../../../projects/pro-calendar/src/lib/modules/calendar-assets/calendar-arrows/calendar-arrows.component.html","../../../projects/pro-calendar/src/lib/types/main.ts","../../../projects/pro-calendar/src/lib/common/sorting.in.pipes.ts","../../../projects/pro-calendar/src/lib/modules/calendar-assets/view-toggle/view-toggle.component.ts","../../../projects/pro-calendar/src/lib/modules/calendar-assets/view-toggle/view-toggle.component.html","../../../projects/pro-calendar/src/lib/modules/calendar-assets/header-comp/header-comp.component.ts","../../../projects/pro-calendar/src/lib/modules/calendar-assets/header-comp/header-comp.component.html","../../../projects/pro-calendar/src/lib/modules/calendar-assets/link-action/link-action.component.ts","../../../projects/pro-calendar/src/lib/modules/calendar-assets/link-action/link-action.component.html","../../../projects/pro-calendar/src/lib/modules/calendar-event/event/event.component.ts","../../../projects/pro-calendar/src/lib/modules/calendar-event/event/event.component.html","../../../projects/pro-calendar/src/lib/modules/calendar-day-view/day-view/day-view.component.ts","../../../projects/pro-calendar/src/lib/modules/calendar-day-view/day-view/day-view.component.html","../../../projects/pro-calendar/src/lib/modules/calendar-assets/calendar-native-datepicker/calendar-native-datepicker.component.ts","../../../projects/pro-calendar/src/lib/modules/calendar-assets/calendar-native-datepicker/calendar-native-datepicker.component.html","../../../projects/pro-calendar/src/lib/modules/calendar-left-menu/left-menu/left-menu.component.ts","../../../projects/pro-calendar/src/lib/modules/calendar-left-menu/left-menu/left-menu.component.html","../../../projects/pro-calendar/src/lib/modules/calendar-month-view/month-view/month-view.component.ts","../../../projects/pro-calendar/src/lib/modules/calendar-month-view/month-view/month-view.component.html","../../../projects/pro-calendar/src/lib/modules/calendar-side-event/side-event/side-event.component.ts","../../../projects/pro-calendar/src/lib/modules/calendar-side-event/side-event/side-event.component.html","../../../projects/pro-calendar/src/lib/modules/calendar-week-view/week-view/week-view.component.ts","../../../projects/pro-calendar/src/lib/modules/calendar-week-view/week-view/week-view.component.html","../../../projects/pro-calendar/src/lib/pro-calendar.component.ts","../../../projects/pro-calendar/src/lib/pro-calendar.component.html","../../../projects/pro-calendar/src/lib/modules/calendar-assets/calendar-assets.module.ts","../../../projects/pro-calendar/src/lib/modules/calendar-event/calendar-event.module.ts","../../../projects/pro-calendar/src/lib/modules/calendar-day-view/calendar-day-view.module.ts","../../../projects/pro-calendar/src/lib/modules/calendar-left-menu/calendar-left-menu.module.ts","../../../projects/pro-calendar/src/lib/modules/calendar-month-view/calendar-month-view.module.ts","../../../projects/pro-calendar/src/lib/modules/calendar-side-event/calendar-side-event.module.ts","../../../projects/pro-calendar/src/lib/modules/calendar-week-view/calendar-week-view.module.ts","../../../projects/pro-calendar/src/lib/pro-calendar.module.ts","../../../projects/pro-calendar/src/public-api.ts","../../../projects/pro-calendar/src/ng-pro-calendar.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class ProCalendarService {\n\n  constructor() { }\n}\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject, Observable } from 'rxjs';\nimport { Appointment, Configs } from '../types/main';\n\nexport const DEFAULT_CONFIGS: Configs = {\n  viewEvent: {\n    icon: true,\n    text: \"\",\n  },\n  reportEvent: {\n    icon: true,\n    text: \"\",\n  },\n  searchPlaceholder: \"\",\n  eventName: \"\",\n  closeText: \"\",\n  nativeDatepicker: true,\n  todayButton: false,\n  firstDayOfWeek: 0\n};\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class StoreService {\n\n  #events: BehaviorSubject<Appointment[]> = new BehaviorSubject<Appointment[]>([]);\n\n  #configs: BehaviorSubject<Configs> = new BehaviorSubject<Configs>({ \n    ...DEFAULT_CONFIGS,\n    reportEvent: {\n      ...DEFAULT_CONFIGS.reportEvent\n    },\n    viewEvent: {\n      ...DEFAULT_CONFIGS.viewEvent\n    } \n  });\n\n  constructor() { }\n\n  get _events(): Observable<Appointment[]> {\n    return this.#events.asObservable();\n  }\n\n  get _configs(): Observable<Configs> {\n    return this.#configs.asObservable();\n  }\n\n  set $events(newValue: Appointment[]) {\n    this.#events.next(newValue);\n  }\n\n  set $configs(newValue: Configs) {\n    this.#configs.next(newValue);\n  }\n}\n","import { Inject, Injectable } from '@angular/core';\nimport { DOCUMENT } from '@angular/common';\nimport { BehaviorSubject } from 'rxjs';\nimport { T_LANG } from '../types/main';\n\nimport fr from '../locales/calendar.fr.json';\nimport en from '../locales/calendar.en.json';\nimport pt from '../locales/calendar.pt.json';\nimport es from '../locales/calendar.es.json';\nimport eu from '../locales/calendar.eu.json';\nimport ru from '../locales/calendar.ru.json';\nimport uk from '../locales/calendar.uk.json';\n\ntype IDictionary = {\n  [key in T_LANG]: Record<string, unknown>;\n};\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class TranslateService {\n\n  #lang: BehaviorSubject<T_LANG | undefined> = new BehaviorSubject<T_LANG | undefined>(undefined);\n  #dictionary: IDictionary = { fr, en, pt, eu, es, ru, uk };\n\n  #fallbackLocale: T_LANG = 'fr';\n\n  readonly lang$ = this.#lang.asObservable();\n\n  static instance: TranslateService;\n\n  constructor(@Inject(DOCUMENT) private document: Document) {\n    const browserLocale = window.navigator.language.split(\"-\")[0];\n    if (Object.keys(this.#dictionary).includes(browserLocale)) this.#lang.next(browserLocale as T_LANG);\n    else this.#lang.next(this.#fallbackLocale); // fallback\n\n    TranslateService.instance = this;\n  }\n\n  get lang(): T_LANG {\n    return this.#lang.getValue() as T_LANG;\n  }\n\n  set lang(value: T_LANG) {\n    this.#lang.next(value);\n  }\n\n  translate(key: string, args?: Record<string, unknown>, locale: T_LANG = this.lang): string {\n    try {\n      const keys = key.split('.');\n      let translated = keys.reduce((previous: Record<string, unknown> | string , current: string) => {\n        return typeof previous === \"string\" ? previous : <Record<string, unknown>>previous[current];\n      }, this.#dictionary?.[locale] ?? this.#dictionary[this.#fallbackLocale]) as string;\n\n      if (args) {\n        for (const [key, value] of Object.entries(args)) {\n          let regex = new RegExp(`{${key}}`, \"g\");\n          translated = translated.replace(regex, `${value}`);\n        }\n      }\n\n      return translated;\n    } catch (e) {\n      void e;\n      return \"\";\n    }\n  }\n}\n","import { T_LANG } from '../types/main';\nimport { TranslateService } from \"../services/translate.service\";\n\n\nfunction locale(): T_LANG {\n  return TranslateService.instance.lang;\n}\n\nexport const twoDigit = (part: string | number): string => {\n  return String(\"0\" + part).slice(-2);\n};\n\nexport const copyDate = (date: Date | string): Date => {\n  return new Date(date);\n};\n\nexport const incrementTime = (time: string, force = false): string => {\n  time = time || \"23:00\";\n  let _time: string[] | string = time.split(\":\");\n  _time =\n    _time[0] === \"23\" || force\n      ? `${twoDigit(_time[0])}:${\"59\"}`\n      : `${twoDigit(String(Number(_time[0]) + 1))}:${_time[1]}`;\n  return _time;\n};\n\nexport const fixDateTime = (date: Date, time: string): Date => {\n  time = time || \"00:00\";\n  const _time: string[] = time.split(\":\");\n  //const _date = new Date(Date.UTC(date.getUTCFullYear(), date.getUTCMonth(), date.getUTCDate()));\n  const _date = new Date(\n    Date.UTC(date.getFullYear(), date.getMonth(), date.getDate())\n  );\n  //\n  _date.setHours(Number(_time[0]));\n  _date.setMinutes(Number(_time[1]));\n\n  return _date;\n};\n\nexport const randomId = (): string => {\n  const rd = (Math.random() + 1).toString(36).substring(7);\n  return rd;\n};\n\nexport const dayName = (date: Date | string, day: string | number): string => {\n  const _day = copyDate(date);\n  return new Intl.DateTimeFormat(locale(), { weekday: \"short\" }).format(\n    _day.setDate(Number(day))\n  );\n};\n\nexport const monthName = (date: Date | string): string => {\n  const _day = copyDate(date);\n  return new Intl.DateTimeFormat(locale(), { month: \"short\" }).format(_day);\n};\n\nexport const dateLabel = (date: Date): string => {\n  const _d = copyDate(date);\n  const _nd = new Date();\n  if (\n    _d.getMonth() === _nd.getMonth() &&\n    _d.getFullYear() === _nd.getFullYear()\n  ) {\n    if (_d.getDate() === _nd.getDate()) return \"calendar.today\";\n    if (_d.getDate() === _nd.getDate() + 1) return \"calendar.tomorrow\";\n  }\n\n  return new Intl.DateTimeFormat(locale(), {\n    day: \"numeric\",\n    month: \"short\",\n    year: \"numeric\",\n  }).format(date);\n};\n\nexport const isoStringToDate = (iso: Date | string): Date => {\n  const _date = new Date(iso);\n  return _date;\n};\n\nexport const dateToIsoString = (date: Date | string): string => {\n  return new Date(date).toISOString();\n};\n\nexport const minutes = (dat: Date | string): string => {\n  return twoDigit(isoStringToDate(dat).getMinutes());\n};\n\nexport const hours = (dat: Date | string): string => {\n  return twoDigit(isoStringToDate(dat).getHours());\n};\n\n//----------------------------------------------------------------------------------\n\n// generate previous year' months to actual year' months until actual month\nexport const yearMonthGenerator = (\n  date?: Date | string\n): { _prevmonths: Date[]; _nextmonths: Date[] } => {\n  const _prevmonths: Date[] = [];\n  const _nextmonths: Date[] = [];\n  const _date = date ? new Date(date) : new Date();\n  const _year = _date.getFullYear();\n  const _month = _date.getMonth();\n\n  //old year month\n  const prevFirstMonth = new Date(_year - 1, 0, 1);\n  const prevLastMonth = new Date(_year - 1, 11, 1);\n  //actual year month\n  const acFirstMonth = new Date(_year, 0, 1); //must be previous\n  const acLastMonth = new Date(_year, _month, 1);\n\n  const itPrevMonth = new Date(prevFirstMonth);\n  const itActMonth = new Date(acFirstMonth);\n\n  // iterate on previous year month\n  while (itPrevMonth <= prevLastMonth) {\n    _prevmonths.push(new Date(itPrevMonth));\n    itPrevMonth.setMonth(itPrevMonth.getMonth() + 1);\n  }\n\n  // iterate on current year Month to actual month of current year\n  while (itActMonth <= acLastMonth) {\n    _nextmonths.push(new Date(itActMonth));\n    itActMonth.setMonth(itActMonth.getMonth() + 1);\n  }\n\n  return {\n    _prevmonths,\n    _nextmonths,\n  };\n};\n\nexport const getWeekInterval = (\n  date: Date | string | number,\n  firstDayOfWeek: 0 | 1 = 0\n): { start: Date; end: Date } => {\n  const current_date = new Date(date);\n  // Start from Sunday, if want Monday add + 1\n  const week_start = current_date.getDate() - current_date.getDay() + firstDayOfWeek;\n  const week_first_day = new Date(current_date.setDate(week_start));\n  const week_end_day = new Date(\n    current_date.setDate(week_first_day.getDate() + 6)\n  );\n\n  return {\n    start: week_first_day,\n    end: week_end_day,\n  };\n};\n\n// week days'date generation from picked date\nexport const weekGenerator = (\n  week: { start: Date; end: Date } | Record<string, Date>\n): Date[] => {\n  const weeks: Date[] = [];\n  const week_day_date = copyDate(week.start);\n\n  while (week_day_date <= week.end) {\n    weeks.push(copyDate(week_day_date));\n    week_day_date.setDate(week_day_date.getDate() + 1);\n  }\n  return weeks;\n};\n\n// month days'date generation from picked date\nexport const monthGenerator = (date: Date | string, firstDayOfWeek: 0 | 1 = 0): {firstDay: Date; lastDay: Date; _days: Date[]} => {\n  const _days: Date[] = [];\n  const _date = copyDate(date);\n  const _year = _date.getFullYear();\n  const _month = _date.getMonth();\n  const firstDay = new Date(_year, _month, 1);\n  const lastDay = new Date(_year, _month + 1, 0);\n  const month_day_date = new Date(firstDay);\n\n  // to get previous dates before requested month (in target week)\n  const previousMonthDays = weekGenerator(getWeekInterval(firstDay, firstDayOfWeek));\n  for (const _dayDate of previousMonthDays) {\n    if (_dayDate < firstDay) _days.push(_dayDate);\n  }\n\n  // to get requested month days'day\n  while (month_day_date <= lastDay) {\n    _days.push(copyDate(month_day_date));\n    month_day_date.setDate(month_day_date.getDate() + 1);\n  }\n\n  // to get next dates after requested month (in target week)\n  const nextMonthDays = weekGenerator(getWeekInterval(lastDay, firstDayOfWeek));\n  for (const _dayDate of nextMonthDays) {\n    if (_dayDate > lastDay) _days.push(_dayDate);\n  }\n\n  return {\n    _days,\n    firstDay,\n    lastDay,\n  };\n};\n\nexport const prevDate = (date: Date | string): Date => {\n  const _date = copyDate(date);\n  const _day = _date.getDate();\n  return _day > 1 ? new Date(_date.setDate(_day - 1)) : _date;\n};\n\nexport const nextDate = (date: Date | string): Date => {\n  const _date = copyDate(date);\n  const _day = _date.getDate();\n  // month days limit\n  const limit =\n    _date.getMonth() === 1\n      ? 27\n      : [0, 2, 4, 6, 7, 9, 11].includes(_date.getMonth())\n      ? 30\n      : 29;\n  return _day <= limit ? new Date(_date.setDate(_day + 1)) : _date;\n};\n\nexport const timeToSeconds = (time: string): number => {\n  if (!/.{2}:.{2}:.{2}/i.test(time)) {\n    if(!/.{2}:.{2}/i.test(time)) return 0;\n    time = `${time}:00`;\n  }\n  const a = time.split(\":\"); // split it at the colons\n  // minutes are worth 60 seconds. Hours are worth 60 minutes.\n  const seconds = +a[0] * 60 * 60 + +a[1] * 60 + +a[2];\n\n  return seconds;\n};\n\nexport const timeFormat = (time: string, full?: boolean): string => {\n  const _nd = fixDateTime(new Date(), time);\n  let options = {};\n\n  if(locale().indexOf(\"en\") !== -1) {\n    options = full ? {\n      hour: \"numeric\",\n      minute: \"numeric\",\n      hour12: true,\n    } : {\n      hour: \"numeric\",\n      hour12: true,\n    }\n  } else options = {\n    hour: \"numeric\",\n    minute: \"numeric\",\n  }\n\n  return new Intl.DateTimeFormat(locale(), options).format(_nd);\n};","import { ChangeDetectorRef, OnDestroy, Pipe, PipeTransform } from '@angular/core';\nimport { TranslateService } from '../services/translate.service';\nimport { Subject, takeUntil } from 'rxjs';\n\n@Pipe({\n  name: 'tr',\n  pure: false\n})\nexport class TrPipe implements PipeTransform, OnDestroy {\n\n  private destroy$ = new Subject<void>();\n\n  constructor(\n    private translateService: TranslateService,\n    private changeDetectorRef: ChangeDetectorRef,\n  ) {\n    this.translateService.lang$.pipe(takeUntil(this.destroy$)).subscribe(() => {\n      // This will mark the pipe to be checked for the next change detection cycle\n      this.changeDetectorRef.markForCheck();\n    });\n  }\n\n  ngOnDestroy(): void {\n      this.destroy$.next();\n      this.destroy$.complete();\n  }\n\n  transform(value: string, args?: Record<string, unknown>): string {\n    return this.translateService.translate(value, args);\n  }\n\n}\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject, Observable } from 'rxjs';\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class UtilitiesService {\n\n  #documentClickTarget: BehaviorSubject<EventTarget | null> = new BehaviorSubject<EventTarget | null>(null);\n\n  constructor() { }\n\n  get _documentClickTarget(): Observable<EventTarget | null> {\n    return this.#documentClickTarget.asObservable();\n  }\n\n  set $documentClickTarget(newValue: EventTarget) {\n    this.#documentClickTarget.next(newValue);\n  }\n}\n","import { Component, EventEmitter, Output } from '@angular/core';\n\n@Component({\n  selector: 'close-button',\n  templateUrl: './close-button.component.html',\n  styleUrls: [\n    '../../../tailwind.scss',\n    './close-button.component.scss'\n  ]\n})\nexport class CloseButtonComponent {\n  @Output() tap = new EventEmitter<void>(true);\n\n  constructor () {}\n\n  emitTap (): void {\n    this.tap.emit();\n  }\n}\n","<a\n    data-calendar-toggler\n    attr.aria-label=\"{{ 'close' | tr }}\"\n    title=\"{{ 'close' | tr }}\"\n    href=\"#\"\n    class=\"select-none cursor-pointer inline-flex items-center flex-row space-x-2 flex-nowrap text-left text-005743 hover:opacity-80 active:animate-pulse\"\n    (click)=\"emitTap()\"\n>\n    <span class=\"inline-flex items-center justify-center w-6 h-6 flex-shrink-0\">\n        <fa-icon class=\"text-xl\" icon=\"xmark\" />\n    </span>\n    <span class=\"font-semibold tracking-m0dt02 text-base\">\n      {{ \"close\" | tr }}\n    </span>\n</a>","import { Directive, ElementRef, EventEmitter, HostListener, Input, Output } from '@angular/core';\n\n@Directive({\n  selector: '[input-typing]',\n})\nexport class InputTypingDirective {\n\n  inputTimer?: number;\n  @Input() inputInterval?: number = 100;\n  @Input() allowBackspace?: boolean = true;\n\n  @Output() run = new EventEmitter<Event>(true);\n  @Output() finish = new EventEmitter<Event>(true);\n\n  constructor(public el: ElementRef<HTMLInputElement>) { }\n\n  @HostListener(\"keydown\",['$event'])\n  @HostListener(\"keyup\",['$event'])\n  onType(e: Event):void{\n    const tping=(e: Event)=>{\n      this.run.emit(e);\n    };\n\n    const tpfinished=(e: Event)=>{\n      this.finish.emit(e);\n    };\n\n    if (e.type === \"keyup\") {\n      if (\n        (e as KeyboardEvent).key !== \"Backspace\"\n      )\n      tping(e); // is typing running callback\n      else if (this.allowBackspace === true) tping(e); // is typing running callback\n      //\n      clearTimeout(this.inputTimer);\n      this.inputTimer = setTimeout(() => { tpfinished(e); },this.inputInterval) as unknown as number; // when typing finished\n\n    } else if (e.type === \"keydown\") {\n      clearTimeout(this.inputTimer);\n    }\n  }\n\n}","import { Component, EventEmitter, Input, Output, TemplateRef } from '@angular/core';\nimport { TrPipe } from '../../../pipes/tr.pipe';\n\n@Component({\n  selector: 'calendar-search',\n  templateUrl: './calendar-search.component.html',\n  styleUrls: [\n    '../../../tailwind.scss',\n    './calendar-search.component.scss'\n  ]\n})\nexport class CalendarSearchComponent {\n  @Input() placeholder?: string = \"\";\n  @Input() timing?: number = 200;\n\n  @Output('search') handleInput: EventEmitter<string> = new EventEmitter<string>(true);\n  @Output() typingFinish: EventEmitter<string> = new EventEmitter<string>(true); \n  @Output() typingRun: EventEmitter<string> = new EventEmitter<string>(true);\n\n  @Input() searchIcon!: TemplateRef<any>;\n}\n","<div\n    class=\"min-w-11dt5 bg-F4F4F5 border border-F4F4F5 rounded px-1 py-0dt375 flex flex-shrink-0 flex-nowrap items-center space-x-2\"\n    title=\"{{ 'search_tip' | tr }}\"\n    attr.aria-label=\"{{ 'search_tip' | tr }}\"\n  >\n    <span class=\"inline-flex flex-whrink-0 select-none\">\n        <ng-container *ngTemplateOutlet=\"searchIcon\"></ng-container>\n        <!--default icon-->\n        <fa-icon \n            *ngIf=\"!searchIcon\" \n            class=\"text-base text-18181B\" \n            icon=\"magnifying-glass\"\n        />\n    </span>\n    <input\n        #searchInput\n        input-typing\n        (finish)=\"typingFinish.emit(searchInput.value)\"\n        (run)=\"typingRun.emit(searchInput.value)\"\n        (input)=\"handleInput.emit(searchInput.value)\"\n        [inputInterval]=\"timing\"\n        [placeholder]=\"placeholder || ('search' | tr)\"\n        class=\"bg-F4F4F5 flex-shrink w-full text-xs text-left text-A1A1AA font-medium appearance-none border-0 outline-none focus:font-bold\"\n        type=\"text\"\n    />\n  </div>\n","import { Component } from '@angular/core';\n\n@Component({\n  selector: 'loader-widget',\n  templateUrl: './loader-widget.component.html',\n  styleUrls: [\n    '../../../tailwind.scss',\n    './loader-widget.component.scss'\n  ]\n})\nexport class LoaderWidgetComponent {\n\n}\n","<span class=\"primary-loader\">&thinsp;</span>\n","import { Component, EventEmitter, Input, OnInit, Output, TemplateRef, WritableSignal, signal } from '@angular/core';\nimport { StoreService } from '../../../services/store.service';\nimport { Configs } from '../../../types/main';\n\n@Component({\n  selector: 'calendar-arrows',\n  templateUrl: './calendar-arrows.component.html',\n  styleUrls: [\n    '../../../tailwind.scss',\n    './calendar-arrows.component.scss'\n  ]\n})\nexport class CalendarArrowsComponent implements OnInit {\n  @Input() label?: string = \"dd/mm/yyyy\";\n\n  @Output() left: EventEmitter<void> = new EventEmitter<void>(true);\n  @Output() right: EventEmitter<void> = new EventEmitter<void>(true);\n  @Output() today: EventEmitter<Date> = new EventEmitter<Date>();\n\n  @Input('leftSwitchArrow') leftSwitchArrowRef!: TemplateRef<any>;\n  @Input('rightSwitchArrow') rightSwitchArrowRef!: TemplateRef<any>;\n\n  configs: WritableSignal<Configs> = signal({});\n\n  constructor(private storeService: StoreService) { }\n\n  ngOnInit(): void {\n    this.storeService._configs.subscribe((value: Configs) => {\n       this.configs.set(value);\n    });\n  }\n\n  emitToday(event: Event): void {\n    event.preventDefault();\n    event.stopPropagation();\n    this.today.emit(new Date());\n  }\n}\n","<div class=\"select-none flex space-x-2 flex-row flex-nowrap items-center min-w-10dt125rem\">\n    <!--left button icon master-->\n    <a \n        class=\"bg-F4F4F5 w-7 h-7 rounded-tl-md rounded-bl-md inline-flex flex-shrink-0 items-center justify-center hover:opacity-80 active:animate-pulse cursor-pointer calendar--arrows-left\"\n        href=\"#\" \n        (click)=\"left.emit()\" \n        title=\"{{ 'previous_day' | tr }}\"\n    >\n        <span \n            class=\"inline-flex flex-shrink-0\"\n        >\n            <ng-container *ngTemplateOutlet=\"leftSwitchArrowRef\"></ng-container>\n            <!--default icon-->\n            <fa-icon \n                *ngIf=\"!leftSwitchArrowRef\" \n                class=\"text-base text-18181B\" \n                icon=\"chevron-left\"\n            />\n        </span>\n    </a>\n    <!-- label -->\n    <!-- <span\n      *ngIf=\"!configs()?.nativeDatepicker\"\n      class=\"capitalize bg-F4F4F5 text-18181B text-center py-0dt375 px-4 flex-shrink-0 font-medium text-xs mx-px\"\n    >\n      {{ label }}\n    </span> -->\n    <a\n      *ngIf=\"configs().todayButton\"\n      role=\"button\"\n      href=\"#\"\n      class=\"capitalize bg-F4F4F5 text-18181B text-center py-0dt375 px-4 flex-shrink-0 font-medium text-xs mx-px hover:opacity-80 active:animate-pulse\"\n      (click)=\"emitToday($event)\"\n      :title=\"{{ 'today' | tr }}\"\n    >\n      {{ 'today' | tr }}\n    </a>\n    <!--right button icon master-->\n    <a \n        class=\"bg-F4F4F5 rounded-tr-md rounded-br-md w-7 h-7 inline-flex flex-shrink-0 items-center justify-center hover:opacity-80 active:animate-pulse cursor-pointer calendar--arrows-right\"\n        href=\"#\" \n        (click)=\"right.emit()\"\n        title=\"{{ 'next_day' | tr }}\"\n    >\n        <span \n            class=\"inline-flex flex-shrink-0\"\n        >\n            <ng-container *ngTemplateOutlet=\"rightSwitchArrowRef\"></ng-container>\n            <!--default icon-->\n            <fa-icon \n                *ngIf=\"!rightSwitchArrowRef\" \n                class=\"text-base text-18181B\" \n                icon=\"chevron-right\"\n            />\n        </span>\n    </a>\n</div>","export enum E_View {\n    DAY = \"day\",\n    WEEK = \"week\",\n    MONTH = \"month\",\n}\n\nexport enum E_CustomEvents {\n    VIEW = 'calendar.request.view',\n    REPORT = 'calendar.request.report'\n}\n\nexport type Appointment = {\n    id: string;\n    name: string;\n    date: string; //DateIsoString\n    keywords: string;\n    comment?: string;\n    createdAt?: string; //DateIsoString\n    updatedAt?: string; //DateIsoString\n}\n\nexport type T_View = 'day' | 'week' | 'month';\n\nexport type T_LANG = 'fr' | 'en' | 'pt' | 'es' | 'eu' | 'ru' | 'uk';\n\nexport type T_Action = {\n    icon?: boolean;\n    text?: string;\n}\n\nexport type Configs = {\n    viewEvent?: T_Action;\n    reportEvent?: T_Action;\n    searchPlaceholder?: string;\n    eventName?: string;\n    closeText?: string;\n    nativeDatepicker?: boolean;\n    todayButton?: boolean;\n    firstDayOfWeek?: 0 | 1;\n}\n\nexport type IStartEndDates = {\n    start: Date | string;\n    end: Date | string\n};","import { KeyValue } from \"@angular/common\";\n\n// Preserve original property order\nexport const originalOrder = <T, U>(a: KeyValue<T, U>, b: KeyValue<T, U>): number => {\n    return 0;\n}\n\n// Order by ascending property value\nexport const valueAscOrder = (a: KeyValue<number, string>, b: KeyValue<number, string>): number => {\n    return a.value.localeCompare(b.value);\n}\n\n// Order by descending property key\nexport const keyDescOrder = (a: KeyValue<number, string>, b: KeyValue<number, string>): number => {\n    return a.key > b.key ? -1 : (b.key > a.key ? 1 : 0);\n}","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { E_View, T_View } from '../../../types/main';\nimport { originalOrder } from '../../../common/sorting.in.pipes';\nimport { KeyValue } from '@angular/common';\n\n@Component({\n  selector: 'view-toggle',\n  templateUrl: './view-toggle.component.html',\n  styleUrls: [\n    '../../../tailwind.scss',\n    './view-toggle.component.scss'\n  ]\n})\nexport class ViewToggleComponent implements OnInit {\n  @Input({ required: false }) view: T_View = \"week\";\n\n  @Output() viewChanged: EventEmitter<T_View> = new EventEmitter<T_View>(true);\n\n  originalOrder = originalOrder;\n\n  tabs: Record<string, T_View> = {\n    ...Object.fromEntries(Object.entries(E_View)),\n  };\n\n  ngOnInit(): void {\n    this.viewChanged.emit(this.view);\n  }\n\n  changeView(state: T_View, event: Event): void {\n    event.stopPropagation();\n    event.preventDefault();\n\n    this.view = state;\n\n    this.viewChanged.emit(this.view);\n  };\n\n  tracktab(index: number, tab: KeyValue<string, T_View>) {\n    return index;\n  }\n}\n","<div class=\"calendar-day-toggle select-none flex flex-row flex-nowrap items-center transition-all min-w-16dt563\">\n    <a \n        *ngFor=\"let tab of tabs | keyvalue: originalOrder; trackBy: tracktab;\" \n        href=\"#\"\n        class=\"text-71717A py-0dt375 px-4 inline-flex font-medium text-sm leading-5 flex-shrink-0 items-center justify-center hover:opacity-80 active:animate-pulse cursor-pointer\"\n        [ngClass]=\"{\n            'rounded-md bg-14-165-233 text-white hover:opacity-90': view === tab.value,\n            'bg-white': view !== tab.value,\n        }\" \n        (click)=\"changeView(tab.value, $event)\"\n    >\n        {{ tab.value | tr }}\n    </a>\n</div>","import { Component } from '@angular/core';\n\n@Component({\n  selector: 'header-comp',\n  templateUrl: './header-comp.component.html',\n  styleUrls: [\n    '../../../tailwind.scss',\n    './header-comp.component.scss'\n  ]\n})\nexport class HeaderCompComponent {\n\n}\n","<div class=\"w-full flex-nowrap flex flex-row justify-between items-center\">\n    <ng-content><!-- content slots --></ng-content>\n</div>\n","import { Component, ContentChild, EventEmitter, Input, Output, TemplateRef } from '@angular/core';\n\n@Component({\n  selector: 'link-action',\n  templateUrl: './link-action.component.html',\n  styleUrls: [\n    '../../../tailwind.scss',\n    './link-action.component.scss'\n  ]\n})\nexport class LinkActionComponent {\n  @Input() text?: string | number = \"\";\n  @Input() directLink?: boolean = false;\n  @Input() iconmgl?: number = 2;\n\n  @Output() clicked: EventEmitter<void> = new EventEmitter<void>(true);\n\n  @ContentChild('icon') iconRef!: TemplateRef<any>;\n}\n","<span *ngIf=\"!directLink then noDirectLinkTemplate else directLinkTemplate;\"></span>  \n\n<ng-template #noDirectLinkTemplate>\n    <a\n        data-el-link\n        href=\"#\"\n        class=\"underline inline-flex items-center font-medium text-2062F6 text-xs leading-relaxed hover:opacity-80 active:animate-pulse\"\n        (click)=\"clicked.emit()\"\n    >\n        <span\n            class=\"inline-flex items-center justify-center\"\n            [ngClass]=\"{\n                'mr-2': iconmgl === 2 && iconRef,\n                'mr-1': iconmgl === 1 && iconRef,\n            }\"\n        >\n            <ng-container *ngTemplateOutlet=\"iconRef\"></ng-container>\n        </span>\n        <span class=\"truncate\">\n            {{ text }}\n        </span>\n    </a>\n</ng-template>\n\n<ng-template #directLinkTemplate>\n    <a\n        data-el-link\n        href=\"#\"\n        class=\"underline inline-flex items-center font-medium text-2062F6 text-xs leading-relaxed hover:opacity-80 active:animate-pulse\"\n    >\n        <span\n            class=\"inline-flex items-center justify-center\"\n            [ngClass]=\"{\n                'mr-2': iconmgl === 2 && iconRef,\n                'mr-1': iconmgl === 1 && iconRef,\n            }\"\n        >\n            <ng-container *ngTemplateOutlet=\"iconRef\"></ng-container>\n        </span>\n        <span class=\"truncate\">\n            {{ text }}\n        </span>\n    </a>\n</ng-template>\n","import { Component, ElementRef, Input, OnChanges, OnInit, Signal, SimpleChanges, TemplateRef, ViewChild, WritableSignal, computed, signal } from '@angular/core';\nimport { StoreService } from '../../../services/store.service';\nimport { Appointment, Configs, E_CustomEvents } from '../../../types/main';\nimport { fixDateTime, hours, incrementTime, isoStringToDate, minutes, timeFormat } from '../../../common/main';\nimport { TranslateService } from '../../../services/translate.service';\nimport { UtilitiesService } from '../../../services/utilities.service';\n\n@Component({\n  selector: 'event',\n  templateUrl: './event.component.html',\n  styleUrls: [\n    '../../../tailwind.scss',\n    './event.component.scss'\n  ]\n})\nexport class EventComponent implements OnInit, OnChanges {\n  @Input() eventDate!: Date;\n  @Input() eventTime?: string = \"\";\n  @Input('eventCard') eventCardRef!: TemplateRef<any>;\n\n  @ViewChild('eventContainer') eventContainer: ElementRef<HTMLElement> | undefined = undefined;\n  @ViewChild('eventSide') eventSide: ElementRef<HTMLElement> | undefined = undefined;\n  @ViewChild('eventList') eventList: ElementRef<HTMLElement> | undefined = undefined;\n\n  openEventList: WritableSignal<boolean> = signal(false);\n  openSingleEvent: WritableSignal<boolean> = signal(false);\n\n  datetime_start: WritableSignal<Date | null> = signal(null);\n  datetime_end: WritableSignal<Date | null> = signal(null);\n\n  // to define popup position\n  popupr: WritableSignal<boolean> = signal(false);\n  popupb: WritableSignal<boolean> = signal(false);\n\n  configs: WritableSignal<Configs> = signal({});\n  calendarEvents: WritableSignal<Appointment[]> = signal([]);\n  RdvsPkg: Signal<Appointment[]> = computed((): Appointment[] => {\n    const _start = this.datetime_start() as Date;\n    const _end = this.datetime_end() as Date;\n\n    return this.calendarEvents().filter((rdv: Appointment) => {\n      const _d = isoStringToDate(rdv.date);\n      return _d >= _start && _d < _end;\n    });\n  });\n\n  actionsEnabled: Signal<boolean> = computed(() => {\n    const actions = [\"viewEvent\", \"reportEvent\"];\n    return actions.some(\n      (it: string) => (this.configs() as Record<string, any>)[it] !== undefined\n    );\n  });\n\n  isoStringToDate = isoStringToDate;\n  timeFormat = timeFormat;\n  hours = hours;\n  minutes = minutes;\n\n  get lang(): string {\n    return this.translateService.lang;\n  }\n\n  constructor(\n    private storeService: StoreService,\n    private translateService: TranslateService,\n    private utilitiesService: UtilitiesService,\n    private el: ElementRef\n  ) { }\n\n  ngOnInit(): void {\n    // subscribe configs\n    this.storeService._configs.subscribe((value: Configs) => {\n      this.configs.set(value);\n    });\n\n    //subscribe events\n    this.storeService._events.subscribe((value: Appointment[]) => {\n      this.calendarEvents.set(value);\n    });\n\n    // utilitiesService\n    this.utilitiesService._documentClickTarget.subscribe((value: EventTarget | null) => {\n      if(value) this.handleOutsideClick(value as EventTarget);\n    })\n\n    this.setDatetime();\n  }\n\n  ngOnChanges(changes: SimpleChanges): void {\n      if(changes?.['evenDate']?.currentValue || changes?.['eventTime']?.currentValue) {\n        this.setDatetime();\n      }\n  }\n\n  handleOutsideClick(target: EventTarget): void {\n    // popover control\n    if (\n      this.eventContainer?.nativeElement &&\n      !(this.eventContainer?.nativeElement as HTMLElement).contains(\n        target as Node | null\n      )\n    ) {\n      this.closeEventList();\n    }\n  }\n\n  closeEventList(): void {\n    this.openEventList.set(false);\n    // to hide single event popup\n    this.openSingleEvent.set(false);\n  }\n\n  openEvtList(): void {\n    const _bpos = (this.eventSide?.nativeElement as HTMLElement).getBoundingClientRect();\n    const _bpar = (\n      document.querySelector(\n        '[data-widget-item=\"calendar-inside\"]'\n      ) as HTMLElement\n    ).getBoundingClientRect();\n    if (this.RdvsPkg().length > 1) this.openEventList.set(true);\n    else if (this.RdvsPkg().length === 1) this.openSingleEvent.set(true);\n    //set automatically popup position, right or left\n    this.popupr.set(_bpar.width < _bpos.x);\n    this.popupb.set(_bpos.y > _bpar.height * 0.8);\n  }\n\n  setDatetime(): void {\n    // transform props binding to datetime\n    this.datetime_start.set(fixDateTime(this.eventDate as Date, this.eventTime as string));\n    this.datetime_end.set(fixDateTime(\n      this.eventDate as Date,\n      incrementTime(this.eventTime as string)\n    ));\n  }\n\n  viewEvent(id: string | number | unknown): void {\n    const event = new CustomEvent(E_CustomEvents.VIEW, {\n      detail: { id },\n    });\n    document.body.dispatchEvent(event);\n    this.closeEventList();\n  };\n\n  reportEventFor(id: string | number | unknown): void {\n    const event = new CustomEvent(E_CustomEvents.REPORT, {\n      detail: { id },\n    });\n    document.body.dispatchEvent(event);\n    this.closeEventList();\n  }\n\n  trackRdv(index: number, rdv: Appointment): number {\n    return index;\n  }\n}\n","<div\n    #eventContainer\n    [attr.data-date-start]=\"datetime_start()\"\n    [attr.data-date-end]=\"datetime_end()\"\n    [attr.data-evendate]=\"eventDate\"\n    class=\"w-full\"\n  >\n    <ng-container *ngTemplateOutlet=\"eventCardRef; context:{'date':eventDate,'time':eventTime,'cardEvent':RdvsPkg()}\"></ng-container>\n    <!-- default view -->\n    <ng-container *ngIf=\"!eventCardRef\">\n      <!-- event side -->\n      <div\n        #eventSide\n        data-widget-item=\"event--button\"\n        class=\"cursor-pointer rounded event-card hover:opacity-80 active:animate-pulse calendar--event\"\n        (click)=\"openEvtList()\"\n      >\n        <!-- 1 event -->\n        <div\n          *ngIf=\"RdvsPkg().length === 1\"\n          class=\"event-body select-none w-full p-0dt375\"\n        >\n          <div class=\"single-event-inf\">\n            <span\n              [attr.data-rdv-date]=\"RdvsPkg()[0].date\"\n              [title]=\"isoStringToDate(RdvsPkg()[0].date).toLocaleString(lang)\"\n              class=\"block text-left text-09101D font-medium text-xs calendar--event-time\"\n            >\n              {{\n                timeFormat(\n                  hours(RdvsPkg()[0].date) + ':' + minutes(RdvsPkg()[0].date),\n                  true\n                )\n              }}\n              <!-- {{ hours(RdvsPkg[0].date) }}:{{ minutes(RdvsPkg[0].date) }} -->\n            </span>\n            <div class=\"font-semibold text-0EA5E9 text-sm leading-4\">\n              <span\n                [title]=\"RdvsPkg()[0]?.comment ?? ''\"\n                class=\"block text-left capitalize truncate calendar--event-name\"\n              >\n                {{ RdvsPkg()[0].name }}\n              </span>\n              <span class=\"block truncate\">\n                <span class=\"text-left text-1dt563 leading-4 event-dot calendar--event-dot\">&#183;</span>\n                &nbsp;\n                <span\n                  class=\"text-left calendar--event-keyword text-A1A1AA font-normal\"\n                >\n                  {{ RdvsPkg()[0].keywords }}\n                </span>\n              </span>\n            </div>\n          </div>\n        </div>\n        <!-- more than 1 event-->\n        <div\n          *ngIf=\"RdvsPkg().length > 1\"\n          class=\"event-body select-none w-full p-0dt375\"\n        >\n          <span\n            class=\"font-semibold text-0EA5E9 text-sm leading-4 block truncate text-left calendar--events-count\"\n          >\n            {{ RdvsPkg().length }}&nbsp;{{ configs().eventName || ( \"appointments\" | tr ) }}\n          </span>\n        </div>\n      </div>\n\n      <!--------------------------------- popups zone ------------------------------->\n\n      <!-- single event popup -->\n      <div\n        #eventList\n        class=\"absolute z-one w-full bg-white rounded-lg p-3 flex flex-col single-event-popup space-y-2\"\n        *ngIf=\"openSingleEvent() && actionsEnabled()\"\n        [ngClass]=\"{ 'right-0': popupr(), 'bottom-full': popupb() }\"\n      >\n        <!-- we use eventList here just to get popupr or popupb -->\n        <link-action\n          *ngIf=\"configs()?.viewEvent\"\n          (click)=\"viewEvent(RdvsPkg()[0].id)\"\n          class=\"calendar--event-view-action calendar--action\"\n          [text]=\"configs().viewEvent?.text || ( 'view' | tr )\"\n        >\n            <ng-template *ngIf=\"configs()?.viewEvent?.icon\" #icon>\n                <fa-icon class=\"text-base text-0EA5E9\" icon=\"eye\" />\n            </ng-template>\n        </link-action>\n        <!---->\n        <link-action\n          *ngIf=\"configs()?.reportEvent\"\n          (click)=\"reportEventFor(RdvsPkg()[0].id)\"\n          [text]=\"configs().reportEvent?.text || ('report' | tr)\"\n          class=\"calendar--event-report-action calendar--action\"\n        >\n            <ng-template *ngIf=\"configs()?.reportEvent?.icon\" #icon>\n                <fa-icon class=\"text-base text-E07A2C\" icon=\"pen-nib\" />\n            </ng-template>\n        </link-action>\n      </div>\n\n      <!-- more than one Event list popup -->\n      <div\n        #eventList\n        class=\"overflow-y-auto custom-scrll max-h-18dt75 absolute z-one min-w-24dt813 bg-white more-event-body rounded-lg p-3\"\n        [ngClass]=\"{ 'right-0': popupr(), 'bottom-full': popupb() }\"\n        *ngIf=\"openEventList()\"\n      >\n        <!-- item -->\n        <div\n          class=\"group more-event-body--item flex flex-row flew-wrap space-x-4 p-2 bg-white border-b\"\n          *ngFor=\"let rdv of RdvsPkg(); trackBy: trackRdv;\"\n        >\n          <!--event informations-->\n          <div\n            class=\"flex-grow flex flex-row space-x-2 flex-nowrap items-start\"\n          >\n            <span class=\"more-event-body-item-dot block bg-3B82F6 h-3 w-3 opacity-20 group-hover:opacity-100 rounded-full flex-shrink-0\">&thinsp;</span>\n            <div class=\"w-full grow flex-shrink more-event-body-item-body\">\n              <!--title-->\n              <div class=\"font-semibold text-A1A1AA leading-4 text-0dt688\">\n                <span\n                  [attr.data-rdv-date]=\"rdv.date\"\n                  [title]=\"isoStringToDate(rdv.date).toLocaleString(lang)\"\n                  class=\"calendar--event-time\"\n                >\n                  {{\n                    timeFormat(hours(rdv.date) + ':' + minutes(rdv.date), true)\n                  }}\n                  <!-- {{ hours(rdv.date) }}:{{ minutes(rdv.date) }} -->\n                </span>\n              </div>\n              <!--name and engin-->\n              <div class=\"font-medium text-xs text-09101D\">\n                <span\n                  [title]=\"rdv?.comment ?? ''\"\n                  class=\"block capitalize calendar--event-name\"\n                >\n                  {{ rdv.name }}\n                </span>\n                <!---->\n                <span\n                  class=\"block text-A1A1AA capitalize truncate calendar--event-keyword\"\n                >\n                  {{ rdv.keywords }}\n                </span>\n              </div>\n            </div>\n          </div>\n          <!-- event actions -->\n          <div\n            *ngIf=\"actionsEnabled()\"\n            class=\"flex flex-row space-x-4 flex-nowrap max-w-max items-center\"\n          >\n            <link-action\n                *ngIf=\"configs()?.viewEvent\"\n                (click)=\"viewEvent(rdv.id)\"\n                class=\"calendar--event-view-action calendar--action\"\n                [text]=\"configs().viewEvent?.text || ( 'view' | tr )\"\n            >\n                <ng-template #icon>\n                    <fa-icon *ngIf=\"configs()?.viewEvent?.icon\" class=\"text-base text-0EA5E9\" icon=\"eye\" />\n                </ng-template>\n            </link-action>\n            <!---->\n            <link-action\n                *ngIf=\"configs()?.reportEvent\"\n                (click)=\"reportEventFor(rdv.id)\"\n                [text]=\"configs().reportEvent?.text || ('report' | tr)\"\n                class=\"calendar--event-report-action calendar--action\"\n            >\n                <ng-template *ngIf=\"configs()?.reportEvent?.icon\" #icon>\n                    <fa-icon class=\"text-base text-E07A2C\" icon=\"pen-nib\" />\n                </ng-template>\n            </link-action>\n          </div>\n        </div>\n      </div>\n      <!---->\n    </ng-container>\n</div>","import { Component, Input, OnChanges, SimpleChanges, TemplateRef, WritableSignal, signal } from '@angular/core';\nimport {\n  twoDigit,\n  incrementTime,\n  fixDateTime,\n  randomId,\n  dayName,\n  copyDate,\n  timeFormat,\n} from '../../../common/main';\n\n@Component({\n  selector: 'day-view',\n  templateUrl: './day-view.component.html',\n  styleUrls: [\n    '../../../tailwind.scss',\n    './day-view.component.scss'\n  ]\n})\nexport class DayViewComponent {\n  @Input() dateSelected!: Date;\n  @Input() dayTimes: string[] = [];\n  @Input('eventCard') eventCardRef!: TemplateRef<any>;\n\n  dayName = dayName;\n  timeFormat = timeFormat;\n\n  trackDayTimes(index: number, time: string): number {\n    return index;\n  }\n\n  trackDayView(index: number, date: Date): number {\n    return index + date.getTime();\n  }\n}\n","<!--calendar day-view-->\n<div data-widget-item=\"calendar-inside\">\n    <!--calendar header-->\n    <div\n      class=\"calendar--day-view--header grid grid-cols-3rem-1fr-3rem grid-flow-col w-full sticky top-0 z-two\"\n    >\n      <!--time-column-cell-->\n      <div class=\"time-header\">&thinsp;</div>\n      <!--day-column-cell-->\n      <div\n        class=\"select-none day-header w-full pt-1 px-2 pb-4 text-left border-b border-E0E0E0 bg-white\"\n      >\n        <!--dayname-->\n        <span\n          class=\"block text-71717A font-bold text-0dt625 leading-3 uppercase\"\n        >\n          {{ dayName(dateSelected, dateSelected.getDate()).slice(0, -1) }}\n        </span>\n        <!--daynumber-->\n        <span class=\"block text-black font-medium text-1dt375 leading-8\">\n            {{ dateSelected.getDate() }}\n        </span>\n      </div>\n      <!--time-column-cell-->\n      <div class=\"time-header\">&thinsp;</div>\n    </div>\n    <!--calendar row-->\n    <div\n      *ngFor=\"let time of dayTimes; trackBy: trackDayTimes;\"\n      class=\"calendar--day-view--row grid grid-cols-3rem-1fr-3rem grid-flow-col w-full\"\n    >\n      <!--time-row-cell-->\n      <div\n        class=\"time-cell select-none text-left text-71717A font-medium text-xs\"\n      >\n        {{ timeFormat(time) }}\n      </div>\n      <!--day-row-cell-->\n      <div\n        *ngFor=\"let day of [dateSelected]; trackBy: trackDayView;\"\n        class=\"relative select-none day-cell w-full text-left border-b border-E0E0E0\"\n      >\n        <!-- events are here -->\n        <span class=\"block w-full min-h-2dt25 border-b border-F7F7F7\">&thinsp;</span>\n        <span class=\"block w-full min-h-2dt25\">&thinsp;</span>\n        <!-- event component -->\n        <event\n          class=\"absolute top-0\"\n          [eventDate]=\"dateSelected\"\n          [eventTime]=\"time\"\n          [eventCard]=\"eventCardRef\"\n        />\n      </div>\n      <!--time-row-cell-->\n      <div\n        class=\"time-cell select-none text-right text-71717A font-medium text-xs\"\n      >\n        {{ timeFormat(time) }}\n      </div>\n    </div>\n</div>","import { Component, ElementRef, EventEmitter, Input, OnChanges, OnInit, Output, SimpleChanges, ViewChild } from '@angular/core';\nimport { dateLabel } from '../../../common/main';\nimport { TrPipe } from '../../../pipes/tr.pipe';\n\ntype CalendarDateInput = HTMLInputElement & {\n  showPicker(): void;\n};\n\n@Component({\n  selector: 'native-datepicker',\n  templateUrl: './calendar-native-datepicker.component.html',\n  styleUrls: [\n    '../../../tailwind.scss',\n    './calendar-native-datepicker.component.scss'\n  ],\n  providers: [\n    TrPipe\n  ]\n})\nexport class CalendarNativeDatepickerComponent implements OnInit, OnChanges {\n  @Input() value?: Date = new Date();\n\n  @Output() changed: EventEmitter<Date> = new EventEmitter<Date>(true);\n\n  @ViewChild('dateinput') dateinput: ElementRef<HTMLInputElement> | undefined;\n\n  selectedDate: string = this.dateToString(this.value as Date);\n\n  get displayDate (): string {\n    const _nd = new Date(this.selectedDate);\n  \n    return /calendar/i.test(dateLabel(_nd))\n      ? this.trPipe.transform(dateLabel(_nd).split('.')[1])\n      : dateLabel(_nd);\n  }\n\n  constructor(private trPipe: TrPipe) { }\n\n  ngOnInit(): void {\n    if (\"showPicker\" in HTMLInputElement.prototype) {\n      this.dateinput?.nativeElement.addEventListener(\"click\", (event: Event) => {\n        event.preventDefault();\n        event.stopPropagation();\n        (event.target as CalendarDateInput).showPicker();\n      });\n    } else\n      console.error(\"HTMLInputElement.prototype: `showPicker` not supported\");\n  }\n\n  ngOnChanges(changes: SimpleChanges): void {\n    if(changes?.['value']?.currentValue) {\n      this.selectedDate = this.dateToString(changes['value'].currentValue as unknown as Date);\n    }\n  }\n\n\n  dateToString (date: Date): string {\n    return date.toISOString().split(\"T\")[0];\n  }\n\n  emitDate (event: Event): void {\n    void event;\n    if (!this.selectedDate) this.selectedDate = this.dateToString(new Date());\n    //\n    this.changed.emit(new Date(this.selectedDate));\n  }\n}\n","\n<div\n    data-widget-item=\"calendar-datepicker\"\n    class=\"bg-white border w-full border-E0E0E0 rounded flex justify-between flex-shrink flex-nowrap items-center relative selectDate select-none\"\n>\n    <!-- selected date -->\n    <span class=\"block p-2 text-09101D capitalize text-xs leading-4\">\n        {{ selectedDate ? displayDate : \"YYYY-MM-AA\" }}\n    </span>\n    <!--icon -->\n    <fa-icon \n        class=\"text-base text-71717A mr-2\" \n        icon=\"calendar\"\n    />\n    <!-- input -->\n    <input\n        #dateinput\n        name=\"pro-calendar-vue-datepicker\"\n        id=\"pro-calendar-vue-datepicker\"\n        [(ngModel)]=\"selectedDate\"\n        type=\"date\"\n        (change)=\"emitDate($event)\"\n    />\n</div>","import { Component, ContentChild, EventEmitter, Inject, Input, OnChanges, OnDestroy, OnInit, Output, SimpleChanges, TemplateRef, WritableSignal, effect, signal } from '@angular/core';\nimport { Configs, T_LANG } from '../../../types/main';\nimport { StoreService } from '../../../services/store.service';\nimport { MatDatepickerInputEvent } from '@angular/material/datepicker';\nimport { DateAdapter, MAT_DATE_FORMATS, MAT_DATE_LOCALE, MAT_NATIVE_DATE_FORMATS, NativeDateAdapter } from '@angular/material/core';\nimport { TranslateService } from '../../../services/translate.service';\nimport { Platform } from '@angular/cdk/platform';\nimport { Subject, takeUntil } from 'rxjs';\n\n@Component({\n  selector: 'left-menu',\n  templateUrl: './left-menu.component.html',\n  styleUrls: [\n    '../../../tailwind.scss',\n    './left-menu.component.scss'\n  ],\n  providers: [\n    { provide: DateAdapter, useClass: NativeDateAdapter, deps: [MAT_DATE_LOCALE, Platform] },\n    { provide: MAT_DATE_FORMATS, useValue: MAT_NATIVE_DATE_FORMATS }\n  ]\n})\nexport class LeftMenuComponent implements OnInit, OnChanges, OnDestroy {\n  @Input() date?: Date | undefined = undefined;\n\n  @Output() calendarDatepicker: EventEmitter<Date> = new EventEmitter<Date>(true);\n\n  configs: WritableSignal<Configs> = signal({});\n  dateRequested: WritableSignal<Date | undefined> = signal(this.date);\n  datepicked: WritableSignal<Date> = signal(new Date());\n\n  @ContentChild('loader') loaderRef!: TemplateRef<any>;\n  @ContentChild('sideEvent') sideEventRef!: TemplateRef<any>;\n  @ContentChild('closeButton') closeButtonRef!: TemplateRef<any>;\n\n  private destroy$ = new Subject<void>();\n\n  constructor(\n    private storeService: StoreService,\n    private translateService: TranslateService,\n    private _adapter: DateAdapter<Date>,\n    @Inject(MAT_DATE_LOCALE) private _locale: string,\n  ) {\n    // set locale for datepickers\n    this._locale = this.translateService.lang;\n    this._adapter.setLocale(this.translateService.lang);\n\n    effect(() => {\n      this.calendarDatepicker.emit(new Date(this.datepicked()));\n    });\n\n    this.translateService.lang$.pipe(takeUntil(this.destroy$)).subscribe((lang) => {\n      // update locale for datepickers\n      this._locale = <T_LANG>lang;\n      this._adapter.setLocale(<T_LANG>lang);\n    });\n  }\n\n  ngOnInit(): void {\n    this.storeService._configs.subscribe((value: Configs) => {\n      this.configs.set(value);\n    });\n\n    this.calendarDatepicker.emit(new Date(this.datepicked()));\n  }\n\n  ngOnDestroy(): void {\n    this.destroy$.next();\n    this.destroy$.complete();\n  }\n\n  ngOnChanges(changes: SimpleChanges): void {\n    if (changes?.['date']?.currentValue) {\n      this.dateRequested.set(changes['date'].currentValue as unknown as Date);\n      this.datepicked.set(this.dateRequested() as Date);\n    }\n  }\n\n  dateSelected(event: MatDatepickerInputEvent<Date>): void {\n    if (event.value) this.datepicked.set(event.value);\n  }\n\n}\n","<div class=\"w-full h-full p-4 pb-0\">\n    <!--closer and loader-->\n    <div class=\"flex flex-row flex-wrap items-center justify-between\">\n        <!--close-button projection -->\n        <ng-container *ngTemplateOutlet=\"closeButtonRef\"></ng-container>\n        \n        <!-- loader projection-->\n        <ng-container *ngTemplateOutlet=\"loaderRef\"></ng-container>\n    </div>\n    <!-- native date picker -->\n    <ng-container *ngIf=\"configs()?.nativeDatepicker\">\n        <native-datepicker\n            class=\"mt-4\"\n            #calendarDatePicker\n            [value]=\"datepicked()\"\n            (changed)=\"datepicked.set($event)\"\n        />\n    </ng-container>\n    <!-- date picker -->\n    <ng-container *ngIf=\"!configs()?.nativeDatepicker\">\n        <mat-form-field class=\"mt-4\">\n            <input \n                matInput \n                [matDatepicker]=\"calendarMatDatepicker\" \n                placeholder=\"YYYY-MM-AA\"\n                [value]=\"datepicked()\"\n                (dateChange)=\"dateSelected($event)\"\n                disabled\n            >\n            <mat-datepicker-toggle \n                [disableRipple]=\"true\" \n                tabindex=\"-1\" \n                matSuffix\n                [for]=\"calendarMatDatepicker\"\n            >\n                <fa-icon\n                    matDatepickerToggleIcon\n                    class=\"text-xs text-71717A\" \n                    icon=\"calendar\"\n                />\n            </mat-datepicker-toggle>\n            <mat-datepicker #calendarMatDatepicker disabled=\"false\"></mat-datepicker>\n        </mat-form-field>\n    </ng-container>\n    <!-- slot: ? side events | use sideEvent -->\n    <ng-container *ngTemplateOutlet=\"sideEventRef\"></ng-container>\n</div>\n","import { Component, Input, TemplateRef } from '@angular/core';\nimport { dayName } from '../../../common/main';\n\n@Component({\n  selector: 'month-view',\n  templateUrl: './month-view.component.html',\n  styleUrls: [\n    '../../../tailwind.scss',\n    './month-view.component.scss'\n  ]\n})\nexport class MonthViewComponent {\n  @Input() monthDays: Date[] = [];\n  @Input() weekDays: Date[] = [];\n  @Input() dateSelected!: Date;\n  @Input('eventCard') eventCardRef!: TemplateRef<any>;\n\n  dayName = dayName;\n\n  get rows(): number[] {\n    return [...Array.from({ length: Math.ceil(this.monthDays.length / 7) }, (_, i) => i + 1)];\n  }\n\n  rowDays(rowIndex: number, row: number): Date[] {\n    return [...this.monthDays].slice(rowIndex * 7, row * 7);\n  }\n\n  trackWeekDayDate(index: number, weekDay: Date): number {\n    return index + weekDay.getTime();\n  }\n\n  trackMonthRows(index: number, monthRow: number): number {\n    return index + monthRow;\n  }\n\n  trackMonthDayDate(index: number, monthDay: Date): number {\n    return index + monthDay.getTime();\n  }\n}\n","<!--calendar month-view-->\n<div data-widget-item=\"calendar-inside\">\n    <!--calendar header-->\n    <div\n      class=\"calendar--month-view--header grid grid-cols-repeat-7-minmax-0v1fr grid-flow-col w-full\"\n    >\n      <!--day-column-cell-->\n      <div\n        *ngFor=\"let weekDayDate of weekDays; let weekindex = index; trackBy: trackWeekDayDate;\"\n        class=\"select-none day-header w-full pt-1 px-2 text-left border-E0E0E0\"\n        [ngClass]=\"{\n          'border-r': weekindex !== weekDays.length - 1,\n          'bg-FAFAFA': weekindex === weekDays.length - 1\n        }\"\n      >\n        <!--dayname-->\n        <span\n          class=\"block text-71717A font-bold text-0dt625 leading-3 uppercase\"\n        >\n          {{ dayName(weekDayDate, weekDayDate.getDate()).slice(0, -1) }}\n        </span>\n      </div>\n    </div>\n    <!--calendar row-->\n    <div\n      *ngFor=\"let row of rows; let rowIndex = index; trackBy: trackMonthRows;\"\n      class=\"calendar--month-view grid grid-cols-repeat-7-minmax-0v1fr grid-flow-col w-full\"\n    >\n      <!--day-row-cell-->\n      <div\n        *ngFor=\"let monthDayDate of rowDays(rowIndex, row); let monthDayIndex = index; trackBy: trackMonthDayDate;\"\n        class=\"relative select-none day-cell py-1 px-2 w-full min-h-5dt063 text-left border-b border-E0E0E0\"\n        [ngClass]=\"{\n          'border-r': monthDayIndex !== 6,\n          'bg-FAFAFA': monthDayIndex === 6\n        }\"\n      >\n        <!-- events are here -->\n        <span\n          class=\"block text-black font-medium text-1dt375 leading-8\"\n          [ngClass]=\"{\n            'calendar--month-view-not-in---month':\n              monthDayDate.getMonth() !== dateSelected.getMonth(),\n            'calendar--month-view-actual-day':\n              monthDayDate.getDate() === dateSelected.getDate() &&\n              monthDayDate.getMonth() === dateSelected.getMonth()\n          }\"\n        >\n          {{ monthDayDate.getDate() }}\n        </span>\n        <!-- event component -->\n        <event\n          class=\"relative mt-1\"\n          [eventDate]=\"monthDayDate\"\n          [eventCard]=\"eventCardRef\"\n        />\n      </div>\n    </div>\n</div>","import { Component, ElementRef, Input, OnChanges, OnInit, Signal, SimpleChanges, ViewChild, WritableSignal, computed, effect, signal } from '@angular/core';\nimport { Appointment, E_CustomEvents } from '../../../types/main';\nimport { StoreService } from '../../../services/store.service';\nimport { TranslateService } from '../../../services/translate.service';\nimport { UtilitiesService } from '../../../services/utilities.service';\nimport { dateLabel, fixDateTime, hours, incrementTime, isoStringToDate, minutes, timeFormat } from '../../../common/main';\nimport { TrPipe } from '../../../pipes/tr.pipe';\n\n@Component({\n  selector: 'side-event',\n  templateUrl: './side-event.component.html',\n  styleUrls: [\n    '../../../tailwind.scss',\n    './side-event.component.scss'\n  ],\n  providers: [\n    TrPipe\n  ]\n})\nexport class SideEventComponent implements OnInit, OnChanges {\n  @Input() eventDate!: Date;\n\n  @ViewChild('eventContainer') eventContainer: ElementRef<HTMLElement> | undefined = undefined;\n\n  datetime_start: WritableSignal<Date | null> = signal(null);\n  datetime_end: WritableSignal<Date | null> = signal(null);\n\n  calendarEvents: WritableSignal<Appointment[]> = signal([]);\n  RdvsPkg: Signal<Appointment[]> = computed((): Appointment[] => {\n    const start = this.datetime_start() as Date;\n    const end = this.datetime_end() as Date;\n\n    return this.calendarEvents().filter((rdv: Appointment) => {\n      const d = isoStringToDate(rdv.date);\n      return d >= start && d < end;\n    });\n  });\n\n  timeFormat = timeFormat;\n  hours = hours;\n  minutes = minutes;\n\n  constructor(\n    private storeService: StoreService,\n    private translateService: TranslateService,\n    private utilitiesService: UtilitiesService,\n    private el: ElementRef,\n    private trPipe: TrPipe\n  ) { }\n\n  get displayDate(): string {\n    return /calendar/i.test(dateLabel(this.eventDate))\n      ? this.trPipe.transform(`${dateLabel(this.eventDate)}`)\n      : dateLabel(this.eventDate)\n  }\n\n  get lang(): string {\n    return this.translateService.lang;\n  }\n\n  ngOnInit(): void {\n    //subscribe events\n    this.storeService._events.subscribe((value: Appointment[]) => {\n      this.calendarEvents.set(value);\n    });\n\n    this.setDatetime();\n  }\n\n  ngOnChanges(changes: SimpleChanges): void {\n    if (changes?.['eventDate']?.currentValue) {\n      this.setDatetime();\n    }\n  }\n\n  setDatetime(): void {\n    // transform props binding to datetime\n    this.datetime_start.set(fixDateTime(this.eventDate as Date, \"\"));\n    this.datetime_end.set(fixDateTime(this.eventDate as Date, incrementTime(\"\")));\n  }\n\n  viewEvent(id: string | number | unknown): void {\n    const event = new CustomEvent(E_CustomEvents.VIEW, {\n      detail: { id },\n    });\n    document.body.dispatchEvent(event);\n  }\n\n  trackRdv(index: number, rdv: Appointment): number {\n    return index;\n  }\n\n}\n","<div\n    #eventContainer\n    [attr.data-date-start]=\"datetime_start()\"\n    [attr.data-date-end]=\"datetime_end()\"\n    [attr.data-evendate]=\"eventDate\"\n    class=\"select-none w-full mb-2 mt-1dt125 calendar--side-event\"\n  >\n    <!-- events header -->\n    <div\n      class=\"w-full day-header text-005743 font-bold text-0dt813 leading-5 mb-2\"\n    >\n      <span class=\"mr-1 capitalize calendar--side-event-day-name\">\n        {{ displayDate }}\n      </span>\n      <span class=\"font-normal calendar--side-event-date-label\">\n        {{ eventDate.toLocaleDateString(lang) }}\n      </span>\n    </div>\n    <!-- events -->\n    <div class=\"w-full\">\n      <!--items-->\n      <ng-container *ngIf=\"RdvsPkg().length === 0\">\n        <span\n          class=\"text-09101D text-left font-medium text-xs calendar--no-event-name\"\n        >\n          {{ \"no_events\" | tr }}\n        </span>\n      </ng-container>\n      <ng-container *ngIf=\"RdvsPkg().length !== 0\">\n        <div\n          class=\"group active:animate-pulse more-event-body--item flex flex-row space-x-2 flex-nowrap items-start p-2 pr-4 bg-transparent mb-2 cursor-pointer\"\n          *ngFor=\"let rdv of RdvsPkg(); let rdvi = index; trackBy: trackRdv;\"\n          role=\"button\"\n          aria-label=\"Event\"\n          (click)=\"viewEvent(rdv.id)\"\n          data-calendar-side-event\n        >\n          <span class=\"more-event-body-item-dot block bg-3B82F6 opacity-20 group-hover:opacity-100 h-3 w-3 rounded-full flex-shrink-0\">&thinsp;</span>\n          <div class=\"w-full flex-shrink more-event-body-item-body\">\n            <div class=\"font-semibold text-A1A1AA leading-4 text-0dt688\">\n              <span\n                :data-event-date=\"rdv.date\"\n                :title=\"isoStringToDate(rdv.date).toLocaleString($i18n.locale)\"\n                class=\"calendar--side-event-time\"\n              >\n                {{ timeFormat( hours(rdv.date) + ':' + minutes(rdv.date), true) }}\n                <!-- {{ hours(rdv.date) }}:{{ minutes(rdv.date) }} -->\n              </span>\n            </div>\n            <div\n              class=\"font-medium text-xs text-09101D flex flex-nowrap items-center\"\n            >\n              <span\n                :title=\"rdv?.comment ?? ''\"\n                class=\"block capitalize truncate max-w-50p calendar--side-event-name\"\n              >\n                {{ rdv.name }}&nbsp;\n              </span>\n              <!---->\n              <span\n                class=\"block text-A1A1AA capitalize truncate calendar--side-event-keyword\"\n              >\n                {{ rdv.keywords }}\n              </span>\n            </div>\n          </div>\n        </div>\n      </ng-container>\n    </div>\n  </div>","import { Component, Input, TemplateRef } from '@angular/core';\nimport { dayName, timeFormat } from '../../../common/main';\n\n@Component({\n  selector: 'week-view',\n  templateUrl: './week-view.component.html',\n  styleUrls: [\n    '../../../tailwind.scss',\n    './week-view.component.scss'\n  ]\n})\nexport class WeekViewComponent {\n  @Input() dayTimes: string[] = [];\n  @Input() weekDays: Date[] = [];\n  @Input() dateSelected!: Date;\n  @Input('eventCard') eventCardRef!: TemplateRef<any>;\n\n  dayName = dayName;\n  timeFormat = timeFormat;\n\n  trackWeekDays(index: number, weekDay: Date): number {\n    return index + weekDay.getTime();\n  }\n\n  trackDayTimes(index: number, time: string): number {\n    return index;\n  }\n}\n"," <!--calendar week-view-->\n <div data-widget-item=\"calendar-inside\">\n    <!--calendar--header-->\n    <div\n      class=\"calendar--week-view--header grid grid-cols-3-repeat-7-minmax-0v1fr-3rem grid-flow-col w-full sticky top-0 z-two\"\n    >\n      <!--time-column-cell-->\n      <div class=\"time-header\">&thinsp;</div>\n      <!--day-column-cell-->\n      <div\n        *ngFor=\"let weekDayDate of weekDays; let weekIndex = index; trackBy: trackWeekDays;\"\n        class=\"select-none day-header w-full pt-1 px-2 pb-4 text-left border-b border-E0E0E0 bg-white\"\n        [ngClass]=\"{\n          'border-r': weekIndex !== weekDays.length - 1,\n          'weekindex': weekIndex === weekDays.length - 1,\n          'selection': weekDayDate.getDate() === dateSelected.getDate()\n        }\"\n      >\n        <!--dayname-->\n        <span\n          class=\"block text-71717A font-bold text-0dt625 leading-3 uppercase\"\n          [ngClass]=\"{\n            'calendar--week-view-not-in---week':\n              weekDayDate.getMonth() !== dateSelected.getMonth()\n          }\"\n        >\n          {{ dayName(weekDayDate, weekDayDate.getDate()).slice(0, -1) }}\n        </span>\n        <!--daynumber-->\n        <span\n          class=\"block text-black font-medium text-1dt375 leading-8\"\n          [ngClass]=\"{\n            'calendar--week-view-not-in---week':\n              weekDayDate.getMonth() !== dateSelected.getMonth()\n          }\"\n        >\n          {{ weekDayDate.getDate() }}\n        </span>\n      </div>\n      <!--time-column-cell-->\n      <div class=\"time-header\">&thinsp;</div>\n    </div>\n    <!--calendar--row-->\n    <div\n      *ngFor=\"let time of dayTimes; trackBy: trackDayTimes;\"\n      class=\"calendar--week-view--row grid grid-cols-3-repeat-7-minmax-0v1fr-3rem grid-flow-col w-full\"\n    >\n      <!--time-row-cell-->\n      <div\n        class=\"select-none time-cell text-left text-71717A font-medium text-xs\"\n      >\n        {{ timeFormat(time) }}\n      </div>\n      <!--day-row-cell-->\n      <div\n        *ngFor=\"let weekDayDate of weekDays; let weekIndex = index; trackBy: trackWeekDays;\"\n        class=\"relative select-none day-cell w-full text-left border-b border-E0E0E0\"\n        [ngClass]=\"{\n          'border-r': weekIndex !== weekDays.length - 1,\n          'weekindex': weekIndex === weekDays.length - 1,\n          'selection': weekDayDate.getDate() === dateSelected.getDate()\n        }\"\n      >\n        <!-- events are here -->\n        <span class=\"block w-full min-h-2dt25 border-b border-F7F7F7\">&thinsp;</span>\n        <span class=\"block w-full min-h-2dt25\">&thinsp;</span>\n        <!-- event component -->\n        <event\n          class=\"absolute top-0\"\n          [eventDate]=\"weekDayDate\"\n          [eventTime]=\"time\"\n          [eventCard]=\"eventCardRef\"\n        />\n      </div>\n      <!--time-row-cell-->\n      <div\n        class=\"time-cell select-none text-right text-71717A font-medium text-xs\"\n      >\n        {{ timeFormat(time) }}\n      </div>\n    </div>\n</div>","import { Component, ContentChild, ElementRef, EventEmitter, HostListener, Input, OnChanges, OnInit, Output, SimpleChanges, TemplateRef, ViewChild, WritableSignal, computed, effect, signal } from '@angular/core';\nimport { Appointment, Configs, IStartEndDates, T_LANG, T_View } from './types/main';\nimport { DEFAULT_CONFIGS, StoreService } from './services/store.service';\n\nimport {\n  dateLabel,\n  twoDigit,\n  incrementTime,\n  fixDateTime,\n  randomId,\n  dayName,\n  copyDate,\n  isoStringToDate,\n  dateToIsoString,\n  getWeekInterval,\n  weekGenerator,\n  monthGenerator,\n  prevDate,\n  nextDate,\n} from \"./common/main\";\nimport { TrPipe } from './pipes/tr.pipe';\nimport { LeftMenuComponent } from './modules/calendar-left-menu/left-menu/left-menu.component';\nimport { UtilitiesService } from './services/utilities.service';\nimport { TranslateService } from './services/translate.service';\n\n@Component({\n  selector: 'pro-calendar',\n  templateUrl: './pro-calendar.component.html',\n  styleUrls: [\n    './tailwind.scss',\n    './pro-calendar.component.scss'\n  ],\n  providers: [\n    TrPipe\n  ]\n})\nexport class ProCalendarComponent implements OnInit, OnChanges {\n\n  @Input({ required: false }) date: string | undefined = undefined;\n\n  @Input({ required: false }) view: T_View = \"week\";\n\n  @Input({ required: false }) events: Appointment[] = [];\n\n  @Input({ required: false }) loading: boolean = false;\n\n  @Input({ required: false }) config: Configs = { \n    ...DEFAULT_CONFIGS,\n    reportEvent: {\n      ...DEFAULT_CONFIGS.reportEvent\n    },\n    viewEvent: {\n      ...DEFAULT_CONFIGS.viewEvent\n    }\n  };\n\n  @Input({ required: false }) lang: T_LANG | undefined = undefined;\n\n  @Output() calendarClosed: EventEmitter<void> = new EventEmitter<void>(true);\n\n  @Output() fetchEvents: EventEmitter<IStartEndDates> = new EventEmitter<IStartEndDates>(true);\n\n  dateSelected: WritableSignal<Date> = signal(new Date());\n\n  weekDays: WritableSignal<Date[]> = signal([]);\n\n  dayTimes: WritableSignal<string[]> = signal([]);\n\n  defineView: WritableSignal<T_View> = signal(this.view as T_View);\n\n  externalRequestDate: WritableSignal<Date | undefined> = signal(undefined);\n\n  monthDays: WritableSignal<Date[]> = signal([]);\n\n  monthDates: WritableSignal<IStartEndDates> = signal({\n    start: \"\",\n    end: \"\",\n  });\n\n  isLoading: WritableSignal<boolean> = signal(this.loading as boolean);\n\n  // store\n  calendarEvents: WritableSignal<Appointment[]> = signal([]);\n  configs: WritableSignal<Configs> = signal({});\n\n  dateLabel = dateLabel;\n  prevDate = prevDate;\n  nextDate = nextDate;\n\n  //TemplateRef\n  @ContentChild('loader') loaderRef!: TemplateRef<any>;\n  @ContentChild('closeButton') closeButtonRef!: TemplateRef<any>;\n  @ContentChild('searchIcon') searchIconRef!: TemplateRef<any>;\n  @ContentChild('rightSwitchArrow') rightSwitchArrowRef!: TemplateRef<any>;\n  @ContentChild('leftSwitchArrow') leftSwitchArrowRef!: TemplateRef<any>;\n  @ContentChild('sideEvent') sideEventRef!: TemplateRef<any>;\n  @ContentChild('eventCard') eventCardRef!: TemplateRef<any>;\n\n  @ViewChild('leftMenu') leftMenuChild!: LeftMenuComponent;\n\n  constructor(\n    private el: ElementRef,\n    private storeService: StoreService,\n    private utilitiesService: UtilitiesService,\n    private translateService: TranslateService,\n    private trPipe: TrPipe\n  ) {\n    /**\n     * watch dateSelected to change everything\n     */\n    effect(() => {\n      //refresh week days'date\n      this.weekDays.set(weekGenerator(getWeekInterval(this.dateSelected(), this.config?.firstDayOfWeek)));\n      //refresh month days'date\n      const __m = monthGenerator(this.dateSelected(), this.config?.firstDayOfWeek);\n      this.monthDays.set(__m._days);\n      //month date start & end\n      this.monthDates.set({\n        start: __m.firstDay,\n        end: __m.lastDay,\n      });\n      // fetch appointments\n      this.fetchAppointments();\n    }, {\n      allowSignalWrites: true\n    });\n  }\n\n  // display date selected on calendar-arrows\n  get getSelectedDateLabel(): string {\n    return /calendar/i.test(this.dateLabel(this.dateSelected())) ? this.trPipe.transform(this.dateLabel(this.dateSelected())) : dateLabel(this.dateSelected());\n  }\n\n  ngOnInit(): void {\n    this.storeService._configs.subscribe((value: Configs) => {\n      this.configs.set(value);\n    });\n\n    this.storeService._events.subscribe((value: Appointment[]) => {\n      this.calendarEvents.set(value);\n    });\n\n    // generate day times\n    this.generateDayTimes();\n\n    // boot with first props\n    this.verifyFirstBind();\n  }\n\n\n  // when props change ?\n  ngOnChanges(changes: SimpleChanges): void {\n    // events\n    if (changes?.['events']?.currentValue) {\n      this.storeService.$events = changes['events'].currentValue as unknown as Appointment[];\n    }\n    // configs\n    if (changes?.['config']?.currentValue) {\n      this.storeService.$configs = changes['config'].currentValue as unknown as Configs;\n    }\n    // loading\n    if (changes?.['loading']?.currentValue) {\n      this.isLoading.set(changes['loading'].currentValue as unknown as boolean);\n    }\n    // lang\n    if (changes?.['lang']?.currentValue) {\n      const lang = changes['lang'].currentValue;\n      if (lang && this.translateService.lang !== lang ) this.translateService.lang = lang;\n    }\n  }\n\n  /**\n   * runSearch\n   * search by event\n   * @param value {string}\n   */\n  async runSearch(value: string): Promise<void> {\n    const _s = new RegExp(value, \"i\");\n    let _search = [];\n    //\n    if (!value.replace(/\\s/g, \"\").length) {\n      this.storeService.$events = this.events as Appointment[];\n      return void 0;\n    }\n    //\n    this.isLoading.set(true);\n    _search = this.calendarEvents().filter((rdv: Appointment) => {\n      try {\n        return _s.test(`${rdv.name}`) || _s.test(`${rdv.keywords}`);\n      } catch (e) {\n        return false;\n      }\n    });\n    this.isLoading.set(false);\n    if (_search.length !== 0) this.storeService.$events = _search;\n  }\n\n  /**\n   * generateDayTimes\n   */\n  generateDayTimes(): void {\n    // dayTimes generation from 08h00 to 23h00\n    const _p1 = Array.from(\n      { length: 23 - 8 + 1 },\n      (_, i) => `${twoDigit(i + 8)}:${twoDigit(0)}`\n    );\n    //dayTimes generation from 07h00 to 23h59\n    const _p2 = Array.from(\n      { length: 7 - 0 + 1 },\n      (_, i) => `${twoDigit(i + 0)}:${twoDigit(0)}`\n    );\n    this.dayTimes.set(_p1.concat(_p2));\n  }\n\n  /**\n   * fetch Appointments\n   */\n  fetchAppointments(): void {\n    // send event to fetch appointments from server\n    this.fetchEvents.emit({\n      start: dateToIsoString(\n        fixDateTime(this.monthDates().start as Date, \"00:00\")\n      ),\n      end: dateToIsoString(fixDateTime(this.monthDates().end as Date, \"23:59\")),\n    });\n  }\n\n  /**\n   * verifyFirst Props\n   */\n  verifyFirstBind(): void {\n    // date\n    if (this.date) {\n      const b = isoStringToDate(this.date);\n      if (b.getTime()) {\n        this.dateSelected.set(b);\n        this.externalRequestDate.set(this.dateSelected());\n      }\n    }\n\n    // events\n    this.storeService.$events = this.events as Appointment[];\n    // config\n    this.storeService.$configs = this.config as Configs;\n    // lang\n    if (this.lang) this.translateService.lang = this.lang;\n  }\n\n  @HostListener(\"document:click\", [\"$event\"])\n  documentClickTarget(event: Event): void {\n    this.utilitiesService.$documentClickTarget = event.target as EventTarget;\n  }\n}\n","<div\n    class=\"widget-calendar-wrapper relative w-full h-screen flex flex-row flex-nowrap bg-white min-h-screen font-vpc\"\n>\n    <!-- left menu-->\n    <left-menu\n      #leftMenu\n      [date]=\"externalRequestDate()\"\n      (calendarDatepicker)=\"dateSelected.set($event)\"\n    >\n      <ng-template #loader>\n        <span *ngIf=\"loaderRef\" class=\"inline-flex\">\n          <ng-container *ngTemplateOutlet=\"loaderRef; context:{'calendarGotLoading': isLoading()}\"></ng-container>\n        </span>\n        <!-- default loader -->\n        <loader-widget *ngIf=\"!loaderRef && isLoading()\" />\n      </ng-template>\n\n      <ng-template #closeButton>\n         <span *ngIf=\"closeButtonRef\" (click)=\"calendarClosed.emit()\" class=\"inline-flex\">\n            <ng-container *ngTemplateOutlet=\"closeButtonRef\"></ng-container>\n         </span>\n        <!-- default close button -->\n        <close-button *ngIf=\"!closeButtonRef\" (tap)=\"calendarClosed.emit()\" />\n      </ng-template>\n\n      <ng-template #sideEvent>\n        <div\n          class=\"side-event-box overflow-y-auto custom-scrll p-1\"\n          [ngClass]=\"{\n            'below-mat-datepicker': !configs().nativeDatepicker,\n            'below-native-datepicker': configs().nativeDatepicker,\n          }\"\n        >\n          <ng-container *ngTemplateOutlet=\"sideEventRef; context:{'calendarEvents':calendarEvents(),'dateSelected':dateSelected()}\"></ng-container>\n          <ng-container *ngIf=\"!sideEventRef\">\n            <side-event [eventDate]=\"dateSelected()\" />\n            <!--_-->\n            <side-event *ngIf=\"dateSelected().toLocaleDateString('en-CA') != nextDate(dateSelected()).toLocaleDateString('en-CA')\" [eventDate]=\"nextDate(dateSelected())\" />\n          </ng-container>\n        </div>\n      </ng-template>\n    </left-menu>\n\n    <!-- calendar base-->\n    <div\n      class=\"calendar-base w-full grow border border-white bg-white p-4 pb-0\"\n    >\n      <!-- calendar base header -->\n      <header-comp>\n        <!--Arrows-->\n        <calendar-arrows\n          (left)=\"leftMenuChild.datepicked.set(prevDate(dateSelected()))\"\n          (right)=\"leftMenuChild.datepicked.set(nextDate(dateSelected()))\"\n          (today)=\"leftMenuChild.datepicked.set($event)\"\n          [label]=\"getSelectedDateLabel\"\n          [rightSwitchArrow]=\"rightSwitchArrowRef\"\n          [leftSwitchArrow]=\"leftSwitchArrowRef\"\n        />\n        <!-- DayToggle-->\n        <view-toggle\n          #viewToggle\n          (viewChanged)=\"defineView.set($event)\"\n          [view]=\"view\"\n        />\n        <!--Search-->\n        <calendar-search\n          (typingFinish)=\"runSearch($event)\"\n          [placeholder]=\"configs().searchPlaceholder\"\n          [searchIcon]=\"searchIconRef\"\n        />\n      </header-comp>\n      <!--calendar-->\n      <div\n        data-widget-item=\"widget-calendar-comp\"\n        class=\"calendar-wrapper w-full mt-4 overflow-y-auto custom-scrll\"\n      >\n        <!--calendar week-view-->\n        <ng-container *ngIf=\"defineView() === 'week'\">\n          <week-view \n            [weekDays]=\"weekDays()\"\n            [dateSelected]=\"dateSelected()\"\n            [dayTimes]=\"dayTimes()\" \n            [eventCard]=\"eventCardRef\"\n          />\n        </ng-container>\n        \n\n        <!--calendar day-view-->\n        <ng-container *ngIf=\"defineView() === 'day'\">\n          <day-view \n            [dateSelected]=\"dateSelected()\" \n            [dayTimes]=\"dayTimes()\"\n            [eventCard]=\"eventCardRef\"\n          />\n        </ng-container>\n\n        \n        <!--calendar month-view-->\n        <ng-container *ngIf=\"defineView() === 'month'\">\n          <month-view\n            [weekDays]=\"weekDays()\"\n            [monthDays]=\"monthDays()\"\n            [dateSelected]=\"dateSelected()\"\n            [eventCard]=\"eventCardRef\"\n          />\n        </ng-container>\n        \n      </div>\n    </div>\n\n</div>","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FaConfig, FaIconLibrary, FontAwesomeModule } from '@fortawesome/angular-fontawesome';\nimport { CloseButtonComponent } from './close-button/close-button.component';\nimport { TrPipe } from '../../pipes/tr.pipe';\n\nimport { faCalendar, faChevronLeft, faChevronRight, faMagnifyingGlass, fas } from '@fortawesome/free-solid-svg-icons';\nimport { far } from '@fortawesome/free-regular-svg-icons';\nimport { faXmark } from '@fortawesome/free-solid-svg-icons';\nimport { InputTypingDirective } from '../../directives/input-typing.directive';\nimport { CalendarSearchComponent } from './calendar-search/calendar-search.component';\nimport { LoaderWidgetComponent } from './loader-widget/loader-widget.component';\nimport { LinkActionComponent } from './link-action/link-action.component';\nimport { CalendarArrowsComponent } from './calendar-arrows/calendar-arrows.component';\nimport { ViewToggleComponent } from './view-toggle/view-toggle.component';\nimport { HeaderCompComponent } from './header-comp/header-comp.component';\nimport { CalendarNativeDatepickerComponent } from './calendar-native-datepicker/calendar-native-datepicker.component';\nimport { FormsModule } from '@angular/forms';\n\n\n\n@NgModule({\n  declarations: [\n    TrPipe,\n    InputTypingDirective,\n    CalendarSearchComponent,\n    LoaderWidgetComponent,\n    LinkActionComponent,\n    CloseButtonComponent,\n    CalendarArrowsComponent,\n    ViewToggleComponent,\n    HeaderCompComponent,\n    CalendarNativeDatepickerComponent\n  ],\n  imports: [\n    CommonModule,\n    FormsModule,\n    FontAwesomeModule\n  ],\n  exports: [\n    // modules\n    CommonModule,\n    FontAwesomeModule,\n    // components\n    CloseButtonComponent,\n    CalendarSearchComponent,\n    LinkActionComponent,\n    LoaderWidgetComponent,\n    CalendarArrowsComponent,\n    ViewToggleComponent,\n    HeaderCompComponent,\n    CalendarNativeDatepickerComponent,\n    // pipes\n    TrPipe,\n    // directives\n    InputTypingDirective\n  ]\n})\nexport class CalendarAssetsModule {\n  constructor(library: FaIconLibrary, faConfig: FaConfig) {\n    // Add an icon to the library for convenient access in other components\n    library.addIcons(faXmark, faMagnifyingGlass, faChevronLeft, faChevronRight, faCalendar);\n    faConfig.fixedWidth = true;\n    library.addIconPacks(fas, far);\n  }\n }\n","import { NgModule } from '@angular/core';\nimport { CalendarAssetsModule } from '../calendar-assets/calendar-assets.module';\nimport { EventComponent } from './event/event.component';\nimport { FaConfig, FaIconLibrary } from '@fortawesome/angular-fontawesome';\nimport { faEye, faPenNib, fas } from '@fortawesome/free-solid-svg-icons';\nimport { far } from '@fortawesome/free-regular-svg-icons';\n\n\n\n@NgModule({\n  declarations: [\n    EventComponent\n  ],\n  imports: [\n    CalendarAssetsModule\n  ],\n  exports: [\n    EventComponent\n  ]\n})\nexport class CalendarEventModule { \n  constructor(library: FaIconLibrary, faConfig: FaConfig) {\n    // Add an icon to the library for convenient access in other components\n    library.addIcons(faEye, faPenNib);\n    faConfig.fixedWidth = true;\n    library.addIconPacks(fas, far);\n  }\n}\n","import { NgModule } from '@angular/core';\nimport { CalendarAssetsModule } from '../calendar-assets/calendar-assets.module';\nimport { DayViewComponent } from './day-view/day-view.component';\nimport { CalendarEventModule } from '../calendar-event/calendar-event.module';\n\n\n\n@NgModule({\n  declarations: [\n    DayViewComponent\n  ],\n  imports: [\n    CalendarAssetsModule,\n    CalendarEventModule\n  ],\n  exports: [\n    DayViewComponent\n  ]\n})\nexport class CalendarDayViewModule { }\n","import { NgModule } from '@angular/core';\nimport { CalendarAssetsModule } from '../calendar-assets/calendar-assets.module';\nimport { LeftMenuComponent } from './left-menu/left-menu.component';\nimport { MatDatepickerModule } from '@angular/material/datepicker';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatNativeDateModule } from '@angular/material/core';\nimport { MatInputModule } from '@angular/material/input';\nimport { FaIconLibrary, FaConfig } from '@fortawesome/angular-fontawesome';\nimport { far } from '@fortawesome/free-regular-svg-icons';\nimport { faCalendar, fas } from '@fortawesome/free-solid-svg-icons';\n\n\n\n\n@NgModule({\n  declarations: [\n    LeftMenuComponent\n  ],\n  imports: [\n    CalendarAssetsModule,\n    MatInputModule,\n    MatNativeDateModule,\n    MatDatepickerModule,\n    MatFormFieldModule\n  ],\n  exports: [\n    LeftMenuComponent\n  ]\n})\nexport class CalendarLeftMenuModule {\n  constructor(library: FaIconLibrary, faConfig: FaConfig) {\n    // Add an icon to the library for convenient access in other components\n    library.addIcons(faCalendar);\n    faConfig.fixedWidth = true;\n    library.addIconPacks(fas, far);\n  }\n}\n","import { NgModule } from '@angular/core';\nimport { CalendarAssetsModule } from '../calendar-assets/calendar-assets.module';\nimport { MonthViewComponent } from './month-view/month-view.component';\nimport { CalendarEventModule } from '../calendar-event/calendar-event.module';\n\n\n\n@NgModule({\n  declarations: [\n    MonthViewComponent\n  ],\n  imports: [\n    CalendarAssetsModule,\n    CalendarEventModule\n  ],\n  exports: [\n    MonthViewComponent\n  ]\n})\nexport class CalendarMonthViewModule { }\n","import { NgModule } from '@angular/core';\nimport { CalendarAssetsModule } from '../calendar-assets/calendar-assets.module';\nimport { SideEventComponent } from './side-event/side-event.component';\n\n\n\n@NgModule({\n  declarations: [\n    SideEventComponent\n  ],\n  imports: [\n    CalendarAssetsModule\n  ],\n  exports: [\n    SideEventComponent\n  ]\n})\nexport class CalendarSideEventModule { }\n","import { NgModule } from '@angular/core';\nimport { CalendarAssetsModule } from '../calendar-assets/calendar-assets.module';\nimport { WeekViewComponent } from './week-view/week-view.component';\nimport { CalendarEventModule } from '../calendar-event/calendar-event.module';\n\n\n\n@NgModule({\n  declarations: [\n    WeekViewComponent\n  ],\n  imports: [\n    CalendarAssetsModule,\n    CalendarEventModule\n  ],\n  exports: [\n    WeekViewComponent\n  ]\n})\nexport class CalendarWeekViewModule { }\n","import { NgModule } from '@angular/core';\nimport { CalendarAssetsModule } from './modules/calendar-assets/calendar-assets.module';\nimport { ProCalendarComponent } from './pro-calendar.component';\nimport { FaIconLibrary, FaConfig } from '@fortawesome/angular-fontawesome';\nimport { CalendarDayViewModule } from './modules/calendar-day-view/calendar-day-view.module';\nimport { CalendarEventModule } from './modules/calendar-event/calendar-event.module';\nimport { CalendarLeftMenuModule } from './modules/calendar-left-menu/calendar-left-menu.module';\nimport { CalendarMonthViewModule } from './modules/calendar-month-view/calendar-month-view.module';\nimport { CalendarSideEventModule } from './modules/calendar-side-event/calendar-side-event.module';\nimport { CalendarWeekViewModule } from './modules/calendar-week-view/calendar-week-view.module';\n\nimport { fas } from '@fortawesome/free-solid-svg-icons';\nimport { far } from '@fortawesome/free-regular-svg-icons';\n\n@NgModule({\n  declarations: [\n    ProCalendarComponent,\n  ],\n  imports: [\n    CalendarAssetsModule,\n    CalendarDayViewModule,\n    CalendarEventModule,\n    CalendarLeftMenuModule,\n    CalendarMonthViewModule,\n    CalendarSideEventModule,\n    CalendarWeekViewModule\n  ],\n  exports: [\n    ProCalendarComponent\n  ],\n  providers: [\n    {\n      provide: Window,\n      useValue: window\n    }\n  ]\n})\nexport class ProCalendarModule { \n  constructor(library: FaIconLibrary, faConfig: FaConfig) {\n    // Add an icon to the library for convenient access in other components\n    faConfig.fixedWidth = true;\n    library.addIconPacks(fas, far);\n  }\n}\n","/*\n * Public API Surface of pro-calendar\n */\nexport * from './lib/pro-calendar.service';\nexport * from './lib/pro-calendar.component';\nexport * from './lib/pro-calendar.module';\nexport * from './lib/types/main';\nexport * from './lib/common/main';\nexport { DEFAULT_CONFIGS } from './lib/services/store.service';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.TranslateService","i2.TrPipe","i1","i2","i3.InputTypingDirective","i4.TrPipe","i1.StoreService","i3","i2.TranslateService","i3.UtilitiesService","i4","i5","i6.LinkActionComponent","i7.TrPipe","i2.EventComponent","i1.TrPipe","i6.CalendarNativeDatepickerComponent","i2.UtilitiesService","i3.TranslateService","i6.CloseButtonComponent","i7.CalendarSearchComponent","i8.LoaderWidgetComponent","i9.CalendarArrowsComponent","i10.ViewToggleComponent","i11.HeaderCompComponent","i12.DayViewComponent","i13.LeftMenuComponent","i14.MonthViewComponent","i15.SideEventComponent","i16.WeekViewComponent"],"mappings":"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"}