@acpaas-ui/ngx-calendar 6.1.5 → 6.1.7

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,5 +1,6 @@
1
1
  import { ChangeDetectionStrategy, Component, EventEmitter, HostBinding, Inject, Input, Output, } from '@angular/core';
2
2
  import { DateHelper } from '@acpaas-ui/ngx-utils';
3
+ import { TZDate } from '@date-fns/tz';
3
4
  import { CALENDAR_DEFAULT_MONTH_LABELS, CALENDAR_DEFAULT_WEEKDAY_LABELS, CALENDAR_MONTH_LABELS, CALENDAR_WEEKDAY_LABELS, } from '../../calendar.conf';
4
5
  import { CALENDAR_VIEW_DECENNIA, CALENDAR_VIEW_MONTH, CALENDAR_VIEW_YEAR, } from '../../types/calendar.types';
5
6
  import * as i0 from "@angular/core";
@@ -126,10 +127,23 @@ export class CalendarComponent {
126
127
  }
127
128
  pickDate(date) {
128
129
  const complete = this.activeView === CALENDAR_VIEW_MONTH;
129
- this.selectDate.emit({
130
- date,
131
- complete,
132
- });
130
+ if (complete) {
131
+ const brusselsDate = new TZDate(date, 'Europe/Brussels');
132
+ const year = brusselsDate.getFullYear();
133
+ const month = brusselsDate.getMonth();
134
+ const day = brusselsDate.getDate();
135
+ const timezoneAwareDate = new Date(DateHelper.toUtcMidnightInBrussels(year, month, day));
136
+ this.selectDate.emit({
137
+ date: timezoneAwareDate,
138
+ complete,
139
+ });
140
+ }
141
+ else {
142
+ this.selectDate.emit({
143
+ date,
144
+ complete,
145
+ });
146
+ }
133
147
  if (!complete) {
134
148
  this.activeDate = date;
135
149
  this.switchView(-1);
@@ -213,4 +227,4 @@ export class CalendarComponent {
213
227
  }], selectDate: [{
214
228
  type: Output
215
229
  }] }); })();
216
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL2NhbGVuZGFyL2NhbGVuZGFyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9jYWxlbmRhci9jYWxlbmRhci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxZQUFZLEVBQ1osV0FBVyxFQUNYLE1BQU0sRUFDTixLQUFLLEVBR0wsTUFBTSxHQUVQLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxVQUFVLEVBQWEsTUFBTSxzQkFBc0IsQ0FBQztBQUU3RCxPQUFPLEVBQ0wsNkJBQTZCLEVBQzdCLCtCQUErQixFQUMvQixxQkFBcUIsRUFDckIsdUJBQXVCLEdBQ3hCLE1BQU0scUJBQXFCLENBQUM7QUFDN0IsT0FBTyxFQUNMLHNCQUFzQixFQUN0QixtQkFBbUIsRUFDbkIsa0JBQWtCLEdBR25CLE1BQU0sNEJBQTRCLENBQUM7Ozs7Ozs7Ozs7SUNGcEMsOENBUUM7SUFQQywwTUFBYyxlQUFBLHVCQUFnQixDQUFBLElBQUM7SUFPaEMsaUJBQXFCOzs7SUFMcEIsOENBQXlCLHVCQUFBLDZCQUFBLHFDQUFBLHVDQUFBOzs7O0lBTTNCLDZDQU1DO0lBTEMsd01BQWMsZUFBQSx1QkFBZ0IsQ0FBQSxJQUFDO0lBS2hDLGlCQUFvQjs7O0lBSG5CLDhDQUF5QixtQ0FBQSxxQ0FBQTs7OztJQUkzQixpREFLQztJQUpDLGdOQUFjLGVBQUEsdUJBQWdCLENBQUEsSUFBQztJQUloQyxpQkFBd0I7OztJQUZ2Qiw4Q0FBeUIscUNBQUE7O0FEUjNCLE1BQU0sT0FBTyxpQkFBaUI7SUF3QjVCLFlBQ3dDLG9CQUFvQiw2QkFBNkIsRUFDL0Msc0JBQXNCLCtCQUErQixFQUNyRixlQUFnQztRQUZGLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBZ0M7UUFDL0Msd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFrQztRQUNyRixvQkFBZSxHQUFmLGVBQWUsQ0FBaUI7UUExQmhCLFNBQUksR0FBRyxhQUFhLENBQUM7UUFDZCxlQUFVLEdBQUcsT0FBTyxDQUFDO1FBRTdDLHVCQUFrQixHQUFHLENBQUMsc0JBQXNCLEVBQUUsb0JBQW9CLEVBQUUseUJBQXlCLENBQUMsQ0FBQztRQUMvRixtQkFBYyxHQUFHLENBQUMsd0JBQXdCLEVBQUUsc0JBQXNCLEVBQUUsMkJBQTJCLENBQUMsQ0FBQztRQVFoRyxlQUFVLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUVuQyx3QkFBbUIsR0FBRyxtQkFBbUIsQ0FBQztRQUMxQyx1QkFBa0IsR0FBRyxrQkFBa0IsQ0FBQztRQUN4QywyQkFBc0IsR0FBRyxzQkFBc0IsQ0FBQztRQUVoRCxlQUFVLEdBQVcsbUJBQW1CLENBQUM7UUFDekMsZ0JBQVcsR0FBRyxFQUFFLENBQUM7UUFDakIsc0JBQWlCLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQy9DLGtCQUFhLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQU0zQyxDQUFDO0lBRUcsUUFBUTtRQUNiLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUNyQixDQUFDO0lBRUQsV0FBVyxDQUFDLE9BQXNCO1FBQ2hDLE1BQU0sWUFBWSxHQUFHLE9BQU8sQ0FBQyxZQUFZLElBQUksT0FBTyxDQUFDLFlBQVksQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztRQUU3RyxJQUNFLE9BQU8sSUFBSSxDQUFDLFdBQVcsS0FBSyxXQUFXO1lBQ3ZDLFlBQVk7WUFDWixDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsWUFBWSxDQUFDLFlBQVksRUFBRSxZQUFZLENBQUMsYUFBYSxDQUFDLEVBQ2hGO1lBQ0EsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDO1lBQ3BDLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1NBQzFCO2FBQU07WUFDTCxJQUFJLGVBQWUsR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDO1lBRWpDLElBQUksSUFBSSxDQUFDLFFBQVEsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxlQUFlLENBQUMsRUFBRTtnQkFDN0QsZUFBZSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDO2FBQ3JDO1lBRUQsSUFBSSxDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUMsU0FBUyxDQUFDLGVBQWUsQ0FBQyxDQUFDO1lBRXhELElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztTQUNwQjtJQUNILENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxTQUFpQixDQUFDO1FBQ2pDLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxVQUFVO1lBQ2hDLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLFdBQVcsRUFBRSxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQ3hFLENBQUMsQ0FBQyxJQUFJLElBQUksRUFBRSxDQUFDO1FBRWYsUUFBUSxJQUFJLENBQUMsVUFBVSxFQUFFO1lBQ3ZCLEtBQUssbUJBQW1CO2dCQUN0QixVQUFVLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxRQUFRLEVBQUUsR0FBRyxNQUFNLENBQUMsQ0FBQztnQkFDcEQsTUFBTTtZQUNSLEtBQUssa0JBQWtCO2dCQUNyQixVQUFVLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQyxXQUFXLEVBQUUsR0FBRyxNQUFNLENBQUMsQ0FBQztnQkFDMUQsTUFBTTtZQUNSLEtBQUssc0JBQXNCO2dCQUN6QixVQUFVLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQyxXQUFXLEVBQUUsR0FBRyxFQUFFLEdBQUcsTUFBTSxDQUFDLENBQUM7Z0JBQy9ELE1BQU07U0FDVDtRQUVELElBQUksQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDO1FBQzdCLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFFRCxVQUFVLENBQUMsU0FBaUIsQ0FBQztRQUMzQixNQUFNLEtBQUssR0FBRyxDQUFDLG1CQUFtQixFQUFFLGtCQUFrQixFQUFFLHNCQUFzQixDQUFDLENBQUM7UUFFaEYsTUFBTSxRQUFRLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDaEQsSUFBSSxRQUFRLEdBQUcsUUFBUSxHQUFHLE1BQU0sSUFBSSxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsR0FBRyxNQUFNLENBQUM7UUFDekUsUUFBUSxHQUFHLFFBQVEsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUM7UUFFdEQsSUFBSSxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUM7UUFFbEMscUVBQXFFO1FBQ3JFLElBQUksSUFBSSxDQUFDLFlBQVksSUFBSSxRQUFRLEtBQUssQ0FBQyxJQUFJLE1BQU0sS0FBSyxDQUFDLEVBQUU7WUFDdkQsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDO1NBQ3JDO1FBRUQsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUVELGlCQUFpQjtRQUNmLFFBQVEsSUFBSSxDQUFDLFVBQVUsRUFBRTtZQUN2QixLQUFLLG1CQUFtQjtnQkFDdEIsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFFLENBQUMsR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxXQUFXLEVBQUUsQ0FBQztnQkFDdEcsSUFBSSxDQUFDLGlCQUFpQixHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDcEQsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUM1QyxNQUFNO1lBQ1IsS0FBSyxrQkFBa0I7Z0JBQ3JCLElBQUksQ0FBQyxXQUFXLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztnQkFDekQsSUFBSSxDQUFDLGlCQUFpQixHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDcEQsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUM1QyxNQUFNO1lBQ1IsS0FBSyxzQkFBc0I7Z0JBQ3pCLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsV0FBVyxFQUFFLENBQUM7Z0JBQ2hELElBQUksQ0FBQyxXQUFXLEdBQUcsR0FBRyxTQUFTLE1BQU0sU0FBUyxHQUFHLEVBQUUsRUFBRSxDQUFDO2dCQUN0RCxJQUFJLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUNwRCxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQzVDLE1BQU07U0FDVDtJQUNILENBQUM7SUFFRCxRQUFRLENBQUMsSUFBVTtRQUNqQixNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsVUFBVSxLQUFLLG1CQUFtQixDQUFDO1FBRXpELElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDO1lBQ25CLElBQUk7WUFDSixRQUFRO1NBQ1QsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUNiLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDO1lBQ3ZCLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUNyQjtJQUNILENBQUM7SUFFTyxXQUFXO1FBQ2pCLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLGFBQWEsSUFBSSxJQUFJLENBQUMsbUJBQW1CLENBQUM7UUFDcEUsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsV0FBVyxJQUFJLElBQUksQ0FBQyxpQkFBaUIsQ0FBQztRQUM5RCxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsc0JBQXNCLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDM0YsSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFO1lBQ3JCLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQztZQUNwQyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztTQUN6QjtRQUNELElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO0lBQzNCLENBQUM7O3FHQTNJVSxpQkFBaUIsdUJBeUJsQixxQkFBcUIsd0JBQ3JCLHVCQUF1QjttR0ExQnRCLGlCQUFpQjs7O1FDcEM5Qiw4QkFBK0IsZ0JBQUE7UUFDckIsOEZBQVMsZ0JBQVksSUFBQztRQUM1QixZQUNBOztRQUFBLDhCQUFtQztRQUNyQyxpQkFBUztRQUVULDhCQUEwQyxnQkFBQTtRQUV0Qyw4RkFBUyxzQkFBa0IsQ0FBQyxDQUFDLElBQUM7UUFLOUIsOEJBQTRDO1FBQzlDLGlCQUFTO1FBQ1QsaUNBS0M7UUFKQyw4RkFBUyxxQkFBaUIsQ0FBQyxDQUFDLElBQUM7UUFLN0IsOEJBQTZDO1FBQy9DLGlCQUFTLEVBQUEsRUFBQTtRQUdiLGtHQVFzQjtRQUN0QixnR0FNcUI7UUFDckIsd0dBS3lCOztRQTVDckIsZUFDQTtRQURBLHNFQUNBO1FBTUUsZUFBcUM7UUFBckMsbURBQXFDO1FBUXJDLGVBQWlDO1FBQWpDLCtDQUFpQztRQVVwQyxlQUF3QztRQUF4QyxpRUFBd0M7UUFTeEMsZUFBdUM7UUFBdkMsZ0VBQXVDO1FBT3ZDLGVBQTJDO1FBQTNDLG9FQUEyQzs7dUZEUGpDLGlCQUFpQjtjQUw3QixTQUFTOzJCQUNFLGNBQWMsbUJBRVAsdUJBQXVCLENBQUMsTUFBTTs7c0JBMkI1QyxNQUFNO3VCQUFDLHFCQUFxQjs7c0JBQzVCLE1BQU07dUJBQUMsdUJBQXVCO3NEQXpCUCxJQUFJO2tCQUE3QixXQUFXO21CQUFDLFdBQVc7WUFDUyxVQUFVO2tCQUExQyxXQUFXO21CQUFDLGtCQUFrQjtZQUV0QixrQkFBa0I7a0JBQTFCLEtBQUs7WUFDRyxjQUFjO2tCQUF0QixLQUFLO1lBRUcsWUFBWTtrQkFBcEIsS0FBSztZQUNHLEtBQUs7a0JBQWIsS0FBSztZQUVOLFFBQVE7a0JBRFAsS0FBSztZQUVHLGFBQWE7a0JBQXJCLEtBQUs7WUFDRyxXQUFXO2tCQUFuQixLQUFLO1lBQ0ksVUFBVTtrQkFBbkIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIEV2ZW50RW1pdHRlcixcbiAgSG9zdEJpbmRpbmcsXG4gIEluamVjdCxcbiAgSW5wdXQsXG4gIE9uQ2hhbmdlcyxcbiAgT25Jbml0LFxuICBPdXRwdXQsXG4gIFNpbXBsZUNoYW5nZXMsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBEYXRlSGVscGVyLCBEYXRlUmFuZ2UgfSBmcm9tICdAYWNwYWFzLXVpL25neC11dGlscyc7XG5cbmltcG9ydCB7XG4gIENBTEVOREFSX0RFRkFVTFRfTU9OVEhfTEFCRUxTLFxuICBDQUxFTkRBUl9ERUZBVUxUX1dFRUtEQVlfTEFCRUxTLFxuICBDQUxFTkRBUl9NT05USF9MQUJFTFMsXG4gIENBTEVOREFSX1dFRUtEQVlfTEFCRUxTLFxufSBmcm9tICcuLi8uLi9jYWxlbmRhci5jb25mJztcbmltcG9ydCB7XG4gIENBTEVOREFSX1ZJRVdfREVDRU5OSUEsXG4gIENBTEVOREFSX1ZJRVdfTU9OVEgsXG4gIENBTEVOREFSX1ZJRVdfWUVBUixcbiAgTW9udGhMYWJlbHNDb25maWcsXG4gIFdlZWtkYXlMYWJlbHNDb25maWcsXG59IGZyb20gJy4uLy4uL3R5cGVzL2NhbGVuZGFyLnR5cGVzJztcbmltcG9ydCB7IENhbGVuZGFyU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2NhbGVuZGFyLnNlcnZpY2UnO1xuaW1wb3J0IHsgSW50ZXJ2YWwgfSBmcm9tICdAYWNwYWFzLXVpL25neC11dGlscyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2F1aS1jYWxlbmRhcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9jYWxlbmRhci5jb21wb25lbnQuaHRtbCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBDYWxlbmRhckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzIHtcbiAgQEhvc3RCaW5kaW5nKCdhdHRyLnJvbGUnKSByb2xlID0gJ2FwcGxpY2F0aW9uJztcbiAgQEhvc3RCaW5kaW5nKCdhdHRyLmFyaWEtaGlkZGVuJykgYXJpYWhpZGRlbiA9ICdmYWxzZSc7XG5cbiAgQElucHV0KCkgYXJpYVByZXZpb3VzTGFiZWxzID0gWydHYSBuYWFyIHZvcmlnZSBtYWFuZCcsICdHYSBuYWFyIHZvcmlnIGphYXInLCAnR2EgbmFhciB2b3JpZ2UgMTggamFyZW4nXTtcbiAgQElucHV0KCkgYXJpYU5leHRMYWJlbHMgPSBbJ0dhIG5hYXIgdm9sZ2VuZGUgbWFhbmQnLCAnR2EgbmFhciB2b2xnZW5kIGphYXInLCAnR2EgbmFhciB2b2xnZW5kZSAxOCBqYXJlbiddO1xuXG4gIEBJbnB1dCgpIHNlbGVjdGVkRGF0ZTogRGF0ZTtcbiAgQElucHV0KCkgcmFuZ2U6IERhdGVSYW5nZTtcbiAgQElucHV0KClcbiAgaW50ZXJ2YWw/OiBJbnRlcnZhbC5JSW50ZXJ2YWw8RGF0ZT47XG4gIEBJbnB1dCgpIHdlZWtkYXlMYWJlbHM6IFdlZWtkYXlMYWJlbHNDb25maWc7XG4gIEBJbnB1dCgpIG1vbnRoTGFiZWxzOiBNb250aExhYmVsc0NvbmZpZztcbiAgQE91dHB1dCgpIHNlbGVjdERhdGUgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgcHVibGljIENBTEVOREFSX1ZJRVdfTU9OVEggPSBDQUxFTkRBUl9WSUVXX01PTlRIO1xuICBwdWJsaWMgQ0FMRU5EQVJfVklFV19ZRUFSID0gQ0FMRU5EQVJfVklFV19ZRUFSO1xuICBwdWJsaWMgQ0FMRU5EQVJfVklFV19ERUNFTk5JQSA9IENBTEVOREFSX1ZJRVdfREVDRU5OSUE7XG4gIHB1YmxpYyBhY3RpdmVEYXRlOiBEYXRlO1xuICBwdWJsaWMgYWN0aXZlVmlldzogc3RyaW5nID0gQ0FMRU5EQVJfVklFV19NT05USDtcbiAgcHVibGljIGhlYWRlckxhYmVsID0gJyc7XG4gIHB1YmxpYyBhcmlhUHJldmlvdXNMYWJlbCA9IHRoaXMuYXJpYVByZXZpb3VzTGFiZWxzWzBdO1xuICBwdWJsaWMgYXJpYU5leHRMYWJlbCA9IHRoaXMuYXJpYU5leHRMYWJlbHNbMF07XG5cbiAgY29uc3RydWN0b3IoXG4gICAgQEluamVjdChDQUxFTkRBUl9NT05USF9MQUJFTFMpIHB1YmxpYyBtb2R1bGVNb250aExhYmVscyA9IENBTEVOREFSX0RFRkFVTFRfTU9OVEhfTEFCRUxTLFxuICAgIEBJbmplY3QoQ0FMRU5EQVJfV0VFS0RBWV9MQUJFTFMpIHB1YmxpYyBtb2R1bGVXZWVrZGF5TGFiZWxzID0gQ0FMRU5EQVJfREVGQVVMVF9XRUVLREFZX0xBQkVMUyxcbiAgICBwcml2YXRlIGNhbGVuZGFyU2VydmljZTogQ2FsZW5kYXJTZXJ2aWNlXG4gICkge31cblxuICBwdWJsaWMgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5pbml0Q29udHJvbCgpO1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xuICAgIGNvbnN0IHNlbGVjdGVkRGF0ZSA9IGNoYW5nZXMuc2VsZWN0ZWREYXRlICYmIGNoYW5nZXMuc2VsZWN0ZWREYXRlLmN1cnJlbnRWYWx1ZSA/IGNoYW5nZXMuc2VsZWN0ZWREYXRlIDogbnVsbDtcblxuICAgIGlmIChcbiAgICAgIHR5cGVvZiB0aGlzLm1vbnRoTGFiZWxzICE9PSAndW5kZWZpbmVkJyAmJlxuICAgICAgc2VsZWN0ZWREYXRlICYmXG4gICAgICAhRGF0ZUhlbHBlci5kYXRlc0FyZUVxdWFsKHNlbGVjdGVkRGF0ZS5jdXJyZW50VmFsdWUsIHNlbGVjdGVkRGF0ZS5wcmV2aW91c1ZhbHVlKVxuICAgICkge1xuICAgICAgdGhpcy5hY3RpdmVEYXRlID0gdGhpcy5zZWxlY3RlZERhdGU7XG4gICAgICB0aGlzLnVwZGF0ZUhlYWRlckxhYmVsKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGxldCBhY3RpdmVEYXRlVG9TZXQgPSBuZXcgRGF0ZSgpO1xuXG4gICAgICBpZiAodGhpcy5pbnRlcnZhbCAmJiB0aGlzLmludGVydmFsLmlzSW5SYW5nZShhY3RpdmVEYXRlVG9TZXQpKSB7XG4gICAgICAgIGFjdGl2ZURhdGVUb1NldCA9IHRoaXMuaW50ZXJ2YWwubWluO1xuICAgICAgfVxuXG4gICAgICB0aGlzLmFjdGl2ZURhdGUgPSBEYXRlSGVscGVyLnBhcnNlRGF0ZShhY3RpdmVEYXRlVG9TZXQpO1xuXG4gICAgICB0aGlzLmluaXRDb250cm9sKCk7XG4gICAgfVxuICB9XG5cbiAgdXBkYXRlQWN0aXZlRGF0ZShmYWN0b3I6IG51bWJlciA9IDApOiB2b2lkIHtcbiAgICBjb25zdCBhY3RpdmVEYXRlID0gdGhpcy5hY3RpdmVEYXRlXG4gICAgICA/IG5ldyBEYXRlKHRoaXMuYWN0aXZlRGF0ZS5nZXRGdWxsWWVhcigpLCB0aGlzLmFjdGl2ZURhdGUuZ2V0TW9udGgoKSwgMSlcbiAgICAgIDogbmV3IERhdGUoKTtcblxuICAgIHN3aXRjaCAodGhpcy5hY3RpdmVWaWV3KSB7XG4gICAgICBjYXNlIENBTEVOREFSX1ZJRVdfTU9OVEg6XG4gICAgICAgIGFjdGl2ZURhdGUuc2V0TW9udGgoYWN0aXZlRGF0ZS5nZXRNb250aCgpICsgZmFjdG9yKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIENBTEVOREFSX1ZJRVdfWUVBUjpcbiAgICAgICAgYWN0aXZlRGF0ZS5zZXRGdWxsWWVhcihhY3RpdmVEYXRlLmdldEZ1bGxZZWFyKCkgKyBmYWN0b3IpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgQ0FMRU5EQVJfVklFV19ERUNFTk5JQTpcbiAgICAgICAgYWN0aXZlRGF0ZS5zZXRGdWxsWWVhcihhY3RpdmVEYXRlLmdldEZ1bGxZZWFyKCkgKyAxOCAqIGZhY3Rvcik7XG4gICAgICAgIGJyZWFrO1xuICAgIH1cblxuICAgIHRoaXMuYWN0aXZlRGF0ZSA9IGFjdGl2ZURhdGU7XG4gICAgdGhpcy51cGRhdGVIZWFkZXJMYWJlbCgpO1xuICB9XG5cbiAgc3dpdGNoVmlldyhmYWN0b3I6IG51bWJlciA9IDEpOiB2b2lkIHtcbiAgICBjb25zdCB2aWV3cyA9IFtDQUxFTkRBUl9WSUVXX01PTlRILCBDQUxFTkRBUl9WSUVXX1lFQVIsIENBTEVOREFSX1ZJRVdfREVDRU5OSUFdO1xuXG4gICAgY29uc3QgY3VyclZpZXcgPSB2aWV3cy5pbmRleE9mKHRoaXMuYWN0aXZlVmlldyk7XG4gICAgbGV0IG5leHRWaWV3ID0gY3VyclZpZXcgKyBmYWN0b3IgPj0gdmlld3MubGVuZ3RoID8gMCA6IGN1cnJWaWV3ICsgZmFjdG9yO1xuICAgIG5leHRWaWV3ID0gbmV4dFZpZXcgPCAwID8gdmlld3MubGVuZ3RoIC0gMSA6IG5leHRWaWV3O1xuXG4gICAgdGhpcy5hY3RpdmVWaWV3ID0gdmlld3NbbmV4dFZpZXddO1xuXG4gICAgLy8gcmVzZXQgYWN0aXZlRGF0ZSB3aGVuIHJldHVybmluZyB0byBtb250aCB2aWV3IHdpdGhvdXQgbW9kZWwgdXBkYXRlXG4gICAgaWYgKHRoaXMuc2VsZWN0ZWREYXRlICYmIG5leHRWaWV3ID09PSAwICYmIGZhY3RvciA9PT0gMSkge1xuICAgICAgdGhpcy5hY3RpdmVEYXRlID0gdGhpcy5zZWxlY3RlZERhdGU7XG4gICAgfVxuXG4gICAgdGhpcy51cGRhdGVIZWFkZXJMYWJlbCgpO1xuICB9XG5cbiAgdXBkYXRlSGVhZGVyTGFiZWwoKTogdm9pZCB7XG4gICAgc3dpdGNoICh0aGlzLmFjdGl2ZVZpZXcpIHtcbiAgICAgIGNhc2UgQ0FMRU5EQVJfVklFV19NT05USDpcbiAgICAgICAgdGhpcy5oZWFkZXJMYWJlbCA9IHRoaXMubW9udGhMYWJlbHNbdGhpcy5hY3RpdmVEYXRlLmdldE1vbnRoKCldICsgJyAnICsgdGhpcy5hY3RpdmVEYXRlLmdldEZ1bGxZZWFyKCk7XG4gICAgICAgIHRoaXMuYXJpYVByZXZpb3VzTGFiZWwgPSB0aGlzLmFyaWFQcmV2aW91c0xhYmVsc1swXTtcbiAgICAgICAgdGhpcy5hcmlhTmV4dExhYmVsID0gdGhpcy5hcmlhTmV4dExhYmVsc1swXTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIENBTEVOREFSX1ZJRVdfWUVBUjpcbiAgICAgICAgdGhpcy5oZWFkZXJMYWJlbCA9IFN0cmluZyh0aGlzLmFjdGl2ZURhdGUuZ2V0RnVsbFllYXIoKSk7XG4gICAgICAgIHRoaXMuYXJpYVByZXZpb3VzTGFiZWwgPSB0aGlzLmFyaWFQcmV2aW91c0xhYmVsc1sxXTtcbiAgICAgICAgdGhpcy5hcmlhTmV4dExhYmVsID0gdGhpcy5hcmlhTmV4dExhYmVsc1sxXTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIENBTEVOREFSX1ZJRVdfREVDRU5OSUE6XG4gICAgICAgIGNvbnN0IHN0YXJ0WWVhciA9IHRoaXMuYWN0aXZlRGF0ZS5nZXRGdWxsWWVhcigpO1xuICAgICAgICB0aGlzLmhlYWRlckxhYmVsID0gYCR7c3RhcnRZZWFyfSAtICR7c3RhcnRZZWFyICsgMTd9YDtcbiAgICAgICAgdGhpcy5hcmlhUHJldmlvdXNMYWJlbCA9IHRoaXMuYXJpYVByZXZpb3VzTGFiZWxzWzJdO1xuICAgICAgICB0aGlzLmFyaWFOZXh0TGFiZWwgPSB0aGlzLmFyaWFOZXh0TGFiZWxzWzJdO1xuICAgICAgICBicmVhaztcbiAgICB9XG4gIH1cblxuICBwaWNrRGF0ZShkYXRlOiBEYXRlKTogdm9pZCB7XG4gICAgY29uc3QgY29tcGxldGUgPSB0aGlzLmFjdGl2ZVZpZXcgPT09IENBTEVOREFSX1ZJRVdfTU9OVEg7XG5cbiAgICB0aGlzLnNlbGVjdERhdGUuZW1pdCh7XG4gICAgICBkYXRlLFxuICAgICAgY29tcGxldGUsXG4gICAgfSk7XG5cbiAgICBpZiAoIWNvbXBsZXRlKSB7XG4gICAgICB0aGlzLmFjdGl2ZURhdGUgPSBkYXRlO1xuICAgICAgdGhpcy5zd2l0Y2hWaWV3KC0xKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGluaXRDb250cm9sKCk6IHZvaWQge1xuICAgIHRoaXMud2Vla2RheUxhYmVscyA9IHRoaXMud2Vla2RheUxhYmVscyB8fCB0aGlzLm1vZHVsZVdlZWtkYXlMYWJlbHM7XG4gICAgdGhpcy5tb250aExhYmVscyA9IHRoaXMubW9udGhMYWJlbHMgfHwgdGhpcy5tb2R1bGVNb250aExhYmVscztcbiAgICB0aGlzLmFjdGl2ZURhdGUgPSB0aGlzLmNhbGVuZGFyU2VydmljZS5nZXRDbG9zZXN0RGF0ZUZvclJhbmdlKHRoaXMuYWN0aXZlRGF0ZSwgdGhpcy5yYW5nZSk7XG4gICAgaWYgKHRoaXMuc2VsZWN0ZWREYXRlKSB7XG4gICAgICB0aGlzLmFjdGl2ZURhdGUgPSB0aGlzLnNlbGVjdGVkRGF0ZTtcbiAgICAgIHRoaXMudXBkYXRlQWN0aXZlRGF0ZSgpO1xuICAgIH1cbiAgICB0aGlzLnVwZGF0ZUhlYWRlckxhYmVsKCk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJtLWRhdGVwaWNrZXJfX25hdlwiPlxuICA8YnV0dG9uIChjbGljayk9XCJzd2l0Y2hWaWV3KClcIiBjbGFzcz1cIm0tZGF0ZXBpY2tlcl9fbmF2LXRpdGxlXCIgdHlwZT1cImJ1dHRvblwiPlxuICAgIHt7IGhlYWRlckxhYmVsIHwgdGl0bGVjYXNlIH19XG4gICAgPGF1aS1pY29uIG5hbWU9XCJhaS1hcnJvdy1kb3duLTFcIiAvPlxuICA8L2J1dHRvbj5cblxuICA8ZGl2IGNsYXNzPVwibS1kYXRlcGlja2VyX19uYXYtcGFnaW5hdGlvblwiPlxuICAgIDxidXR0b25cbiAgICAgIChjbGljayk9XCJ1cGRhdGVBY3RpdmVEYXRlKC0xKVwiXG4gICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cImFyaWFQcmV2aW91c0xhYmVsXCJcbiAgICAgIGNsYXNzPVwiYS1idXR0b24gYS1idXR0b24tLXRleHQgYS1idXR0b24tLXByaW1hcnkgaGFzLWljb25cIlxuICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgPlxuICAgICAgPGF1aS1pY29uIG5hbWU9XCJhaS1hcnJvdy1sZWZ0LTFcIj48L2F1aS1pY29uPlxuICAgIDwvYnV0dG9uPlxuICAgIDxidXR0b25cbiAgICAgIChjbGljayk9XCJ1cGRhdGVBY3RpdmVEYXRlKDEpXCJcbiAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiYXJpYU5leHRMYWJlbFwiXG4gICAgICBjbGFzcz1cImEtYnV0dG9uIGEtYnV0dG9uLS10ZXh0IGEtYnV0dG9uLS1wcmltYXJ5IGhhcy1pY29uXCJcbiAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgID5cbiAgICAgIDxhdWktaWNvbiBuYW1lPVwiYWktYXJyb3ctcmlnaHQtMVwiPjwvYXVpLWljb24+XG4gICAgPC9idXR0b24+XG4gIDwvZGl2PlxuPC9kaXY+XG48YXVpLWNhbGVuZGFyLW1vbnRoXG4gIChzZWxlY3REYXRlKT1cInBpY2tEYXRlKCRldmVudClcIlxuICAqbmdJZj1cImFjdGl2ZVZpZXcgPT09IENBTEVOREFSX1ZJRVdfTU9OVEhcIlxuICBbYWN0aXZlRGF0ZV09XCJhY3RpdmVEYXRlXCJcbiAgW3JhbmdlXT1cInJhbmdlXCJcbiAgW2ludGVydmFsXT1cImludGVydmFsXCJcbiAgW3NlbGVjdGVkRGF0ZV09XCJzZWxlY3RlZERhdGVcIlxuICBbd2Vla2RheUxhYmVsc109XCJ3ZWVrZGF5TGFiZWxzXCJcbj48L2F1aS1jYWxlbmRhci1tb250aD5cbjxhdWktY2FsZW5kYXIteWVhclxuICAoc2VsZWN0RGF0ZSk9XCJwaWNrRGF0ZSgkZXZlbnQpXCJcbiAgKm5nSWY9XCJhY3RpdmVWaWV3ID09PSBDQUxFTkRBUl9WSUVXX1lFQVJcIlxuICBbYWN0aXZlRGF0ZV09XCJhY3RpdmVEYXRlXCJcbiAgW21vbnRoTGFiZWxzXT1cIm1vbnRoTGFiZWxzXCJcbiAgW3NlbGVjdGVkRGF0ZV09XCJzZWxlY3RlZERhdGVcIlxuPjwvYXVpLWNhbGVuZGFyLXllYXI+XG48YXVpLWNhbGVuZGFyLWRlY2VubmlhXG4gIChzZWxlY3REYXRlKT1cInBpY2tEYXRlKCRldmVudClcIlxuICAqbmdJZj1cImFjdGl2ZVZpZXcgPT09IENBTEVOREFSX1ZJRVdfREVDRU5OSUFcIlxuICBbYWN0aXZlRGF0ZV09XCJhY3RpdmVEYXRlXCJcbiAgW3NlbGVjdGVkRGF0ZV09XCJzZWxlY3RlZERhdGVcIlxuPjwvYXVpLWNhbGVuZGFyLWRlY2VubmlhPlxuIl19
230
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL2NhbGVuZGFyL2NhbGVuZGFyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9jYWxlbmRhci9jYWxlbmRhci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxZQUFZLEVBQ1osV0FBVyxFQUNYLE1BQU0sRUFDTixLQUFLLEVBR0wsTUFBTSxHQUVQLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxVQUFVLEVBQWEsTUFBTSxzQkFBc0IsQ0FBQztBQUM3RCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRXRDLE9BQU8sRUFDTCw2QkFBNkIsRUFDN0IsK0JBQStCLEVBQy9CLHFCQUFxQixFQUNyQix1QkFBdUIsR0FDeEIsTUFBTSxxQkFBcUIsQ0FBQztBQUM3QixPQUFPLEVBQ0wsc0JBQXNCLEVBQ3RCLG1CQUFtQixFQUNuQixrQkFBa0IsR0FHbkIsTUFBTSw0QkFBNEIsQ0FBQzs7Ozs7Ozs7OztJQ0hwQyw4Q0FRQztJQVBDLDBNQUFjLGVBQUEsdUJBQWdCLENBQUEsSUFBQztJQU9oQyxpQkFBcUI7OztJQUxwQiw4Q0FBeUIsdUJBQUEsNkJBQUEscUNBQUEsdUNBQUE7Ozs7SUFNM0IsNkNBTUM7SUFMQyx3TUFBYyxlQUFBLHVCQUFnQixDQUFBLElBQUM7SUFLaEMsaUJBQW9COzs7SUFIbkIsOENBQXlCLG1DQUFBLHFDQUFBOzs7O0lBSTNCLGlEQUtDO0lBSkMsZ05BQWMsZUFBQSx1QkFBZ0IsQ0FBQSxJQUFDO0lBSWhDLGlCQUF3Qjs7O0lBRnZCLDhDQUF5QixxQ0FBQTs7QURQM0IsTUFBTSxPQUFPLGlCQUFpQjtJQXdCNUIsWUFDd0Msb0JBQW9CLDZCQUE2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d0JBQ3JCLHVCQUF1QjttR0ExQnRCLGlCQUFpQjs7O1FDckM5Qiw4QkFBK0IsZ0JBQUE7UUFDckIsOEZBQVMsZ0JBQVksSUFBQztRQUM1QixZQUNBOztRQUFBLDhCQUFtQztRQUNyQyxpQkFBUztRQUVULDhCQUEwQyxnQkFBQTtRQUV0Qyw4RkFBUyxzQkFBa0IsQ0FBQyxDQUFDLElBQUM7UUFLOUIsOEJBQTRDO1FBQzlDLGlCQUFTO1FBQ1QsaUNBS0M7UUFKQyw4RkFBUyxxQkFBaUIsQ0FBQyxDQUFDLElBQUM7UUFLN0IsOEJBQTZDO1FBQy9DLGlCQUFTLEVBQUEsRUFBQTtRQUdiLGtHQVFzQjtRQUN0QixnR0FNcUI7UUFDckIsd0dBS3lCOztRQTVDckIsZUFDQTtRQURBLHNFQUNBO1FBTUUsZUFBcUM7UUFBckMsbURBQXFDO1FBUXJDLGVBQWlDO1FBQWpDLCtDQUFpQztRQVVwQyxlQUF3QztRQUF4QyxpRUFBd0M7UUFTeEMsZUFBdUM7UUFBdkMsZ0VBQXVDO1FBT3ZDLGVBQTJDO1FBQTNDLG9FQUEyQzs7dUZETmpDLGlCQUFpQjtjQUw3QixTQUFTOzJCQUNFLGNBQWMsbUJBRVAsdUJBQXVCLENBQUMsTUFBTTs7c0JBMkI1QyxNQUFNO3VCQUFDLHFCQUFxQjs7c0JBQzVCLE1BQU07dUJBQUMsdUJBQXVCO3NEQXpCUCxJQUFJO2tCQUE3QixXQUFXO21CQUFDLFdBQVc7WUFDUyxVQUFVO2tCQUExQyxXQUFXO21CQUFDLGtCQUFrQjtZQUV0QixrQkFBa0I7a0JBQTFCLEtBQUs7WUFDRyxjQUFjO2tCQUF0QixLQUFLO1lBRUcsWUFBWTtrQkFBcEIsS0FBSztZQUNHLEtBQUs7a0JBQWIsS0FBSztZQUVOLFFBQVE7a0JBRFAsS0FBSztZQUVHLGFBQWE7a0JBQXJCLEtBQUs7WUFDRyxXQUFXO2tCQUFuQixLQUFLO1lBQ0ksVUFBVTtrQkFBbkIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIEV2ZW50RW1pdHRlcixcbiAgSG9zdEJpbmRpbmcsXG4gIEluamVjdCxcbiAgSW5wdXQsXG4gIE9uQ2hhbmdlcyxcbiAgT25Jbml0LFxuICBPdXRwdXQsXG4gIFNpbXBsZUNoYW5nZXMsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBEYXRlSGVscGVyLCBEYXRlUmFuZ2UgfSBmcm9tICdAYWNwYWFzLXVpL25neC11dGlscyc7XG5pbXBvcnQgeyBUWkRhdGUgfSBmcm9tICdAZGF0ZS1mbnMvdHonO1xuXG5pbXBvcnQge1xuICBDQUxFTkRBUl9ERUZBVUxUX01PTlRIX0xBQkVMUyxcbiAgQ0FMRU5EQVJfREVGQVVMVF9XRUVLREFZX0xBQkVMUyxcbiAgQ0FMRU5EQVJfTU9OVEhfTEFCRUxTLFxuICBDQUxFTkRBUl9XRUVLREFZX0xBQkVMUyxcbn0gZnJvbSAnLi4vLi4vY2FsZW5kYXIuY29uZic7XG5pbXBvcnQge1xuICBDQUxFTkRBUl9WSUVXX0RFQ0VOTklBLFxuICBDQUxFTkRBUl9WSUVXX01PTlRILFxuICBDQUxFTkRBUl9WSUVXX1lFQVIsXG4gIE1vbnRoTGFiZWxzQ29uZmlnLFxuICBXZWVrZGF5TGFiZWxzQ29uZmlnLFxufSBmcm9tICcuLi8uLi90eXBlcy9jYWxlbmRhci50eXBlcyc7XG5pbXBvcnQgeyBDYWxlbmRhclNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9jYWxlbmRhci5zZXJ2aWNlJztcbmltcG9ydCB7IEludGVydmFsIH0gZnJvbSAnQGFjcGFhcy11aS9uZ3gtdXRpbHMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhdWktY2FsZW5kYXInLFxuICB0ZW1wbGF0ZVVybDogJy4vY2FsZW5kYXIuY29tcG9uZW50Lmh0bWwnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgQ2FsZW5kYXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcyB7XG4gIEBIb3N0QmluZGluZygnYXR0ci5yb2xlJykgcm9sZSA9ICdhcHBsaWNhdGlvbic7XG4gIEBIb3N0QmluZGluZygnYXR0ci5hcmlhLWhpZGRlbicpIGFyaWFoaWRkZW4gPSAnZmFsc2UnO1xuXG4gIEBJbnB1dCgpIGFyaWFQcmV2aW91c0xhYmVscyA9IFsnR2EgbmFhciB2b3JpZ2UgbWFhbmQnLCAnR2EgbmFhciB2b3JpZyBqYWFyJywgJ0dhIG5hYXIgdm9yaWdlIDE4IGphcmVuJ107XG4gIEBJbnB1dCgpIGFyaWFOZXh0TGFiZWxzID0gWydHYSBuYWFyIHZvbGdlbmRlIG1hYW5kJywgJ0dhIG5hYXIgdm9sZ2VuZCBqYWFyJywgJ0dhIG5hYXIgdm9sZ2VuZGUgMTggamFyZW4nXTtcblxuICBASW5wdXQoKSBzZWxlY3RlZERhdGU6IERhdGU7XG4gIEBJbnB1dCgpIHJhbmdlOiBEYXRlUmFuZ2U7XG4gIEBJbnB1dCgpXG4gIGludGVydmFsPzogSW50ZXJ2YWwuSUludGVydmFsPERhdGU+O1xuICBASW5wdXQoKSB3ZWVrZGF5TGFiZWxzOiBXZWVrZGF5TGFiZWxzQ29uZmlnO1xuICBASW5wdXQoKSBtb250aExhYmVsczogTW9udGhMYWJlbHNDb25maWc7XG4gIEBPdXRwdXQoKSBzZWxlY3REYXRlID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIHB1YmxpYyBDQUxFTkRBUl9WSUVXX01PTlRIID0gQ0FMRU5EQVJfVklFV19NT05USDtcbiAgcHVibGljIENBTEVOREFSX1ZJRVdfWUVBUiA9IENBTEVOREFSX1ZJRVdfWUVBUjtcbiAgcHVibGljIENBTEVOREFSX1ZJRVdfREVDRU5OSUEgPSBDQUxFTkRBUl9WSUVXX0RFQ0VOTklBO1xuICBwdWJsaWMgYWN0aXZlRGF0ZTogRGF0ZTtcbiAgcHVibGljIGFjdGl2ZVZpZXc6IHN0cmluZyA9IENBTEVOREFSX1ZJRVdfTU9OVEg7XG4gIHB1YmxpYyBoZWFkZXJMYWJlbCA9ICcnO1xuICBwdWJsaWMgYXJpYVByZXZpb3VzTGFiZWwgPSB0aGlzLmFyaWFQcmV2aW91c0xhYmVsc1swXTtcbiAgcHVibGljIGFyaWFOZXh0TGFiZWwgPSB0aGlzLmFyaWFOZXh0TGFiZWxzWzBdO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIEBJbmplY3QoQ0FMRU5EQVJfTU9OVEhfTEFCRUxTKSBwdWJsaWMgbW9kdWxlTW9udGhMYWJlbHMgPSBDQUxFTkRBUl9ERUZBVUxUX01PTlRIX0xBQkVMUyxcbiAgICBASW5qZWN0KENBTEVOREFSX1dFRUtEQVlfTEFCRUxTKSBwdWJsaWMgbW9kdWxlV2Vla2RheUxhYmVscyA9IENBTEVOREFSX0RFRkFVTFRfV0VFS0RBWV9MQUJFTFMsXG4gICAgcHJpdmF0ZSBjYWxlbmRhclNlcnZpY2U6IENhbGVuZGFyU2VydmljZVxuICApIHt9XG5cbiAgcHVibGljIG5nT25Jbml0KCkge1xuICAgIHRoaXMuaW5pdENvbnRyb2woKTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcbiAgICBjb25zdCBzZWxlY3RlZERhdGUgPSBjaGFuZ2VzLnNlbGVjdGVkRGF0ZSAmJiBjaGFuZ2VzLnNlbGVjdGVkRGF0ZS5jdXJyZW50VmFsdWUgPyBjaGFuZ2VzLnNlbGVjdGVkRGF0ZSA6IG51bGw7XG5cbiAgICBpZiAoXG4gICAgICB0eXBlb2YgdGhpcy5tb250aExhYmVscyAhPT0gJ3VuZGVmaW5lZCcgJiZcbiAgICAgIHNlbGVjdGVkRGF0ZSAmJlxuICAgICAgIURhdGVIZWxwZXIuZGF0ZXNBcmVFcXVhbChzZWxlY3RlZERhdGUuY3VycmVudFZhbHVlLCBzZWxlY3RlZERhdGUucHJldmlvdXNWYWx1ZSlcbiAgICApIHtcbiAgICAgIHRoaXMuYWN0aXZlRGF0ZSA9IHRoaXMuc2VsZWN0ZWREYXRlO1xuICAgICAgdGhpcy51cGRhdGVIZWFkZXJMYWJlbCgpO1xuICAgIH0gZWxzZSB7XG4gICAgICBsZXQgYWN0aXZlRGF0ZVRvU2V0ID0gbmV3IERhdGUoKTtcblxuICAgICAgaWYgKHRoaXMuaW50ZXJ2YWwgJiYgdGhpcy5pbnRlcnZhbC5pc0luUmFuZ2UoYWN0aXZlRGF0ZVRvU2V0KSkge1xuICAgICAgICBhY3RpdmVEYXRlVG9TZXQgPSB0aGlzLmludGVydmFsLm1pbjtcbiAgICAgIH1cblxuICAgICAgdGhpcy5hY3RpdmVEYXRlID0gRGF0ZUhlbHBlci5wYXJzZURhdGUoYWN0aXZlRGF0ZVRvU2V0KTtcblxuICAgICAgdGhpcy5pbml0Q29udHJvbCgpO1xuICAgIH1cbiAgfVxuXG4gIHVwZGF0ZUFjdGl2ZURhdGUoZmFjdG9yOiBudW1iZXIgPSAwKTogdm9pZCB7XG4gICAgY29uc3QgYWN0aXZlRGF0ZSA9IHRoaXMuYWN0aXZlRGF0ZVxuICAgICAgPyBuZXcgRGF0ZSh0aGlzLmFjdGl2ZURhdGUuZ2V0RnVsbFllYXIoKSwgdGhpcy5hY3RpdmVEYXRlLmdldE1vbnRoKCksIDEpXG4gICAgICA6IG5ldyBEYXRlKCk7XG5cbiAgICBzd2l0Y2ggKHRoaXMuYWN0aXZlVmlldykge1xuICAgICAgY2FzZSBDQUxFTkRBUl9WSUVXX01PTlRIOlxuICAgICAgICBhY3RpdmVEYXRlLnNldE1vbnRoKGFjdGl2ZURhdGUuZ2V0TW9udGgoKSArIGZhY3Rvcik7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBDQUxFTkRBUl9WSUVXX1lFQVI6XG4gICAgICAgIGFjdGl2ZURhdGUuc2V0RnVsbFllYXIoYWN0aXZlRGF0ZS5nZXRGdWxsWWVhcigpICsgZmFjdG9yKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIENBTEVOREFSX1ZJRVdfREVDRU5OSUE6XG4gICAgICAgIGFjdGl2ZURhdGUuc2V0RnVsbFllYXIoYWN0aXZlRGF0ZS5nZXRGdWxsWWVhcigpICsgMTggKiBmYWN0b3IpO1xuICAgICAgICBicmVhaztcbiAgICB9XG5cbiAgICB0aGlzLmFjdGl2ZURhdGUgPSBhY3RpdmVEYXRlO1xuICAgIHRoaXMudXBkYXRlSGVhZGVyTGFiZWwoKTtcbiAgfVxuXG4gIHN3aXRjaFZpZXcoZmFjdG9yOiBudW1iZXIgPSAxKTogdm9pZCB7XG4gICAgY29uc3Qgdmlld3MgPSBbQ0FMRU5EQVJfVklFV19NT05USCwgQ0FMRU5EQVJfVklFV19ZRUFSLCBDQUxFTkRBUl9WSUVXX0RFQ0VOTklBXTtcblxuICAgIGNvbnN0IGN1cnJWaWV3ID0gdmlld3MuaW5kZXhPZih0aGlzLmFjdGl2ZVZpZXcpO1xuICAgIGxldCBuZXh0VmlldyA9IGN1cnJWaWV3ICsgZmFjdG9yID49IHZpZXdzLmxlbmd0aCA/IDAgOiBjdXJyVmlldyArIGZhY3RvcjtcbiAgICBuZXh0VmlldyA9IG5leHRWaWV3IDwgMCA/IHZpZXdzLmxlbmd0aCAtIDEgOiBuZXh0VmlldztcblxuICAgIHRoaXMuYWN0aXZlVmlldyA9IHZpZXdzW25leHRWaWV3XTtcblxuICAgIC8vIHJlc2V0IGFjdGl2ZURhdGUgd2hlbiByZXR1cm5pbmcgdG8gbW9udGggdmlldyB3aXRob3V0IG1vZGVsIHVwZGF0ZVxuICAgIGlmICh0aGlzLnNlbGVjdGVkRGF0ZSAmJiBuZXh0VmlldyA9PT0gMCAmJiBmYWN0b3IgPT09IDEpIHtcbiAgICAgIHRoaXMuYWN0aXZlRGF0ZSA9IHRoaXMuc2VsZWN0ZWREYXRlO1xuICAgIH1cblxuICAgIHRoaXMudXBkYXRlSGVhZGVyTGFiZWwoKTtcbiAgfVxuXG4gIHVwZGF0ZUhlYWRlckxhYmVsKCk6IHZvaWQge1xuICAgIHN3aXRjaCAodGhpcy5hY3RpdmVWaWV3KSB7XG4gICAgICBjYXNlIENBTEVOREFSX1ZJRVdfTU9OVEg6XG4gICAgICAgIHRoaXMuaGVhZGVyTGFiZWwgPSB0aGlzLm1vbnRoTGFiZWxzW3RoaXMuYWN0aXZlRGF0ZS5nZXRNb250aCgpXSArICcgJyArIHRoaXMuYWN0aXZlRGF0ZS5nZXRGdWxsWWVhcigpO1xuICAgICAgICB0aGlzLmFyaWFQcmV2aW91c0xhYmVsID0gdGhpcy5hcmlhUHJldmlvdXNMYWJlbHNbMF07XG4gICAgICAgIHRoaXMuYXJpYU5leHRMYWJlbCA9IHRoaXMuYXJpYU5leHRMYWJlbHNbMF07XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBDQUxFTkRBUl9WSUVXX1lFQVI6XG4gICAgICAgIHRoaXMuaGVhZGVyTGFiZWwgPSBTdHJpbmcodGhpcy5hY3RpdmVEYXRlLmdldEZ1bGxZZWFyKCkpO1xuICAgICAgICB0aGlzLmFyaWFQcmV2aW91c0xhYmVsID0gdGhpcy5hcmlhUHJldmlvdXNMYWJlbHNbMV07XG4gICAgICAgIHRoaXMuYXJpYU5leHRMYWJlbCA9IHRoaXMuYXJpYU5leHRMYWJlbHNbMV07XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBDQUxFTkRBUl9WSUVXX0RFQ0VOTklBOlxuICAgICAgICBjb25zdCBzdGFydFllYXIgPSB0aGlzLmFjdGl2ZURhdGUuZ2V0RnVsbFllYXIoKTtcbiAgICAgICAgdGhpcy5oZWFkZXJMYWJlbCA9IGAke3N0YXJ0WWVhcn0gLSAke3N0YXJ0WWVhciArIDE3fWA7XG4gICAgICAgIHRoaXMuYXJpYVByZXZpb3VzTGFiZWwgPSB0aGlzLmFyaWFQcmV2aW91c0xhYmVsc1syXTtcbiAgICAgICAgdGhpcy5hcmlhTmV4dExhYmVsID0gdGhpcy5hcmlhTmV4dExhYmVsc1syXTtcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG5cbiAgcGlja0RhdGUoZGF0ZTogRGF0ZSk6IHZvaWQge1xuICAgIGNvbnN0IGNvbXBsZXRlID0gdGhpcy5hY3RpdmVWaWV3ID09PSBDQUxFTkRBUl9WSUVXX01PTlRIO1xuXG4gICAgaWYgKGNvbXBsZXRlKSB7XG4gICAgICBjb25zdCBicnVzc2Vsc0RhdGUgPSBuZXcgVFpEYXRlKGRhdGUsICdFdXJvcGUvQnJ1c3NlbHMnKTtcbiAgICAgIGNvbnN0IHllYXIgPSBicnVzc2Vsc0RhdGUuZ2V0RnVsbFllYXIoKTtcbiAgICAgIGNvbnN0IG1vbnRoID0gYnJ1c3NlbHNEYXRlLmdldE1vbnRoKCk7XG4gICAgICBjb25zdCBkYXkgPSBicnVzc2Vsc0RhdGUuZ2V0RGF0ZSgpO1xuICAgICAgY29uc3QgdGltZXpvbmVBd2FyZURhdGUgPSBuZXcgRGF0ZShEYXRlSGVscGVyLnRvVXRjTWlkbmlnaHRJbkJydXNzZWxzKHllYXIsIG1vbnRoLCBkYXkpKTtcblxuICAgICAgdGhpcy5zZWxlY3REYXRlLmVtaXQoe1xuICAgICAgICBkYXRlOiB0aW1lem9uZUF3YXJlRGF0ZSxcbiAgICAgICAgY29tcGxldGUsXG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zZWxlY3REYXRlLmVtaXQoe1xuICAgICAgICBkYXRlLFxuICAgICAgICBjb21wbGV0ZSxcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIGlmICghY29tcGxldGUpIHtcbiAgICAgIHRoaXMuYWN0aXZlRGF0ZSA9IGRhdGU7XG4gICAgICB0aGlzLnN3aXRjaFZpZXcoLTEpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgaW5pdENvbnRyb2woKTogdm9pZCB7XG4gICAgdGhpcy53ZWVrZGF5TGFiZWxzID0gdGhpcy53ZWVrZGF5TGFiZWxzIHx8IHRoaXMubW9kdWxlV2Vla2RheUxhYmVscztcbiAgICB0aGlzLm1vbnRoTGFiZWxzID0gdGhpcy5tb250aExhYmVscyB8fCB0aGlzLm1vZHVsZU1vbnRoTGFiZWxzO1xuICAgIHRoaXMuYWN0aXZlRGF0ZSA9IHRoaXMuY2FsZW5kYXJTZXJ2aWNlLmdldENsb3Nlc3REYXRlRm9yUmFuZ2UodGhpcy5hY3RpdmVEYXRlLCB0aGlzLnJhbmdlKTtcbiAgICBpZiAodGhpcy5zZWxlY3RlZERhdGUpIHtcbiAgICAgIHRoaXMuYWN0aXZlRGF0ZSA9IHRoaXMuc2VsZWN0ZWREYXRlO1xuICAgICAgdGhpcy51cGRhdGVBY3RpdmVEYXRlKCk7XG4gICAgfVxuICAgIHRoaXMudXBkYXRlSGVhZGVyTGFiZWwoKTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cIm0tZGF0ZXBpY2tlcl9fbmF2XCI+XG4gIDxidXR0b24gKGNsaWNrKT1cInN3aXRjaFZpZXcoKVwiIGNsYXNzPVwibS1kYXRlcGlja2VyX19uYXYtdGl0bGVcIiB0eXBlPVwiYnV0dG9uXCI+XG4gICAge3sgaGVhZGVyTGFiZWwgfCB0aXRsZWNhc2UgfX1cbiAgICA8YXVpLWljb24gbmFtZT1cImFpLWFycm93LWRvd24tMVwiIC8+XG4gIDwvYnV0dG9uPlxuXG4gIDxkaXYgY2xhc3M9XCJtLWRhdGVwaWNrZXJfX25hdi1wYWdpbmF0aW9uXCI+XG4gICAgPGJ1dHRvblxuICAgICAgKGNsaWNrKT1cInVwZGF0ZUFjdGl2ZURhdGUoLTEpXCJcbiAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiYXJpYVByZXZpb3VzTGFiZWxcIlxuICAgICAgY2xhc3M9XCJhLWJ1dHRvbiBhLWJ1dHRvbi0tdGV4dCBhLWJ1dHRvbi0tcHJpbWFyeSBoYXMtaWNvblwiXG4gICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICA+XG4gICAgICA8YXVpLWljb24gbmFtZT1cImFpLWFycm93LWxlZnQtMVwiPjwvYXVpLWljb24+XG4gICAgPC9idXR0b24+XG4gICAgPGJ1dHRvblxuICAgICAgKGNsaWNrKT1cInVwZGF0ZUFjdGl2ZURhdGUoMSlcIlxuICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJhcmlhTmV4dExhYmVsXCJcbiAgICAgIGNsYXNzPVwiYS1idXR0b24gYS1idXR0b24tLXRleHQgYS1idXR0b24tLXByaW1hcnkgaGFzLWljb25cIlxuICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgPlxuICAgICAgPGF1aS1pY29uIG5hbWU9XCJhaS1hcnJvdy1yaWdodC0xXCI+PC9hdWktaWNvbj5cbiAgICA8L2J1dHRvbj5cbiAgPC9kaXY+XG48L2Rpdj5cbjxhdWktY2FsZW5kYXItbW9udGhcbiAgKHNlbGVjdERhdGUpPVwicGlja0RhdGUoJGV2ZW50KVwiXG4gICpuZ0lmPVwiYWN0aXZlVmlldyA9PT0gQ0FMRU5EQVJfVklFV19NT05USFwiXG4gIFthY3RpdmVEYXRlXT1cImFjdGl2ZURhdGVcIlxuICBbcmFuZ2VdPVwicmFuZ2VcIlxuICBbaW50ZXJ2YWxdPVwiaW50ZXJ2YWxcIlxuICBbc2VsZWN0ZWREYXRlXT1cInNlbGVjdGVkRGF0ZVwiXG4gIFt3ZWVrZGF5TGFiZWxzXT1cIndlZWtkYXlMYWJlbHNcIlxuPjwvYXVpLWNhbGVuZGFyLW1vbnRoPlxuPGF1aS1jYWxlbmRhci15ZWFyXG4gIChzZWxlY3REYXRlKT1cInBpY2tEYXRlKCRldmVudClcIlxuICAqbmdJZj1cImFjdGl2ZVZpZXcgPT09IENBTEVOREFSX1ZJRVdfWUVBUlwiXG4gIFthY3RpdmVEYXRlXT1cImFjdGl2ZURhdGVcIlxuICBbbW9udGhMYWJlbHNdPVwibW9udGhMYWJlbHNcIlxuICBbc2VsZWN0ZWREYXRlXT1cInNlbGVjdGVkRGF0ZVwiXG4+PC9hdWktY2FsZW5kYXIteWVhcj5cbjxhdWktY2FsZW5kYXItZGVjZW5uaWFcbiAgKHNlbGVjdERhdGUpPVwicGlja0RhdGUoJGV2ZW50KVwiXG4gICpuZ0lmPVwiYWN0aXZlVmlldyA9PT0gQ0FMRU5EQVJfVklFV19ERUNFTk5JQVwiXG4gIFthY3RpdmVEYXRlXT1cImFjdGl2ZURhdGVcIlxuICBbc2VsZWN0ZWREYXRlXT1cInNlbGVjdGVkRGF0ZVwiXG4+PC9hdWktY2FsZW5kYXItZGVjZW5uaWE+XG4iXX0=
@@ -1,5 +1,6 @@
1
1
  import { ChangeDetectionStrategy, Component, EventEmitter, Inject, Input, Output, } from '@angular/core';
2
2
  import { get } from 'lodash-es';
3
+ import { TZDate } from '@date-fns/tz';
3
4
  import { DateHelper } from '@acpaas-ui/ngx-utils';
4
5
  import { CALENDAR_DEFAULT_WEEKDAY_LABELS, CALENDAR_WEEKDAY_LABELS } from '../../calendar.conf';
5
6
  import * as i0 from "@angular/core";
@@ -28,7 +29,7 @@ function CalendarMonthComponent_tr_6_td_1_Template(rf, ctx) { if (rf & 1) {
28
29
  const day_r5 = ctx.$implicit;
29
30
  const ctx_r4 = i0.ɵɵnextContext(2);
30
31
  i0.ɵɵadvance(1);
31
- i0.ɵɵproperty("disabled", !day_r5.available)("ngClass", i0.ɵɵpureFunction4(3, _c0, !day_r5.date || day_r5.padding, !day_r5.padding && ctx_r4.selectedDate && day_r5.date === ctx_r4.selectedDay && ctx_r4.selectedDay && ctx_r4.selectedDate.getFullYear() === ctx_r4.activeDate.getFullYear(), !day_r5.padding && day_r5.date === ctx_r4.current, !day_r5.available));
32
+ i0.ɵɵproperty("disabled", !day_r5.available)("ngClass", i0.ɵɵpureFunction4(3, _c0, !day_r5.date || day_r5.padding, !day_r5.padding && ctx_r4.selectedDate && day_r5.date === ctx_r4.selectedDay && ctx_r4.selectedDay && ctx_r4.selectedYear === ctx_r4.activeYear, !day_r5.padding && day_r5.date === ctx_r4.current, !day_r5.available));
32
33
  i0.ɵɵadvance(1);
33
34
  i0.ɵɵtextInterpolate1(" ", day_r5.date, " ");
34
35
  } }
@@ -41,6 +42,7 @@ function CalendarMonthComponent_tr_6_Template(rf, ctx) { if (rf & 1) {
41
42
  i0.ɵɵadvance(1);
42
43
  i0.ɵɵproperty("ngForOf", week_r3);
43
44
  } }
45
+ const BRUSSELS_TIMEZONE = 'Europe/Brussels';
44
46
  export class CalendarMonthComponent {
45
47
  constructor(moduleWeekdayLabels = CALENDAR_DEFAULT_WEEKDAY_LABELS, calendarService) {
46
48
  this.moduleWeekdayLabels = moduleWeekdayLabels;
@@ -49,6 +51,8 @@ export class CalendarMonthComponent {
49
51
  this.selectDate = new EventEmitter();
50
52
  this.dates = [];
51
53
  this.selectedDay = -1;
54
+ this.selectedYear = -1;
55
+ this.activeYear = -1;
52
56
  }
53
57
  ngOnInit() {
54
58
  this.weekdayLabels = this.weekdayLabels || this.moduleWeekdayLabels;
@@ -59,9 +63,26 @@ export class CalendarMonthComponent {
59
63
  const activeDateChanged = this.hasChanged(changes, 'activeDate');
60
64
  const monthChanged = activeDateChanged &&
61
65
  !DateHelper.datesAreEqual([changes.activeDate.currentValue, changes.activeDate.previousValue], 'M');
62
- const selectedDayChanged = this.selectedDate && this.activeDate.getMonth() === this.selectedDate.getMonth();
66
+ let selectedDayChanged = false;
67
+ if (this.activeDate) {
68
+ const activeDateBrussels = new TZDate(this.activeDate, BRUSSELS_TIMEZONE);
69
+ this.activeYear = activeDateBrussels.getFullYear();
70
+ if (this.selectedDate) {
71
+ const selectedDateBrussels = new TZDate(this.selectedDate, BRUSSELS_TIMEZONE);
72
+ selectedDayChanged = selectedDateBrussels.getMonth() === activeDateBrussels.getMonth();
73
+ this.selectedYear = selectedDateBrussels.getFullYear();
74
+ }
75
+ else {
76
+ this.selectedYear = -1;
77
+ }
78
+ }
79
+ else {
80
+ this.activeYear = -1;
81
+ this.selectedYear = -1;
82
+ }
63
83
  this.current = this.getCurrentDate();
64
- this.selectedDay = selectedDayChanged ? this.selectedDate.getDate() : -1;
84
+ this.selectedDay =
85
+ selectedDayChanged && this.selectedDate ? new TZDate(this.selectedDate, BRUSSELS_TIMEZONE).getDate() : -1;
65
86
  let newDates = [];
66
87
  if (selectedDateChanged || intervalChanged || (activeDateChanged && monthChanged)) {
67
88
  newDates = this.calendarService.getMonthForDate(this.activeDate);
@@ -138,7 +159,7 @@ export class CalendarMonthComponent {
138
159
  } }, dependencies: [i2.NgClass, i2.NgForOf, i2.SlicePipe], encapsulation: 2, changeDetection: 0 });
139
160
  (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(CalendarMonthComponent, [{
140
161
  type: Component,
141
- args: [{ selector: 'aui-calendar-month', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"m-datepicker__grid\">\n <table>\n <thead>\n <tr class=\"m-datepicker__grid-head\">\n <th *ngFor=\"let day of weekdayLabels\" scope=\"col\">\n <span [title]=\"day\" class=\"u-text-capitalize\">{{ day | slice : 0 : 2 }}</span>\n </th>\n </tr>\n </thead>\n\n <tbody class=\"m-datepicker__grid-body\">\n <tr *ngFor=\"let week of dates\">\n <td *ngFor=\"let day of week\">\n <button\n (click)=\"pickDate($event, day)\"\n [disabled]=\"!day.available\"\n [ngClass]=\"{\n 'is-faded': !day.date || day.padding,\n 'is-selected':\n !day.padding &&\n selectedDate &&\n day.date === selectedDay &&\n selectedDay &&\n selectedDate.getFullYear() === activeDate.getFullYear(),\n 'is-current': !day.padding && day.date === current,\n 'is-unavailable': !day.available\n }\"\n type=\"button\"\n >\n {{ day.date }}\n </button>\n </td>\n </tr>\n </tbody>\n </table>\n</div>\n" }]
162
+ args: [{ selector: 'aui-calendar-month', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"m-datepicker__grid\">\n <table>\n <thead>\n <tr class=\"m-datepicker__grid-head\">\n <th *ngFor=\"let day of weekdayLabels\" scope=\"col\">\n <span [title]=\"day\" class=\"u-text-capitalize\">{{ day | slice : 0 : 2 }}</span>\n </th>\n </tr>\n </thead>\n\n <tbody class=\"m-datepicker__grid-body\">\n <tr *ngFor=\"let week of dates\">\n <td *ngFor=\"let day of week\">\n <button\n (click)=\"pickDate($event, day)\"\n [disabled]=\"!day.available\"\n [ngClass]=\"{\n 'is-faded': !day.date || day.padding,\n 'is-selected':\n !day.padding && selectedDate && day.date === selectedDay && selectedDay && selectedYear === activeYear,\n 'is-current': !day.padding && day.date === current,\n 'is-unavailable': !day.available\n }\"\n type=\"button\"\n >\n {{ day.date }}\n </button>\n </td>\n </tr>\n </tbody>\n </table>\n</div>\n" }]
142
163
  }], function () { return [{ type: undefined, decorators: [{
143
164
  type: Inject,
144
165
  args: [CALENDAR_WEEKDAY_LABELS]
@@ -155,4 +176,4 @@ export class CalendarMonthComponent {
155
176
  }], selectDate: [{
156
177
  type: Output
157
178
  }] }); })();
158
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9udGguY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL21vbnRoL21vbnRoLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9tb250aC9tb250aC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxZQUFZLEVBQ1osTUFBTSxFQUNOLEtBQUssRUFHTCxNQUFNLEdBRVAsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNoQyxPQUFPLEVBQUUsVUFBVSxFQUF5QixNQUFNLHNCQUFzQixDQUFDO0FBQ3pFLE9BQU8sRUFBRSwrQkFBK0IsRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHFCQUFxQixDQUFDOzs7OztJQ1R2Riw2QkFBa0QsY0FBQTtJQUNGLFlBQXlCOztJQUFBLGlCQUFPLEVBQUE7OztJQUF4RSxlQUFhO0lBQWIsOEJBQWE7SUFBMkIsZUFBeUI7SUFBekIsd0RBQXlCOzs7OztJQU96RSwwQkFBNkIsZ0JBQUE7SUFFekIsd09BQVMsZUFBQSwrQkFBcUIsQ0FBQSxJQUFDO0lBZS9CLFlBQ0Y7SUFBQSxpQkFBUyxFQUFBOzs7O0lBZlAsZUFBMkI7SUFBM0IsNENBQTJCLDBUQUFBO0lBYzNCLGVBQ0Y7SUFERSw0Q0FDRjs7O0lBbkJKLDBCQUErQjtJQUM3QiwwRUFtQks7SUFDUCxpQkFBSzs7O0lBcEJpQixlQUFPO0lBQVAsaUNBQU87O0FEV25DLE1BQU0sT0FBTyxzQkFBc0I7SUFhakMsWUFDMkMsc0JBQXNCLCtCQUErQixFQUN0RixlQUFnQztRQURDLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBa0M7UUFDdEYsb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBVGpDLGtCQUFhLEdBQXdCLCtCQUErQixD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LENBQUM7SUFDekMsQ0FBQzs7K0dBOUdVLHNCQUFzQix1QkFjdkIsdUJBQXVCO3dHQWR0QixzQkFBc0I7UUN2Qm5DLDhCQUFnQyxZQUFBLFlBQUEsWUFBQTtRQUl4QixxRUFFSztRQUNQLGlCQUFLLEVBQUE7UUFHUCxnQ0FBdUM7UUFDckMscUVBcUJLO1FBQ1AsaUJBQVEsRUFBQSxFQUFBOztRQTdCZ0IsZUFBZ0I7UUFBaEIsMkNBQWdCO1FBT2pCLGVBQVE7UUFBUixtQ0FBUTs7dUZEWXRCLHNCQUFzQjtjQUxsQyxTQUFTOzJCQUNFLG9CQUFvQixtQkFFYix1QkFBdUIsQ0FBQyxNQUFNOztzQkFnQjVDLE1BQU07dUJBQUMsdUJBQXVCO3NEQWJ4QixZQUFZO2tCQUFwQixLQUFLO1lBQ0csVUFBVTtrQkFBbEIsS0FBSztZQUNHLEtBQUs7a0JBQWIsS0FBSztZQUVOLFFBQVE7a0JBRFAsS0FBSztZQUVHLGFBQWE7a0JBQXJCLEtBQUs7WUFDSSxVQUFVO2tCQUFuQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBJbmplY3QsXG4gIElucHV0LFxuICBPbkNoYW5nZXMsXG4gIE9uSW5pdCxcbiAgT3V0cHV0LFxuICBTaW1wbGVDaGFuZ2VzLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGdldCB9IGZyb20gJ2xvZGFzaC1lcyc7XG5pbXBvcnQgeyBEYXRlSGVscGVyLCBEYXRlUmFuZ2UsIERheSwgTW9udGggfSBmcm9tICdAYWNwYWFzLXVpL25neC11dGlscyc7XG5pbXBvcnQgeyBDQUxFTkRBUl9ERUZBVUxUX1dFRUtEQVlfTEFCRUxTLCBDQUxFTkRBUl9XRUVLREFZX0xBQkVMUyB9IGZyb20gJy4uLy4uL2NhbGVuZGFyLmNvbmYnO1xuaW1wb3J0IHsgQ2FsZW5kYXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvY2FsZW5kYXIuc2VydmljZSc7XG5pbXBvcnQgeyBEYXRlUmFuZ2VNYXAsIFdlZWtkYXlMYWJlbHNDb25maWcgfSBmcm9tICcuLi8uLi90eXBlcy9jYWxlbmRhci50eXBlcyc7XG5pbXBvcnQgeyBJbnRlcnZhbCB9IGZyb20gJ0BhY3BhYXMtdWkvbmd4LXV0aWxzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXVpLWNhbGVuZGFyLW1vbnRoJyxcbiAgdGVtcGxhdGVVcmw6ICcuL21vbnRoLmNvbXBvbmVudC5odG1sJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIENhbGVuZGFyTW9udGhDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcyB7XG4gIEBJbnB1dCgpIHNlbGVjdGVkRGF0ZTogRGF0ZTtcbiAgQElucHV0KCkgYWN0aXZlRGF0ZTogRGF0ZTtcbiAgQElucHV0KCkgcmFuZ2U6IERhdGVSYW5nZTtcbiAgQElucHV0KClcbiAgaW50ZXJ2YWw/OiBJbnRlcnZhbC5JSW50ZXJ2YWw8RGF0ZT47XG4gIEBJbnB1dCgpIHdlZWtkYXlMYWJlbHM6IFdlZWtkYXlMYWJlbHNDb25maWcgPSBDQUxFTkRBUl9ERUZBVUxUX1dFRUtEQVlfTEFCRUxTO1xuICBAT3V0cHV0KCkgc2VsZWN0RGF0ZSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBwdWJsaWMgZGF0ZXM6IE1vbnRoID0gW107XG4gIHB1YmxpYyBzZWxlY3RlZERheSA9IC0xO1xuICBwdWJsaWMgY3VycmVudDogbnVtYmVyO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIEBJbmplY3QoQ0FMRU5EQVJfV0VFS0RBWV9MQUJFTFMpIHByaXZhdGUgbW9kdWxlV2Vla2RheUxhYmVscyA9IENBTEVOREFSX0RFRkFVTFRfV0VFS0RBWV9MQUJFTFMsXG4gICAgcHJpdmF0ZSBjYWxlbmRhclNlcnZpY2U6IENhbGVuZGFyU2VydmljZVxuICApIHt9XG5cbiAgcHVibGljIG5nT25Jbml0KCkge1xuICAgIHRoaXMud2Vla2RheUxhYmVscyA9IHRoaXMud2Vla2RheUxhYmVscyB8fCB0aGlzLm1vZHVsZVdlZWtkYXlMYWJlbHM7XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XG4gICAgY29uc3Qgc2VsZWN0ZWREYXRlQ2hhbmdlZCA9IHRoaXMuaGFzQ2hhbmdlZChjaGFuZ2VzLCAnc2VsZWN0ZWREYXRlJyk7XG4gICAgY29uc3QgaW50ZXJ2YWxDaGFuZ2VkID0gISFjaGFuZ2VzLmludGVydmFsICYmIGNoYW5nZXMuaW50ZXJ2YWwuY3VycmVudFZhbHVlICE9PSBjaGFuZ2VzLmludGVydmFsLnByZXZpb3VzVmFsdWU7XG4gICAgY29uc3QgYWN0aXZlRGF0ZUNoYW5nZWQgPSB0aGlzLmhhc0NoYW5nZWQoY2hhbmdlcywgJ2FjdGl2ZURhdGUnKTtcbiAgICBjb25zdCBtb250aENoYW5nZWQgPVxuICAgICAgYWN0aXZlRGF0ZUNoYW5nZWQgJiZcbiAgICAgICFEYXRlSGVscGVyLmRhdGVzQXJlRXF1YWwoW2NoYW5nZXMuYWN0aXZlRGF0ZS5jdXJyZW50VmFsdWUsIGNoYW5nZXMuYWN0aXZlRGF0ZS5wcmV2aW91c1ZhbHVlXSwgJ00nKTtcbiAgICBjb25zdCBzZWxlY3RlZERheUNoYW5nZWQgPSB0aGlzLnNlbGVjdGVkRGF0ZSAmJiB0aGlzLmFjdGl2ZURhdGUuZ2V0TW9udGgoKSA9PT0gdGhpcy5zZWxlY3RlZERhdGUuZ2V0TW9udGgoKTtcblxuICAgIHRoaXMuY3VycmVudCA9IHRoaXMuZ2V0Q3VycmVudERhdGUoKTtcbiAgICB0aGlzLnNlbGVjdGVkRGF5ID0gc2VsZWN0ZWREYXlDaGFuZ2VkID8gdGhpcy5zZWxlY3RlZERhdGUuZ2V0RGF0ZSgpIDogLTE7XG5cbiAgICBsZXQgbmV3RGF0ZXMgPSBbXTtcblxuICAgIGlmIChzZWxlY3RlZERhdGVDaGFuZ2VkIHx8IGludGVydmFsQ2hhbmdlZCB8fCAoYWN0aXZlRGF0ZUNoYW5nZWQgJiYgbW9udGhDaGFuZ2VkKSkge1xuICAgICAgbmV3RGF0ZXMgPSB0aGlzLmNhbGVuZGFyU2VydmljZS5nZXRNb250aEZvckRhdGUodGhpcy5hY3RpdmVEYXRlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IHJhbmdlOiBEYXRlUmFuZ2VNYXAgfCBudWxsID0gdGhpcy5jYWxlbmRhclNlcnZpY2UuZ2V0UmFuZ2VzRm9yRGF0ZSh0aGlzLmFjdGl2ZURhdGUsIHRoaXMucmFuZ2UpO1xuICAgIHRoaXMuZGF0ZXMgPSBuZXdEYXRlcy5tYXAoKHdlZWspID0+XG4gICAgICB3ZWVrLm1hcCgoZGF5KSA9PiB7XG4gICAgICAgIGNvbnN0IGN1cnJlbnREYXRlID0gbmV3IERhdGUoKTtcbiAgICAgICAgdGhpcy5hY3RpdmVEYXRlLnNldEhvdXJzKGN1cnJlbnREYXRlLmdldEhvdXJzKCksIGN1cnJlbnREYXRlLmdldE1pbnV0ZXMoKSwgY3VycmVudERhdGUuZ2V0U2Vjb25kcygpKTtcbiAgICAgICAgY29uc3QgZGF0ZTogRGF0ZSA9IG5ldyBEYXRlKHRoaXMuYWN0aXZlRGF0ZS5nZXRGdWxsWWVhcigpLCB0aGlzLmFjdGl2ZURhdGUuZ2V0TW9udGgoKSwgZGF5LmRhdGUpO1xuXG4gICAgICAgIGlmIChkYXkucGFkZGluZykge1xuICAgICAgICAgIGlmIChkYXkuZGF0ZSA+IDIwKSB7XG4gICAgICAgICAgICBkYXRlLnNldE1vbnRoKHRoaXMuYWN0aXZlRGF0ZS5nZXRNb250aCgpIC0gMSk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGRhdGUuc2V0TW9udGgodGhpcy5hY3RpdmVEYXRlLmdldE1vbnRoKCkgKyAxKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBkYXRlLnNldERhdGUoZGF5LmRhdGUpO1xuXG4gICAgICAgIGNvbnN0IGF2YWlsYWJsZTogYm9vbGVhbiA9XG4gICAgICAgICAgdGhpcy5kYXlJc0F2YWlsYWJsZUZvclJhbmdlKGRheSwgcmFuZ2UpICYmICh0aGlzLmludGVydmFsID8gIXRoaXMuaW50ZXJ2YWwuaXNJblJhbmdlKGRhdGUpIDogdHJ1ZSk7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgLi4uZGF5LFxuICAgICAgICAgIGF2YWlsYWJsZSxcbiAgICAgICAgfTtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIHBpY2tEYXRlKGV2ZW50OiBNb3VzZUV2ZW50LCBkYXk6IERheSk6IHZvaWQge1xuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpOyAvLyBTdG9wIHByb3BhZ2F0aW9uIHNvIHRoZSBtb2RhbCBkb2Vzbid0IGNsb3NlXG5cbiAgICBsZXQgc2VsZWN0ZWREYXRlID0gbmV3IERhdGUodGhpcy5hY3RpdmVEYXRlKTtcblxuICAgIGlmIChkYXkucGFkZGluZykge1xuICAgICAgY29uc3QgbW9udGggPSBkYXkuZGF0ZSA+IDIwID8gLTEgOiAxO1xuICAgICAgc2VsZWN0ZWREYXRlID0gRGF0ZUhlbHBlci51cGRhdGVNb250aChzZWxlY3RlZERhdGUsIHNlbGVjdGVkRGF0ZS5nZXRNb250aCgpICsgbW9udGgpO1xuICAgIH1cblxuICAgIHRoaXMuc2VsZWN0RGF0ZS5lbWl0KERhdGVIZWxwZXIudXBkYXRlRGF0ZShzZWxlY3RlZERhdGUsIGRheS5kYXRlKSk7XG4gIH1cblxuICBwcml2YXRlIGhhc0NoYW5nZWQoY2hhbmdlczogU2ltcGxlQ2hhbmdlcywgcHJvcDogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgY29uc3QgY3VycmVudCA9IGdldChjaGFuZ2VzLCBgJHtwcm9wfS5jdXJyZW50VmFsdWVgKTtcbiAgICBjb25zdCBwcmV2aW91cyA9IGdldChjaGFuZ2VzLCBgJHtwcm9wfS5wcmV2aW91c1ZhbHVlYCk7XG4gICAgY29uc3QgY3VycmVudFZhbHVlID0gY3VycmVudCBpbnN0YW5jZW9mIERhdGUgPyBjdXJyZW50LnZhbHVlT2YoKSA6IDA7XG4gICAgY29uc3QgcHJldmlvdXNWYWx1ZSA9IHByZXZpb3VzIGluc3RhbmNlb2YgRGF0ZSA/IHByZXZpb3VzLnZhbHVlT2YoKSA6IDA7XG5cbiAgICByZXR1cm4gISFjdXJyZW50VmFsdWUgJiYgY3VycmVudFZhbHVlICE9PSBwcmV2aW91c1ZhbHVlO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRDdXJyZW50RGF0ZSgpOiBudW1iZXIge1xuICAgIGNvbnN0IGN1cnJlbnQgPSBuZXcgRGF0ZSgpO1xuICAgIGNvbnN0IG1vbnRoSGFzQ2hhbmdlZCA9ICFEYXRlSGVscGVyLmRhdGVzQXJlRXF1YWwoW3RoaXMuYWN0aXZlRGF0ZSwgY3VycmVudF0sIFsnTScsICdZJ10pO1xuXG4gICAgcmV0dXJuIG1vbnRoSGFzQ2hhbmdlZCA/IC0xIDogY3VycmVudC5nZXREYXRlKCk7XG4gIH1cblxuICBwcml2YXRlIGRheUlzQXZhaWxhYmxlRm9yUmFuZ2UoZGF5OiBEYXksIHJhbmdlOiBEYXRlUmFuZ2VNYXApOiBib29sZWFuIHtcbiAgICBpZiAoIXJhbmdlKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICBsZXQgZGF0ZVJhbmdlID0gcmFuZ2UuY3VycmVudDtcblxuICAgIGlmIChkYXkucGFkZGluZykge1xuICAgICAgZGF0ZVJhbmdlID0gZGF5LmRhdGUgPiAyMCA/IHJhbmdlLmJlZm9yZSA6IHJhbmdlLmFmdGVyO1xuICAgIH1cblxuICAgIHJldHVybiBkYXRlUmFuZ2UuaW5kZXhPZihkYXkuZGF0ZSkgPCAwO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwibS1kYXRlcGlja2VyX19ncmlkXCI+XG4gIDx0YWJsZT5cbiAgICA8dGhlYWQ+XG4gICAgICA8dHIgY2xhc3M9XCJtLWRhdGVwaWNrZXJfX2dyaWQtaGVhZFwiPlxuICAgICAgICA8dGggKm5nRm9yPVwibGV0IGRheSBvZiB3ZWVrZGF5TGFiZWxzXCIgc2NvcGU9XCJjb2xcIj5cbiAgICAgICAgICA8c3BhbiBbdGl0bGVdPVwiZGF5XCIgY2xhc3M9XCJ1LXRleHQtY2FwaXRhbGl6ZVwiPnt7IGRheSB8IHNsaWNlIDogMCA6IDIgfX08L3NwYW4+XG4gICAgICAgIDwvdGg+XG4gICAgICA8L3RyPlxuICAgIDwvdGhlYWQ+XG5cbiAgICA8dGJvZHkgY2xhc3M9XCJtLWRhdGVwaWNrZXJfX2dyaWQtYm9keVwiPlxuICAgICAgPHRyICpuZ0Zvcj1cImxldCB3ZWVrIG9mIGRhdGVzXCI+XG4gICAgICAgIDx0ZCAqbmdGb3I9XCJsZXQgZGF5IG9mIHdlZWtcIj5cbiAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAoY2xpY2spPVwicGlja0RhdGUoJGV2ZW50LCBkYXkpXCJcbiAgICAgICAgICAgIFtkaXNhYmxlZF09XCIhZGF5LmF2YWlsYWJsZVwiXG4gICAgICAgICAgICBbbmdDbGFzc109XCJ7XG4gICAgICAgICAgICAgICdpcy1mYWRlZCc6ICFkYXkuZGF0ZSB8fCBkYXkucGFkZGluZyxcbiAgICAgICAgICAgICAgJ2lzLXNlbGVjdGVkJzpcbiAgICAgICAgICAgICAgICAhZGF5LnBhZGRpbmcgJiZcbiAgICAgICAgICAgICAgICBzZWxlY3RlZERhdGUgJiZcbiAgICAgICAgICAgICAgICBkYXkuZGF0ZSA9PT0gc2VsZWN0ZWREYXkgJiZcbiAgICAgICAgICAgICAgICBzZWxlY3RlZERheSAmJlxuICAgICAgICAgICAgICAgIHNlbGVjdGVkRGF0ZS5nZXRGdWxsWWVhcigpID09PSBhY3RpdmVEYXRlLmdldEZ1bGxZZWFyKCksXG4gICAgICAgICAgICAgICdpcy1jdXJyZW50JzogIWRheS5wYWRkaW5nICYmIGRheS5kYXRlID09PSBjdXJyZW50LFxuICAgICAgICAgICAgICAnaXMtdW5hdmFpbGFibGUnOiAhZGF5LmF2YWlsYWJsZVxuICAgICAgICAgICAgfVwiXG4gICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICB7eyBkYXkuZGF0ZSB9fVxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L3RkPlxuICAgICAgPC90cj5cbiAgICA8L3Rib2R5PlxuICA8L3RhYmxlPlxuPC9kaXY+XG4iXX0=
179
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9udGguY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL21vbnRoL21vbnRoLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9tb250aC9tb250aC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxZQUFZLEVBQ1osTUFBTSxFQUNOLEtBQUssRUFHTCxNQUFNLEdBRVAsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNoQyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ3RDLE9BQU8sRUFBRSxVQUFVLEVBQXlCLE1BQU0sc0JBQXNCLENBQUM7QUFDekUsT0FBTyxFQUFFLCtCQUErQixFQUFFLHVCQUF1QixFQUFFLE1BQU0scUJBQXFCLENBQUM7Ozs7O0lDVnZGLDZCQUFrRCxjQUFBO0lBQ0YsWUFBeUI7O0lBQUEsaUJBQU8sRUFBQTs7O0lBQXhFLGVBQWE7SUFBYiw4QkFBYTtJQUEyQixlQUF5QjtJQUF6Qix3REFBeUI7Ozs7O0lBT3pFLDBCQUE2QixnQkFBQTtJQUV6Qix3T0FBUyxlQUFBLCtCQUFxQixDQUFBLElBQUM7SUFXL0IsWUFDRjtJQUFBLGlCQUFTLEVBQUE7Ozs7SUFYUCxlQUEyQjtJQUEzQiw0Q0FBMkIsOFJBQUE7SUFVM0IsZUFDRjtJQURFLDRDQUNGOzs7SUFmSiwwQkFBK0I7SUFDN0IsMEVBZUs7SUFDUCxpQkFBSzs7O0lBaEJpQixlQUFPO0lBQVAsaUNBQU87O0FET25DLE1BQU0saUJBQWlCLEdBQUcsaUJBQWlCLENBQUM7QUFPNUMsTUFBTSxPQUFPLHNCQUFzQjtJQWVqQyxZQUMyQyxzQkFBc0IsK0JBQStCLEVBQ3RGLGVBQWdDO1FBREMsd0JBQW1C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Q0Usb0JBQW9CLG1CQUViLHVCQUF1QixDQUFDLE1BQU07O3NCQWtCNUMsTUFBTTt1QkFBQyx1QkFBdUI7c0RBZnhCLFlBQVk7a0JBQXBCLEtBQUs7WUFDRyxVQUFVO2tCQUFsQixLQUFLO1lBQ0csS0FBSztrQkFBYixLQUFLO1lBRU4sUUFBUTtrQkFEUCxLQUFLO1lBRUcsYUFBYTtrQkFBckIsS0FBSztZQUNJLFVBQVU7a0JBQW5CLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIEluamVjdCxcbiAgSW5wdXQsXG4gIE9uQ2hhbmdlcyxcbiAgT25Jbml0LFxuICBPdXRwdXQsXG4gIFNpbXBsZUNoYW5nZXMsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgZ2V0IH0gZnJvbSAnbG9kYXNoLWVzJztcbmltcG9ydCB7IFRaRGF0ZSB9IGZyb20gJ0BkYXRlLWZucy90eic7XG5pbXBvcnQgeyBEYXRlSGVscGVyLCBEYXRlUmFuZ2UsIERheSwgTW9udGggfSBmcm9tICdAYWNwYWFzLXVpL25neC11dGlscyc7XG5pbXBvcnQgeyBDQUxFTkRBUl9ERUZBVUxUX1dFRUtEQVlfTEFCRUxTLCBDQUxFTkRBUl9XRUVLREFZX0xBQkVMUyB9IGZyb20gJy4uLy4uL2NhbGVuZGFyLmNvbmYnO1xuaW1wb3J0IHsgQ2FsZW5kYXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvY2FsZW5kYXIuc2VydmljZSc7XG5pbXBvcnQgeyBEYXRlUmFuZ2VNYXAsIFdlZWtkYXlMYWJlbHNDb25maWcgfSBmcm9tICcuLi8uLi90eXBlcy9jYWxlbmRhci50eXBlcyc7XG5pbXBvcnQgeyBJbnRlcnZhbCB9IGZyb20gJ0BhY3BhYXMtdWkvbmd4LXV0aWxzJztcblxuY29uc3QgQlJVU1NFTFNfVElNRVpPTkUgPSAnRXVyb3BlL0JydXNzZWxzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXVpLWNhbGVuZGFyLW1vbnRoJyxcbiAgdGVtcGxhdGVVcmw6ICcuL21vbnRoLmNvbXBvbmVudC5odG1sJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIENhbGVuZGFyTW9udGhDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcyB7XG4gIEBJbnB1dCgpIHNlbGVjdGVkRGF0ZTogRGF0ZTtcbiAgQElucHV0KCkgYWN0aXZlRGF0ZTogRGF0ZTtcbiAgQElucHV0KCkgcmFuZ2U6IERhdGVSYW5nZTtcbiAgQElucHV0KClcbiAgaW50ZXJ2YWw/OiBJbnRlcnZhbC5JSW50ZXJ2YWw8RGF0ZT47XG4gIEBJbnB1dCgpIHdlZWtkYXlMYWJlbHM6IFdlZWtkYXlMYWJlbHNDb25maWcgPSBDQUxFTkRBUl9ERUZBVUxUX1dFRUtEQVlfTEFCRUxTO1xuICBAT3V0cHV0KCkgc2VsZWN0RGF0ZSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBwdWJsaWMgZGF0ZXM6IE1vbnRoID0gW107XG4gIHB1YmxpYyBzZWxlY3RlZERheSA9IC0xO1xuICBwdWJsaWMgY3VycmVudDogbnVtYmVyO1xuICBwdWJsaWMgc2VsZWN0ZWRZZWFyID0gLTE7XG4gIHB1YmxpYyBhY3RpdmVZZWFyID0gLTE7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgQEluamVjdChDQUxFTkRBUl9XRUVLREFZX0xBQkVMUykgcHJpdmF0ZSBtb2R1bGVXZWVrZGF5TGFiZWxzID0gQ0FMRU5EQVJfREVGQVVMVF9XRUVLREFZX0xBQkVMUyxcbiAgICBwcml2YXRlIGNhbGVuZGFyU2VydmljZTogQ2FsZW5kYXJTZXJ2aWNlXG4gICkge31cblxuICBwdWJsaWMgbmdPbkluaXQoKSB7XG4gICAgdGhpcy53ZWVrZGF5TGFiZWxzID0gdGhpcy53ZWVrZGF5TGFiZWxzIHx8IHRoaXMubW9kdWxlV2Vla2RheUxhYmVscztcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcbiAgICBjb25zdCBzZWxlY3RlZERhdGVDaGFuZ2VkID0gdGhpcy5oYXNDaGFuZ2VkKGNoYW5nZXMsICdzZWxlY3RlZERhdGUnKTtcbiAgICBjb25zdCBpbnRlcnZhbENoYW5nZWQgPSAhIWNoYW5nZXMuaW50ZXJ2YWwgJiYgY2hhbmdlcy5pbnRlcnZhbC5jdXJyZW50VmFsdWUgIT09IGNoYW5nZXMuaW50ZXJ2YWwucHJldmlvdXNWYWx1ZTtcbiAgICBjb25zdCBhY3RpdmVEYXRlQ2hhbmdlZCA9IHRoaXMuaGFzQ2hhbmdlZChjaGFuZ2VzLCAnYWN0aXZlRGF0ZScpO1xuICAgIGNvbnN0IG1vbnRoQ2hhbmdlZCA9XG4gICAgICBhY3RpdmVEYXRlQ2hhbmdlZCAmJlxuICAgICAgIURhdGVIZWxwZXIuZGF0ZXNBcmVFcXVhbChbY2hhbmdlcy5hY3RpdmVEYXRlLmN1cnJlbnRWYWx1ZSwgY2hhbmdlcy5hY3RpdmVEYXRlLnByZXZpb3VzVmFsdWVdLCAnTScpO1xuXG4gICAgbGV0IHNlbGVjdGVkRGF5Q2hhbmdlZCA9IGZhbHNlO1xuICAgIGlmICh0aGlzLmFjdGl2ZURhdGUpIHtcbiAgICAgIGNvbnN0IGFjdGl2ZURhdGVCcnVzc2VscyA9IG5ldyBUWkRhdGUodGhpcy5hY3RpdmVEYXRlLCBCUlVTU0VMU19USU1FWk9ORSk7XG4gICAgICB0aGlzLmFjdGl2ZVllYXIgPSBhY3RpdmVEYXRlQnJ1c3NlbHMuZ2V0RnVsbFllYXIoKTtcblxuICAgICAgaWYgKHRoaXMuc2VsZWN0ZWREYXRlKSB7XG4gICAgICAgIGNvbnN0IHNlbGVjdGVkRGF0ZUJydXNzZWxzID0gbmV3IFRaRGF0ZSh0aGlzLnNlbGVjdGVkRGF0ZSwgQlJVU1NFTFNfVElNRVpPTkUpO1xuICAgICAgICBzZWxlY3RlZERheUNoYW5nZWQgPSBzZWxlY3RlZERhdGVCcnVzc2Vscy5nZXRNb250aCgpID09PSBhY3RpdmVEYXRlQnJ1c3NlbHMuZ2V0TW9udGgoKTtcbiAgICAgICAgdGhpcy5zZWxlY3RlZFllYXIgPSBzZWxlY3RlZERhdGVCcnVzc2Vscy5nZXRGdWxsWWVhcigpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5zZWxlY3RlZFllYXIgPSAtMTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5hY3RpdmVZZWFyID0gLTE7XG4gICAgICB0aGlzLnNlbGVjdGVkWWVhciA9IC0xO1xuICAgIH1cblxuICAgIHRoaXMuY3VycmVudCA9IHRoaXMuZ2V0Q3VycmVudERhdGUoKTtcbiAgICB0aGlzLnNlbGVjdGVkRGF5ID1cbiAgICAgIHNlbGVjdGVkRGF5Q2hhbmdlZCAmJiB0aGlzLnNlbGVjdGVkRGF0ZSA/IG5ldyBUWkRhdGUodGhpcy5zZWxlY3RlZERhdGUsIEJSVVNTRUxTX1RJTUVaT05FKS5nZXREYXRlKCkgOiAtMTtcblxuICAgIGxldCBuZXdEYXRlcyA9IFtdO1xuXG4gICAgaWYgKHNlbGVjdGVkRGF0ZUNoYW5nZWQgfHwgaW50ZXJ2YWxDaGFuZ2VkIHx8IChhY3RpdmVEYXRlQ2hhbmdlZCAmJiBtb250aENoYW5nZWQpKSB7XG4gICAgICBuZXdEYXRlcyA9IHRoaXMuY2FsZW5kYXJTZXJ2aWNlLmdldE1vbnRoRm9yRGF0ZSh0aGlzLmFjdGl2ZURhdGUpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgcmFuZ2U6IERhdGVSYW5nZU1hcCB8IG51bGwgPSB0aGlzLmNhbGVuZGFyU2VydmljZS5nZXRSYW5nZXNGb3JEYXRlKHRoaXMuYWN0aXZlRGF0ZSwgdGhpcy5yYW5nZSk7XG4gICAgdGhpcy5kYXRlcyA9IG5ld0RhdGVzLm1hcCgod2VlaykgPT5cbiAgICAgIHdlZWsubWFwKChkYXkpID0+IHtcbiAgICAgICAgY29uc3QgY3VycmVudERhdGUgPSBuZXcgRGF0ZSgpO1xuICAgICAgICB0aGlzLmFjdGl2ZURhdGUuc2V0SG91cnMoY3VycmVudERhdGUuZ2V0SG91cnMoKSwgY3VycmVudERhdGUuZ2V0TWludXRlcygpLCBjdXJyZW50RGF0ZS5nZXRTZWNvbmRzKCkpO1xuICAgICAgICBjb25zdCBkYXRlOiBEYXRlID0gbmV3IERhdGUodGhpcy5hY3RpdmVEYXRlLmdldEZ1bGxZZWFyKCksIHRoaXMuYWN0aXZlRGF0ZS5nZXRNb250aCgpLCBkYXkuZGF0ZSk7XG5cbiAgICAgICAgaWYgKGRheS5wYWRkaW5nKSB7XG4gICAgICAgICAgaWYgKGRheS5kYXRlID4gMjApIHtcbiAgICAgICAgICAgIGRhdGUuc2V0TW9udGgodGhpcy5hY3RpdmVEYXRlLmdldE1vbnRoKCkgLSAxKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZGF0ZS5zZXRNb250aCh0aGlzLmFjdGl2ZURhdGUuZ2V0TW9udGgoKSArIDEpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGRhdGUuc2V0RGF0ZShkYXkuZGF0ZSk7XG5cbiAgICAgICAgY29uc3QgYXZhaWxhYmxlOiBib29sZWFuID1cbiAgICAgICAgICB0aGlzLmRheUlzQXZhaWxhYmxlRm9yUmFuZ2UoZGF5LCByYW5nZSkgJiYgKHRoaXMuaW50ZXJ2YWwgPyAhdGhpcy5pbnRlcnZhbC5pc0luUmFuZ2UoZGF0ZSkgOiB0cnVlKTtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAuLi5kYXksXG4gICAgICAgICAgYXZhaWxhYmxlLFxuICAgICAgICB9O1xuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgcGlja0RhdGUoZXZlbnQ6IE1vdXNlRXZlbnQsIGRheTogRGF5KTogdm9pZCB7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7IC8vIFN0b3AgcHJvcGFnYXRpb24gc28gdGhlIG1vZGFsIGRvZXNuJ3QgY2xvc2VcblxuICAgIGxldCBzZWxlY3RlZERhdGUgPSBuZXcgRGF0ZSh0aGlzLmFjdGl2ZURhdGUpO1xuXG4gICAgaWYgKGRheS5wYWRkaW5nKSB7XG4gICAgICBjb25zdCBtb250aCA9IGRheS5kYXRlID4gMjAgPyAtMSA6IDE7XG4gICAgICBzZWxlY3RlZERhdGUgPSBEYXRlSGVscGVyLnVwZGF0ZU1vbnRoKHNlbGVjdGVkRGF0ZSwgc2VsZWN0ZWREYXRlLmdldE1vbnRoKCkgKyBtb250aCk7XG4gICAgfVxuXG4gICAgdGhpcy5zZWxlY3REYXRlLmVtaXQoRGF0ZUhlbHBlci51cGRhdGVEYXRlKHNlbGVjdGVkRGF0ZSwgZGF5LmRhdGUpKTtcbiAgfVxuXG4gIHByaXZhdGUgaGFzQ2hhbmdlZChjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzLCBwcm9wOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICBjb25zdCBjdXJyZW50ID0gZ2V0KGNoYW5nZXMsIGAke3Byb3B9LmN1cnJlbnRWYWx1ZWApO1xuICAgIGNvbnN0IHByZXZpb3VzID0gZ2V0KGNoYW5nZXMsIGAke3Byb3B9LnByZXZpb3VzVmFsdWVgKTtcbiAgICBjb25zdCBjdXJyZW50VmFsdWUgPSBjdXJyZW50IGluc3RhbmNlb2YgRGF0ZSA/IGN1cnJlbnQudmFsdWVPZigpIDogMDtcbiAgICBjb25zdCBwcmV2aW91c1ZhbHVlID0gcHJldmlvdXMgaW5zdGFuY2VvZiBEYXRlID8gcHJldmlvdXMudmFsdWVPZigpIDogMDtcblxuICAgIHJldHVybiAhIWN1cnJlbnRWYWx1ZSAmJiBjdXJyZW50VmFsdWUgIT09IHByZXZpb3VzVmFsdWU7XG4gIH1cblxuICBwcml2YXRlIGdldEN1cnJlbnREYXRlKCk6IG51bWJlciB7XG4gICAgY29uc3QgY3VycmVudCA9IG5ldyBEYXRlKCk7XG4gICAgY29uc3QgbW9udGhIYXNDaGFuZ2VkID0gIURhdGVIZWxwZXIuZGF0ZXNBcmVFcXVhbChbdGhpcy5hY3RpdmVEYXRlLCBjdXJyZW50XSwgWydNJywgJ1knXSk7XG5cbiAgICByZXR1cm4gbW9udGhIYXNDaGFuZ2VkID8gLTEgOiBjdXJyZW50LmdldERhdGUoKTtcbiAgfVxuXG4gIHByaXZhdGUgZGF5SXNBdmFpbGFibGVGb3JSYW5nZShkYXk6IERheSwgcmFuZ2U6IERhdGVSYW5nZU1hcCk6IGJvb2xlYW4ge1xuICAgIGlmICghcmFuZ2UpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIGxldCBkYXRlUmFuZ2UgPSByYW5nZS5jdXJyZW50O1xuXG4gICAgaWYgKGRheS5wYWRkaW5nKSB7XG4gICAgICBkYXRlUmFuZ2UgPSBkYXkuZGF0ZSA+IDIwID8gcmFuZ2UuYmVmb3JlIDogcmFuZ2UuYWZ0ZXI7XG4gICAgfVxuXG4gICAgcmV0dXJuIGRhdGVSYW5nZS5pbmRleE9mKGRheS5kYXRlKSA8IDA7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJtLWRhdGVwaWNrZXJfX2dyaWRcIj5cbiAgPHRhYmxlPlxuICAgIDx0aGVhZD5cbiAgICAgIDx0ciBjbGFzcz1cIm0tZGF0ZXBpY2tlcl9fZ3JpZC1oZWFkXCI+XG4gICAgICAgIDx0aCAqbmdGb3I9XCJsZXQgZGF5IG9mIHdlZWtkYXlMYWJlbHNcIiBzY29wZT1cImNvbFwiPlxuICAgICAgICAgIDxzcGFuIFt0aXRsZV09XCJkYXlcIiBjbGFzcz1cInUtdGV4dC1jYXBpdGFsaXplXCI+e3sgZGF5IHwgc2xpY2UgOiAwIDogMiB9fTwvc3Bhbj5cbiAgICAgICAgPC90aD5cbiAgICAgIDwvdHI+XG4gICAgPC90aGVhZD5cblxuICAgIDx0Ym9keSBjbGFzcz1cIm0tZGF0ZXBpY2tlcl9fZ3JpZC1ib2R5XCI+XG4gICAgICA8dHIgKm5nRm9yPVwibGV0IHdlZWsgb2YgZGF0ZXNcIj5cbiAgICAgICAgPHRkICpuZ0Zvcj1cImxldCBkYXkgb2Ygd2Vla1wiPlxuICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgIChjbGljayk9XCJwaWNrRGF0ZSgkZXZlbnQsIGRheSlcIlxuICAgICAgICAgICAgW2Rpc2FibGVkXT1cIiFkYXkuYXZhaWxhYmxlXCJcbiAgICAgICAgICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgICAgICAgJ2lzLWZhZGVkJzogIWRheS5kYXRlIHx8IGRheS5wYWRkaW5nLFxuICAgICAgICAgICAgICAnaXMtc2VsZWN0ZWQnOlxuICAgICAgICAgICAgICAgICFkYXkucGFkZGluZyAmJiBzZWxlY3RlZERhdGUgJiYgZGF5LmRhdGUgPT09IHNlbGVjdGVkRGF5ICYmIHNlbGVjdGVkRGF5ICYmIHNlbGVjdGVkWWVhciA9PT0gYWN0aXZlWWVhcixcbiAgICAgICAgICAgICAgJ2lzLWN1cnJlbnQnOiAhZGF5LnBhZGRpbmcgJiYgZGF5LmRhdGUgPT09IGN1cnJlbnQsXG4gICAgICAgICAgICAgICdpcy11bmF2YWlsYWJsZSc6ICFkYXkuYXZhaWxhYmxlXG4gICAgICAgICAgICB9XCJcbiAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIHt7IGRheS5kYXRlIH19XG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDwvdGQ+XG4gICAgICA8L3RyPlxuICAgIDwvdGJvZHk+XG4gIDwvdGFibGU+XG48L2Rpdj5cbiJdfQ==
@@ -1,6 +1,7 @@
1
1
  import * as i0 from '@angular/core';
2
2
  import { Injectable, InjectionToken, EventEmitter, Component, ChangeDetectionStrategy, Input, Output, Inject, HostBinding, NgModule } from '@angular/core';
3
3
  import { DateGenerator, DateHelper } from '@acpaas-ui/ngx-utils';
4
+ import { TZDate } from '@date-fns/tz';
4
5
  import * as i1 from '@angular/common';
5
6
  import { CommonModule } from '@angular/common';
6
7
  import * as i3 from '@acpaas-ui/ngx-icon';
@@ -212,7 +213,7 @@ function CalendarMonthComponent_tr_6_td_1_Template(rf, ctx) {
212
213
  const day_r5 = ctx.$implicit;
213
214
  const ctx_r4 = i0.ɵɵnextContext(2);
214
215
  i0.ɵɵadvance(1);
215
- i0.ɵɵproperty("disabled", !day_r5.available)("ngClass", i0.ɵɵpureFunction4(3, _c0$1, !day_r5.date || day_r5.padding, !day_r5.padding && ctx_r4.selectedDate && day_r5.date === ctx_r4.selectedDay && ctx_r4.selectedDay && ctx_r4.selectedDate.getFullYear() === ctx_r4.activeDate.getFullYear(), !day_r5.padding && day_r5.date === ctx_r4.current, !day_r5.available));
216
+ i0.ɵɵproperty("disabled", !day_r5.available)("ngClass", i0.ɵɵpureFunction4(3, _c0$1, !day_r5.date || day_r5.padding, !day_r5.padding && ctx_r4.selectedDate && day_r5.date === ctx_r4.selectedDay && ctx_r4.selectedDay && ctx_r4.selectedYear === ctx_r4.activeYear, !day_r5.padding && day_r5.date === ctx_r4.current, !day_r5.available));
216
217
  i0.ɵɵadvance(1);
217
218
  i0.ɵɵtextInterpolate1(" ", day_r5.date, " ");
218
219
  }
@@ -229,6 +230,7 @@ function CalendarMonthComponent_tr_6_Template(rf, ctx) {
229
230
  i0.ɵɵproperty("ngForOf", week_r3);
230
231
  }
231
232
  }
233
+ const BRUSSELS_TIMEZONE = 'Europe/Brussels';
232
234
  class CalendarMonthComponent {
233
235
  constructor(moduleWeekdayLabels = CALENDAR_DEFAULT_WEEKDAY_LABELS, calendarService) {
234
236
  this.moduleWeekdayLabels = moduleWeekdayLabels;
@@ -237,6 +239,8 @@ class CalendarMonthComponent {
237
239
  this.selectDate = new EventEmitter();
238
240
  this.dates = [];
239
241
  this.selectedDay = -1;
242
+ this.selectedYear = -1;
243
+ this.activeYear = -1;
240
244
  }
241
245
  ngOnInit() {
242
246
  this.weekdayLabels = this.weekdayLabels || this.moduleWeekdayLabels;
@@ -247,9 +251,26 @@ class CalendarMonthComponent {
247
251
  const activeDateChanged = this.hasChanged(changes, 'activeDate');
248
252
  const monthChanged = activeDateChanged &&
249
253
  !DateHelper.datesAreEqual([changes.activeDate.currentValue, changes.activeDate.previousValue], 'M');
250
- const selectedDayChanged = this.selectedDate && this.activeDate.getMonth() === this.selectedDate.getMonth();
254
+ let selectedDayChanged = false;
255
+ if (this.activeDate) {
256
+ const activeDateBrussels = new TZDate(this.activeDate, BRUSSELS_TIMEZONE);
257
+ this.activeYear = activeDateBrussels.getFullYear();
258
+ if (this.selectedDate) {
259
+ const selectedDateBrussels = new TZDate(this.selectedDate, BRUSSELS_TIMEZONE);
260
+ selectedDayChanged = selectedDateBrussels.getMonth() === activeDateBrussels.getMonth();
261
+ this.selectedYear = selectedDateBrussels.getFullYear();
262
+ }
263
+ else {
264
+ this.selectedYear = -1;
265
+ }
266
+ }
267
+ else {
268
+ this.activeYear = -1;
269
+ this.selectedYear = -1;
270
+ }
251
271
  this.current = this.getCurrentDate();
252
- this.selectedDay = selectedDayChanged ? this.selectedDate.getDate() : -1;
272
+ this.selectedDay =
273
+ selectedDayChanged && this.selectedDate ? new TZDate(this.selectedDate, BRUSSELS_TIMEZONE).getDate() : -1;
253
274
  let newDates = [];
254
275
  if (selectedDateChanged || intervalChanged || (activeDateChanged && monthChanged)) {
255
276
  newDates = this.calendarService.getMonthForDate(this.activeDate);
@@ -327,7 +348,7 @@ class CalendarMonthComponent {
327
348
  (function () {
328
349
  (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(CalendarMonthComponent, [{
329
350
  type: Component,
330
- args: [{ selector: 'aui-calendar-month', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"m-datepicker__grid\">\n <table>\n <thead>\n <tr class=\"m-datepicker__grid-head\">\n <th *ngFor=\"let day of weekdayLabels\" scope=\"col\">\n <span [title]=\"day\" class=\"u-text-capitalize\">{{ day | slice : 0 : 2 }}</span>\n </th>\n </tr>\n </thead>\n\n <tbody class=\"m-datepicker__grid-body\">\n <tr *ngFor=\"let week of dates\">\n <td *ngFor=\"let day of week\">\n <button\n (click)=\"pickDate($event, day)\"\n [disabled]=\"!day.available\"\n [ngClass]=\"{\n 'is-faded': !day.date || day.padding,\n 'is-selected':\n !day.padding &&\n selectedDate &&\n day.date === selectedDay &&\n selectedDay &&\n selectedDate.getFullYear() === activeDate.getFullYear(),\n 'is-current': !day.padding && day.date === current,\n 'is-unavailable': !day.available\n }\"\n type=\"button\"\n >\n {{ day.date }}\n </button>\n </td>\n </tr>\n </tbody>\n </table>\n</div>\n" }]
351
+ args: [{ selector: 'aui-calendar-month', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"m-datepicker__grid\">\n <table>\n <thead>\n <tr class=\"m-datepicker__grid-head\">\n <th *ngFor=\"let day of weekdayLabels\" scope=\"col\">\n <span [title]=\"day\" class=\"u-text-capitalize\">{{ day | slice : 0 : 2 }}</span>\n </th>\n </tr>\n </thead>\n\n <tbody class=\"m-datepicker__grid-body\">\n <tr *ngFor=\"let week of dates\">\n <td *ngFor=\"let day of week\">\n <button\n (click)=\"pickDate($event, day)\"\n [disabled]=\"!day.available\"\n [ngClass]=\"{\n 'is-faded': !day.date || day.padding,\n 'is-selected':\n !day.padding && selectedDate && day.date === selectedDay && selectedDay && selectedYear === activeYear,\n 'is-current': !day.padding && day.date === current,\n 'is-unavailable': !day.available\n }\"\n type=\"button\"\n >\n {{ day.date }}\n </button>\n </td>\n </tr>\n </tbody>\n </table>\n</div>\n" }]
331
352
  }], function () {
332
353
  return [{ type: undefined, decorators: [{
333
354
  type: Inject,
@@ -565,10 +586,23 @@ class CalendarComponent {
565
586
  }
566
587
  pickDate(date) {
567
588
  const complete = this.activeView === CALENDAR_VIEW_MONTH;
568
- this.selectDate.emit({
569
- date,
570
- complete,
571
- });
589
+ if (complete) {
590
+ const brusselsDate = new TZDate(date, 'Europe/Brussels');
591
+ const year = brusselsDate.getFullYear();
592
+ const month = brusselsDate.getMonth();
593
+ const day = brusselsDate.getDate();
594
+ const timezoneAwareDate = new Date(DateHelper.toUtcMidnightInBrussels(year, month, day));
595
+ this.selectDate.emit({
596
+ date: timezoneAwareDate,
597
+ complete,
598
+ });
599
+ }
600
+ else {
601
+ this.selectDate.emit({
602
+ date,
603
+ complete,
604
+ });
605
+ }
572
606
  if (!complete) {
573
607
  this.activeDate = date;
574
608
  this.switchView(-1);
@@ -1 +1 @@
1
- {"version":3,"file":"acpaas-ui-ngx-calendar.mjs","sources":["../../src/lib/types/calendar.types.ts","../../src/lib/services/calendar.service.ts","../../src/lib/calendar.conf.ts","../../src/lib/components/decennia/decennia.component.html","../../src/lib/components/decennia/decennia.component.ts","../../src/lib/components/month/month.component.html","../../src/lib/components/month/month.component.ts","../../src/lib/components/year/year.component.html","../../src/lib/components/year/year.component.ts","../../src/lib/components/calendar/calendar.component.html","../../src/lib/components/calendar/calendar.component.ts","../../src/lib/calendar.module.ts","../../src/acpaas-ui-ngx-calendar.ts"],"sourcesContent":["export const CALENDAR_VIEW_MONTH = 'CALENDAR_VIEW_MONTH';\nexport const CALENDAR_VIEW_YEAR = 'CALENDAR_VIEW_YEAR';\nexport const CALENDAR_VIEW_DECENNIA = 'CALENDAR_VIEW_DECENNIA';\n\nexport type WeekdayLabelsConfig = string[];\nexport type MonthLabelsConfig = string[];\n\nexport interface DatepickerResult {\n date: Date;\n complete: boolean;\n}\n\nexport interface DateRangeMap {\n before: number[];\n current: number[];\n after: number[];\n}\n","import { Injectable } from '@angular/core';\nimport { DateGenerator, DateHelper, DateRange, Month } from '@acpaas-ui/ngx-utils';\n\nimport { DateRangeMap } from '../types/calendar.types';\n\nexport interface MonthMap {\n [key: number]: Month;\n}\n\n@Injectable()\nexport class CalendarService {\n public months: MonthMap = {};\n private currentYear: number;\n\n getMonth(month: number, year?: number): Month {\n if (year) {\n if (this.currentYear !== year) {\n this.months = {};\n }\n\n this.currentYear = year;\n }\n\n if (this.months.hasOwnProperty(month)) {\n return [...this.months[month]];\n }\n\n const date = new Date();\n date.setMonth(month, 1);\n\n if (year) {\n date.setFullYear(year);\n }\n\n const generatedMonth = DateGenerator.generateMonth(date, { startOfWeek: 1, padding: true, generatePadding: true });\n\n this.months[month] = generatedMonth;\n\n return [...generatedMonth];\n }\n\n getMonthForDate(date: Date): Month {\n return this.getMonth(date.getMonth(), date.getFullYear());\n }\n\n getRangeForDate(date: Date, range: DateRange): number[] {\n return DateGenerator.generateRange(date, range, { startOfWeek: 1 });\n }\n\n getRangesForDate(date: Date, range: DateRange): DateRangeMap {\n const rangeOptions = { startOfWeek: 1 };\n const before = DateHelper.updateMonth(date, date.getMonth() - 1);\n const after = DateHelper.updateMonth(date, date.getMonth() + 1);\n\n return {\n before: DateGenerator.generateRange(before, range, rangeOptions),\n current: DateGenerator.generateRange(date, range, rangeOptions),\n after: DateGenerator.generateRange(after, range, rangeOptions),\n };\n }\n\n getClosestDateForRange(date: Date = new Date(), range: DateRange): Date {\n const dateRange = this.getRangeForDate(date, range);\n\n if (DateHelper.dateOutOfRange(date, dateRange)) {\n return date;\n }\n\n return DateHelper.closestDateForRange(date, dateRange);\n }\n}\n","import { InjectionToken } from '@angular/core';\nimport { MonthLabelsConfig, WeekdayLabelsConfig } from './types/calendar.types';\n\nexport const CALENDAR_DEFAULT_WEEKDAY_LABELS = [\n 'Maandag',\n 'Dinsdag',\n 'Woensdag',\n 'Donderdag',\n 'Vrijdag',\n 'Zaterdag',\n 'Zondag',\n];\n\nexport const CALENDAR_DEFAULT_MONTH_LABELS = [\n 'Januari',\n 'Februari',\n 'Maart',\n 'April',\n 'Mei',\n 'Juni',\n 'Juli',\n 'Augustus',\n 'September',\n 'Oktober',\n 'November',\n 'December',\n];\n\nexport const CALENDAR_WEEKDAY_LABELS = new InjectionToken<WeekdayLabelsConfig>('weekdayLabels');\nexport const CALENDAR_MONTH_LABELS = new InjectionToken<MonthLabelsConfig>('monthLabels');\n","<div class=\"m-datepicker__list\">\n <table>\n <tbody class=\"m-datepicker__list-body\">\n <tr *ngFor=\"let group of years\">\n <td *ngFor=\"let year of group\">\n <button\n (click)=\"pickDate($event, year)\"\n [ngClass]=\"{\n 'is-current': year === current,\n 'is-selected': year === selectedYear\n }\"\n type=\"button\"\n >\n {{ year }}\n </button>\n </td>\n </tr>\n </tbody>\n </table>\n</div>\n","import { ChangeDetectionStrategy, Component, EventEmitter, Input, OnChanges, OnInit, Output, SimpleChanges } from '@angular/core';\nimport { chunk, get } from 'lodash-es';\n\n@Component({\n selector: 'aui-calendar-decennia',\n templateUrl: './decennia.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class CalendarDecenniaComponent implements OnInit, OnChanges {\n @Input() selectedDate: Date;\n @Input() activeDate: Date;\n @Output() selectDate = new EventEmitter();\n\n public years = [];\n public selectedYear = -1;\n public current = -1;\n\n public ngOnInit() {\n const current = new Date();\n this.current = current.getFullYear();\n }\n\n ngOnChanges(changes: SimpleChanges) {\n const currentValue = get(changes, 'activeDate.currentValue');\n const previousValue = get(changes, 'activeDate.previousValue');\n const currentYear = currentValue instanceof Date ? currentValue.getFullYear() : -1;\n const previousYear = previousValue instanceof Date ? previousValue.getFullYear() : -1;\n const outOfRange = previousYear > currentYear || previousYear + 17 < currentYear;\n\n if (currentYear >= 0 && outOfRange) {\n this.updateYears();\n }\n\n this.selectedYear = this.selectedDate instanceof Date ? this.selectedDate.getFullYear() : -1;\n }\n\n pickDate(event: MouseEvent, date: number) {\n event.stopPropagation();\n\n const selectedDate = new Date(this.activeDate);\n selectedDate.setFullYear(date);\n\n this.selectDate.emit(selectedDate);\n }\n\n private updateYears(): void {\n const years = [];\n const activeYear = this.activeDate.getFullYear();\n\n for (let i = activeYear; i < activeYear + 18; i += 1) {\n years.push(i);\n }\n\n this.years = chunk(years, 3);\n }\n}\n","<div class=\"m-datepicker__grid\">\n <table>\n <thead>\n <tr class=\"m-datepicker__grid-head\">\n <th *ngFor=\"let day of weekdayLabels\" scope=\"col\">\n <span [title]=\"day\" class=\"u-text-capitalize\">{{ day | slice : 0 : 2 }}</span>\n </th>\n </tr>\n </thead>\n\n <tbody class=\"m-datepicker__grid-body\">\n <tr *ngFor=\"let week of dates\">\n <td *ngFor=\"let day of week\">\n <button\n (click)=\"pickDate($event, day)\"\n [disabled]=\"!day.available\"\n [ngClass]=\"{\n 'is-faded': !day.date || day.padding,\n 'is-selected':\n !day.padding &&\n selectedDate &&\n day.date === selectedDay &&\n selectedDay &&\n selectedDate.getFullYear() === activeDate.getFullYear(),\n 'is-current': !day.padding && day.date === current,\n 'is-unavailable': !day.available\n }\"\n type=\"button\"\n >\n {{ day.date }}\n </button>\n </td>\n </tr>\n </tbody>\n </table>\n</div>\n","import {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Inject,\n Input,\n OnChanges,\n OnInit,\n Output,\n SimpleChanges,\n} from '@angular/core';\nimport { get } from 'lodash-es';\nimport { DateHelper, DateRange, Day, Month } from '@acpaas-ui/ngx-utils';\nimport { CALENDAR_DEFAULT_WEEKDAY_LABELS, CALENDAR_WEEKDAY_LABELS } from '../../calendar.conf';\nimport { CalendarService } from '../../services/calendar.service';\nimport { DateRangeMap, WeekdayLabelsConfig } from '../../types/calendar.types';\nimport { Interval } from '@acpaas-ui/ngx-utils';\n\n@Component({\n selector: 'aui-calendar-month',\n templateUrl: './month.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class CalendarMonthComponent implements OnInit, OnChanges {\n @Input() selectedDate: Date;\n @Input() activeDate: Date;\n @Input() range: DateRange;\n @Input()\n interval?: Interval.IInterval<Date>;\n @Input() weekdayLabels: WeekdayLabelsConfig = CALENDAR_DEFAULT_WEEKDAY_LABELS;\n @Output() selectDate = new EventEmitter();\n\n public dates: Month = [];\n public selectedDay = -1;\n public current: number;\n\n constructor(\n @Inject(CALENDAR_WEEKDAY_LABELS) private moduleWeekdayLabels = CALENDAR_DEFAULT_WEEKDAY_LABELS,\n private calendarService: CalendarService\n ) {}\n\n public ngOnInit() {\n this.weekdayLabels = this.weekdayLabels || this.moduleWeekdayLabels;\n }\n\n ngOnChanges(changes: SimpleChanges) {\n const selectedDateChanged = this.hasChanged(changes, 'selectedDate');\n const intervalChanged = !!changes.interval && changes.interval.currentValue !== changes.interval.previousValue;\n const activeDateChanged = this.hasChanged(changes, 'activeDate');\n const monthChanged =\n activeDateChanged &&\n !DateHelper.datesAreEqual([changes.activeDate.currentValue, changes.activeDate.previousValue], 'M');\n const selectedDayChanged = this.selectedDate && this.activeDate.getMonth() === this.selectedDate.getMonth();\n\n this.current = this.getCurrentDate();\n this.selectedDay = selectedDayChanged ? this.selectedDate.getDate() : -1;\n\n let newDates = [];\n\n if (selectedDateChanged || intervalChanged || (activeDateChanged && monthChanged)) {\n newDates = this.calendarService.getMonthForDate(this.activeDate);\n } else {\n return;\n }\n\n const range: DateRangeMap | null = this.calendarService.getRangesForDate(this.activeDate, this.range);\n this.dates = newDates.map((week) =>\n week.map((day) => {\n const currentDate = new Date();\n this.activeDate.setHours(currentDate.getHours(), currentDate.getMinutes(), currentDate.getSeconds());\n const date: Date = new Date(this.activeDate.getFullYear(), this.activeDate.getMonth(), day.date);\n\n if (day.padding) {\n if (day.date > 20) {\n date.setMonth(this.activeDate.getMonth() - 1);\n } else {\n date.setMonth(this.activeDate.getMonth() + 1);\n }\n }\n\n date.setDate(day.date);\n\n const available: boolean =\n this.dayIsAvailableForRange(day, range) && (this.interval ? !this.interval.isInRange(date) : true);\n return {\n ...day,\n available,\n };\n })\n );\n }\n\n pickDate(event: MouseEvent, day: Day): void {\n event.stopPropagation(); // Stop propagation so the modal doesn't close\n\n let selectedDate = new Date(this.activeDate);\n\n if (day.padding) {\n const month = day.date > 20 ? -1 : 1;\n selectedDate = DateHelper.updateMonth(selectedDate, selectedDate.getMonth() + month);\n }\n\n this.selectDate.emit(DateHelper.updateDate(selectedDate, day.date));\n }\n\n private hasChanged(changes: SimpleChanges, prop: string): boolean {\n const current = get(changes, `${prop}.currentValue`);\n const previous = get(changes, `${prop}.previousValue`);\n const currentValue = current instanceof Date ? current.valueOf() : 0;\n const previousValue = previous instanceof Date ? previous.valueOf() : 0;\n\n return !!currentValue && currentValue !== previousValue;\n }\n\n private getCurrentDate(): number {\n const current = new Date();\n const monthHasChanged = !DateHelper.datesAreEqual([this.activeDate, current], ['M', 'Y']);\n\n return monthHasChanged ? -1 : current.getDate();\n }\n\n private dayIsAvailableForRange(day: Day, range: DateRangeMap): boolean {\n if (!range) {\n return true;\n }\n\n let dateRange = range.current;\n\n if (day.padding) {\n dateRange = day.date > 20 ? range.before : range.after;\n }\n\n return dateRange.indexOf(day.date) < 0;\n }\n}\n","<div class=\"m-datepicker__list\">\n <table>\n <tbody class=\"m-datepicker__list-body\">\n <tr *ngFor=\"let group of months\">\n <td *ngFor=\"let month of group\">\n <button\n (click)=\"pickDate($event, month)\"\n [ngClass]=\"{\n 'is-current': month === current,\n 'is-selected': month === monthLabels[selectedMonth]\n }\"\n type=\"button\"\n >\n {{ month | titlecase }}\n </button>\n </td>\n </tr>\n </tbody>\n </table>\n</div>\n","import {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Inject,\n Input,\n OnChanges,\n Output,\n SimpleChanges,\n} from '@angular/core';\nimport { chunk, get } from 'lodash-es';\n\nimport { DateHelper } from '@acpaas-ui/ngx-utils';\n\nimport { CALENDAR_DEFAULT_MONTH_LABELS, CALENDAR_MONTH_LABELS } from '../../calendar.conf';\nimport { MonthLabelsConfig } from '../../types/calendar.types';\n\n@Component({\n selector: 'aui-calendar-year',\n templateUrl: './year.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class CalendarYearComponent implements OnChanges {\n @Input() selectedDate: Date;\n @Input() activeDate: Date;\n @Input() monthLabels: MonthLabelsConfig = CALENDAR_DEFAULT_MONTH_LABELS;\n @Output() selectDate = new EventEmitter();\n\n public selectedMonth = -1;\n public current = '';\n public months: Array<string[]> = [];\n\n constructor(@Inject(CALENDAR_MONTH_LABELS) public moduleMonthLabels = CALENDAR_DEFAULT_MONTH_LABELS) {}\n\n ngOnChanges(changes: SimpleChanges) {\n const currentValue = get(changes, 'activeDate.currentValue');\n const currentYear = currentValue instanceof Date ? currentValue.getFullYear() : -1;\n const selectedMonthChanged = this.selectedDate && this.selectedDate.getFullYear() === this.activeDate.getFullYear();\n const current = new Date();\n\n this.current = currentYear === current.getFullYear() ? this.monthLabels[current.getMonth()] : '';\n\n this.selectedMonth = selectedMonthChanged ? this.selectedDate.getMonth() : -1;\n\n if (changes.monthLabels) {\n this.monthLabels = this.monthLabels || this.moduleMonthLabels;\n this.months = chunk(this.monthLabels, 2);\n }\n }\n\n pickDate(event: MouseEvent, date: string) {\n event.stopPropagation();\n\n let selectedDate = new Date(this.activeDate);\n selectedDate = DateHelper.updateMonth(selectedDate, this.monthLabels.indexOf(date));\n\n this.selectDate.emit(selectedDate);\n }\n}\n","<div class=\"m-datepicker__nav\">\n <button (click)=\"switchView()\" class=\"m-datepicker__nav-title\" type=\"button\">\n {{ headerLabel | titlecase }}\n <aui-icon name=\"ai-arrow-down-1\" />\n </button>\n\n <div class=\"m-datepicker__nav-pagination\">\n <button\n (click)=\"updateActiveDate(-1)\"\n [attr.aria-label]=\"ariaPreviousLabel\"\n class=\"a-button a-button--text a-button--primary has-icon\"\n type=\"button\"\n >\n <aui-icon name=\"ai-arrow-left-1\"></aui-icon>\n </button>\n <button\n (click)=\"updateActiveDate(1)\"\n [attr.aria-label]=\"ariaNextLabel\"\n class=\"a-button a-button--text a-button--primary has-icon\"\n type=\"button\"\n >\n <aui-icon name=\"ai-arrow-right-1\"></aui-icon>\n </button>\n </div>\n</div>\n<aui-calendar-month\n (selectDate)=\"pickDate($event)\"\n *ngIf=\"activeView === CALENDAR_VIEW_MONTH\"\n [activeDate]=\"activeDate\"\n [range]=\"range\"\n [interval]=\"interval\"\n [selectedDate]=\"selectedDate\"\n [weekdayLabels]=\"weekdayLabels\"\n></aui-calendar-month>\n<aui-calendar-year\n (selectDate)=\"pickDate($event)\"\n *ngIf=\"activeView === CALENDAR_VIEW_YEAR\"\n [activeDate]=\"activeDate\"\n [monthLabels]=\"monthLabels\"\n [selectedDate]=\"selectedDate\"\n></aui-calendar-year>\n<aui-calendar-decennia\n (selectDate)=\"pickDate($event)\"\n *ngIf=\"activeView === CALENDAR_VIEW_DECENNIA\"\n [activeDate]=\"activeDate\"\n [selectedDate]=\"selectedDate\"\n></aui-calendar-decennia>\n","import {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n HostBinding,\n Inject,\n Input,\n OnChanges,\n OnInit,\n Output,\n SimpleChanges,\n} from '@angular/core';\n\nimport { DateHelper, DateRange } from '@acpaas-ui/ngx-utils';\n\nimport {\n CALENDAR_DEFAULT_MONTH_LABELS,\n CALENDAR_DEFAULT_WEEKDAY_LABELS,\n CALENDAR_MONTH_LABELS,\n CALENDAR_WEEKDAY_LABELS,\n} from '../../calendar.conf';\nimport {\n CALENDAR_VIEW_DECENNIA,\n CALENDAR_VIEW_MONTH,\n CALENDAR_VIEW_YEAR,\n MonthLabelsConfig,\n WeekdayLabelsConfig,\n} from '../../types/calendar.types';\nimport { CalendarService } from '../../services/calendar.service';\nimport { Interval } from '@acpaas-ui/ngx-utils';\n\n@Component({\n selector: 'aui-calendar',\n templateUrl: './calendar.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class CalendarComponent implements OnInit, OnChanges {\n @HostBinding('attr.role') role = 'application';\n @HostBinding('attr.aria-hidden') ariahidden = 'false';\n\n @Input() ariaPreviousLabels = ['Ga naar vorige maand', 'Ga naar vorig jaar', 'Ga naar vorige 18 jaren'];\n @Input() ariaNextLabels = ['Ga naar volgende maand', 'Ga naar volgend jaar', 'Ga naar volgende 18 jaren'];\n\n @Input() selectedDate: Date;\n @Input() range: DateRange;\n @Input()\n interval?: Interval.IInterval<Date>;\n @Input() weekdayLabels: WeekdayLabelsConfig;\n @Input() monthLabels: MonthLabelsConfig;\n @Output() selectDate = new EventEmitter();\n\n public CALENDAR_VIEW_MONTH = CALENDAR_VIEW_MONTH;\n public CALENDAR_VIEW_YEAR = CALENDAR_VIEW_YEAR;\n public CALENDAR_VIEW_DECENNIA = CALENDAR_VIEW_DECENNIA;\n public activeDate: Date;\n public activeView: string = CALENDAR_VIEW_MONTH;\n public headerLabel = '';\n public ariaPreviousLabel = this.ariaPreviousLabels[0];\n public ariaNextLabel = this.ariaNextLabels[0];\n\n constructor(\n @Inject(CALENDAR_MONTH_LABELS) public moduleMonthLabels = CALENDAR_DEFAULT_MONTH_LABELS,\n @Inject(CALENDAR_WEEKDAY_LABELS) public moduleWeekdayLabels = CALENDAR_DEFAULT_WEEKDAY_LABELS,\n private calendarService: CalendarService\n ) {}\n\n public ngOnInit() {\n this.initControl();\n }\n\n ngOnChanges(changes: SimpleChanges) {\n const selectedDate = changes.selectedDate && changes.selectedDate.currentValue ? changes.selectedDate : null;\n\n if (\n typeof this.monthLabels !== 'undefined' &&\n selectedDate &&\n !DateHelper.datesAreEqual(selectedDate.currentValue, selectedDate.previousValue)\n ) {\n this.activeDate = this.selectedDate;\n this.updateHeaderLabel();\n } else {\n let activeDateToSet = new Date();\n\n if (this.interval && this.interval.isInRange(activeDateToSet)) {\n activeDateToSet = this.interval.min;\n }\n\n this.activeDate = DateHelper.parseDate(activeDateToSet);\n\n this.initControl();\n }\n }\n\n updateActiveDate(factor: number = 0): void {\n const activeDate = this.activeDate\n ? new Date(this.activeDate.getFullYear(), this.activeDate.getMonth(), 1)\n : new Date();\n\n switch (this.activeView) {\n case CALENDAR_VIEW_MONTH:\n activeDate.setMonth(activeDate.getMonth() + factor);\n break;\n case CALENDAR_VIEW_YEAR:\n activeDate.setFullYear(activeDate.getFullYear() + factor);\n break;\n case CALENDAR_VIEW_DECENNIA:\n activeDate.setFullYear(activeDate.getFullYear() + 18 * factor);\n break;\n }\n\n this.activeDate = activeDate;\n this.updateHeaderLabel();\n }\n\n switchView(factor: number = 1): void {\n const views = [CALENDAR_VIEW_MONTH, CALENDAR_VIEW_YEAR, CALENDAR_VIEW_DECENNIA];\n\n const currView = views.indexOf(this.activeView);\n let nextView = currView + factor >= views.length ? 0 : currView + factor;\n nextView = nextView < 0 ? views.length - 1 : nextView;\n\n this.activeView = views[nextView];\n\n // reset activeDate when returning to month view without model update\n if (this.selectedDate && nextView === 0 && factor === 1) {\n this.activeDate = this.selectedDate;\n }\n\n this.updateHeaderLabel();\n }\n\n updateHeaderLabel(): void {\n switch (this.activeView) {\n case CALENDAR_VIEW_MONTH:\n this.headerLabel = this.monthLabels[this.activeDate.getMonth()] + ' ' + this.activeDate.getFullYear();\n this.ariaPreviousLabel = this.ariaPreviousLabels[0];\n this.ariaNextLabel = this.ariaNextLabels[0];\n break;\n case CALENDAR_VIEW_YEAR:\n this.headerLabel = String(this.activeDate.getFullYear());\n this.ariaPreviousLabel = this.ariaPreviousLabels[1];\n this.ariaNextLabel = this.ariaNextLabels[1];\n break;\n case CALENDAR_VIEW_DECENNIA:\n const startYear = this.activeDate.getFullYear();\n this.headerLabel = `${startYear} - ${startYear + 17}`;\n this.ariaPreviousLabel = this.ariaPreviousLabels[2];\n this.ariaNextLabel = this.ariaNextLabels[2];\n break;\n }\n }\n\n pickDate(date: Date): void {\n const complete = this.activeView === CALENDAR_VIEW_MONTH;\n\n this.selectDate.emit({\n date,\n complete,\n });\n\n if (!complete) {\n this.activeDate = date;\n this.switchView(-1);\n }\n }\n\n private initControl(): void {\n this.weekdayLabels = this.weekdayLabels || this.moduleWeekdayLabels;\n this.monthLabels = this.monthLabels || this.moduleMonthLabels;\n this.activeDate = this.calendarService.getClosestDateForRange(this.activeDate, this.range);\n if (this.selectedDate) {\n this.activeDate = this.selectedDate;\n this.updateActiveDate();\n }\n this.updateHeaderLabel();\n }\n}\n","import { ModuleWithProviders, NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { IconModule } from '@acpaas-ui/ngx-icon';\nimport {\n CALENDAR_DEFAULT_MONTH_LABELS,\n CALENDAR_DEFAULT_WEEKDAY_LABELS,\n CALENDAR_MONTH_LABELS,\n CALENDAR_WEEKDAY_LABELS,\n} from './calendar.conf';\nimport { MonthLabelsConfig, WeekdayLabelsConfig } from './types/calendar.types';\nimport { CalendarService } from './services/calendar.service';\nimport { CalendarComponent } from './components/calendar/calendar.component';\nimport { CalendarDecenniaComponent } from './components/decennia/decennia.component';\nimport { CalendarMonthComponent } from './components/month/month.component';\nimport { CalendarYearComponent } from './components/year/year.component';\n\n@NgModule({\n imports: [CommonModule, IconModule],\n declarations: [\n CalendarComponent,\n CalendarDecenniaComponent,\n CalendarMonthComponent,\n CalendarYearComponent,\n ],\n exports: [\n CalendarComponent,\n CalendarDecenniaComponent,\n CalendarMonthComponent,\n CalendarYearComponent,\n ],\n providers: [\n CalendarService,\n {\n provide: CALENDAR_WEEKDAY_LABELS,\n useValue: CALENDAR_DEFAULT_WEEKDAY_LABELS,\n },\n { provide: CALENDAR_MONTH_LABELS, useValue: CALENDAR_DEFAULT_MONTH_LABELS },\n ],\n})\nexport class CalendarModule {\n static forChild(\n weekdayLabels: WeekdayLabelsConfig,\n monthLabels: MonthLabelsConfig\n ): ModuleWithProviders<CalendarModule> {\n return {\n ngModule: CalendarModule,\n providers: [\n CalendarService,\n { provide: CALENDAR_WEEKDAY_LABELS, useValue: weekdayLabels },\n { provide: CALENDAR_MONTH_LABELS, useValue: monthLabels },\n ],\n };\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["_c0","i1.CalendarService"],"mappings":"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"}
1
+ {"version":3,"file":"acpaas-ui-ngx-calendar.mjs","sources":["../../src/lib/types/calendar.types.ts","../../src/lib/services/calendar.service.ts","../../src/lib/calendar.conf.ts","../../src/lib/components/decennia/decennia.component.html","../../src/lib/components/decennia/decennia.component.ts","../../src/lib/components/month/month.component.html","../../src/lib/components/month/month.component.ts","../../src/lib/components/year/year.component.html","../../src/lib/components/year/year.component.ts","../../src/lib/components/calendar/calendar.component.html","../../src/lib/components/calendar/calendar.component.ts","../../src/lib/calendar.module.ts","../../src/acpaas-ui-ngx-calendar.ts"],"sourcesContent":["export const CALENDAR_VIEW_MONTH = 'CALENDAR_VIEW_MONTH';\nexport const CALENDAR_VIEW_YEAR = 'CALENDAR_VIEW_YEAR';\nexport const CALENDAR_VIEW_DECENNIA = 'CALENDAR_VIEW_DECENNIA';\n\nexport type WeekdayLabelsConfig = string[];\nexport type MonthLabelsConfig = string[];\n\nexport interface DatepickerResult {\n date: Date;\n complete: boolean;\n}\n\nexport interface DateRangeMap {\n before: number[];\n current: number[];\n after: number[];\n}\n","import { Injectable } from '@angular/core';\nimport { DateGenerator, DateHelper, DateRange, Month } from '@acpaas-ui/ngx-utils';\n\nimport { DateRangeMap } from '../types/calendar.types';\n\nexport interface MonthMap {\n [key: number]: Month;\n}\n\n@Injectable()\nexport class CalendarService {\n public months: MonthMap = {};\n private currentYear: number;\n\n getMonth(month: number, year?: number): Month {\n if (year) {\n if (this.currentYear !== year) {\n this.months = {};\n }\n\n this.currentYear = year;\n }\n\n if (this.months.hasOwnProperty(month)) {\n return [...this.months[month]];\n }\n\n const date = new Date();\n date.setMonth(month, 1);\n\n if (year) {\n date.setFullYear(year);\n }\n\n const generatedMonth = DateGenerator.generateMonth(date, { startOfWeek: 1, padding: true, generatePadding: true });\n\n this.months[month] = generatedMonth;\n\n return [...generatedMonth];\n }\n\n getMonthForDate(date: Date): Month {\n return this.getMonth(date.getMonth(), date.getFullYear());\n }\n\n getRangeForDate(date: Date, range: DateRange): number[] {\n return DateGenerator.generateRange(date, range, { startOfWeek: 1 });\n }\n\n getRangesForDate(date: Date, range: DateRange): DateRangeMap {\n const rangeOptions = { startOfWeek: 1 };\n const before = DateHelper.updateMonth(date, date.getMonth() - 1);\n const after = DateHelper.updateMonth(date, date.getMonth() + 1);\n\n return {\n before: DateGenerator.generateRange(before, range, rangeOptions),\n current: DateGenerator.generateRange(date, range, rangeOptions),\n after: DateGenerator.generateRange(after, range, rangeOptions),\n };\n }\n\n getClosestDateForRange(date: Date = new Date(), range: DateRange): Date {\n const dateRange = this.getRangeForDate(date, range);\n\n if (DateHelper.dateOutOfRange(date, dateRange)) {\n return date;\n }\n\n return DateHelper.closestDateForRange(date, dateRange);\n }\n}\n","import { InjectionToken } from '@angular/core';\nimport { MonthLabelsConfig, WeekdayLabelsConfig } from './types/calendar.types';\n\nexport const CALENDAR_DEFAULT_WEEKDAY_LABELS = [\n 'Maandag',\n 'Dinsdag',\n 'Woensdag',\n 'Donderdag',\n 'Vrijdag',\n 'Zaterdag',\n 'Zondag',\n];\n\nexport const CALENDAR_DEFAULT_MONTH_LABELS = [\n 'Januari',\n 'Februari',\n 'Maart',\n 'April',\n 'Mei',\n 'Juni',\n 'Juli',\n 'Augustus',\n 'September',\n 'Oktober',\n 'November',\n 'December',\n];\n\nexport const CALENDAR_WEEKDAY_LABELS = new InjectionToken<WeekdayLabelsConfig>('weekdayLabels');\nexport const CALENDAR_MONTH_LABELS = new InjectionToken<MonthLabelsConfig>('monthLabels');\n","<div class=\"m-datepicker__list\">\n <table>\n <tbody class=\"m-datepicker__list-body\">\n <tr *ngFor=\"let group of years\">\n <td *ngFor=\"let year of group\">\n <button\n (click)=\"pickDate($event, year)\"\n [ngClass]=\"{\n 'is-current': year === current,\n 'is-selected': year === selectedYear\n }\"\n type=\"button\"\n >\n {{ year }}\n </button>\n </td>\n </tr>\n </tbody>\n </table>\n</div>\n","import { ChangeDetectionStrategy, Component, EventEmitter, Input, OnChanges, OnInit, Output, SimpleChanges } from '@angular/core';\nimport { chunk, get } from 'lodash-es';\n\n@Component({\n selector: 'aui-calendar-decennia',\n templateUrl: './decennia.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class CalendarDecenniaComponent implements OnInit, OnChanges {\n @Input() selectedDate: Date;\n @Input() activeDate: Date;\n @Output() selectDate = new EventEmitter();\n\n public years = [];\n public selectedYear = -1;\n public current = -1;\n\n public ngOnInit() {\n const current = new Date();\n this.current = current.getFullYear();\n }\n\n ngOnChanges(changes: SimpleChanges) {\n const currentValue = get(changes, 'activeDate.currentValue');\n const previousValue = get(changes, 'activeDate.previousValue');\n const currentYear = currentValue instanceof Date ? currentValue.getFullYear() : -1;\n const previousYear = previousValue instanceof Date ? previousValue.getFullYear() : -1;\n const outOfRange = previousYear > currentYear || previousYear + 17 < currentYear;\n\n if (currentYear >= 0 && outOfRange) {\n this.updateYears();\n }\n\n this.selectedYear = this.selectedDate instanceof Date ? this.selectedDate.getFullYear() : -1;\n }\n\n pickDate(event: MouseEvent, date: number) {\n event.stopPropagation();\n\n const selectedDate = new Date(this.activeDate);\n selectedDate.setFullYear(date);\n\n this.selectDate.emit(selectedDate);\n }\n\n private updateYears(): void {\n const years = [];\n const activeYear = this.activeDate.getFullYear();\n\n for (let i = activeYear; i < activeYear + 18; i += 1) {\n years.push(i);\n }\n\n this.years = chunk(years, 3);\n }\n}\n","<div class=\"m-datepicker__grid\">\n <table>\n <thead>\n <tr class=\"m-datepicker__grid-head\">\n <th *ngFor=\"let day of weekdayLabels\" scope=\"col\">\n <span [title]=\"day\" class=\"u-text-capitalize\">{{ day | slice : 0 : 2 }}</span>\n </th>\n </tr>\n </thead>\n\n <tbody class=\"m-datepicker__grid-body\">\n <tr *ngFor=\"let week of dates\">\n <td *ngFor=\"let day of week\">\n <button\n (click)=\"pickDate($event, day)\"\n [disabled]=\"!day.available\"\n [ngClass]=\"{\n 'is-faded': !day.date || day.padding,\n 'is-selected':\n !day.padding && selectedDate && day.date === selectedDay && selectedDay && selectedYear === activeYear,\n 'is-current': !day.padding && day.date === current,\n 'is-unavailable': !day.available\n }\"\n type=\"button\"\n >\n {{ day.date }}\n </button>\n </td>\n </tr>\n </tbody>\n </table>\n</div>\n","import {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Inject,\n Input,\n OnChanges,\n OnInit,\n Output,\n SimpleChanges,\n} from '@angular/core';\nimport { get } from 'lodash-es';\nimport { TZDate } from '@date-fns/tz';\nimport { DateHelper, DateRange, Day, Month } from '@acpaas-ui/ngx-utils';\nimport { CALENDAR_DEFAULT_WEEKDAY_LABELS, CALENDAR_WEEKDAY_LABELS } from '../../calendar.conf';\nimport { CalendarService } from '../../services/calendar.service';\nimport { DateRangeMap, WeekdayLabelsConfig } from '../../types/calendar.types';\nimport { Interval } from '@acpaas-ui/ngx-utils';\n\nconst BRUSSELS_TIMEZONE = 'Europe/Brussels';\n\n@Component({\n selector: 'aui-calendar-month',\n templateUrl: './month.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class CalendarMonthComponent implements OnInit, OnChanges {\n @Input() selectedDate: Date;\n @Input() activeDate: Date;\n @Input() range: DateRange;\n @Input()\n interval?: Interval.IInterval<Date>;\n @Input() weekdayLabels: WeekdayLabelsConfig = CALENDAR_DEFAULT_WEEKDAY_LABELS;\n @Output() selectDate = new EventEmitter();\n\n public dates: Month = [];\n public selectedDay = -1;\n public current: number;\n public selectedYear = -1;\n public activeYear = -1;\n\n constructor(\n @Inject(CALENDAR_WEEKDAY_LABELS) private moduleWeekdayLabels = CALENDAR_DEFAULT_WEEKDAY_LABELS,\n private calendarService: CalendarService\n ) {}\n\n public ngOnInit() {\n this.weekdayLabels = this.weekdayLabels || this.moduleWeekdayLabels;\n }\n\n ngOnChanges(changes: SimpleChanges) {\n const selectedDateChanged = this.hasChanged(changes, 'selectedDate');\n const intervalChanged = !!changes.interval && changes.interval.currentValue !== changes.interval.previousValue;\n const activeDateChanged = this.hasChanged(changes, 'activeDate');\n const monthChanged =\n activeDateChanged &&\n !DateHelper.datesAreEqual([changes.activeDate.currentValue, changes.activeDate.previousValue], 'M');\n\n let selectedDayChanged = false;\n if (this.activeDate) {\n const activeDateBrussels = new TZDate(this.activeDate, BRUSSELS_TIMEZONE);\n this.activeYear = activeDateBrussels.getFullYear();\n\n if (this.selectedDate) {\n const selectedDateBrussels = new TZDate(this.selectedDate, BRUSSELS_TIMEZONE);\n selectedDayChanged = selectedDateBrussels.getMonth() === activeDateBrussels.getMonth();\n this.selectedYear = selectedDateBrussels.getFullYear();\n } else {\n this.selectedYear = -1;\n }\n } else {\n this.activeYear = -1;\n this.selectedYear = -1;\n }\n\n this.current = this.getCurrentDate();\n this.selectedDay =\n selectedDayChanged && this.selectedDate ? new TZDate(this.selectedDate, BRUSSELS_TIMEZONE).getDate() : -1;\n\n let newDates = [];\n\n if (selectedDateChanged || intervalChanged || (activeDateChanged && monthChanged)) {\n newDates = this.calendarService.getMonthForDate(this.activeDate);\n } else {\n return;\n }\n\n const range: DateRangeMap | null = this.calendarService.getRangesForDate(this.activeDate, this.range);\n this.dates = newDates.map((week) =>\n week.map((day) => {\n const currentDate = new Date();\n this.activeDate.setHours(currentDate.getHours(), currentDate.getMinutes(), currentDate.getSeconds());\n const date: Date = new Date(this.activeDate.getFullYear(), this.activeDate.getMonth(), day.date);\n\n if (day.padding) {\n if (day.date > 20) {\n date.setMonth(this.activeDate.getMonth() - 1);\n } else {\n date.setMonth(this.activeDate.getMonth() + 1);\n }\n }\n\n date.setDate(day.date);\n\n const available: boolean =\n this.dayIsAvailableForRange(day, range) && (this.interval ? !this.interval.isInRange(date) : true);\n return {\n ...day,\n available,\n };\n })\n );\n }\n\n pickDate(event: MouseEvent, day: Day): void {\n event.stopPropagation(); // Stop propagation so the modal doesn't close\n\n let selectedDate = new Date(this.activeDate);\n\n if (day.padding) {\n const month = day.date > 20 ? -1 : 1;\n selectedDate = DateHelper.updateMonth(selectedDate, selectedDate.getMonth() + month);\n }\n\n this.selectDate.emit(DateHelper.updateDate(selectedDate, day.date));\n }\n\n private hasChanged(changes: SimpleChanges, prop: string): boolean {\n const current = get(changes, `${prop}.currentValue`);\n const previous = get(changes, `${prop}.previousValue`);\n const currentValue = current instanceof Date ? current.valueOf() : 0;\n const previousValue = previous instanceof Date ? previous.valueOf() : 0;\n\n return !!currentValue && currentValue !== previousValue;\n }\n\n private getCurrentDate(): number {\n const current = new Date();\n const monthHasChanged = !DateHelper.datesAreEqual([this.activeDate, current], ['M', 'Y']);\n\n return monthHasChanged ? -1 : current.getDate();\n }\n\n private dayIsAvailableForRange(day: Day, range: DateRangeMap): boolean {\n if (!range) {\n return true;\n }\n\n let dateRange = range.current;\n\n if (day.padding) {\n dateRange = day.date > 20 ? range.before : range.after;\n }\n\n return dateRange.indexOf(day.date) < 0;\n }\n}\n","<div class=\"m-datepicker__list\">\n <table>\n <tbody class=\"m-datepicker__list-body\">\n <tr *ngFor=\"let group of months\">\n <td *ngFor=\"let month of group\">\n <button\n (click)=\"pickDate($event, month)\"\n [ngClass]=\"{\n 'is-current': month === current,\n 'is-selected': month === monthLabels[selectedMonth]\n }\"\n type=\"button\"\n >\n {{ month | titlecase }}\n </button>\n </td>\n </tr>\n </tbody>\n </table>\n</div>\n","import {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Inject,\n Input,\n OnChanges,\n Output,\n SimpleChanges,\n} from '@angular/core';\nimport { chunk, get } from 'lodash-es';\n\nimport { DateHelper } from '@acpaas-ui/ngx-utils';\n\nimport { CALENDAR_DEFAULT_MONTH_LABELS, CALENDAR_MONTH_LABELS } from '../../calendar.conf';\nimport { MonthLabelsConfig } from '../../types/calendar.types';\n\n@Component({\n selector: 'aui-calendar-year',\n templateUrl: './year.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class CalendarYearComponent implements OnChanges {\n @Input() selectedDate: Date;\n @Input() activeDate: Date;\n @Input() monthLabels: MonthLabelsConfig = CALENDAR_DEFAULT_MONTH_LABELS;\n @Output() selectDate = new EventEmitter();\n\n public selectedMonth = -1;\n public current = '';\n public months: Array<string[]> = [];\n\n constructor(@Inject(CALENDAR_MONTH_LABELS) public moduleMonthLabels = CALENDAR_DEFAULT_MONTH_LABELS) {}\n\n ngOnChanges(changes: SimpleChanges) {\n const currentValue = get(changes, 'activeDate.currentValue');\n const currentYear = currentValue instanceof Date ? currentValue.getFullYear() : -1;\n const selectedMonthChanged = this.selectedDate && this.selectedDate.getFullYear() === this.activeDate.getFullYear();\n const current = new Date();\n\n this.current = currentYear === current.getFullYear() ? this.monthLabels[current.getMonth()] : '';\n\n this.selectedMonth = selectedMonthChanged ? this.selectedDate.getMonth() : -1;\n\n if (changes.monthLabels) {\n this.monthLabels = this.monthLabels || this.moduleMonthLabels;\n this.months = chunk(this.monthLabels, 2);\n }\n }\n\n pickDate(event: MouseEvent, date: string) {\n event.stopPropagation();\n\n let selectedDate = new Date(this.activeDate);\n selectedDate = DateHelper.updateMonth(selectedDate, this.monthLabels.indexOf(date));\n\n this.selectDate.emit(selectedDate);\n }\n}\n","<div class=\"m-datepicker__nav\">\n <button (click)=\"switchView()\" class=\"m-datepicker__nav-title\" type=\"button\">\n {{ headerLabel | titlecase }}\n <aui-icon name=\"ai-arrow-down-1\" />\n </button>\n\n <div class=\"m-datepicker__nav-pagination\">\n <button\n (click)=\"updateActiveDate(-1)\"\n [attr.aria-label]=\"ariaPreviousLabel\"\n class=\"a-button a-button--text a-button--primary has-icon\"\n type=\"button\"\n >\n <aui-icon name=\"ai-arrow-left-1\"></aui-icon>\n </button>\n <button\n (click)=\"updateActiveDate(1)\"\n [attr.aria-label]=\"ariaNextLabel\"\n class=\"a-button a-button--text a-button--primary has-icon\"\n type=\"button\"\n >\n <aui-icon name=\"ai-arrow-right-1\"></aui-icon>\n </button>\n </div>\n</div>\n<aui-calendar-month\n (selectDate)=\"pickDate($event)\"\n *ngIf=\"activeView === CALENDAR_VIEW_MONTH\"\n [activeDate]=\"activeDate\"\n [range]=\"range\"\n [interval]=\"interval\"\n [selectedDate]=\"selectedDate\"\n [weekdayLabels]=\"weekdayLabels\"\n></aui-calendar-month>\n<aui-calendar-year\n (selectDate)=\"pickDate($event)\"\n *ngIf=\"activeView === CALENDAR_VIEW_YEAR\"\n [activeDate]=\"activeDate\"\n [monthLabels]=\"monthLabels\"\n [selectedDate]=\"selectedDate\"\n></aui-calendar-year>\n<aui-calendar-decennia\n (selectDate)=\"pickDate($event)\"\n *ngIf=\"activeView === CALENDAR_VIEW_DECENNIA\"\n [activeDate]=\"activeDate\"\n [selectedDate]=\"selectedDate\"\n></aui-calendar-decennia>\n","import {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n HostBinding,\n Inject,\n Input,\n OnChanges,\n OnInit,\n Output,\n SimpleChanges,\n} from '@angular/core';\n\nimport { DateHelper, DateRange } from '@acpaas-ui/ngx-utils';\nimport { TZDate } from '@date-fns/tz';\n\nimport {\n CALENDAR_DEFAULT_MONTH_LABELS,\n CALENDAR_DEFAULT_WEEKDAY_LABELS,\n CALENDAR_MONTH_LABELS,\n CALENDAR_WEEKDAY_LABELS,\n} from '../../calendar.conf';\nimport {\n CALENDAR_VIEW_DECENNIA,\n CALENDAR_VIEW_MONTH,\n CALENDAR_VIEW_YEAR,\n MonthLabelsConfig,\n WeekdayLabelsConfig,\n} from '../../types/calendar.types';\nimport { CalendarService } from '../../services/calendar.service';\nimport { Interval } from '@acpaas-ui/ngx-utils';\n\n@Component({\n selector: 'aui-calendar',\n templateUrl: './calendar.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class CalendarComponent implements OnInit, OnChanges {\n @HostBinding('attr.role') role = 'application';\n @HostBinding('attr.aria-hidden') ariahidden = 'false';\n\n @Input() ariaPreviousLabels = ['Ga naar vorige maand', 'Ga naar vorig jaar', 'Ga naar vorige 18 jaren'];\n @Input() ariaNextLabels = ['Ga naar volgende maand', 'Ga naar volgend jaar', 'Ga naar volgende 18 jaren'];\n\n @Input() selectedDate: Date;\n @Input() range: DateRange;\n @Input()\n interval?: Interval.IInterval<Date>;\n @Input() weekdayLabels: WeekdayLabelsConfig;\n @Input() monthLabels: MonthLabelsConfig;\n @Output() selectDate = new EventEmitter();\n\n public CALENDAR_VIEW_MONTH = CALENDAR_VIEW_MONTH;\n public CALENDAR_VIEW_YEAR = CALENDAR_VIEW_YEAR;\n public CALENDAR_VIEW_DECENNIA = CALENDAR_VIEW_DECENNIA;\n public activeDate: Date;\n public activeView: string = CALENDAR_VIEW_MONTH;\n public headerLabel = '';\n public ariaPreviousLabel = this.ariaPreviousLabels[0];\n public ariaNextLabel = this.ariaNextLabels[0];\n\n constructor(\n @Inject(CALENDAR_MONTH_LABELS) public moduleMonthLabels = CALENDAR_DEFAULT_MONTH_LABELS,\n @Inject(CALENDAR_WEEKDAY_LABELS) public moduleWeekdayLabels = CALENDAR_DEFAULT_WEEKDAY_LABELS,\n private calendarService: CalendarService\n ) {}\n\n public ngOnInit() {\n this.initControl();\n }\n\n ngOnChanges(changes: SimpleChanges) {\n const selectedDate = changes.selectedDate && changes.selectedDate.currentValue ? changes.selectedDate : null;\n\n if (\n typeof this.monthLabels !== 'undefined' &&\n selectedDate &&\n !DateHelper.datesAreEqual(selectedDate.currentValue, selectedDate.previousValue)\n ) {\n this.activeDate = this.selectedDate;\n this.updateHeaderLabel();\n } else {\n let activeDateToSet = new Date();\n\n if (this.interval && this.interval.isInRange(activeDateToSet)) {\n activeDateToSet = this.interval.min;\n }\n\n this.activeDate = DateHelper.parseDate(activeDateToSet);\n\n this.initControl();\n }\n }\n\n updateActiveDate(factor: number = 0): void {\n const activeDate = this.activeDate\n ? new Date(this.activeDate.getFullYear(), this.activeDate.getMonth(), 1)\n : new Date();\n\n switch (this.activeView) {\n case CALENDAR_VIEW_MONTH:\n activeDate.setMonth(activeDate.getMonth() + factor);\n break;\n case CALENDAR_VIEW_YEAR:\n activeDate.setFullYear(activeDate.getFullYear() + factor);\n break;\n case CALENDAR_VIEW_DECENNIA:\n activeDate.setFullYear(activeDate.getFullYear() + 18 * factor);\n break;\n }\n\n this.activeDate = activeDate;\n this.updateHeaderLabel();\n }\n\n switchView(factor: number = 1): void {\n const views = [CALENDAR_VIEW_MONTH, CALENDAR_VIEW_YEAR, CALENDAR_VIEW_DECENNIA];\n\n const currView = views.indexOf(this.activeView);\n let nextView = currView + factor >= views.length ? 0 : currView + factor;\n nextView = nextView < 0 ? views.length - 1 : nextView;\n\n this.activeView = views[nextView];\n\n // reset activeDate when returning to month view without model update\n if (this.selectedDate && nextView === 0 && factor === 1) {\n this.activeDate = this.selectedDate;\n }\n\n this.updateHeaderLabel();\n }\n\n updateHeaderLabel(): void {\n switch (this.activeView) {\n case CALENDAR_VIEW_MONTH:\n this.headerLabel = this.monthLabels[this.activeDate.getMonth()] + ' ' + this.activeDate.getFullYear();\n this.ariaPreviousLabel = this.ariaPreviousLabels[0];\n this.ariaNextLabel = this.ariaNextLabels[0];\n break;\n case CALENDAR_VIEW_YEAR:\n this.headerLabel = String(this.activeDate.getFullYear());\n this.ariaPreviousLabel = this.ariaPreviousLabels[1];\n this.ariaNextLabel = this.ariaNextLabels[1];\n break;\n case CALENDAR_VIEW_DECENNIA:\n const startYear = this.activeDate.getFullYear();\n this.headerLabel = `${startYear} - ${startYear + 17}`;\n this.ariaPreviousLabel = this.ariaPreviousLabels[2];\n this.ariaNextLabel = this.ariaNextLabels[2];\n break;\n }\n }\n\n pickDate(date: Date): void {\n const complete = this.activeView === CALENDAR_VIEW_MONTH;\n\n if (complete) {\n const brusselsDate = new TZDate(date, 'Europe/Brussels');\n const year = brusselsDate.getFullYear();\n const month = brusselsDate.getMonth();\n const day = brusselsDate.getDate();\n const timezoneAwareDate = new Date(DateHelper.toUtcMidnightInBrussels(year, month, day));\n\n this.selectDate.emit({\n date: timezoneAwareDate,\n complete,\n });\n } else {\n this.selectDate.emit({\n date,\n complete,\n });\n }\n\n if (!complete) {\n this.activeDate = date;\n this.switchView(-1);\n }\n }\n\n private initControl(): void {\n this.weekdayLabels = this.weekdayLabels || this.moduleWeekdayLabels;\n this.monthLabels = this.monthLabels || this.moduleMonthLabels;\n this.activeDate = this.calendarService.getClosestDateForRange(this.activeDate, this.range);\n if (this.selectedDate) {\n this.activeDate = this.selectedDate;\n this.updateActiveDate();\n }\n this.updateHeaderLabel();\n }\n}\n","import { ModuleWithProviders, NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { IconModule } from '@acpaas-ui/ngx-icon';\nimport {\n CALENDAR_DEFAULT_MONTH_LABELS,\n CALENDAR_DEFAULT_WEEKDAY_LABELS,\n CALENDAR_MONTH_LABELS,\n CALENDAR_WEEKDAY_LABELS,\n} from './calendar.conf';\nimport { MonthLabelsConfig, WeekdayLabelsConfig } from './types/calendar.types';\nimport { CalendarService } from './services/calendar.service';\nimport { CalendarComponent } from './components/calendar/calendar.component';\nimport { CalendarDecenniaComponent } from './components/decennia/decennia.component';\nimport { CalendarMonthComponent } from './components/month/month.component';\nimport { CalendarYearComponent } from './components/year/year.component';\n\n@NgModule({\n imports: [CommonModule, IconModule],\n declarations: [\n CalendarComponent,\n CalendarDecenniaComponent,\n CalendarMonthComponent,\n CalendarYearComponent,\n ],\n exports: [\n CalendarComponent,\n CalendarDecenniaComponent,\n CalendarMonthComponent,\n CalendarYearComponent,\n ],\n providers: [\n CalendarService,\n {\n provide: CALENDAR_WEEKDAY_LABELS,\n useValue: CALENDAR_DEFAULT_WEEKDAY_LABELS,\n },\n { provide: CALENDAR_MONTH_LABELS, useValue: CALENDAR_DEFAULT_MONTH_LABELS },\n ],\n})\nexport class CalendarModule {\n static forChild(\n weekdayLabels: WeekdayLabelsConfig,\n monthLabels: MonthLabelsConfig\n ): ModuleWithProviders<CalendarModule> {\n return {\n ngModule: CalendarModule,\n providers: [\n CalendarService,\n { provide: CALENDAR_WEEKDAY_LABELS, useValue: weekdayLabels },\n { provide: CALENDAR_MONTH_LABELS, useValue: monthLabels },\n ],\n };\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["_c0","i1.CalendarService"],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  import * as i0 from '@angular/core';
2
2
  import { Injectable, InjectionToken, EventEmitter, Component, ChangeDetectionStrategy, Input, Output, Inject, HostBinding, NgModule } from '@angular/core';
3
3
  import { DateGenerator, DateHelper } from '@acpaas-ui/ngx-utils';
4
+ import { TZDate } from '@date-fns/tz';
4
5
  import * as i1 from '@angular/common';
5
6
  import { CommonModule } from '@angular/common';
6
7
  import * as i3 from '@acpaas-ui/ngx-icon';
@@ -194,7 +195,7 @@ function CalendarMonthComponent_tr_6_td_1_Template(rf, ctx) { if (rf & 1) {
194
195
  const day_r5 = ctx.$implicit;
195
196
  const ctx_r4 = i0.ɵɵnextContext(2);
196
197
  i0.ɵɵadvance(1);
197
- i0.ɵɵproperty("disabled", !day_r5.available)("ngClass", i0.ɵɵpureFunction4(3, _c0$1, !day_r5.date || day_r5.padding, !day_r5.padding && ctx_r4.selectedDate && day_r5.date === ctx_r4.selectedDay && ctx_r4.selectedDay && ctx_r4.selectedDate.getFullYear() === ctx_r4.activeDate.getFullYear(), !day_r5.padding && day_r5.date === ctx_r4.current, !day_r5.available));
198
+ i0.ɵɵproperty("disabled", !day_r5.available)("ngClass", i0.ɵɵpureFunction4(3, _c0$1, !day_r5.date || day_r5.padding, !day_r5.padding && ctx_r4.selectedDate && day_r5.date === ctx_r4.selectedDay && ctx_r4.selectedDay && ctx_r4.selectedYear === ctx_r4.activeYear, !day_r5.padding && day_r5.date === ctx_r4.current, !day_r5.available));
198
199
  i0.ɵɵadvance(1);
199
200
  i0.ɵɵtextInterpolate1(" ", day_r5.date, " ");
200
201
  } }
@@ -207,6 +208,7 @@ function CalendarMonthComponent_tr_6_Template(rf, ctx) { if (rf & 1) {
207
208
  i0.ɵɵadvance(1);
208
209
  i0.ɵɵproperty("ngForOf", week_r3);
209
210
  } }
211
+ const BRUSSELS_TIMEZONE = 'Europe/Brussels';
210
212
  class CalendarMonthComponent {
211
213
  constructor(moduleWeekdayLabels = CALENDAR_DEFAULT_WEEKDAY_LABELS, calendarService) {
212
214
  this.moduleWeekdayLabels = moduleWeekdayLabels;
@@ -215,6 +217,8 @@ class CalendarMonthComponent {
215
217
  this.selectDate = new EventEmitter();
216
218
  this.dates = [];
217
219
  this.selectedDay = -1;
220
+ this.selectedYear = -1;
221
+ this.activeYear = -1;
218
222
  }
219
223
  ngOnInit() {
220
224
  this.weekdayLabels = this.weekdayLabels || this.moduleWeekdayLabels;
@@ -225,9 +229,26 @@ class CalendarMonthComponent {
225
229
  const activeDateChanged = this.hasChanged(changes, 'activeDate');
226
230
  const monthChanged = activeDateChanged &&
227
231
  !DateHelper.datesAreEqual([changes.activeDate.currentValue, changes.activeDate.previousValue], 'M');
228
- const selectedDayChanged = this.selectedDate && this.activeDate.getMonth() === this.selectedDate.getMonth();
232
+ let selectedDayChanged = false;
233
+ if (this.activeDate) {
234
+ const activeDateBrussels = new TZDate(this.activeDate, BRUSSELS_TIMEZONE);
235
+ this.activeYear = activeDateBrussels.getFullYear();
236
+ if (this.selectedDate) {
237
+ const selectedDateBrussels = new TZDate(this.selectedDate, BRUSSELS_TIMEZONE);
238
+ selectedDayChanged = selectedDateBrussels.getMonth() === activeDateBrussels.getMonth();
239
+ this.selectedYear = selectedDateBrussels.getFullYear();
240
+ }
241
+ else {
242
+ this.selectedYear = -1;
243
+ }
244
+ }
245
+ else {
246
+ this.activeYear = -1;
247
+ this.selectedYear = -1;
248
+ }
229
249
  this.current = this.getCurrentDate();
230
- this.selectedDay = selectedDayChanged ? this.selectedDate.getDate() : -1;
250
+ this.selectedDay =
251
+ selectedDayChanged && this.selectedDate ? new TZDate(this.selectedDate, BRUSSELS_TIMEZONE).getDate() : -1;
231
252
  let newDates = [];
232
253
  if (selectedDateChanged || intervalChanged || (activeDateChanged && monthChanged)) {
233
254
  newDates = this.calendarService.getMonthForDate(this.activeDate);
@@ -304,7 +325,7 @@ class CalendarMonthComponent {
304
325
  } }, dependencies: [i1.NgClass, i1.NgForOf, i1.SlicePipe], encapsulation: 2, changeDetection: 0 });
305
326
  (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(CalendarMonthComponent, [{
306
327
  type: Component,
307
- args: [{ selector: 'aui-calendar-month', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"m-datepicker__grid\">\n <table>\n <thead>\n <tr class=\"m-datepicker__grid-head\">\n <th *ngFor=\"let day of weekdayLabels\" scope=\"col\">\n <span [title]=\"day\" class=\"u-text-capitalize\">{{ day | slice : 0 : 2 }}</span>\n </th>\n </tr>\n </thead>\n\n <tbody class=\"m-datepicker__grid-body\">\n <tr *ngFor=\"let week of dates\">\n <td *ngFor=\"let day of week\">\n <button\n (click)=\"pickDate($event, day)\"\n [disabled]=\"!day.available\"\n [ngClass]=\"{\n 'is-faded': !day.date || day.padding,\n 'is-selected':\n !day.padding &&\n selectedDate &&\n day.date === selectedDay &&\n selectedDay &&\n selectedDate.getFullYear() === activeDate.getFullYear(),\n 'is-current': !day.padding && day.date === current,\n 'is-unavailable': !day.available\n }\"\n type=\"button\"\n >\n {{ day.date }}\n </button>\n </td>\n </tr>\n </tbody>\n </table>\n</div>\n" }]
328
+ args: [{ selector: 'aui-calendar-month', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"m-datepicker__grid\">\n <table>\n <thead>\n <tr class=\"m-datepicker__grid-head\">\n <th *ngFor=\"let day of weekdayLabels\" scope=\"col\">\n <span [title]=\"day\" class=\"u-text-capitalize\">{{ day | slice : 0 : 2 }}</span>\n </th>\n </tr>\n </thead>\n\n <tbody class=\"m-datepicker__grid-body\">\n <tr *ngFor=\"let week of dates\">\n <td *ngFor=\"let day of week\">\n <button\n (click)=\"pickDate($event, day)\"\n [disabled]=\"!day.available\"\n [ngClass]=\"{\n 'is-faded': !day.date || day.padding,\n 'is-selected':\n !day.padding && selectedDate && day.date === selectedDay && selectedDay && selectedYear === activeYear,\n 'is-current': !day.padding && day.date === current,\n 'is-unavailable': !day.available\n }\"\n type=\"button\"\n >\n {{ day.date }}\n </button>\n </td>\n </tr>\n </tbody>\n </table>\n</div>\n" }]
308
329
  }], function () { return [{ type: undefined, decorators: [{
309
330
  type: Inject,
310
331
  args: [CALENDAR_WEEKDAY_LABELS]
@@ -517,10 +538,23 @@ class CalendarComponent {
517
538
  }
518
539
  pickDate(date) {
519
540
  const complete = this.activeView === CALENDAR_VIEW_MONTH;
520
- this.selectDate.emit({
521
- date,
522
- complete,
523
- });
541
+ if (complete) {
542
+ const brusselsDate = new TZDate(date, 'Europe/Brussels');
543
+ const year = brusselsDate.getFullYear();
544
+ const month = brusselsDate.getMonth();
545
+ const day = brusselsDate.getDate();
546
+ const timezoneAwareDate = new Date(DateHelper.toUtcMidnightInBrussels(year, month, day));
547
+ this.selectDate.emit({
548
+ date: timezoneAwareDate,
549
+ complete,
550
+ });
551
+ }
552
+ else {
553
+ this.selectDate.emit({
554
+ date,
555
+ complete,
556
+ });
557
+ }
524
558
  if (!complete) {
525
559
  this.activeDate = date;
526
560
  this.switchView(-1);
@@ -1 +1 @@
1
- {"version":3,"file":"acpaas-ui-ngx-calendar.mjs","sources":["../../src/lib/types/calendar.types.ts","../../src/lib/services/calendar.service.ts","../../src/lib/calendar.conf.ts","../../src/lib/components/decennia/decennia.component.html","../../src/lib/components/decennia/decennia.component.ts","../../src/lib/components/month/month.component.html","../../src/lib/components/month/month.component.ts","../../src/lib/components/year/year.component.html","../../src/lib/components/year/year.component.ts","../../src/lib/components/calendar/calendar.component.html","../../src/lib/components/calendar/calendar.component.ts","../../src/lib/calendar.module.ts","../../src/acpaas-ui-ngx-calendar.ts"],"sourcesContent":["export const CALENDAR_VIEW_MONTH = 'CALENDAR_VIEW_MONTH';\nexport const CALENDAR_VIEW_YEAR = 'CALENDAR_VIEW_YEAR';\nexport const CALENDAR_VIEW_DECENNIA = 'CALENDAR_VIEW_DECENNIA';\n\nexport type WeekdayLabelsConfig = string[];\nexport type MonthLabelsConfig = string[];\n\nexport interface DatepickerResult {\n date: Date;\n complete: boolean;\n}\n\nexport interface DateRangeMap {\n before: number[];\n current: number[];\n after: number[];\n}\n","import { Injectable } from '@angular/core';\nimport { DateGenerator, DateHelper, DateRange, Month } from '@acpaas-ui/ngx-utils';\n\nimport { DateRangeMap } from '../types/calendar.types';\n\nexport interface MonthMap {\n [key: number]: Month;\n}\n\n@Injectable()\nexport class CalendarService {\n public months: MonthMap = {};\n private currentYear: number;\n\n getMonth(month: number, year?: number): Month {\n if (year) {\n if (this.currentYear !== year) {\n this.months = {};\n }\n\n this.currentYear = year;\n }\n\n if (this.months.hasOwnProperty(month)) {\n return [...this.months[month]];\n }\n\n const date = new Date();\n date.setMonth(month, 1);\n\n if (year) {\n date.setFullYear(year);\n }\n\n const generatedMonth = DateGenerator.generateMonth(date, { startOfWeek: 1, padding: true, generatePadding: true });\n\n this.months[month] = generatedMonth;\n\n return [...generatedMonth];\n }\n\n getMonthForDate(date: Date): Month {\n return this.getMonth(date.getMonth(), date.getFullYear());\n }\n\n getRangeForDate(date: Date, range: DateRange): number[] {\n return DateGenerator.generateRange(date, range, { startOfWeek: 1 });\n }\n\n getRangesForDate(date: Date, range: DateRange): DateRangeMap {\n const rangeOptions = { startOfWeek: 1 };\n const before = DateHelper.updateMonth(date, date.getMonth() - 1);\n const after = DateHelper.updateMonth(date, date.getMonth() + 1);\n\n return {\n before: DateGenerator.generateRange(before, range, rangeOptions),\n current: DateGenerator.generateRange(date, range, rangeOptions),\n after: DateGenerator.generateRange(after, range, rangeOptions),\n };\n }\n\n getClosestDateForRange(date: Date = new Date(), range: DateRange): Date {\n const dateRange = this.getRangeForDate(date, range);\n\n if (DateHelper.dateOutOfRange(date, dateRange)) {\n return date;\n }\n\n return DateHelper.closestDateForRange(date, dateRange);\n }\n}\n","import { InjectionToken } from '@angular/core';\nimport { MonthLabelsConfig, WeekdayLabelsConfig } from './types/calendar.types';\n\nexport const CALENDAR_DEFAULT_WEEKDAY_LABELS = [\n 'Maandag',\n 'Dinsdag',\n 'Woensdag',\n 'Donderdag',\n 'Vrijdag',\n 'Zaterdag',\n 'Zondag',\n];\n\nexport const CALENDAR_DEFAULT_MONTH_LABELS = [\n 'Januari',\n 'Februari',\n 'Maart',\n 'April',\n 'Mei',\n 'Juni',\n 'Juli',\n 'Augustus',\n 'September',\n 'Oktober',\n 'November',\n 'December',\n];\n\nexport const CALENDAR_WEEKDAY_LABELS = new InjectionToken<WeekdayLabelsConfig>('weekdayLabels');\nexport const CALENDAR_MONTH_LABELS = new InjectionToken<MonthLabelsConfig>('monthLabels');\n","<div class=\"m-datepicker__list\">\n <table>\n <tbody class=\"m-datepicker__list-body\">\n <tr *ngFor=\"let group of years\">\n <td *ngFor=\"let year of group\">\n <button\n (click)=\"pickDate($event, year)\"\n [ngClass]=\"{\n 'is-current': year === current,\n 'is-selected': year === selectedYear\n }\"\n type=\"button\"\n >\n {{ year }}\n </button>\n </td>\n </tr>\n </tbody>\n </table>\n</div>\n","import { ChangeDetectionStrategy, Component, EventEmitter, Input, OnChanges, OnInit, Output, SimpleChanges } from '@angular/core';\nimport { chunk, get } from 'lodash-es';\n\n@Component({\n selector: 'aui-calendar-decennia',\n templateUrl: './decennia.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class CalendarDecenniaComponent implements OnInit, OnChanges {\n @Input() selectedDate: Date;\n @Input() activeDate: Date;\n @Output() selectDate = new EventEmitter();\n\n public years = [];\n public selectedYear = -1;\n public current = -1;\n\n public ngOnInit() {\n const current = new Date();\n this.current = current.getFullYear();\n }\n\n ngOnChanges(changes: SimpleChanges) {\n const currentValue = get(changes, 'activeDate.currentValue');\n const previousValue = get(changes, 'activeDate.previousValue');\n const currentYear = currentValue instanceof Date ? currentValue.getFullYear() : -1;\n const previousYear = previousValue instanceof Date ? previousValue.getFullYear() : -1;\n const outOfRange = previousYear > currentYear || previousYear + 17 < currentYear;\n\n if (currentYear >= 0 && outOfRange) {\n this.updateYears();\n }\n\n this.selectedYear = this.selectedDate instanceof Date ? this.selectedDate.getFullYear() : -1;\n }\n\n pickDate(event: MouseEvent, date: number) {\n event.stopPropagation();\n\n const selectedDate = new Date(this.activeDate);\n selectedDate.setFullYear(date);\n\n this.selectDate.emit(selectedDate);\n }\n\n private updateYears(): void {\n const years = [];\n const activeYear = this.activeDate.getFullYear();\n\n for (let i = activeYear; i < activeYear + 18; i += 1) {\n years.push(i);\n }\n\n this.years = chunk(years, 3);\n }\n}\n","<div class=\"m-datepicker__grid\">\n <table>\n <thead>\n <tr class=\"m-datepicker__grid-head\">\n <th *ngFor=\"let day of weekdayLabels\" scope=\"col\">\n <span [title]=\"day\" class=\"u-text-capitalize\">{{ day | slice : 0 : 2 }}</span>\n </th>\n </tr>\n </thead>\n\n <tbody class=\"m-datepicker__grid-body\">\n <tr *ngFor=\"let week of dates\">\n <td *ngFor=\"let day of week\">\n <button\n (click)=\"pickDate($event, day)\"\n [disabled]=\"!day.available\"\n [ngClass]=\"{\n 'is-faded': !day.date || day.padding,\n 'is-selected':\n !day.padding &&\n selectedDate &&\n day.date === selectedDay &&\n selectedDay &&\n selectedDate.getFullYear() === activeDate.getFullYear(),\n 'is-current': !day.padding && day.date === current,\n 'is-unavailable': !day.available\n }\"\n type=\"button\"\n >\n {{ day.date }}\n </button>\n </td>\n </tr>\n </tbody>\n </table>\n</div>\n","import {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Inject,\n Input,\n OnChanges,\n OnInit,\n Output,\n SimpleChanges,\n} from '@angular/core';\nimport { get } from 'lodash-es';\nimport { DateHelper, DateRange, Day, Month } from '@acpaas-ui/ngx-utils';\nimport { CALENDAR_DEFAULT_WEEKDAY_LABELS, CALENDAR_WEEKDAY_LABELS } from '../../calendar.conf';\nimport { CalendarService } from '../../services/calendar.service';\nimport { DateRangeMap, WeekdayLabelsConfig } from '../../types/calendar.types';\nimport { Interval } from '@acpaas-ui/ngx-utils';\n\n@Component({\n selector: 'aui-calendar-month',\n templateUrl: './month.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class CalendarMonthComponent implements OnInit, OnChanges {\n @Input() selectedDate: Date;\n @Input() activeDate: Date;\n @Input() range: DateRange;\n @Input()\n interval?: Interval.IInterval<Date>;\n @Input() weekdayLabels: WeekdayLabelsConfig = CALENDAR_DEFAULT_WEEKDAY_LABELS;\n @Output() selectDate = new EventEmitter();\n\n public dates: Month = [];\n public selectedDay = -1;\n public current: number;\n\n constructor(\n @Inject(CALENDAR_WEEKDAY_LABELS) private moduleWeekdayLabels = CALENDAR_DEFAULT_WEEKDAY_LABELS,\n private calendarService: CalendarService\n ) {}\n\n public ngOnInit() {\n this.weekdayLabels = this.weekdayLabels || this.moduleWeekdayLabels;\n }\n\n ngOnChanges(changes: SimpleChanges) {\n const selectedDateChanged = this.hasChanged(changes, 'selectedDate');\n const intervalChanged = !!changes.interval && changes.interval.currentValue !== changes.interval.previousValue;\n const activeDateChanged = this.hasChanged(changes, 'activeDate');\n const monthChanged =\n activeDateChanged &&\n !DateHelper.datesAreEqual([changes.activeDate.currentValue, changes.activeDate.previousValue], 'M');\n const selectedDayChanged = this.selectedDate && this.activeDate.getMonth() === this.selectedDate.getMonth();\n\n this.current = this.getCurrentDate();\n this.selectedDay = selectedDayChanged ? this.selectedDate.getDate() : -1;\n\n let newDates = [];\n\n if (selectedDateChanged || intervalChanged || (activeDateChanged && monthChanged)) {\n newDates = this.calendarService.getMonthForDate(this.activeDate);\n } else {\n return;\n }\n\n const range: DateRangeMap | null = this.calendarService.getRangesForDate(this.activeDate, this.range);\n this.dates = newDates.map((week) =>\n week.map((day) => {\n const currentDate = new Date();\n this.activeDate.setHours(currentDate.getHours(), currentDate.getMinutes(), currentDate.getSeconds());\n const date: Date = new Date(this.activeDate.getFullYear(), this.activeDate.getMonth(), day.date);\n\n if (day.padding) {\n if (day.date > 20) {\n date.setMonth(this.activeDate.getMonth() - 1);\n } else {\n date.setMonth(this.activeDate.getMonth() + 1);\n }\n }\n\n date.setDate(day.date);\n\n const available: boolean =\n this.dayIsAvailableForRange(day, range) && (this.interval ? !this.interval.isInRange(date) : true);\n return {\n ...day,\n available,\n };\n })\n );\n }\n\n pickDate(event: MouseEvent, day: Day): void {\n event.stopPropagation(); // Stop propagation so the modal doesn't close\n\n let selectedDate = new Date(this.activeDate);\n\n if (day.padding) {\n const month = day.date > 20 ? -1 : 1;\n selectedDate = DateHelper.updateMonth(selectedDate, selectedDate.getMonth() + month);\n }\n\n this.selectDate.emit(DateHelper.updateDate(selectedDate, day.date));\n }\n\n private hasChanged(changes: SimpleChanges, prop: string): boolean {\n const current = get(changes, `${prop}.currentValue`);\n const previous = get(changes, `${prop}.previousValue`);\n const currentValue = current instanceof Date ? current.valueOf() : 0;\n const previousValue = previous instanceof Date ? previous.valueOf() : 0;\n\n return !!currentValue && currentValue !== previousValue;\n }\n\n private getCurrentDate(): number {\n const current = new Date();\n const monthHasChanged = !DateHelper.datesAreEqual([this.activeDate, current], ['M', 'Y']);\n\n return monthHasChanged ? -1 : current.getDate();\n }\n\n private dayIsAvailableForRange(day: Day, range: DateRangeMap): boolean {\n if (!range) {\n return true;\n }\n\n let dateRange = range.current;\n\n if (day.padding) {\n dateRange = day.date > 20 ? range.before : range.after;\n }\n\n return dateRange.indexOf(day.date) < 0;\n }\n}\n","<div class=\"m-datepicker__list\">\n <table>\n <tbody class=\"m-datepicker__list-body\">\n <tr *ngFor=\"let group of months\">\n <td *ngFor=\"let month of group\">\n <button\n (click)=\"pickDate($event, month)\"\n [ngClass]=\"{\n 'is-current': month === current,\n 'is-selected': month === monthLabels[selectedMonth]\n }\"\n type=\"button\"\n >\n {{ month | titlecase }}\n </button>\n </td>\n </tr>\n </tbody>\n </table>\n</div>\n","import {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Inject,\n Input,\n OnChanges,\n Output,\n SimpleChanges,\n} from '@angular/core';\nimport { chunk, get } from 'lodash-es';\n\nimport { DateHelper } from '@acpaas-ui/ngx-utils';\n\nimport { CALENDAR_DEFAULT_MONTH_LABELS, CALENDAR_MONTH_LABELS } from '../../calendar.conf';\nimport { MonthLabelsConfig } from '../../types/calendar.types';\n\n@Component({\n selector: 'aui-calendar-year',\n templateUrl: './year.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class CalendarYearComponent implements OnChanges {\n @Input() selectedDate: Date;\n @Input() activeDate: Date;\n @Input() monthLabels: MonthLabelsConfig = CALENDAR_DEFAULT_MONTH_LABELS;\n @Output() selectDate = new EventEmitter();\n\n public selectedMonth = -1;\n public current = '';\n public months: Array<string[]> = [];\n\n constructor(@Inject(CALENDAR_MONTH_LABELS) public moduleMonthLabels = CALENDAR_DEFAULT_MONTH_LABELS) {}\n\n ngOnChanges(changes: SimpleChanges) {\n const currentValue = get(changes, 'activeDate.currentValue');\n const currentYear = currentValue instanceof Date ? currentValue.getFullYear() : -1;\n const selectedMonthChanged = this.selectedDate && this.selectedDate.getFullYear() === this.activeDate.getFullYear();\n const current = new Date();\n\n this.current = currentYear === current.getFullYear() ? this.monthLabels[current.getMonth()] : '';\n\n this.selectedMonth = selectedMonthChanged ? this.selectedDate.getMonth() : -1;\n\n if (changes.monthLabels) {\n this.monthLabels = this.monthLabels || this.moduleMonthLabels;\n this.months = chunk(this.monthLabels, 2);\n }\n }\n\n pickDate(event: MouseEvent, date: string) {\n event.stopPropagation();\n\n let selectedDate = new Date(this.activeDate);\n selectedDate = DateHelper.updateMonth(selectedDate, this.monthLabels.indexOf(date));\n\n this.selectDate.emit(selectedDate);\n }\n}\n","<div class=\"m-datepicker__nav\">\n <button (click)=\"switchView()\" class=\"m-datepicker__nav-title\" type=\"button\">\n {{ headerLabel | titlecase }}\n <aui-icon name=\"ai-arrow-down-1\" />\n </button>\n\n <div class=\"m-datepicker__nav-pagination\">\n <button\n (click)=\"updateActiveDate(-1)\"\n [attr.aria-label]=\"ariaPreviousLabel\"\n class=\"a-button a-button--text a-button--primary has-icon\"\n type=\"button\"\n >\n <aui-icon name=\"ai-arrow-left-1\"></aui-icon>\n </button>\n <button\n (click)=\"updateActiveDate(1)\"\n [attr.aria-label]=\"ariaNextLabel\"\n class=\"a-button a-button--text a-button--primary has-icon\"\n type=\"button\"\n >\n <aui-icon name=\"ai-arrow-right-1\"></aui-icon>\n </button>\n </div>\n</div>\n<aui-calendar-month\n (selectDate)=\"pickDate($event)\"\n *ngIf=\"activeView === CALENDAR_VIEW_MONTH\"\n [activeDate]=\"activeDate\"\n [range]=\"range\"\n [interval]=\"interval\"\n [selectedDate]=\"selectedDate\"\n [weekdayLabels]=\"weekdayLabels\"\n></aui-calendar-month>\n<aui-calendar-year\n (selectDate)=\"pickDate($event)\"\n *ngIf=\"activeView === CALENDAR_VIEW_YEAR\"\n [activeDate]=\"activeDate\"\n [monthLabels]=\"monthLabels\"\n [selectedDate]=\"selectedDate\"\n></aui-calendar-year>\n<aui-calendar-decennia\n (selectDate)=\"pickDate($event)\"\n *ngIf=\"activeView === CALENDAR_VIEW_DECENNIA\"\n [activeDate]=\"activeDate\"\n [selectedDate]=\"selectedDate\"\n></aui-calendar-decennia>\n","import {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n HostBinding,\n Inject,\n Input,\n OnChanges,\n OnInit,\n Output,\n SimpleChanges,\n} from '@angular/core';\n\nimport { DateHelper, DateRange } from '@acpaas-ui/ngx-utils';\n\nimport {\n CALENDAR_DEFAULT_MONTH_LABELS,\n CALENDAR_DEFAULT_WEEKDAY_LABELS,\n CALENDAR_MONTH_LABELS,\n CALENDAR_WEEKDAY_LABELS,\n} from '../../calendar.conf';\nimport {\n CALENDAR_VIEW_DECENNIA,\n CALENDAR_VIEW_MONTH,\n CALENDAR_VIEW_YEAR,\n MonthLabelsConfig,\n WeekdayLabelsConfig,\n} from '../../types/calendar.types';\nimport { CalendarService } from '../../services/calendar.service';\nimport { Interval } from '@acpaas-ui/ngx-utils';\n\n@Component({\n selector: 'aui-calendar',\n templateUrl: './calendar.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class CalendarComponent implements OnInit, OnChanges {\n @HostBinding('attr.role') role = 'application';\n @HostBinding('attr.aria-hidden') ariahidden = 'false';\n\n @Input() ariaPreviousLabels = ['Ga naar vorige maand', 'Ga naar vorig jaar', 'Ga naar vorige 18 jaren'];\n @Input() ariaNextLabels = ['Ga naar volgende maand', 'Ga naar volgend jaar', 'Ga naar volgende 18 jaren'];\n\n @Input() selectedDate: Date;\n @Input() range: DateRange;\n @Input()\n interval?: Interval.IInterval<Date>;\n @Input() weekdayLabels: WeekdayLabelsConfig;\n @Input() monthLabels: MonthLabelsConfig;\n @Output() selectDate = new EventEmitter();\n\n public CALENDAR_VIEW_MONTH = CALENDAR_VIEW_MONTH;\n public CALENDAR_VIEW_YEAR = CALENDAR_VIEW_YEAR;\n public CALENDAR_VIEW_DECENNIA = CALENDAR_VIEW_DECENNIA;\n public activeDate: Date;\n public activeView: string = CALENDAR_VIEW_MONTH;\n public headerLabel = '';\n public ariaPreviousLabel = this.ariaPreviousLabels[0];\n public ariaNextLabel = this.ariaNextLabels[0];\n\n constructor(\n @Inject(CALENDAR_MONTH_LABELS) public moduleMonthLabels = CALENDAR_DEFAULT_MONTH_LABELS,\n @Inject(CALENDAR_WEEKDAY_LABELS) public moduleWeekdayLabels = CALENDAR_DEFAULT_WEEKDAY_LABELS,\n private calendarService: CalendarService\n ) {}\n\n public ngOnInit() {\n this.initControl();\n }\n\n ngOnChanges(changes: SimpleChanges) {\n const selectedDate = changes.selectedDate && changes.selectedDate.currentValue ? changes.selectedDate : null;\n\n if (\n typeof this.monthLabels !== 'undefined' &&\n selectedDate &&\n !DateHelper.datesAreEqual(selectedDate.currentValue, selectedDate.previousValue)\n ) {\n this.activeDate = this.selectedDate;\n this.updateHeaderLabel();\n } else {\n let activeDateToSet = new Date();\n\n if (this.interval && this.interval.isInRange(activeDateToSet)) {\n activeDateToSet = this.interval.min;\n }\n\n this.activeDate = DateHelper.parseDate(activeDateToSet);\n\n this.initControl();\n }\n }\n\n updateActiveDate(factor: number = 0): void {\n const activeDate = this.activeDate\n ? new Date(this.activeDate.getFullYear(), this.activeDate.getMonth(), 1)\n : new Date();\n\n switch (this.activeView) {\n case CALENDAR_VIEW_MONTH:\n activeDate.setMonth(activeDate.getMonth() + factor);\n break;\n case CALENDAR_VIEW_YEAR:\n activeDate.setFullYear(activeDate.getFullYear() + factor);\n break;\n case CALENDAR_VIEW_DECENNIA:\n activeDate.setFullYear(activeDate.getFullYear() + 18 * factor);\n break;\n }\n\n this.activeDate = activeDate;\n this.updateHeaderLabel();\n }\n\n switchView(factor: number = 1): void {\n const views = [CALENDAR_VIEW_MONTH, CALENDAR_VIEW_YEAR, CALENDAR_VIEW_DECENNIA];\n\n const currView = views.indexOf(this.activeView);\n let nextView = currView + factor >= views.length ? 0 : currView + factor;\n nextView = nextView < 0 ? views.length - 1 : nextView;\n\n this.activeView = views[nextView];\n\n // reset activeDate when returning to month view without model update\n if (this.selectedDate && nextView === 0 && factor === 1) {\n this.activeDate = this.selectedDate;\n }\n\n this.updateHeaderLabel();\n }\n\n updateHeaderLabel(): void {\n switch (this.activeView) {\n case CALENDAR_VIEW_MONTH:\n this.headerLabel = this.monthLabels[this.activeDate.getMonth()] + ' ' + this.activeDate.getFullYear();\n this.ariaPreviousLabel = this.ariaPreviousLabels[0];\n this.ariaNextLabel = this.ariaNextLabels[0];\n break;\n case CALENDAR_VIEW_YEAR:\n this.headerLabel = String(this.activeDate.getFullYear());\n this.ariaPreviousLabel = this.ariaPreviousLabels[1];\n this.ariaNextLabel = this.ariaNextLabels[1];\n break;\n case CALENDAR_VIEW_DECENNIA:\n const startYear = this.activeDate.getFullYear();\n this.headerLabel = `${startYear} - ${startYear + 17}`;\n this.ariaPreviousLabel = this.ariaPreviousLabels[2];\n this.ariaNextLabel = this.ariaNextLabels[2];\n break;\n }\n }\n\n pickDate(date: Date): void {\n const complete = this.activeView === CALENDAR_VIEW_MONTH;\n\n this.selectDate.emit({\n date,\n complete,\n });\n\n if (!complete) {\n this.activeDate = date;\n this.switchView(-1);\n }\n }\n\n private initControl(): void {\n this.weekdayLabels = this.weekdayLabels || this.moduleWeekdayLabels;\n this.monthLabels = this.monthLabels || this.moduleMonthLabels;\n this.activeDate = this.calendarService.getClosestDateForRange(this.activeDate, this.range);\n if (this.selectedDate) {\n this.activeDate = this.selectedDate;\n this.updateActiveDate();\n }\n this.updateHeaderLabel();\n }\n}\n","import { ModuleWithProviders, NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { IconModule } from '@acpaas-ui/ngx-icon';\nimport {\n CALENDAR_DEFAULT_MONTH_LABELS,\n CALENDAR_DEFAULT_WEEKDAY_LABELS,\n CALENDAR_MONTH_LABELS,\n CALENDAR_WEEKDAY_LABELS,\n} from './calendar.conf';\nimport { MonthLabelsConfig, WeekdayLabelsConfig } from './types/calendar.types';\nimport { CalendarService } from './services/calendar.service';\nimport { CalendarComponent } from './components/calendar/calendar.component';\nimport { CalendarDecenniaComponent } from './components/decennia/decennia.component';\nimport { CalendarMonthComponent } from './components/month/month.component';\nimport { CalendarYearComponent } from './components/year/year.component';\n\n@NgModule({\n imports: [CommonModule, IconModule],\n declarations: [\n CalendarComponent,\n CalendarDecenniaComponent,\n CalendarMonthComponent,\n CalendarYearComponent,\n ],\n exports: [\n CalendarComponent,\n CalendarDecenniaComponent,\n CalendarMonthComponent,\n CalendarYearComponent,\n ],\n providers: [\n CalendarService,\n {\n provide: CALENDAR_WEEKDAY_LABELS,\n useValue: CALENDAR_DEFAULT_WEEKDAY_LABELS,\n },\n { provide: CALENDAR_MONTH_LABELS, useValue: CALENDAR_DEFAULT_MONTH_LABELS },\n ],\n})\nexport class CalendarModule {\n static forChild(\n weekdayLabels: WeekdayLabelsConfig,\n monthLabels: MonthLabelsConfig\n ): ModuleWithProviders<CalendarModule> {\n return {\n ngModule: CalendarModule,\n providers: [\n CalendarService,\n { provide: CALENDAR_WEEKDAY_LABELS, useValue: weekdayLabels },\n { provide: CALENDAR_MONTH_LABELS, useValue: monthLabels },\n ],\n };\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["_c0","i1.CalendarService"],"mappings":"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"}
1
+ {"version":3,"file":"acpaas-ui-ngx-calendar.mjs","sources":["../../src/lib/types/calendar.types.ts","../../src/lib/services/calendar.service.ts","../../src/lib/calendar.conf.ts","../../src/lib/components/decennia/decennia.component.html","../../src/lib/components/decennia/decennia.component.ts","../../src/lib/components/month/month.component.html","../../src/lib/components/month/month.component.ts","../../src/lib/components/year/year.component.html","../../src/lib/components/year/year.component.ts","../../src/lib/components/calendar/calendar.component.html","../../src/lib/components/calendar/calendar.component.ts","../../src/lib/calendar.module.ts","../../src/acpaas-ui-ngx-calendar.ts"],"sourcesContent":["export const CALENDAR_VIEW_MONTH = 'CALENDAR_VIEW_MONTH';\nexport const CALENDAR_VIEW_YEAR = 'CALENDAR_VIEW_YEAR';\nexport const CALENDAR_VIEW_DECENNIA = 'CALENDAR_VIEW_DECENNIA';\n\nexport type WeekdayLabelsConfig = string[];\nexport type MonthLabelsConfig = string[];\n\nexport interface DatepickerResult {\n date: Date;\n complete: boolean;\n}\n\nexport interface DateRangeMap {\n before: number[];\n current: number[];\n after: number[];\n}\n","import { Injectable } from '@angular/core';\nimport { DateGenerator, DateHelper, DateRange, Month } from '@acpaas-ui/ngx-utils';\n\nimport { DateRangeMap } from '../types/calendar.types';\n\nexport interface MonthMap {\n [key: number]: Month;\n}\n\n@Injectable()\nexport class CalendarService {\n public months: MonthMap = {};\n private currentYear: number;\n\n getMonth(month: number, year?: number): Month {\n if (year) {\n if (this.currentYear !== year) {\n this.months = {};\n }\n\n this.currentYear = year;\n }\n\n if (this.months.hasOwnProperty(month)) {\n return [...this.months[month]];\n }\n\n const date = new Date();\n date.setMonth(month, 1);\n\n if (year) {\n date.setFullYear(year);\n }\n\n const generatedMonth = DateGenerator.generateMonth(date, { startOfWeek: 1, padding: true, generatePadding: true });\n\n this.months[month] = generatedMonth;\n\n return [...generatedMonth];\n }\n\n getMonthForDate(date: Date): Month {\n return this.getMonth(date.getMonth(), date.getFullYear());\n }\n\n getRangeForDate(date: Date, range: DateRange): number[] {\n return DateGenerator.generateRange(date, range, { startOfWeek: 1 });\n }\n\n getRangesForDate(date: Date, range: DateRange): DateRangeMap {\n const rangeOptions = { startOfWeek: 1 };\n const before = DateHelper.updateMonth(date, date.getMonth() - 1);\n const after = DateHelper.updateMonth(date, date.getMonth() + 1);\n\n return {\n before: DateGenerator.generateRange(before, range, rangeOptions),\n current: DateGenerator.generateRange(date, range, rangeOptions),\n after: DateGenerator.generateRange(after, range, rangeOptions),\n };\n }\n\n getClosestDateForRange(date: Date = new Date(), range: DateRange): Date {\n const dateRange = this.getRangeForDate(date, range);\n\n if (DateHelper.dateOutOfRange(date, dateRange)) {\n return date;\n }\n\n return DateHelper.closestDateForRange(date, dateRange);\n }\n}\n","import { InjectionToken } from '@angular/core';\nimport { MonthLabelsConfig, WeekdayLabelsConfig } from './types/calendar.types';\n\nexport const CALENDAR_DEFAULT_WEEKDAY_LABELS = [\n 'Maandag',\n 'Dinsdag',\n 'Woensdag',\n 'Donderdag',\n 'Vrijdag',\n 'Zaterdag',\n 'Zondag',\n];\n\nexport const CALENDAR_DEFAULT_MONTH_LABELS = [\n 'Januari',\n 'Februari',\n 'Maart',\n 'April',\n 'Mei',\n 'Juni',\n 'Juli',\n 'Augustus',\n 'September',\n 'Oktober',\n 'November',\n 'December',\n];\n\nexport const CALENDAR_WEEKDAY_LABELS = new InjectionToken<WeekdayLabelsConfig>('weekdayLabels');\nexport const CALENDAR_MONTH_LABELS = new InjectionToken<MonthLabelsConfig>('monthLabels');\n","<div class=\"m-datepicker__list\">\n <table>\n <tbody class=\"m-datepicker__list-body\">\n <tr *ngFor=\"let group of years\">\n <td *ngFor=\"let year of group\">\n <button\n (click)=\"pickDate($event, year)\"\n [ngClass]=\"{\n 'is-current': year === current,\n 'is-selected': year === selectedYear\n }\"\n type=\"button\"\n >\n {{ year }}\n </button>\n </td>\n </tr>\n </tbody>\n </table>\n</div>\n","import { ChangeDetectionStrategy, Component, EventEmitter, Input, OnChanges, OnInit, Output, SimpleChanges } from '@angular/core';\nimport { chunk, get } from 'lodash-es';\n\n@Component({\n selector: 'aui-calendar-decennia',\n templateUrl: './decennia.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class CalendarDecenniaComponent implements OnInit, OnChanges {\n @Input() selectedDate: Date;\n @Input() activeDate: Date;\n @Output() selectDate = new EventEmitter();\n\n public years = [];\n public selectedYear = -1;\n public current = -1;\n\n public ngOnInit() {\n const current = new Date();\n this.current = current.getFullYear();\n }\n\n ngOnChanges(changes: SimpleChanges) {\n const currentValue = get(changes, 'activeDate.currentValue');\n const previousValue = get(changes, 'activeDate.previousValue');\n const currentYear = currentValue instanceof Date ? currentValue.getFullYear() : -1;\n const previousYear = previousValue instanceof Date ? previousValue.getFullYear() : -1;\n const outOfRange = previousYear > currentYear || previousYear + 17 < currentYear;\n\n if (currentYear >= 0 && outOfRange) {\n this.updateYears();\n }\n\n this.selectedYear = this.selectedDate instanceof Date ? this.selectedDate.getFullYear() : -1;\n }\n\n pickDate(event: MouseEvent, date: number) {\n event.stopPropagation();\n\n const selectedDate = new Date(this.activeDate);\n selectedDate.setFullYear(date);\n\n this.selectDate.emit(selectedDate);\n }\n\n private updateYears(): void {\n const years = [];\n const activeYear = this.activeDate.getFullYear();\n\n for (let i = activeYear; i < activeYear + 18; i += 1) {\n years.push(i);\n }\n\n this.years = chunk(years, 3);\n }\n}\n","<div class=\"m-datepicker__grid\">\n <table>\n <thead>\n <tr class=\"m-datepicker__grid-head\">\n <th *ngFor=\"let day of weekdayLabels\" scope=\"col\">\n <span [title]=\"day\" class=\"u-text-capitalize\">{{ day | slice : 0 : 2 }}</span>\n </th>\n </tr>\n </thead>\n\n <tbody class=\"m-datepicker__grid-body\">\n <tr *ngFor=\"let week of dates\">\n <td *ngFor=\"let day of week\">\n <button\n (click)=\"pickDate($event, day)\"\n [disabled]=\"!day.available\"\n [ngClass]=\"{\n 'is-faded': !day.date || day.padding,\n 'is-selected':\n !day.padding && selectedDate && day.date === selectedDay && selectedDay && selectedYear === activeYear,\n 'is-current': !day.padding && day.date === current,\n 'is-unavailable': !day.available\n }\"\n type=\"button\"\n >\n {{ day.date }}\n </button>\n </td>\n </tr>\n </tbody>\n </table>\n</div>\n","import {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Inject,\n Input,\n OnChanges,\n OnInit,\n Output,\n SimpleChanges,\n} from '@angular/core';\nimport { get } from 'lodash-es';\nimport { TZDate } from '@date-fns/tz';\nimport { DateHelper, DateRange, Day, Month } from '@acpaas-ui/ngx-utils';\nimport { CALENDAR_DEFAULT_WEEKDAY_LABELS, CALENDAR_WEEKDAY_LABELS } from '../../calendar.conf';\nimport { CalendarService } from '../../services/calendar.service';\nimport { DateRangeMap, WeekdayLabelsConfig } from '../../types/calendar.types';\nimport { Interval } from '@acpaas-ui/ngx-utils';\n\nconst BRUSSELS_TIMEZONE = 'Europe/Brussels';\n\n@Component({\n selector: 'aui-calendar-month',\n templateUrl: './month.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class CalendarMonthComponent implements OnInit, OnChanges {\n @Input() selectedDate: Date;\n @Input() activeDate: Date;\n @Input() range: DateRange;\n @Input()\n interval?: Interval.IInterval<Date>;\n @Input() weekdayLabels: WeekdayLabelsConfig = CALENDAR_DEFAULT_WEEKDAY_LABELS;\n @Output() selectDate = new EventEmitter();\n\n public dates: Month = [];\n public selectedDay = -1;\n public current: number;\n public selectedYear = -1;\n public activeYear = -1;\n\n constructor(\n @Inject(CALENDAR_WEEKDAY_LABELS) private moduleWeekdayLabels = CALENDAR_DEFAULT_WEEKDAY_LABELS,\n private calendarService: CalendarService\n ) {}\n\n public ngOnInit() {\n this.weekdayLabels = this.weekdayLabels || this.moduleWeekdayLabels;\n }\n\n ngOnChanges(changes: SimpleChanges) {\n const selectedDateChanged = this.hasChanged(changes, 'selectedDate');\n const intervalChanged = !!changes.interval && changes.interval.currentValue !== changes.interval.previousValue;\n const activeDateChanged = this.hasChanged(changes, 'activeDate');\n const monthChanged =\n activeDateChanged &&\n !DateHelper.datesAreEqual([changes.activeDate.currentValue, changes.activeDate.previousValue], 'M');\n\n let selectedDayChanged = false;\n if (this.activeDate) {\n const activeDateBrussels = new TZDate(this.activeDate, BRUSSELS_TIMEZONE);\n this.activeYear = activeDateBrussels.getFullYear();\n\n if (this.selectedDate) {\n const selectedDateBrussels = new TZDate(this.selectedDate, BRUSSELS_TIMEZONE);\n selectedDayChanged = selectedDateBrussels.getMonth() === activeDateBrussels.getMonth();\n this.selectedYear = selectedDateBrussels.getFullYear();\n } else {\n this.selectedYear = -1;\n }\n } else {\n this.activeYear = -1;\n this.selectedYear = -1;\n }\n\n this.current = this.getCurrentDate();\n this.selectedDay =\n selectedDayChanged && this.selectedDate ? new TZDate(this.selectedDate, BRUSSELS_TIMEZONE).getDate() : -1;\n\n let newDates = [];\n\n if (selectedDateChanged || intervalChanged || (activeDateChanged && monthChanged)) {\n newDates = this.calendarService.getMonthForDate(this.activeDate);\n } else {\n return;\n }\n\n const range: DateRangeMap | null = this.calendarService.getRangesForDate(this.activeDate, this.range);\n this.dates = newDates.map((week) =>\n week.map((day) => {\n const currentDate = new Date();\n this.activeDate.setHours(currentDate.getHours(), currentDate.getMinutes(), currentDate.getSeconds());\n const date: Date = new Date(this.activeDate.getFullYear(), this.activeDate.getMonth(), day.date);\n\n if (day.padding) {\n if (day.date > 20) {\n date.setMonth(this.activeDate.getMonth() - 1);\n } else {\n date.setMonth(this.activeDate.getMonth() + 1);\n }\n }\n\n date.setDate(day.date);\n\n const available: boolean =\n this.dayIsAvailableForRange(day, range) && (this.interval ? !this.interval.isInRange(date) : true);\n return {\n ...day,\n available,\n };\n })\n );\n }\n\n pickDate(event: MouseEvent, day: Day): void {\n event.stopPropagation(); // Stop propagation so the modal doesn't close\n\n let selectedDate = new Date(this.activeDate);\n\n if (day.padding) {\n const month = day.date > 20 ? -1 : 1;\n selectedDate = DateHelper.updateMonth(selectedDate, selectedDate.getMonth() + month);\n }\n\n this.selectDate.emit(DateHelper.updateDate(selectedDate, day.date));\n }\n\n private hasChanged(changes: SimpleChanges, prop: string): boolean {\n const current = get(changes, `${prop}.currentValue`);\n const previous = get(changes, `${prop}.previousValue`);\n const currentValue = current instanceof Date ? current.valueOf() : 0;\n const previousValue = previous instanceof Date ? previous.valueOf() : 0;\n\n return !!currentValue && currentValue !== previousValue;\n }\n\n private getCurrentDate(): number {\n const current = new Date();\n const monthHasChanged = !DateHelper.datesAreEqual([this.activeDate, current], ['M', 'Y']);\n\n return monthHasChanged ? -1 : current.getDate();\n }\n\n private dayIsAvailableForRange(day: Day, range: DateRangeMap): boolean {\n if (!range) {\n return true;\n }\n\n let dateRange = range.current;\n\n if (day.padding) {\n dateRange = day.date > 20 ? range.before : range.after;\n }\n\n return dateRange.indexOf(day.date) < 0;\n }\n}\n","<div class=\"m-datepicker__list\">\n <table>\n <tbody class=\"m-datepicker__list-body\">\n <tr *ngFor=\"let group of months\">\n <td *ngFor=\"let month of group\">\n <button\n (click)=\"pickDate($event, month)\"\n [ngClass]=\"{\n 'is-current': month === current,\n 'is-selected': month === monthLabels[selectedMonth]\n }\"\n type=\"button\"\n >\n {{ month | titlecase }}\n </button>\n </td>\n </tr>\n </tbody>\n </table>\n</div>\n","import {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Inject,\n Input,\n OnChanges,\n Output,\n SimpleChanges,\n} from '@angular/core';\nimport { chunk, get } from 'lodash-es';\n\nimport { DateHelper } from '@acpaas-ui/ngx-utils';\n\nimport { CALENDAR_DEFAULT_MONTH_LABELS, CALENDAR_MONTH_LABELS } from '../../calendar.conf';\nimport { MonthLabelsConfig } from '../../types/calendar.types';\n\n@Component({\n selector: 'aui-calendar-year',\n templateUrl: './year.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class CalendarYearComponent implements OnChanges {\n @Input() selectedDate: Date;\n @Input() activeDate: Date;\n @Input() monthLabels: MonthLabelsConfig = CALENDAR_DEFAULT_MONTH_LABELS;\n @Output() selectDate = new EventEmitter();\n\n public selectedMonth = -1;\n public current = '';\n public months: Array<string[]> = [];\n\n constructor(@Inject(CALENDAR_MONTH_LABELS) public moduleMonthLabels = CALENDAR_DEFAULT_MONTH_LABELS) {}\n\n ngOnChanges(changes: SimpleChanges) {\n const currentValue = get(changes, 'activeDate.currentValue');\n const currentYear = currentValue instanceof Date ? currentValue.getFullYear() : -1;\n const selectedMonthChanged = this.selectedDate && this.selectedDate.getFullYear() === this.activeDate.getFullYear();\n const current = new Date();\n\n this.current = currentYear === current.getFullYear() ? this.monthLabels[current.getMonth()] : '';\n\n this.selectedMonth = selectedMonthChanged ? this.selectedDate.getMonth() : -1;\n\n if (changes.monthLabels) {\n this.monthLabels = this.monthLabels || this.moduleMonthLabels;\n this.months = chunk(this.monthLabels, 2);\n }\n }\n\n pickDate(event: MouseEvent, date: string) {\n event.stopPropagation();\n\n let selectedDate = new Date(this.activeDate);\n selectedDate = DateHelper.updateMonth(selectedDate, this.monthLabels.indexOf(date));\n\n this.selectDate.emit(selectedDate);\n }\n}\n","<div class=\"m-datepicker__nav\">\n <button (click)=\"switchView()\" class=\"m-datepicker__nav-title\" type=\"button\">\n {{ headerLabel | titlecase }}\n <aui-icon name=\"ai-arrow-down-1\" />\n </button>\n\n <div class=\"m-datepicker__nav-pagination\">\n <button\n (click)=\"updateActiveDate(-1)\"\n [attr.aria-label]=\"ariaPreviousLabel\"\n class=\"a-button a-button--text a-button--primary has-icon\"\n type=\"button\"\n >\n <aui-icon name=\"ai-arrow-left-1\"></aui-icon>\n </button>\n <button\n (click)=\"updateActiveDate(1)\"\n [attr.aria-label]=\"ariaNextLabel\"\n class=\"a-button a-button--text a-button--primary has-icon\"\n type=\"button\"\n >\n <aui-icon name=\"ai-arrow-right-1\"></aui-icon>\n </button>\n </div>\n</div>\n<aui-calendar-month\n (selectDate)=\"pickDate($event)\"\n *ngIf=\"activeView === CALENDAR_VIEW_MONTH\"\n [activeDate]=\"activeDate\"\n [range]=\"range\"\n [interval]=\"interval\"\n [selectedDate]=\"selectedDate\"\n [weekdayLabels]=\"weekdayLabels\"\n></aui-calendar-month>\n<aui-calendar-year\n (selectDate)=\"pickDate($event)\"\n *ngIf=\"activeView === CALENDAR_VIEW_YEAR\"\n [activeDate]=\"activeDate\"\n [monthLabels]=\"monthLabels\"\n [selectedDate]=\"selectedDate\"\n></aui-calendar-year>\n<aui-calendar-decennia\n (selectDate)=\"pickDate($event)\"\n *ngIf=\"activeView === CALENDAR_VIEW_DECENNIA\"\n [activeDate]=\"activeDate\"\n [selectedDate]=\"selectedDate\"\n></aui-calendar-decennia>\n","import {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n HostBinding,\n Inject,\n Input,\n OnChanges,\n OnInit,\n Output,\n SimpleChanges,\n} from '@angular/core';\n\nimport { DateHelper, DateRange } from '@acpaas-ui/ngx-utils';\nimport { TZDate } from '@date-fns/tz';\n\nimport {\n CALENDAR_DEFAULT_MONTH_LABELS,\n CALENDAR_DEFAULT_WEEKDAY_LABELS,\n CALENDAR_MONTH_LABELS,\n CALENDAR_WEEKDAY_LABELS,\n} from '../../calendar.conf';\nimport {\n CALENDAR_VIEW_DECENNIA,\n CALENDAR_VIEW_MONTH,\n CALENDAR_VIEW_YEAR,\n MonthLabelsConfig,\n WeekdayLabelsConfig,\n} from '../../types/calendar.types';\nimport { CalendarService } from '../../services/calendar.service';\nimport { Interval } from '@acpaas-ui/ngx-utils';\n\n@Component({\n selector: 'aui-calendar',\n templateUrl: './calendar.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class CalendarComponent implements OnInit, OnChanges {\n @HostBinding('attr.role') role = 'application';\n @HostBinding('attr.aria-hidden') ariahidden = 'false';\n\n @Input() ariaPreviousLabels = ['Ga naar vorige maand', 'Ga naar vorig jaar', 'Ga naar vorige 18 jaren'];\n @Input() ariaNextLabels = ['Ga naar volgende maand', 'Ga naar volgend jaar', 'Ga naar volgende 18 jaren'];\n\n @Input() selectedDate: Date;\n @Input() range: DateRange;\n @Input()\n interval?: Interval.IInterval<Date>;\n @Input() weekdayLabels: WeekdayLabelsConfig;\n @Input() monthLabels: MonthLabelsConfig;\n @Output() selectDate = new EventEmitter();\n\n public CALENDAR_VIEW_MONTH = CALENDAR_VIEW_MONTH;\n public CALENDAR_VIEW_YEAR = CALENDAR_VIEW_YEAR;\n public CALENDAR_VIEW_DECENNIA = CALENDAR_VIEW_DECENNIA;\n public activeDate: Date;\n public activeView: string = CALENDAR_VIEW_MONTH;\n public headerLabel = '';\n public ariaPreviousLabel = this.ariaPreviousLabels[0];\n public ariaNextLabel = this.ariaNextLabels[0];\n\n constructor(\n @Inject(CALENDAR_MONTH_LABELS) public moduleMonthLabels = CALENDAR_DEFAULT_MONTH_LABELS,\n @Inject(CALENDAR_WEEKDAY_LABELS) public moduleWeekdayLabels = CALENDAR_DEFAULT_WEEKDAY_LABELS,\n private calendarService: CalendarService\n ) {}\n\n public ngOnInit() {\n this.initControl();\n }\n\n ngOnChanges(changes: SimpleChanges) {\n const selectedDate = changes.selectedDate && changes.selectedDate.currentValue ? changes.selectedDate : null;\n\n if (\n typeof this.monthLabels !== 'undefined' &&\n selectedDate &&\n !DateHelper.datesAreEqual(selectedDate.currentValue, selectedDate.previousValue)\n ) {\n this.activeDate = this.selectedDate;\n this.updateHeaderLabel();\n } else {\n let activeDateToSet = new Date();\n\n if (this.interval && this.interval.isInRange(activeDateToSet)) {\n activeDateToSet = this.interval.min;\n }\n\n this.activeDate = DateHelper.parseDate(activeDateToSet);\n\n this.initControl();\n }\n }\n\n updateActiveDate(factor: number = 0): void {\n const activeDate = this.activeDate\n ? new Date(this.activeDate.getFullYear(), this.activeDate.getMonth(), 1)\n : new Date();\n\n switch (this.activeView) {\n case CALENDAR_VIEW_MONTH:\n activeDate.setMonth(activeDate.getMonth() + factor);\n break;\n case CALENDAR_VIEW_YEAR:\n activeDate.setFullYear(activeDate.getFullYear() + factor);\n break;\n case CALENDAR_VIEW_DECENNIA:\n activeDate.setFullYear(activeDate.getFullYear() + 18 * factor);\n break;\n }\n\n this.activeDate = activeDate;\n this.updateHeaderLabel();\n }\n\n switchView(factor: number = 1): void {\n const views = [CALENDAR_VIEW_MONTH, CALENDAR_VIEW_YEAR, CALENDAR_VIEW_DECENNIA];\n\n const currView = views.indexOf(this.activeView);\n let nextView = currView + factor >= views.length ? 0 : currView + factor;\n nextView = nextView < 0 ? views.length - 1 : nextView;\n\n this.activeView = views[nextView];\n\n // reset activeDate when returning to month view without model update\n if (this.selectedDate && nextView === 0 && factor === 1) {\n this.activeDate = this.selectedDate;\n }\n\n this.updateHeaderLabel();\n }\n\n updateHeaderLabel(): void {\n switch (this.activeView) {\n case CALENDAR_VIEW_MONTH:\n this.headerLabel = this.monthLabels[this.activeDate.getMonth()] + ' ' + this.activeDate.getFullYear();\n this.ariaPreviousLabel = this.ariaPreviousLabels[0];\n this.ariaNextLabel = this.ariaNextLabels[0];\n break;\n case CALENDAR_VIEW_YEAR:\n this.headerLabel = String(this.activeDate.getFullYear());\n this.ariaPreviousLabel = this.ariaPreviousLabels[1];\n this.ariaNextLabel = this.ariaNextLabels[1];\n break;\n case CALENDAR_VIEW_DECENNIA:\n const startYear = this.activeDate.getFullYear();\n this.headerLabel = `${startYear} - ${startYear + 17}`;\n this.ariaPreviousLabel = this.ariaPreviousLabels[2];\n this.ariaNextLabel = this.ariaNextLabels[2];\n break;\n }\n }\n\n pickDate(date: Date): void {\n const complete = this.activeView === CALENDAR_VIEW_MONTH;\n\n if (complete) {\n const brusselsDate = new TZDate(date, 'Europe/Brussels');\n const year = brusselsDate.getFullYear();\n const month = brusselsDate.getMonth();\n const day = brusselsDate.getDate();\n const timezoneAwareDate = new Date(DateHelper.toUtcMidnightInBrussels(year, month, day));\n\n this.selectDate.emit({\n date: timezoneAwareDate,\n complete,\n });\n } else {\n this.selectDate.emit({\n date,\n complete,\n });\n }\n\n if (!complete) {\n this.activeDate = date;\n this.switchView(-1);\n }\n }\n\n private initControl(): void {\n this.weekdayLabels = this.weekdayLabels || this.moduleWeekdayLabels;\n this.monthLabels = this.monthLabels || this.moduleMonthLabels;\n this.activeDate = this.calendarService.getClosestDateForRange(this.activeDate, this.range);\n if (this.selectedDate) {\n this.activeDate = this.selectedDate;\n this.updateActiveDate();\n }\n this.updateHeaderLabel();\n }\n}\n","import { ModuleWithProviders, NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { IconModule } from '@acpaas-ui/ngx-icon';\nimport {\n CALENDAR_DEFAULT_MONTH_LABELS,\n CALENDAR_DEFAULT_WEEKDAY_LABELS,\n CALENDAR_MONTH_LABELS,\n CALENDAR_WEEKDAY_LABELS,\n} from './calendar.conf';\nimport { MonthLabelsConfig, WeekdayLabelsConfig } from './types/calendar.types';\nimport { CalendarService } from './services/calendar.service';\nimport { CalendarComponent } from './components/calendar/calendar.component';\nimport { CalendarDecenniaComponent } from './components/decennia/decennia.component';\nimport { CalendarMonthComponent } from './components/month/month.component';\nimport { CalendarYearComponent } from './components/year/year.component';\n\n@NgModule({\n imports: [CommonModule, IconModule],\n declarations: [\n CalendarComponent,\n CalendarDecenniaComponent,\n CalendarMonthComponent,\n CalendarYearComponent,\n ],\n exports: [\n CalendarComponent,\n CalendarDecenniaComponent,\n CalendarMonthComponent,\n CalendarYearComponent,\n ],\n providers: [\n CalendarService,\n {\n provide: CALENDAR_WEEKDAY_LABELS,\n useValue: CALENDAR_DEFAULT_WEEKDAY_LABELS,\n },\n { provide: CALENDAR_MONTH_LABELS, useValue: CALENDAR_DEFAULT_MONTH_LABELS },\n ],\n})\nexport class CalendarModule {\n static forChild(\n weekdayLabels: WeekdayLabelsConfig,\n monthLabels: MonthLabelsConfig\n ): ModuleWithProviders<CalendarModule> {\n return {\n ngModule: CalendarModule,\n providers: [\n CalendarService,\n { provide: CALENDAR_WEEKDAY_LABELS, useValue: weekdayLabels },\n { provide: CALENDAR_MONTH_LABELS, useValue: monthLabels },\n ],\n };\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["_c0","i1.CalendarService"],"mappings":"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"}
@@ -16,6 +16,8 @@ export declare class CalendarMonthComponent implements OnInit, OnChanges {
16
16
  dates: Month;
17
17
  selectedDay: number;
18
18
  current: number;
19
+ selectedYear: number;
20
+ activeYear: number;
19
21
  constructor(moduleWeekdayLabels: string[], calendarService: CalendarService);
20
22
  ngOnInit(): void;
21
23
  ngOnChanges(changes: SimpleChanges): void;
package/package.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@acpaas-ui/ngx-calendar",
3
- "version": "6.1.5",
3
+ "version": "6.1.7",
4
4
  "publishConfig": {
5
5
  "access": "public"
6
6
  },
7
7
  "dependencies": {
8
8
  "@acpaas-ui/ngx-icon": "^6.1.5",
9
- "@acpaas-ui/ngx-utils": "^6.1.5",
9
+ "@acpaas-ui/ngx-utils": "^6.1.7",
10
10
  "lodash-es": "~4.17.10",
11
11
  "tslib": "^2.3.0"
12
12
  },
@@ -15,7 +15,7 @@
15
15
  "@angular/core": ">=15.2.0",
16
16
  "@angular/platform-browser-dynamic": ">=15.2.0"
17
17
  },
18
- "gitHead": "96e2c48f007fcb0ed00f1035243f332079f936eb",
18
+ "gitHead": "9912f3fceb361fa578a3004b4a772a05457ed478",
19
19
  "module": "fesm2015/acpaas-ui-ngx-calendar.mjs",
20
20
  "es2020": "fesm2020/acpaas-ui-ngx-calendar.mjs",
21
21
  "esm2020": "esm2020/acpaas-ui-ngx-calendar.mjs",