@datarailsshared/datarailsshared 1.6.31 → 1.6.35
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/datarailsshared-datarailsshared-1.6.35.tgz +0 -0
- package/esm2022/lib/dr-inputs/date-pickers/dr-date-picker/dr-date-picker.component.mjs +31 -21
- package/esm2022/lib/dr-inputs/date-pickers/dr-date-picker-with-timeframe/dr-date-picker-with-timeframe.component.mjs +2 -2
- package/esm2022/lib/dr-inputs/date-pickers/dr-date-picker_custom-header/dr-date-picker_custom-header.component.mjs +12 -9
- package/esm2022/lib/dr-inputs/date-pickers/dr-fiscal-month-calendar-picker/dr-fiscal-month-calendar-header.component.mjs +136 -0
- package/esm2022/lib/dr-inputs/date-pickers/dr-fiscal-month-calendar-picker/dr-fiscal-month-calendar-picker.component.mjs +148 -0
- package/esm2022/lib/dr-inputs/dr-inputs.module.mjs +11 -3
- package/esm2022/lib/dr-inputs/dr-select/dr-select.component.mjs +2 -2
- package/esm2022/public-api.mjs +3 -1
- package/fesm2022/datarailsshared-datarailsshared.mjs +402 -121
- package/fesm2022/datarailsshared-datarailsshared.mjs.map +1 -1
- package/lib/dr-inputs/date-pickers/dr-date-picker/dr-date-picker.component.d.ts +3 -1
- package/lib/dr-inputs/date-pickers/dr-date-picker_custom-header/dr-date-picker_custom-header.component.d.ts +7 -5
- package/lib/dr-inputs/date-pickers/dr-fiscal-month-calendar-picker/dr-fiscal-month-calendar-header.component.d.ts +9 -0
- package/lib/dr-inputs/date-pickers/dr-fiscal-month-calendar-picker/dr-fiscal-month-calendar-picker.component.d.ts +23 -0
- package/lib/dr-inputs/dr-inputs.module.d.ts +12 -10
- package/package.json +1 -1
- package/public-api.d.ts +2 -0
- package/datarailsshared-datarailsshared-1.6.31.tgz +0 -0
|
@@ -160,12 +160,7 @@ export class DrDatePickerCustomHeaderComponent {
|
|
|
160
160
|
this.selectedQuarter = this.datePickerService.getQuarterAccordingToFiscalYear(this._calendar.activeDate);
|
|
161
161
|
}
|
|
162
162
|
});
|
|
163
|
-
|
|
164
|
-
this.setPeriodLabels();
|
|
165
|
-
if (_calendar.multiYearView) {
|
|
166
|
-
this.transformDateInMultiyearViewAccordingToFY();
|
|
167
|
-
}
|
|
168
|
-
});
|
|
163
|
+
this.listenToCalendarViewChanges();
|
|
169
164
|
_calendar._userSelection.subscribe((date) => {
|
|
170
165
|
if (!this.datePickerService.isValueUpdating) {
|
|
171
166
|
this.datePickerService.onSameDaySelectedInCalendar$.next(date.value);
|
|
@@ -198,8 +193,8 @@ export class DrDatePickerCustomHeaderComponent {
|
|
|
198
193
|
const currentTimeframeOption = this.timeframeOptions.filter((option) => option.value === this._calendar.currentView)[0];
|
|
199
194
|
const fullPeriodLabel = currentTimeframeOption.periodLabel();
|
|
200
195
|
if (this._calendar.currentView === CalendarView.FOR_DAYS) {
|
|
201
|
-
this.periodMonthLabel = fullPeriodLabel.match(/[a-zA-Z]+/g)
|
|
202
|
-
this.periodYearLabel = fullPeriodLabel.match(/[0-9]+/g)
|
|
196
|
+
this.periodMonthLabel = fullPeriodLabel.match(/[a-zA-Z]+/g)?.toString();
|
|
197
|
+
this.periodYearLabel = fullPeriodLabel.match(/[0-9]+/g)?.toString() ?? fullPeriodLabel;
|
|
203
198
|
}
|
|
204
199
|
else {
|
|
205
200
|
this.periodMonthLabel = '';
|
|
@@ -281,6 +276,14 @@ export class DrDatePickerCustomHeaderComponent {
|
|
|
281
276
|
}
|
|
282
277
|
return false;
|
|
283
278
|
}
|
|
279
|
+
listenToCalendarViewChanges() {
|
|
280
|
+
this._calendar.viewChanged.pipe(takeUntil(this._destroyed)).subscribe(() => {
|
|
281
|
+
this.setPeriodLabels();
|
|
282
|
+
if (this._calendar.multiYearView) {
|
|
283
|
+
this.transformDateInMultiyearViewAccordingToFY();
|
|
284
|
+
}
|
|
285
|
+
});
|
|
286
|
+
}
|
|
284
287
|
insertWeekSelector() {
|
|
285
288
|
const selector = this.cfr.resolveComponentFactory(WeekSelectorComponent).create(this.injector);
|
|
286
289
|
const calendar = document.querySelector('.mat-calendar-content');
|
|
@@ -323,4 +326,4 @@ export class DrDatePickerCustomHeaderComponent {
|
|
|
323
326
|
type: Inject,
|
|
324
327
|
args: [MAT_DATE_FORMATS]
|
|
325
328
|
}] }, { type: i0.ChangeDetectorRef }, { type: i3.DrDatePickerService }]; }, null); })();
|
|
326
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHItZGF0ZS1waWNrZXJfY3VzdG9tLWhlYWRlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kYXRhcmFpbHNzaGFyZWQvc3JjL2xpYi9kci1pbnB1dHMvZGF0ZS1waWNrZXJzL2RyLWRhdGUtcGlja2VyX2N1c3RvbS1oZWFkZXIvZHItZGF0ZS1waWNrZXJfY3VzdG9tLWhlYWRlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kYXRhcmFpbHNzaGFyZWQvc3JjL2xpYi9kci1pbnB1dHMvZGF0ZS1waWNrZXJzL2RyLWRhdGUtcGlja2VyX2N1c3RvbS1oZWFkZXIvZHItZGF0ZS1waWNrZXJfY3VzdG9tLWhlYWRlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsdUJBQXVCLEVBRXZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsTUFBTSxFQUVOLE1BQU0sRUFDTix3QkFBd0IsRUFDeEIsUUFBUSxHQUNYLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxhQUFhLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzlDLE9BQU8sRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDdEQsT0FBTyxFQUFFLFdBQVcsRUFBbUIsTUFBTSw4QkFBOEIsQ0FBQztBQUM1RSxPQUFPLEVBQUUsV0FBVyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkUsT0FBTyxFQUFFLFlBQVksRUFBRSxnQkFBZ0IsRUFBbUMsZUFBZSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDOUgsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDekUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDN0QsT0FBTyxNQUFN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Y0FON0MsU0FBUzsyQkFDSSx3Q0FBd0MsbUJBR2pDLHVCQUF1QixDQUFDLE1BQU07O3NCQTZFMUMsTUFBTTt1QkFBQyxnQkFBZ0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIE9uRGVzdHJveSxcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBDb21wb25lbnQsXG4gICAgSW5qZWN0LFxuICAgIE9uSW5pdCxcbiAgICBpbmplY3QsXG4gICAgQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLFxuICAgIEluamVjdG9yLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGNvbWJpbmVMYXRlc3QsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHN0YXJ0V2l0aCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgTWF0Q2FsZW5kYXIsIE1hdENhbGVuZGFyVmlldyB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RhdGVwaWNrZXInO1xuaW1wb3J0IHsgRGF0ZUFkYXB0ZXIsIE1BVF9EQVRFX0ZPUk1BVFMgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jb3JlJztcbmltcG9ydCB7IENhbGVuZGFyVmlldywgQ3VzdG9tRGF0ZUZvcm1hdCwgSVRpbWVmcmFtZU9wdGlvbiwgVENhbGVuZGFyVmlldywgVGltZWZyYW1lT3B0aW9uIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzL2RhdGVQaWNrZXInO1xuaW1wb3J0IHsgRHJEYXRlUGlja2VyU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL2RyLWRhdGUtcGlja2VyLnNlcnZpY2UnO1xuaW1wb3J0IHsgUFJFU0VUX1RBR1NfTElTVCB9IGZyb20gJy4uLy4uLy4uL21vZGVscy9jb25zdGFudHMnO1xuaW1wb3J0IG1vbWVudCBmcm9tICdtb21lbnQnO1xuaW1wb3J0IHsgV2Vla1NlbGVjdG9yQ29tcG9uZW50IH0gZnJvbSAnLi4vd2Vlay1zZWxlY3Rvci93ZWVrLXNlbGVjdG9yLmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZHItZGF0ZS1waWNrZXJfY3VzdG9tLWhlYWRlci5jb21wb25lbnQnLFxuICAgIHRlbXBsYXRlVXJsOiAnZHItZGF0ZS1waWNrZXJfY3VzdG9tLWhlYWRlci5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vZHItZGF0ZS1waWNrZXJfY3VzdG9tLWhlYWRlci5jb21wb25lbnQuc2NzcyddLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBEckRhdGVQaWNrZXJDdXN0b21IZWFkZXJDb21wb25lbnQ8TW9tZW50PiBpbXBsZW1lbnRzIE9uRGVzdHJveSwgT25Jbml0IHtcbiAgICBwcml2YXRlIF9kZXN0cm95ZWQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuICAgIHF1YXJ0ZXJzID0gWzEsIDIsIDMsIDRdO1xuICAgIHNlbGVjdGVkUXVhcnRlciA9IDE7XG4gICAgdGltZWZyYW1lT3B0aW9uczogSVRpbWVmcmFtZU9wdGlvbltdID0gW1xuICAgICAgICB7XG4gICAgICAgICAgICB0aW1lZnJhbWU6IFRpbWVmcmFtZU9wdGlvbi5EQVksXG4gICAgICAgICAgICB0aXRsZTogJ0RheScsXG4gICAgICAgICAgICB2YWx1ZTogQ2FsZW5kYXJWaWV3LkZPUl9EQVlTLFxuICAgICAgICAgICAgZm9ybWF0OiB0aGlzLmRhdGVQaWNrZXJTZXJ2aWNlLmZvcm1hdENvbmZpZy5kYXksXG4gICAgICAgICAgICBwZXJpb2RMYWJlbDogKCkgPT5cbiAgICAgICAgICAgICAgICB0aGlzLl9kYXRlQWRhcHRlci5mb3JtYXQodGhpcy5fY2FsZW5kYXIuYWN0aXZlRGF0ZSwgdGhpcy5fZGF0ZUZvcm1hdHMuZGlzcGxheS5tb250aFllYXJMYWJlbCkudG9Mb2NhbGVVcHBlckNhc2UoKSxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgdGltZWZyYW1lOiBUaW1lZnJhbWVPcHRpb24uV0VFSyxcbiAgICAgICAgICAgIHRpdGxlOiAnV2VlaycsXG4gICAgICAgICAgICB2YWx1ZTogQ2FsZW5kYXJWaWV3LkZPUl9EQVlTLFxuICAgICAgICAgICAgZm9ybWF0OiB0aGlzLmRhdGVQaWNrZXJTZXJ2aWNlLmZvcm1hdENvbmZpZy53ZWVrLFxuICAgICAgICAgICAgcGVyaW9kTGFiZWw6ICgpID0+XG4gICAgICAgICAgICAgICAgdGhpcy5fZGF0ZUFkYXB0ZXIuZm9ybWF0KHRoaXMuX2NhbGVuZGFyLmFjdGl2ZURhdGUsIHRoaXMuX2RhdGVGb3JtYXRzLmRpc3BsYXkubW9udGhZZWFyTGFiZWwpLnRvTG9jYWxlVXBwZXJDYXNlKCksXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIHRpbWVmcmFtZTogVGltZWZyYW1lT3B0aW9uLk1PTlRILFxuICAgICAgICAgICAgdGl0bGU6ICdNb250aCcsXG4gICAgICAgICAgICB2YWx1ZTogQ2FsZW5kYXJWaWV3LkZPUl9NT05USFMsXG4gICAgICAgICAgICBmb3JtYXQ6IHRoaXMuZGF0ZVBpY2tlclNlcnZpY2UuZm9ybWF0Q29uZmlnLm1vbnRoLFxuICAgICAgICAgICAgcGVyaW9kTGFiZWw6ICgpID0+IFN0cmluZyhtb21lbnQodGhpcy5fY2FsZW5kYXIuYWN0aXZlRGF0ZSkudXRjKCkueWVhcigpKSxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgdGltZWZyYW1lOiBUaW1lZnJhbWVPcHRpb24uUVVBUlRFUixcbiAgICAgICAgICAgIHRpdGxlOiAnUXVhcnRlcicsXG4gICAgICAgICAgICB2YWx1ZTogQ2FsZW5kYXJWaWV3LkZPUl9RVUFSVEVSUyxcbiAgICAgICAgICAgIGZvcm1hdDogdGhpcy5kYXRlUGlja2VyU2VydmljZS5mb3JtYXRDb25maWcucXVhcnRlcixcbiAgICAgICAgICAgIHBlcmlvZExhYmVsOiAoKSA9PlxuICAgICAgICAgICAgICAgIFN0cmluZyhtb21lbnQodGhpcy5kYXRlUGlja2VyU2VydmljZS5zdWJ0cmFjdEZpc2NhbFllYXJNb250aHNGcm9tRGF0ZSh0aGlzLl9jYWxlbmRhci5hY3RpdmVEYXRlKSkudXRjKCkueWVhcigpKSxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgdGltZWZyYW1lOiBUaW1lZnJhbWVPcHRpb24uWUVBUixcbiAgICAgICAgICAgIHRpdGxlOiAnWWVhcicsXG4gICAgICAgICAgICB2YWx1ZTogQ2FsZW5kYXJWaWV3LkZPUl9ZRUFSUyxcbiAgICAgICAgICAgIGZvcm1hdDogdGhpcy5kYXRlUGlja2VyU2VydmljZS5mb3JtYXRDb25maWcueWVhcixcbiAgICAgICAgICAgIHBlcmlvZExhYmVsOiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgY3VycmVudFllYXIgPSBtb21lbnQodGhpcy5kYXRlUGlja2VyU2VydmljZS5zdWJ0cmFjdEZpc2NhbFllYXJNb250aHNGcm9tRGF0ZSh0aGlzLl9jYWxlbmRhci5hY3RpdmVEYXRlKSlcbiAgICAgICAgICAgICAgICAgICAgLnV0YygpXG4gICAgICAgICAgICAgICAgICAgIC55ZWFyKCk7XG4gICAgICAgICAgICAgICAgY29uc3Qgc3RhcnRQZXJpb2QgPSBNYXRoLmZsb29yKGN1cnJlbnRZZWFyIC8gMjQpICogMjQ7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHN0YXJ0UGVyaW9kICsgJy0nICsgKHN0YXJ0UGVyaW9kICsgMjMpO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICBdO1xuXG4gICAgcGFnaW5nU2V0dXAgPSB7XG4gICAgICAgIFtDYWxlbmRhclZpZXcuRk9SX01PTlRIU106IChmb3J3YXJkKSA9PiB0aGlzLnBhZ2luZ0RhdGVDaGFuZ2UoJ2FkZENhbGVuZGFyWWVhcnMnLCAxLCBmb3J3YXJkKSxcbiAgICAgICAgW0NhbGVuZGFyVmlldy5GT1JfUVVBUlRFUlNdOiAoZm9yd2FyZCkgPT4gdGhpcy5wYWdpbmdEYXRlQ2hhbmdlKCdhZGRDYWxlbmRhclllYXJzJywgMSwgZm9yd2FyZCksXG4gICAgICAgIFtDYWxlbmRhclZpZXcuRk9SX0RBWVNdOiAoZm9yd2FyZCkgPT4gdGhpcy5wYWdpbmdEYXRlQ2hhbmdlKCdhZGRDYWxlbmRhck1vbnRocycsIDEsIGZvcndhcmQpLFxuICAgICAgICBbQ2FsZW5kYXJWaWV3LkZPUl9ZRUFSU106IChmb3J3YXJkKSA9PiB0aGlzLnBhZ2luZ0RhdGVDaGFuZ2UoJ2FkZENhbGVuZGFyWWVhcnMnLCAyNCwgZm9yd2FyZCksXG4gICAgfTtcblxuICAgIHNlbGVjdGVkVGltZWZyYW1lOiBUQ2FsZW5kYXJWaWV3ID0gQ2FsZW5kYXJWaWV3LkZPUl9EQVlTO1xuICAgIHRpbWVmcmFtZVNlbGVjdGlvbiA9IGZhbHNlO1xuICAgIHBlcmlvZE1vbnRoTGFiZWwgPSAnJztcbiAgICBwZXJpb2RZZWFyTGFiZWwgPSAnJztcbiAgICBwcmVzZXRUYWdMaXN0ID0gUFJFU0VUX1RBR1NfTElTVDtcbiAgICBnZXQgc2VsZWN0ZWRQcmVzZXRUYWcoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmRhdGVQaWNrZXJTZXJ2aWNlLnByZXNldFRhZyQuZ2V0VmFsdWUoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgcmVhZG9ubHkgY2FsZW5kYXJWaWV3ID0gQ2FsZW5kYXJWaWV3O1xuXG4gICAgcHJpdmF0ZSByZWFkb25seSBjZnIgPSBpbmplY3QoQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGluamVjdG9yID0gaW5qZWN0KEluamVjdG9yKTtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIF9jYWxlbmRhcjogTWF0Q2FsZW5kYXI8YW55PixcbiAgICAgICAgcHJpdmF0ZSBfZGF0ZUFkYXB0ZXI6IERhdGVBZGFwdGVyPE1vbWVudD4sXG4gICAgICAgIEBJbmplY3QoTUFUX0RBVEVfRk9STUFUUykgcHJpdmF0ZSBfZGF0ZUZvcm1hdHM6IEN1c3RvbURhdGVGb3JtYXQsXG4gICAgICAgIHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICAgICAgcHVibGljIGRhdGVQaWNrZXJTZXJ2aWNlOiBEckRhdGVQaWNrZXJTZXJ2aWNlLFxuICAgICkge1xuICAgICAgICBfY2FsZW5kYXIuc3RhdGVDaGFuZ2VzLnBpcGUodGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3llZCkpLnN1YnNjcmliZSgoKSA9PiB0aGlzLnNldFBlcmlvZExhYmVscygpKTtcbiAgICAgICAgdGhpcy5kYXRlUGlja2VyU2VydmljZS5mb3JtYXQkLnBpcGUodGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3llZCkpLnN1YnNjcmliZSgodmFsdWUpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHRpbWVmcmFtZSA9IHRoaXMuZGF0ZVBpY2tlclNlcnZpY2UuZ2V0VGltZWZyYW1lKHZhbHVlKTtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRUaW1lZnJhbWUgPSB0aGlzLnRpbWVmcmFtZU9wdGlvbnMuZmlsdGVyKChvcHRpb24pID0+IG9wdGlvbi50aW1lZnJhbWUgPT09IHRpbWVmcmFtZSlbMF0udmFsdWU7XG4gICAgICAgICAgICBfY2FsZW5kYXIuY3VycmVudFZpZXcgPSB0aGlzLnNlbGVjdGVkVGltZWZyYW1lIGFzIE1hdENhbGVuZGFyVmlldztcbiAgICAgICAgICAgIHRoaXMuc2V0UGVyaW9kTGFiZWxzKCk7XG4gICAgICAgICAgICBpZiAodGhpcy5zZWxlY3RlZFRpbWVmcmFtZSA9PT0gQ2FsZW5kYXJWaWV3LkZPUl9RVUFSVEVSUykge1xuICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRRdWFydGVyID0gdGhpcy5kYXRlUGlja2VyU2VydmljZS5nZXRRdWFydGVyQWNjb3JkaW5nVG9GaXNjYWxZZWFyKHRoaXMuX2NhbGVuZGFyLmFjdGl2ZURhdGUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICBfY2FsZW5kYXIudmlld0NoYW5nZWQucGlwZSh0YWtlVW50aWwodGhpcy5fZGVzdHJveWVkKSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuc2V0UGVyaW9kTGFiZWxzKCk7XG4gICAgICAgICAgICBpZiAoX2NhbGVuZGFyLm11bHRpWWVhclZpZXcpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnRyYW5zZm9ybURhdGVJbk11bHRpeWVhclZpZXdBY2NvcmRpbmdUb0ZZKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIF9jYWxlbmRhci5fdXNlclNlbGVjdGlvbi5zdWJzY3JpYmUoKGRhdGUpID0+IHtcbiAgICAgICAgICAgIGlmICghdGhpcy5kYXRlUGlja2VyU2VydmljZS5pc1ZhbHVlVXBkYXRpbmcpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmRhdGVQaWNrZXJTZXJ2aWNlLm9uU2FtZURheVNlbGVjdGVkSW5DYWxlbmRhciQubmV4dChkYXRlLnZhbHVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgY29tYmluZUxhdGVzdChbdGhpcy5kYXRlUGlja2VyU2VydmljZS50aW1lZnJhbWUkLCB0aGlzLl9jYWxlbmRhci52aWV3Q2hhbmdlZC5waXBlKHN0YXJ0V2l0aCh0aGlzLl9jYWxlbmRhci5zdGFydFZpZXcpKV0pXG4gICAgICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5fZGVzdHJveWVkKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKFt0aW1lZnJhbWUsIHZpZXddKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3Qgc2VsZWN0b3IgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdkci13ZWVrLXNlbGVjdG9yJyk7XG4gICAgICAgICAgICAgICAgc2VsZWN0b3I/LnJlbW92ZT8uKCk7XG5cbiAgICAgICAgICAgICAgICBpZiAodGltZWZyYW1lID09PSBUaW1lZnJhbWVPcHRpb24uV0VFSyAmJiB2aWV3ID09PSAnbW9udGgnKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaW5zZXJ0V2Vla1NlbGVjdG9yKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5kYXRlUGlja2VyU2VydmljZS5jYWxlbmRhckluc3RhbmNlID0gX2NhbGVuZGFyO1xuICAgIH1cblxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIGlmICh0aGlzLl9jYWxlbmRhci5tdWx0aVllYXJWaWV3KSB7XG4gICAgICAgICAgICAgICAgdGhpcy50cmFuc2Zvcm1EYXRlSW5NdWx0aXllYXJWaWV3QWNjb3JkaW5nVG9GWSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5nb1RvQ3VycmVudERhdGVJblZpZXdCeUZZKCk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCkge1xuICAgICAgICB0aGlzLl9kZXN0cm95ZWQubmV4dCgpO1xuICAgICAgICB0aGlzLl9kZXN0cm95ZWQuY29tcGxldGUoKTtcbiAgICB9XG5cbiAgICBzZXRQZXJpb2RMYWJlbHMoKSB7XG4gICAgICAgIGNvbnN0IGN1cnJlbnRUaW1lZnJhbWVPcHRpb24gPSB0aGlzLnRpbWVmcmFtZU9wdGlvbnMuZmlsdGVyKChvcHRpb24pID0+IG9wdGlvbi52YWx1ZSA9PT0gdGhpcy5fY2FsZW5kYXIuY3VycmVudFZpZXcpWzBdO1xuICAgICAgICBjb25zdCBmdWxsUGVyaW9kTGFiZWwgPSBjdXJyZW50VGltZWZyYW1lT3B0aW9uLnBlcmlvZExhYmVsKCk7XG4gICAgICAgIGlmICh0aGlzLl9jYWxlbmRhci5jdXJyZW50VmlldyA9PT0gQ2FsZW5kYXJWaWV3LkZPUl9EQVlTKSB7XG4gICAgICAgICAgICB0aGlzLnBlcmlvZE1vbnRoTGFiZWwgPSBmdWxsUGVyaW9kTGFiZWwubWF0Y2goL1thLXpBLVpdKy9nKS50b1N0cmluZygpO1xuICAgICAgICAgICAgdGhpcy5wZXJpb2RZZWFyTGFiZWwgPSBmdWxsUGVyaW9kTGFiZWwubWF0Y2goL1swLTldKy9nKS50b1N0cmluZygpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5wZXJpb2RNb250aExhYmVsID0gJyc7XG4gICAgICAgICAgICB0aGlzLnBlcmlvZFllYXJMYWJlbCA9IGZ1bGxQZXJpb2RMYWJlbDtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICB9XG5cbiAgICBzZXRUaW1lZnJhbWUodmFsdWUpIHtcbiAgICAgICAgaWYgKHZhbHVlICE9PSB0aGlzLnNlbGVjdGVkVGltZWZyYW1lKSB7XG4gICAgICAgICAgICB0aGlzLmRhdGVQaWNrZXJTZXJ2aWNlLnJlc2V0UHJlc2V0VGFnKCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5zZWxlY3RlZFRpbWVmcmFtZSA9IHZhbHVlO1xuICAgICAgICB0aGlzLnRpbWVmcmFtZVNlbGVjdGlvbiA9IGZhbHNlO1xuICAgICAgICB0aGlzLl9jYWxlbmRhci5jdXJyZW50VmlldyA9IHRoaXMuc2VsZWN0ZWRUaW1lZnJhbWUgYXMgTWF0Q2FsZW5kYXJWaWV3O1xuICAgICAgICBjb25zdCBjaG9zZW5UaW1lZnJhbWVPcHRpb24gPSB0aGlzLnRpbWVmcmFtZU9wdGlvbnMuZmlsdGVyKChvcHRpb24pID0+IG9wdGlvbi52YWx1ZSA9PT0gdGhpcy5zZWxlY3RlZFRpbWVmcmFtZSlbMF07XG4gICAgICAgIHRoaXMuZGF0ZVBpY2tlclNlcnZpY2UudXBkYXRlVGltZWZyYW1lQW5kRm9ybWF0KGNob3NlblRpbWVmcmFtZU9wdGlvbi5mb3JtYXQpO1xuXG4gICAgICAgIGlmICh0aGlzLnNlbGVjdGVkVGltZWZyYW1lID09PSBDYWxlbmRhclZpZXcuRk9SX1FVQVJURVJTKSB7XG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkUXVhcnRlciA9IHRoaXMuZGF0ZVBpY2tlclNlcnZpY2UuZ2V0UXVhcnRlckFjY29yZGluZ1RvRmlzY2FsWWVhcih0aGlzLl9jYWxlbmRhci5hY3RpdmVEYXRlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGdldCBjdXJyZW50Vmlld0lzUXVhcnRlcigpIHtcbiAgICAgICAgcmV0dXJuICFbQ2FsZW5kYXJWaWV3LkZPUl9EQVlTLCBDYWxlbmRhclZpZXcuRk9SX01PTlRIUywgQ2FsZW5kYXJWaWV3LkZPUl9ZRUFSU10uaW5jbHVkZXMoXG4gICAgICAgICAgICB0aGlzLl9jYWxlbmRhci5jdXJyZW50VmlldyBhcyBDYWxlbmRhclZpZXcsXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgc3dpdGNoVmlld09uQ2xpY2tPblBlcmlvZExhYmVsKHZpZXc6IENhbGVuZGFyVmlldy5GT1JfTU9OVEhTIHwgQ2FsZW5kYXJWaWV3LkZPUl9ZRUFSUykge1xuICAgICAgICB0aGlzLl9jYWxlbmRhci5jdXJyZW50VmlldyA9IHZpZXc7XG4gICAgfVxuXG4gICAgb25TZWxlY3RRdWFydGVyKHF1YXJ0ZXJOdW1iZXI6IG51bWJlcikge1xuICAgICAgICB0aGlzLnNlbGVjdGVkUXVhcnRlciA9IHF1YXJ0ZXJOdW1iZXI7XG4gICAgICAgIHRoaXMuZGF0ZVBpY2tlclNlcnZpY2Uuc2V0RW5kT2ZRdWFydGVyKHRoaXMuX2NhbGVuZGFyLmFjdGl2ZURhdGUsIHF1YXJ0ZXJOdW1iZXIpO1xuICAgICAgICB0aGlzLmRhdGVQaWNrZXJTZXJ2aWNlLnVwZGF0ZWRRdWFydGVyJC5uZXh0KHRoaXMuX2NhbGVuZGFyLmFjdGl2ZURhdGUpO1xuICAgICAgICB0aGlzLmRhdGVQaWNrZXJTZXJ2aWNlLmRhdGVQaWNrZXJJbnN0YW5jZS5jbG9zZSgpO1xuICAgIH1cblxuICAgIHBhZ2luZ0NsaWNrZWQoZm9yd2FyZCkge1xuICAgICAgICBpZiAodGhpcy5wYWdpbmdTZXR1cFt0aGlzLl9jYWxlbmRhci5jdXJyZW50Vmlld10pIHtcbiAgICAgICAgICAgIHRoaXMucGFnaW5nU2V0dXBbdGhpcy5fY2FsZW5kYXIuY3VycmVudFZpZXddKGZvcndhcmQpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcGFnaW5nRGF0ZUNoYW5nZShhY3Rpb25DYWxsOiBzdHJpbmcsIGFtb3VudDogbnVtYmVyLCBmb3J3YXJkOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuX2NhbGVuZGFyLmFjdGl2ZURhdGUgPSB0aGlzLl9kYXRlQWRhcHRlclthY3Rpb25DYWxsXSh0aGlzLl9jYWxlbmRhci5hY3RpdmVEYXRlLCBmb3J3YXJkID8gYW1vdW50IDogLWFtb3VudCk7XG4gICAgICAgIHRoaXMuc2V0UGVyaW9kTGFiZWxzKCk7XG4gICAgfVxuXG4gICAgdHJhbnNmb3JtRGF0ZUluTXVsdGl5ZWFyVmlld0FjY29yZGluZ1RvRlkoKSB7XG4gICAgICAgIGNvbnN0IG11bHR1WWVhclZpZXcgPSB0aGlzLl9jYWxlbmRhci5tdWx0aVllYXJWaWV3IGFzIGFueTtcbiAgICAgICAgbXVsdHVZZWFyVmlldy5fYWN0aXZlRGF0ZSA9IHRoaXMuZGF0ZVBpY2tlclNlcnZpY2Uuc3VidHJhY3RGaXNjYWxZZWFyTW9udGhzRnJvbURhdGUobXVsdHVZZWFyVmlldy5fYWN0aXZlRGF0ZSk7XG4gICAgICAgIG11bHR1WWVhclZpZXcuX3NlbGVjdGVkWWVhciA9IG11bHR1WWVhclZpZXcuX2FjdGl2ZURhdGUueWVhcigpO1xuICAgICAgICBtdWx0dVllYXJWaWV3Ll9pbml0KCk7XG5cbiAgICAgICAgaWYgKFxuICAgICAgICAgICAgdGhpcy5kYXRlUGlja2VyU2VydmljZS5pc1RpbWVmcmFtZURlcGVuZGluZ09uRlkodGhpcy5kYXRlUGlja2VyU2VydmljZS50aW1lZnJhbWUpICYmXG4gICAgICAgICAgICAhdGhpcy5kYXRlUGlja2VyU2VydmljZS5maXNjYWxZZWFyQmFjayAmJlxuICAgICAgICAgICAgdGhpcy5kYXRlUGlja2VyU2VydmljZS5maXNjYWxZZWFyTW9udGhzTW9kaWZpZXJcbiAgICAgICAgKSB7XG4gICAgICAgICAgICBtdWx0dVllYXJWaWV3Ll90b2RheVllYXIgPSBtb21lbnQudXRjKCkueWVhcigpICsgMTtcbiAgICAgICAgICAgIChtdWx0dVllYXJWaWV3IGFzIGFueSkuX2NoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25TZWxlY3RQcmVzZXRUYWcodGFnOiBhbnkpIHtcbiAgICAgICAgaWYgKHRhZy5rZXkgPT09IHRoaXMuc2VsZWN0ZWRQcmVzZXRUYWcpIHtcbiAgICAgICAgICAgIHRoaXMuZGF0ZVBpY2tlclNlcnZpY2UucHJlc2V0VGFnJC5uZXh0KG51bGwpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5kYXRlUGlja2VyU2VydmljZS5wcmVzZXRUYWckLm5leHQodGFnLmtleSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5kYXRlUGlja2VyU2VydmljZS51cGRhdGVEYXRlUGlja2VyQnlQcmVzZXQodGhpcy5zZWxlY3RlZFByZXNldFRhZywgdGhpcy5fY2FsZW5kYXIpO1xuICAgIH1cblxuICAgIGdvVG9DdXJyZW50RGF0ZUluVmlld0J5RlkoKSB7XG4gICAgICAgIGNvbnN0IGlzTmVlZE1vdmVUb0RhdGUgPVxuICAgICAgICAgICAgIXRoaXMuZGF0ZVBpY2tlclNlcnZpY2UuaW5uZXJWYWx1ZSAmJlxuICAgICAgICAgICAgW1RpbWVmcmFtZU9wdGlvbi5RVUFSVEVSLCBUaW1lZnJhbWVPcHRpb24uWUVBUl0uaW5jbHVkZXModGhpcy5kYXRlUGlja2VyU2VydmljZS50aW1lZnJhbWUpO1xuXG4gICAgICAgIGlmIChpc05lZWRNb3ZlVG9EYXRlKSB7XG4gICAgICAgICAgICBjb25zdCBtb21lbnRXaXRoU2hpZnQgPSB0aGlzLmRhdGVQaWNrZXJTZXJ2aWNlLmFkZEZpc2NhbFllYXJTaGlmdEZvclllYXIobW9tZW50LnV0YygpKTtcbiAgICAgICAgICAgIGlmIChtb21lbnRXaXRoU2hpZnQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmRhdGVQaWNrZXJTZXJ2aWNlLmNhbGVuZGFySW5zdGFuY2UuX2dvVG9EYXRlSW5WaWV3KFxuICAgICAgICAgICAgICAgICAgICBtb21lbnRXaXRoU2hpZnQsXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZGF0ZVBpY2tlclNlcnZpY2UuY2FsZW5kYXJJbnN0YW5jZS5jdXJyZW50VmlldyxcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgaXNRdWFydGVyRGlzYWJsZWQocXVhcnRlck51bWJlcjogbnVtYmVyKTogYm9vbGVhbiB7XG4gICAgICAgIGlmICh0aGlzLl9jYWxlbmRhci5hY3RpdmVEYXRlKSB7XG4gICAgICAgICAgICBjb25zdCBlbmRPZlF1YXJ0ZXIgPSB0aGlzLl9jYWxlbmRhci5hY3RpdmVEYXRlLmNsb25lKCk7XG4gICAgICAgICAgICB0aGlzLmRhdGVQaWNrZXJTZXJ2aWNlLnNldEVuZE9mUXVhcnRlcihlbmRPZlF1YXJ0ZXIsIHF1YXJ0ZXJOdW1iZXIpO1xuICAgICAgICAgICAgdGhpcy5kYXRlUGlja2VyU2VydmljZS5zdWJ0cmFjdEZpc2NhbFllYXJTaGlmdEZvclllYXIoZW5kT2ZRdWFydGVyKTtcbiAgICAgICAgICAgIHJldHVybiAhdGhpcy5kYXRlUGlja2VyU2VydmljZS5kYXRlcGlja2VyRmlsdGVyKGVuZE9mUXVhcnRlcik7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIHByaXZhdGUgaW5zZXJ0V2Vla1NlbGVjdG9yKCk6IHZvaWQge1xuICAgICAgICBjb25zdCBzZWxlY3RvciA9IHRoaXMuY2ZyLnJlc29sdmVDb21wb25lbnRGYWN0b3J5KFdlZWtTZWxlY3RvckNvbXBvbmVudCkuY3JlYXRlKHRoaXMuaW5qZWN0b3IpO1xuXG4gICAgICAgIGNvbnN0IGNhbGVuZGFyOiBIVE1MRGl2RWxlbWVudCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy5tYXQtY2FsZW5kYXItY29udGVudCcpO1xuICAgICAgICBjYWxlbmRhci5pbnNlcnRCZWZvcmUoc2VsZWN0b3IubG9jYXRpb24ubmF0aXZlRWxlbWVudCwgY2FsZW5kYXIuZmlyc3RDaGlsZCk7XG4gICAgfVxufVxuIiwiPGRpdiAqbmdJZj1cImRhdGVQaWNrZXJTZXJ2aWNlLmlzVGltZWZyYW1lU2VsZWN0aW9uRW5hYmxlZFwiIGNsYXNzPVwiZHItZGF0ZXBpY2tlcl9fdGltZWZyYW1lLXNlbGVjdF9fd3JhcHBlclwiPlxuICAgIDxkaXYgKm5nSWY9XCJkYXRlUGlja2VyU2VydmljZS5pc1VzaW5nRGF0ZVRhZ1ByZXNldHNcIiBjbGFzcz1cImRyLWRhdGVwaWNrZXItcHJlc2V0LWRhdGVcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImRyLWRhdGVwaWNrZXItcHJlc2V0LWRhdGVfX3RhZ3NcIj5cbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgdGFnIG9mIHByZXNldFRhZ0xpc3RcIlxuICAgICAgICAgICAgICAgIGlkPVwicHJlc2V0X3RhZ1wiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJkci1kYXRlcGlja2VyLXByZXNldC1kYXRlX190YWdzX190YWdcIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJvblNlbGVjdFByZXNldFRhZyh0YWcpXCJcbiAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7ICdkci1kYXRlcGlja2VyLXByZXNldC1kYXRlX190YWdzX190YWctLXNlbGVjdGVkJzogdGFnLmtleSA9PT0gc2VsZWN0ZWRQcmVzZXRUYWcgfVwiXG4gICAgICAgICAgICAgICAgW2RyVG9vbHRpcF09XCJzZWxlY3RlZFByZXNldFRhZyA9PT0gdGFnLmtleSA/ICdVbnNlbGVjdCBwcmVzZXQnIDogJydcIlxuICAgICAgICAgICAgICAgIFtkclRvb2x0aXBQb3NpdGlvbl09XCIndG9wJ1wiPlxuICAgICAgICAgICAgICAgIHt7IHRhZy5sYWJlbCB9fVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxkci1zZWxlY3RcbiAgICAgICAgY2xhc3M9XCJkci1kYXRlcGlja2VyX190aW1lZnJhbWUtc2VsZWN0XCJcbiAgICAgICAgW25nTW9kZWxdPVwic2VsZWN0ZWRUaW1lZnJhbWVcIlxuICAgICAgICBbaXRlbXNdPVwidGltZWZyYW1lT3B0aW9ucyB8IGRyU2hvd1RpbWVmcmFtZVBpcGU6IGRhdGVQaWNrZXJTZXJ2aWNlLmF2YWlsYWJsZVRpbWVmcmFtZXNcIlxuICAgICAgICBiaW5kTGFiZWw9XCJ0aXRsZVwiXG4gICAgICAgIGJpbmRWYWx1ZT1cInZhbHVlXCJcbiAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwic2V0VGltZWZyYW1lKCRldmVudClcIj5cbiAgICA8L2RyLXNlbGVjdD5cbjwvZGl2PlxuXG48ZGl2IGNsYXNzPVwiZHItZGF0ZS1wYWdpbmdcIj5cbiAgICA8ZGl2IGNsYXNzPVwiZHItZGF0ZS1wYWdpbmcgZmxpcC1wYWdlLWJ1dHRvblwiIChjbGljayk9XCJwYWdpbmdDbGlja2VkKGZhbHNlKVwiPlxuICAgICAgICA8aSBjbGFzcz1cImRyLWljb24tYXJyb3ctbGVmdCBwcmVzZW50YXRpb25fYnV0dG9ucy1uYXZpZ2F0ZV9pbnB1dFwiPjwvaT5cbiAgICA8L2Rpdj5cbiAgICA8c3BhbiBjbGFzcz1cImV4YW1wbGUtaGVhZGVyLWxhYmVsXCI+XG4gICAgICAgIDxzcGFuIChjbGljayk9XCJzd2l0Y2hWaWV3T25DbGlja09uUGVyaW9kTGFiZWwoY2FsZW5kYXJWaWV3LkZPUl9NT05USFMpXCI+e3sgcGVyaW9kTW9udGhMYWJlbCArICcgJyB9fTwvc3Bhbj5cbiAgICAgICAgPHNwYW4gKGNsaWNrKT1cInN3aXRjaFZpZXdPbkNsaWNrT25QZXJpb2RMYWJlbChjYWxlbmRhclZpZXcuRk9SX1lFQVJTKVwiPnt7IHBlcmlvZFllYXJMYWJlbCB9fTwvc3Bhbj5cbiAgICA8L3NwYW4+XG4gICAgPGRpdiBjbGFzcz1cImRyLWRhdGUtcGFnaW5nIGZsaXAtcGFnZS1idXR0b25cIiAoY2xpY2spPVwicGFnaW5nQ2xpY2tlZCh0cnVlKVwiPlxuICAgICAgICA8aSBjbGFzcz1cImRyLWljb24tYXJyb3ctcmlnaHQgcHJlc2VudGF0aW9uX2J1dHRvbnMtbmF2aWdhdGVfaW5wdXRcIj48L2k+XG4gICAgPC9kaXY+XG48L2Rpdj5cbjxkaXYgI3F1YXJ0ZXJseURhdGVQaWNrZXIgY2xhc3M9XCJkci1xdWFydGVybHktZGF0ZXBpY2tlclwiICpuZ0lmPVwiY3VycmVudFZpZXdJc1F1YXJ0ZXJcIj5cbiAgICA8ZGl2XG4gICAgICAgICpuZ0Zvcj1cImxldCBxdWFydGVyIG9mIHF1YXJ0ZXJzXCJcbiAgICAgICAgY2xhc3M9XCJxdWFydGVyLXNlbGVjdG9yXCJcbiAgICAgICAgKGNsaWNrKT1cIm9uU2VsZWN0UXVhcnRlcihxdWFydGVyKVwiXG4gICAgICAgIFtjbGFzc109XCJxdWFydGVyID09PSBzZWxlY3RlZFF1YXJ0ZXIgPyAnc2VsZWN0ZWQnIDogJydcIlxuICAgICAgICBbY2xhc3MucXVhcnRlci1zZWxlY3Rvci0tZGlzYWJsZWRdPVwiaXNRdWFydGVyRGlzYWJsZWQocXVhcnRlcilcIj5cbiAgICAgICAgUXt7IHF1YXJ0ZXIgfX1cbiAgICA8L2Rpdj5cbjwvZGl2PlxuIl19
|
|
329
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHItZGF0ZS1waWNrZXJfY3VzdG9tLWhlYWRlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kYXRhcmFpbHNzaGFyZWQvc3JjL2xpYi9kci1pbnB1dHMvZGF0ZS1waWNrZXJzL2RyLWRhdGUtcGlja2VyX2N1c3RvbS1oZWFkZXIvZHItZGF0ZS1waWNrZXJfY3VzdG9tLWhlYWRlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kYXRhcmFpbHNzaGFyZWQvc3JjL2xpYi9kci1pbnB1dHMvZGF0ZS1waWNrZXJzL2RyLWRhdGUtcGlja2VyX2N1c3RvbS1oZWFkZXIvZHItZGF0ZS1waWNrZXJfY3VzdG9tLWhlYWRlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsdUJBQXVCLEVBRXZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsTUFBTSxFQUVOLE1BQU0sRUFDTix3QkFBd0IsRUFDeEIsUUFBUSxHQUNYLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxhQUFhLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzlDLE9BQU8sRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDdEQsT0FBTyxFQUFFLFdBQVcsRUFBbUIsTUFBTSw4QkFBOEIsQ0FBQztBQUM1RSxPQUFPLEVBQUUsV0FBVyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkUsT0FBTyxFQUFFLFlBQVksRUFBRSxnQkFBZ0IsRUFBbUMsZUFBZSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDOUgsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDekUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDN0QsT0FBTyxNQUFN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LGVBQTRCO1lBQTVCLGdEQUE0QjtZQUM3QixlQUFxQjtZQUFyQix5Q0FBcUI7WUFNekMsZUFBMEI7WUFBMUIsK0NBQTBCOzs7dUZEVnhFLGlDQUFpQztjQU43QyxTQUFTOzJCQUNJLHdDQUF3QyxtQkFHakMsdUJBQXVCLENBQUMsTUFBTTs7c0JBNkUxQyxNQUFNO3VCQUFDLGdCQUFnQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgT25EZXN0cm95LFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBJbmplY3QsXG4gICAgT25Jbml0LFxuICAgIGluamVjdCxcbiAgICBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsXG4gICAgSW5qZWN0b3IsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgY29tYmluZUxhdGVzdCwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgc3RhcnRXaXRoLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBNYXRDYWxlbmRhciwgTWF0Q2FsZW5kYXJWaWV3IH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGF0ZXBpY2tlcic7XG5pbXBvcnQgeyBEYXRlQWRhcHRlciwgTUFUX0RBVEVfRk9STUFUUyB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NvcmUnO1xuaW1wb3J0IHsgQ2FsZW5kYXJWaWV3LCBDdXN0b21EYXRlRm9ybWF0LCBJVGltZWZyYW1lT3B0aW9uLCBUQ2FsZW5kYXJWaWV3LCBUaW1lZnJhbWVPcHRpb24gfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMvZGF0ZVBpY2tlcic7XG5pbXBvcnQgeyBEckRhdGVQaWNrZXJTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvZHItZGF0ZS1waWNrZXIuc2VydmljZSc7XG5pbXBvcnQgeyBQUkVTRVRfVEFHU19MSVNUIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzL2NvbnN0YW50cyc7XG5pbXBvcnQgbW9tZW50IGZyb20gJ21vbWVudCc7XG5pbXBvcnQgeyBXZWVrU2VsZWN0b3JDb21wb25lbnQgfSBmcm9tICcuLi93ZWVrLXNlbGVjdG9yL3dlZWstc2VsZWN0b3IuY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdkci1kYXRlLXBpY2tlcl9jdXN0b20taGVhZGVyLmNvbXBvbmVudCcsXG4gICAgdGVtcGxhdGVVcmw6ICdkci1kYXRlLXBpY2tlcl9jdXN0b20taGVhZGVyLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9kci1kYXRlLXBpY2tlcl9jdXN0b20taGVhZGVyLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIERyRGF0ZVBpY2tlckN1c3RvbUhlYWRlckNvbXBvbmVudDxNb21lbnQ+IGltcGxlbWVudHMgT25EZXN0cm95LCBPbkluaXQge1xuICAgIHByb3RlY3RlZCBfZGVzdHJveWVkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcbiAgICBxdWFydGVycyA9IFsxLCAyLCAzLCA0XTtcbiAgICBzZWxlY3RlZFF1YXJ0ZXIgPSAxO1xuICAgIHRpbWVmcmFtZU9wdGlvbnM6IElUaW1lZnJhbWVPcHRpb25bXSA9IFtcbiAgICAgICAge1xuICAgICAgICAgICAgdGltZWZyYW1lOiBUaW1lZnJhbWVPcHRpb24uREFZLFxuICAgICAgICAgICAgdGl0bGU6ICdEYXknLFxuICAgICAgICAgICAgdmFsdWU6IENhbGVuZGFyVmlldy5GT1JfREFZUyxcbiAgICAgICAgICAgIGZvcm1hdDogdGhpcy5kYXRlUGlja2VyU2VydmljZS5mb3JtYXRDb25maWcuZGF5LFxuICAgICAgICAgICAgcGVyaW9kTGFiZWw6ICgpID0+XG4gICAgICAgICAgICAgICAgdGhpcy5fZGF0ZUFkYXB0ZXIuZm9ybWF0KHRoaXMuX2NhbGVuZGFyLmFjdGl2ZURhdGUsIHRoaXMuX2RhdGVGb3JtYXRzLmRpc3BsYXkubW9udGhZZWFyTGFiZWwpLnRvTG9jYWxlVXBwZXJDYXNlKCksXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIHRpbWVmcmFtZTogVGltZWZyYW1lT3B0aW9uLldFRUssXG4gICAgICAgICAgICB0aXRsZTogJ1dlZWsnLFxuICAgICAgICAgICAgdmFsdWU6IENhbGVuZGFyVmlldy5GT1JfREFZUyxcbiAgICAgICAgICAgIGZvcm1hdDogdGhpcy5kYXRlUGlja2VyU2VydmljZS5mb3JtYXRDb25maWcud2VlayxcbiAgICAgICAgICAgIHBlcmlvZExhYmVsOiAoKSA9PlxuICAgICAgICAgICAgICAgIHRoaXMuX2RhdGVBZGFwdGVyLmZvcm1hdCh0aGlzLl9jYWxlbmRhci5hY3RpdmVEYXRlLCB0aGlzLl9kYXRlRm9ybWF0cy5kaXNwbGF5Lm1vbnRoWWVhckxhYmVsKS50b0xvY2FsZVVwcGVyQ2FzZSgpLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICB0aW1lZnJhbWU6IFRpbWVmcmFtZU9wdGlvbi5NT05USCxcbiAgICAgICAgICAgIHRpdGxlOiAnTW9udGgnLFxuICAgICAgICAgICAgdmFsdWU6IENhbGVuZGFyVmlldy5GT1JfTU9OVEhTLFxuICAgICAgICAgICAgZm9ybWF0OiB0aGlzLmRhdGVQaWNrZXJTZXJ2aWNlLmZvcm1hdENvbmZpZy5tb250aCxcbiAgICAgICAgICAgIHBlcmlvZExhYmVsOiAoKSA9PiBTdHJpbmcobW9tZW50KHRoaXMuX2NhbGVuZGFyLmFjdGl2ZURhdGUpLnV0YygpLnllYXIoKSksXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIHRpbWVmcmFtZTogVGltZWZyYW1lT3B0aW9uLlFVQVJURVIsXG4gICAgICAgICAgICB0aXRsZTogJ1F1YXJ0ZXInLFxuICAgICAgICAgICAgdmFsdWU6IENhbGVuZGFyVmlldy5GT1JfUVVBUlRFUlMsXG4gICAgICAgICAgICBmb3JtYXQ6IHRoaXMuZGF0ZVBpY2tlclNlcnZpY2UuZm9ybWF0Q29uZmlnLnF1YXJ0ZXIsXG4gICAgICAgICAgICBwZXJpb2RMYWJlbDogKCkgPT5cbiAgICAgICAgICAgICAgICBTdHJpbmcobW9tZW50KHRoaXMuZGF0ZVBpY2tlclNlcnZpY2Uuc3VidHJhY3RGaXNjYWxZZWFyTW9udGhzRnJvbURhdGUodGhpcy5fY2FsZW5kYXIuYWN0aXZlRGF0ZSkpLnV0YygpLnllYXIoKSksXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIHRpbWVmcmFtZTogVGltZWZyYW1lT3B0aW9uLllFQVIsXG4gICAgICAgICAgICB0aXRsZTogJ1llYXInLFxuICAgICAgICAgICAgdmFsdWU6IENhbGVuZGFyVmlldy5GT1JfWUVBUlMsXG4gICAgICAgICAgICBmb3JtYXQ6IHRoaXMuZGF0ZVBpY2tlclNlcnZpY2UuZm9ybWF0Q29uZmlnLnllYXIsXG4gICAgICAgICAgICBwZXJpb2RMYWJlbDogKCkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IGN1cnJlbnRZZWFyID0gbW9tZW50KHRoaXMuZGF0ZVBpY2tlclNlcnZpY2Uuc3VidHJhY3RGaXNjYWxZZWFyTW9udGhzRnJvbURhdGUodGhpcy5fY2FsZW5kYXIuYWN0aXZlRGF0ZSkpXG4gICAgICAgICAgICAgICAgICAgIC51dGMoKVxuICAgICAgICAgICAgICAgICAgICAueWVhcigpO1xuICAgICAgICAgICAgICAgIGNvbnN0IHN0YXJ0UGVyaW9kID0gTWF0aC5mbG9vcihjdXJyZW50WWVhciAvIDI0KSAqIDI0O1xuICAgICAgICAgICAgICAgIHJldHVybiBzdGFydFBlcmlvZCArICctJyArIChzdGFydFBlcmlvZCArIDIzKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgXTtcblxuICAgIHBhZ2luZ1NldHVwID0ge1xuICAgICAgICBbQ2FsZW5kYXJWaWV3LkZPUl9NT05USFNdOiAoZm9yd2FyZCkgPT4gdGhpcy5wYWdpbmdEYXRlQ2hhbmdlKCdhZGRDYWxlbmRhclllYXJzJywgMSwgZm9yd2FyZCksXG4gICAgICAgIFtDYWxlbmRhclZpZXcuRk9SX1FVQVJURVJTXTogKGZvcndhcmQpID0+IHRoaXMucGFnaW5nRGF0ZUNoYW5nZSgnYWRkQ2FsZW5kYXJZZWFycycsIDEsIGZvcndhcmQpLFxuICAgICAgICBbQ2FsZW5kYXJWaWV3LkZPUl9EQVlTXTogKGZvcndhcmQpID0+IHRoaXMucGFnaW5nRGF0ZUNoYW5nZSgnYWRkQ2FsZW5kYXJNb250aHMnLCAxLCBmb3J3YXJkKSxcbiAgICAgICAgW0NhbGVuZGFyVmlldy5GT1JfWUVBUlNdOiAoZm9yd2FyZCkgPT4gdGhpcy5wYWdpbmdEYXRlQ2hhbmdlKCdhZGRDYWxlbmRhclllYXJzJywgMjQsIGZvcndhcmQpLFxuICAgIH07XG5cbiAgICBzZWxlY3RlZFRpbWVmcmFtZTogVENhbGVuZGFyVmlldyA9IENhbGVuZGFyVmlldy5GT1JfREFZUztcbiAgICB0aW1lZnJhbWVTZWxlY3Rpb24gPSBmYWxzZTtcbiAgICBwZXJpb2RNb250aExhYmVsID0gJyc7XG4gICAgcGVyaW9kWWVhckxhYmVsID0gJyc7XG4gICAgcHJlc2V0VGFnTGlzdCA9IFBSRVNFVF9UQUdTX0xJU1Q7XG4gICAgZ2V0IHNlbGVjdGVkUHJlc2V0VGFnKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5kYXRlUGlja2VyU2VydmljZS5wcmVzZXRUYWckLmdldFZhbHVlKCk7XG4gICAgfVxuXG4gICAgcHVibGljIHJlYWRvbmx5IGNhbGVuZGFyVmlldyA9IENhbGVuZGFyVmlldztcblxuICAgIHByaXZhdGUgcmVhZG9ubHkgY2ZyID0gaW5qZWN0KENvbXBvbmVudEZhY3RvcnlSZXNvbHZlcik7XG4gICAgcHJpdmF0ZSByZWFkb25seSBpbmplY3RvciA9IGluamVjdChJbmplY3Rvcik7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJvdGVjdGVkIF9jYWxlbmRhcjogTWF0Q2FsZW5kYXI8YW55PixcbiAgICAgICAgcHJvdGVjdGVkIF9kYXRlQWRhcHRlcjogRGF0ZUFkYXB0ZXI8TW9tZW50PixcbiAgICAgICAgQEluamVjdChNQVRfREFURV9GT1JNQVRTKSBwcm90ZWN0ZWQgX2RhdGVGb3JtYXRzOiBDdXN0b21EYXRlRm9ybWF0LFxuICAgICAgICBwcm90ZWN0ZWQgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICAgICAgcHVibGljIGRhdGVQaWNrZXJTZXJ2aWNlOiBEckRhdGVQaWNrZXJTZXJ2aWNlLFxuICAgICkge1xuICAgICAgICBfY2FsZW5kYXIuc3RhdGVDaGFuZ2VzLnBpcGUodGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3llZCkpLnN1YnNjcmliZSgoKSA9PiB0aGlzLnNldFBlcmlvZExhYmVscygpKTtcbiAgICAgICAgdGhpcy5kYXRlUGlja2VyU2VydmljZS5mb3JtYXQkLnBpcGUodGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3llZCkpLnN1YnNjcmliZSgodmFsdWUpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHRpbWVmcmFtZSA9IHRoaXMuZGF0ZVBpY2tlclNlcnZpY2UuZ2V0VGltZWZyYW1lKHZhbHVlKTtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRUaW1lZnJhbWUgPSB0aGlzLnRpbWVmcmFtZU9wdGlvbnMuZmlsdGVyKChvcHRpb24pID0+IG9wdGlvbi50aW1lZnJhbWUgPT09IHRpbWVmcmFtZSlbMF0udmFsdWU7XG4gICAgICAgICAgICBfY2FsZW5kYXIuY3VycmVudFZpZXcgPSB0aGlzLnNlbGVjdGVkVGltZWZyYW1lIGFzIE1hdENhbGVuZGFyVmlldztcbiAgICAgICAgICAgIHRoaXMuc2V0UGVyaW9kTGFiZWxzKCk7XG4gICAgICAgICAgICBpZiAodGhpcy5zZWxlY3RlZFRpbWVmcmFtZSA9PT0gQ2FsZW5kYXJWaWV3LkZPUl9RVUFSVEVSUykge1xuICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRRdWFydGVyID0gdGhpcy5kYXRlUGlja2VyU2VydmljZS5nZXRRdWFydGVyQWNjb3JkaW5nVG9GaXNjYWxZZWFyKHRoaXMuX2NhbGVuZGFyLmFjdGl2ZURhdGUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLmxpc3RlblRvQ2FsZW5kYXJWaWV3Q2hhbmdlcygpO1xuXG4gICAgICAgIF9jYWxlbmRhci5fdXNlclNlbGVjdGlvbi5zdWJzY3JpYmUoKGRhdGUpID0+IHtcbiAgICAgICAgICAgIGlmICghdGhpcy5kYXRlUGlja2VyU2VydmljZS5pc1ZhbHVlVXBkYXRpbmcpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmRhdGVQaWNrZXJTZXJ2aWNlLm9uU2FtZURheVNlbGVjdGVkSW5DYWxlbmRhciQubmV4dChkYXRlLnZhbHVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgY29tYmluZUxhdGVzdChbdGhpcy5kYXRlUGlja2VyU2VydmljZS50aW1lZnJhbWUkLCB0aGlzLl9jYWxlbmRhci52aWV3Q2hhbmdlZC5waXBlKHN0YXJ0V2l0aCh0aGlzLl9jYWxlbmRhci5zdGFydFZpZXcpKV0pXG4gICAgICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5fZGVzdHJveWVkKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKFt0aW1lZnJhbWUsIHZpZXddKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3Qgc2VsZWN0b3IgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdkci13ZWVrLXNlbGVjdG9yJyk7XG4gICAgICAgICAgICAgICAgc2VsZWN0b3I/LnJlbW92ZT8uKCk7XG5cbiAgICAgICAgICAgICAgICBpZiAodGltZWZyYW1lID09PSBUaW1lZnJhbWVPcHRpb24uV0VFSyAmJiB2aWV3ID09PSAnbW9udGgnKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaW5zZXJ0V2Vla1NlbGVjdG9yKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5kYXRlUGlja2VyU2VydmljZS5jYWxlbmRhckluc3RhbmNlID0gX2NhbGVuZGFyO1xuICAgIH1cblxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIGlmICh0aGlzLl9jYWxlbmRhci5tdWx0aVllYXJWaWV3KSB7XG4gICAgICAgICAgICAgICAgdGhpcy50cmFuc2Zvcm1EYXRlSW5NdWx0aXllYXJWaWV3QWNjb3JkaW5nVG9GWSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5nb1RvQ3VycmVudERhdGVJblZpZXdCeUZZKCk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCkge1xuICAgICAgICB0aGlzLl9kZXN0cm95ZWQubmV4dCgpO1xuICAgICAgICB0aGlzLl9kZXN0cm95ZWQuY29tcGxldGUoKTtcbiAgICB9XG5cbiAgICBzZXRQZXJpb2RMYWJlbHMoKSB7XG4gICAgICAgIGNvbnN0IGN1cnJlbnRUaW1lZnJhbWVPcHRpb24gPSB0aGlzLnRpbWVmcmFtZU9wdGlvbnMuZmlsdGVyKChvcHRpb24pID0+IG9wdGlvbi52YWx1ZSA9PT0gdGhpcy5fY2FsZW5kYXIuY3VycmVudFZpZXcpWzBdO1xuICAgICAgICBjb25zdCBmdWxsUGVyaW9kTGFiZWwgPSBjdXJyZW50VGltZWZyYW1lT3B0aW9uLnBlcmlvZExhYmVsKCk7XG4gICAgICAgIGlmICh0aGlzLl9jYWxlbmRhci5jdXJyZW50VmlldyA9PT0gQ2FsZW5kYXJWaWV3LkZPUl9EQVlTKSB7XG4gICAgICAgICAgICB0aGlzLnBlcmlvZE1vbnRoTGFiZWwgPSBmdWxsUGVyaW9kTGFiZWwubWF0Y2goL1thLXpBLVpdKy9nKT8udG9TdHJpbmcoKTtcbiAgICAgICAgICAgIHRoaXMucGVyaW9kWWVhckxhYmVsID0gZnVsbFBlcmlvZExhYmVsLm1hdGNoKC9bMC05XSsvZyk/LnRvU3RyaW5nKCkgPz8gZnVsbFBlcmlvZExhYmVsO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5wZXJpb2RNb250aExhYmVsID0gJyc7XG4gICAgICAgICAgICB0aGlzLnBlcmlvZFllYXJMYWJlbCA9IGZ1bGxQZXJpb2RMYWJlbDtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICB9XG5cbiAgICBzZXRUaW1lZnJhbWUodmFsdWUpIHtcbiAgICAgICAgaWYgKHZhbHVlICE9PSB0aGlzLnNlbGVjdGVkVGltZWZyYW1lKSB7XG4gICAgICAgICAgICB0aGlzLmRhdGVQaWNrZXJTZXJ2aWNlLnJlc2V0UHJlc2V0VGFnKCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5zZWxlY3RlZFRpbWVmcmFtZSA9IHZhbHVlO1xuICAgICAgICB0aGlzLnRpbWVmcmFtZVNlbGVjdGlvbiA9IGZhbHNlO1xuICAgICAgICB0aGlzLl9jYWxlbmRhci5jdXJyZW50VmlldyA9IHRoaXMuc2VsZWN0ZWRUaW1lZnJhbWUgYXMgTWF0Q2FsZW5kYXJWaWV3O1xuICAgICAgICBjb25zdCBjaG9zZW5UaW1lZnJhbWVPcHRpb24gPSB0aGlzLnRpbWVmcmFtZU9wdGlvbnMuZmlsdGVyKChvcHRpb24pID0+IG9wdGlvbi52YWx1ZSA9PT0gdGhpcy5zZWxlY3RlZFRpbWVmcmFtZSlbMF07XG4gICAgICAgIHRoaXMuZGF0ZVBpY2tlclNlcnZpY2UudXBkYXRlVGltZWZyYW1lQW5kRm9ybWF0KGNob3NlblRpbWVmcmFtZU9wdGlvbi5mb3JtYXQpO1xuXG4gICAgICAgIGlmICh0aGlzLnNlbGVjdGVkVGltZWZyYW1lID09PSBDYWxlbmRhclZpZXcuRk9SX1FVQVJURVJTKSB7XG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkUXVhcnRlciA9IHRoaXMuZGF0ZVBpY2tlclNlcnZpY2UuZ2V0UXVhcnRlckFjY29yZGluZ1RvRmlzY2FsWWVhcih0aGlzLl9jYWxlbmRhci5hY3RpdmVEYXRlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGdldCBjdXJyZW50Vmlld0lzUXVhcnRlcigpIHtcbiAgICAgICAgcmV0dXJuICFbQ2FsZW5kYXJWaWV3LkZPUl9EQVlTLCBDYWxlbmRhclZpZXcuRk9SX01PTlRIUywgQ2FsZW5kYXJWaWV3LkZPUl9ZRUFSU10uaW5jbHVkZXMoXG4gICAgICAgICAgICB0aGlzLl9jYWxlbmRhci5jdXJyZW50VmlldyBhcyBDYWxlbmRhclZpZXcsXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgc3dpdGNoVmlld09uQ2xpY2tPblBlcmlvZExhYmVsKHZpZXc6IENhbGVuZGFyVmlldy5GT1JfTU9OVEhTIHwgQ2FsZW5kYXJWaWV3LkZPUl9ZRUFSUykge1xuICAgICAgICB0aGlzLl9jYWxlbmRhci5jdXJyZW50VmlldyA9IHZpZXc7XG4gICAgfVxuXG4gICAgb25TZWxlY3RRdWFydGVyKHF1YXJ0ZXJOdW1iZXI6IG51bWJlcikge1xuICAgICAgICB0aGlzLnNlbGVjdGVkUXVhcnRlciA9IHF1YXJ0ZXJOdW1iZXI7XG4gICAgICAgIHRoaXMuZGF0ZVBpY2tlclNlcnZpY2Uuc2V0RW5kT2ZRdWFydGVyKHRoaXMuX2NhbGVuZGFyLmFjdGl2ZURhdGUsIHF1YXJ0ZXJOdW1iZXIpO1xuICAgICAgICB0aGlzLmRhdGVQaWNrZXJTZXJ2aWNlLnVwZGF0ZWRRdWFydGVyJC5uZXh0KHRoaXMuX2NhbGVuZGFyLmFjdGl2ZURhdGUpO1xuICAgICAgICB0aGlzLmRhdGVQaWNrZXJTZXJ2aWNlLmRhdGVQaWNrZXJJbnN0YW5jZS5jbG9zZSgpO1xuICAgIH1cblxuICAgIHBhZ2luZ0NsaWNrZWQoZm9yd2FyZCkge1xuICAgICAgICBpZiAodGhpcy5wYWdpbmdTZXR1cFt0aGlzLl9jYWxlbmRhci5jdXJyZW50Vmlld10pIHtcbiAgICAgICAgICAgIHRoaXMucGFnaW5nU2V0dXBbdGhpcy5fY2FsZW5kYXIuY3VycmVudFZpZXddKGZvcndhcmQpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcGFnaW5nRGF0ZUNoYW5nZShhY3Rpb25DYWxsOiBzdHJpbmcsIGFtb3VudDogbnVtYmVyLCBmb3J3YXJkOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuX2NhbGVuZGFyLmFjdGl2ZURhdGUgPSB0aGlzLl9kYXRlQWRhcHRlclthY3Rpb25DYWxsXSh0aGlzLl9jYWxlbmRhci5hY3RpdmVEYXRlLCBmb3J3YXJkID8gYW1vdW50IDogLWFtb3VudCk7XG4gICAgICAgIHRoaXMuc2V0UGVyaW9kTGFiZWxzKCk7XG4gICAgfVxuXG4gICAgdHJhbnNmb3JtRGF0ZUluTXVsdGl5ZWFyVmlld0FjY29yZGluZ1RvRlkoKSB7XG4gICAgICAgIGNvbnN0IG11bHR1WWVhclZpZXcgPSB0aGlzLl9jYWxlbmRhci5tdWx0aVllYXJWaWV3IGFzIGFueTtcbiAgICAgICAgbXVsdHVZZWFyVmlldy5fYWN0aXZlRGF0ZSA9IHRoaXMuZGF0ZVBpY2tlclNlcnZpY2Uuc3VidHJhY3RGaXNjYWxZZWFyTW9udGhzRnJvbURhdGUobXVsdHVZZWFyVmlldy5fYWN0aXZlRGF0ZSk7XG4gICAgICAgIG11bHR1WWVhclZpZXcuX3NlbGVjdGVkWWVhciA9IG11bHR1WWVhclZpZXcuX2FjdGl2ZURhdGUueWVhcigpO1xuICAgICAgICBtdWx0dVllYXJWaWV3Ll9pbml0KCk7XG5cbiAgICAgICAgaWYgKFxuICAgICAgICAgICAgdGhpcy5kYXRlUGlja2VyU2VydmljZS5pc1RpbWVmcmFtZURlcGVuZGluZ09uRlkodGhpcy5kYXRlUGlja2VyU2VydmljZS50aW1lZnJhbWUpICYmXG4gICAgICAgICAgICAhdGhpcy5kYXRlUGlja2VyU2VydmljZS5maXNjYWxZZWFyQmFjayAmJlxuICAgICAgICAgICAgdGhpcy5kYXRlUGlja2VyU2VydmljZS5maXNjYWxZZWFyTW9udGhzTW9kaWZpZXJcbiAgICAgICAgKSB7XG4gICAgICAgICAgICBtdWx0dVllYXJWaWV3Ll90b2RheVllYXIgPSBtb21lbnQudXRjKCkueWVhcigpICsgMTtcbiAgICAgICAgICAgIChtdWx0dVllYXJWaWV3IGFzIGFueSkuX2NoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25TZWxlY3RQcmVzZXRUYWcodGFnOiBhbnkpIHtcbiAgICAgICAgaWYgKHRhZy5rZXkgPT09IHRoaXMuc2VsZWN0ZWRQcmVzZXRUYWcpIHtcbiAgICAgICAgICAgIHRoaXMuZGF0ZVBpY2tlclNlcnZpY2UucHJlc2V0VGFnJC5uZXh0KG51bGwpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5kYXRlUGlja2VyU2VydmljZS5wcmVzZXRUYWckLm5leHQodGFnLmtleSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5kYXRlUGlja2VyU2VydmljZS51cGRhdGVEYXRlUGlja2VyQnlQcmVzZXQodGhpcy5zZWxlY3RlZFByZXNldFRhZywgdGhpcy5fY2FsZW5kYXIpO1xuICAgIH1cblxuICAgIGdvVG9DdXJyZW50RGF0ZUluVmlld0J5RlkoKSB7XG4gICAgICAgIGNvbnN0IGlzTmVlZE1vdmVUb0RhdGUgPVxuICAgICAgICAgICAgIXRoaXMuZGF0ZVBpY2tlclNlcnZpY2UuaW5uZXJWYWx1ZSAmJlxuICAgICAgICAgICAgW1RpbWVmcmFtZU9wdGlvbi5RVUFSVEVSLCBUaW1lZnJhbWVPcHRpb24uWUVBUl0uaW5jbHVkZXModGhpcy5kYXRlUGlja2VyU2VydmljZS50aW1lZnJhbWUpO1xuXG4gICAgICAgIGlmIChpc05lZWRNb3ZlVG9EYXRlKSB7XG4gICAgICAgICAgICBjb25zdCBtb21lbnRXaXRoU2hpZnQgPSB0aGlzLmRhdGVQaWNrZXJTZXJ2aWNlLmFkZEZpc2NhbFllYXJTaGlmdEZvclllYXIobW9tZW50LnV0YygpKTtcbiAgICAgICAgICAgIGlmIChtb21lbnRXaXRoU2hpZnQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmRhdGVQaWNrZXJTZXJ2aWNlLmNhbGVuZGFySW5zdGFuY2UuX2dvVG9EYXRlSW5WaWV3KFxuICAgICAgICAgICAgICAgICAgICBtb21lbnRXaXRoU2hpZnQsXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZGF0ZVBpY2tlclNlcnZpY2UuY2FsZW5kYXJJbnN0YW5jZS5jdXJyZW50VmlldyxcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgaXNRdWFydGVyRGlzYWJsZWQocXVhcnRlck51bWJlcjogbnVtYmVyKTogYm9vbGVhbiB7XG4gICAgICAgIGlmICh0aGlzLl9jYWxlbmRhci5hY3RpdmVEYXRlKSB7XG4gICAgICAgICAgICBjb25zdCBlbmRPZlF1YXJ0ZXIgPSB0aGlzLl9jYWxlbmRhci5hY3RpdmVEYXRlLmNsb25lKCk7XG4gICAgICAgICAgICB0aGlzLmRhdGVQaWNrZXJTZXJ2aWNlLnNldEVuZE9mUXVhcnRlcihlbmRPZlF1YXJ0ZXIsIHF1YXJ0ZXJOdW1iZXIpO1xuICAgICAgICAgICAgdGhpcy5kYXRlUGlja2VyU2VydmljZS5zdWJ0cmFjdEZpc2NhbFllYXJTaGlmdEZvclllYXIoZW5kT2ZRdWFydGVyKTtcbiAgICAgICAgICAgIHJldHVybiAhdGhpcy5kYXRlUGlja2VyU2VydmljZS5kYXRlcGlja2VyRmlsdGVyKGVuZE9mUXVhcnRlcik7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBsaXN0ZW5Ub0NhbGVuZGFyVmlld0NoYW5nZXMoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2NhbGVuZGFyLnZpZXdDaGFuZ2VkLnBpcGUodGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3llZCkpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnNldFBlcmlvZExhYmVscygpO1xuICAgICAgICAgICAgaWYgKHRoaXMuX2NhbGVuZGFyLm11bHRpWWVhclZpZXcpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnRyYW5zZm9ybURhdGVJbk11bHRpeWVhclZpZXdBY2NvcmRpbmdUb0ZZKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgaW5zZXJ0V2Vla1NlbGVjdG9yKCk6IHZvaWQge1xuICAgICAgICBjb25zdCBzZWxlY3RvciA9IHRoaXMuY2ZyLnJlc29sdmVDb21wb25lbnRGYWN0b3J5KFdlZWtTZWxlY3RvckNvbXBvbmVudCkuY3JlYXRlKHRoaXMuaW5qZWN0b3IpO1xuXG4gICAgICAgIGNvbnN0IGNhbGVuZGFyOiBIVE1MRGl2RWxlbWVudCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy5tYXQtY2FsZW5kYXItY29udGVudCcpO1xuICAgICAgICBjYWxlbmRhci5pbnNlcnRCZWZvcmUoc2VsZWN0b3IubG9jYXRpb24ubmF0aXZlRWxlbWVudCwgY2FsZW5kYXIuZmlyc3RDaGlsZCk7XG4gICAgfVxufVxuIiwiPGRpdiAqbmdJZj1cImRhdGVQaWNrZXJTZXJ2aWNlLmlzVGltZWZyYW1lU2VsZWN0aW9uRW5hYmxlZFwiIGNsYXNzPVwiZHItZGF0ZXBpY2tlcl9fdGltZWZyYW1lLXNlbGVjdF9fd3JhcHBlclwiPlxuICAgIDxkaXYgKm5nSWY9XCJkYXRlUGlja2VyU2VydmljZS5pc1VzaW5nRGF0ZVRhZ1ByZXNldHNcIiBjbGFzcz1cImRyLWRhdGVwaWNrZXItcHJlc2V0LWRhdGVcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImRyLWRhdGVwaWNrZXItcHJlc2V0LWRhdGVfX3RhZ3NcIj5cbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgdGFnIG9mIHByZXNldFRhZ0xpc3RcIlxuICAgICAgICAgICAgICAgIGlkPVwicHJlc2V0X3RhZ1wiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJkci1kYXRlcGlja2VyLXByZXNldC1kYXRlX190YWdzX190YWdcIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJvblNlbGVjdFByZXNldFRhZyh0YWcpXCJcbiAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7ICdkci1kYXRlcGlja2VyLXByZXNldC1kYXRlX190YWdzX190YWctLXNlbGVjdGVkJzogdGFnLmtleSA9PT0gc2VsZWN0ZWRQcmVzZXRUYWcgfVwiXG4gICAgICAgICAgICAgICAgW2RyVG9vbHRpcF09XCJzZWxlY3RlZFByZXNldFRhZyA9PT0gdGFnLmtleSA/ICdVbnNlbGVjdCBwcmVzZXQnIDogJydcIlxuICAgICAgICAgICAgICAgIFtkclRvb2x0aXBQb3NpdGlvbl09XCIndG9wJ1wiPlxuICAgICAgICAgICAgICAgIHt7IHRhZy5sYWJlbCB9fVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxkci1zZWxlY3RcbiAgICAgICAgY2xhc3M9XCJkci1kYXRlcGlja2VyX190aW1lZnJhbWUtc2VsZWN0XCJcbiAgICAgICAgW25nTW9kZWxdPVwic2VsZWN0ZWRUaW1lZnJhbWVcIlxuICAgICAgICBbaXRlbXNdPVwidGltZWZyYW1lT3B0aW9ucyB8IGRyU2hvd1RpbWVmcmFtZVBpcGU6IGRhdGVQaWNrZXJTZXJ2aWNlLmF2YWlsYWJsZVRpbWVmcmFtZXNcIlxuICAgICAgICBiaW5kTGFiZWw9XCJ0aXRsZVwiXG4gICAgICAgIGJpbmRWYWx1ZT1cInZhbHVlXCJcbiAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwic2V0VGltZWZyYW1lKCRldmVudClcIj5cbiAgICA8L2RyLXNlbGVjdD5cbjwvZGl2PlxuXG48ZGl2IGNsYXNzPVwiZHItZGF0ZS1wYWdpbmdcIj5cbiAgICA8ZGl2IGNsYXNzPVwiZHItZGF0ZS1wYWdpbmcgZmxpcC1wYWdlLWJ1dHRvblwiIChjbGljayk9XCJwYWdpbmdDbGlja2VkKGZhbHNlKVwiPlxuICAgICAgICA8aSBjbGFzcz1cImRyLWljb24tYXJyb3ctbGVmdCBwcmVzZW50YXRpb25fYnV0dG9ucy1uYXZpZ2F0ZV9pbnB1dFwiPjwvaT5cbiAgICA8L2Rpdj5cbiAgICA8c3BhbiBjbGFzcz1cImV4YW1wbGUtaGVhZGVyLWxhYmVsXCI+XG4gICAgICAgIDxzcGFuIChjbGljayk9XCJzd2l0Y2hWaWV3T25DbGlja09uUGVyaW9kTGFiZWwoY2FsZW5kYXJWaWV3LkZPUl9NT05USFMpXCI+e3sgcGVyaW9kTW9udGhMYWJlbCArICcgJyB9fTwvc3Bhbj5cbiAgICAgICAgPHNwYW4gKGNsaWNrKT1cInN3aXRjaFZpZXdPbkNsaWNrT25QZXJpb2RMYWJlbChjYWxlbmRhclZpZXcuRk9SX1lFQVJTKVwiPnt7IHBlcmlvZFllYXJMYWJlbCB9fTwvc3Bhbj5cbiAgICA8L3NwYW4+XG4gICAgPGRpdiBjbGFzcz1cImRyLWRhdGUtcGFnaW5nIGZsaXAtcGFnZS1idXR0b25cIiAoY2xpY2spPVwicGFnaW5nQ2xpY2tlZCh0cnVlKVwiPlxuICAgICAgICA8aSBjbGFzcz1cImRyLWljb24tYXJyb3ctcmlnaHQgcHJlc2VudGF0aW9uX2J1dHRvbnMtbmF2aWdhdGVfaW5wdXRcIj48L2k+XG4gICAgPC9kaXY+XG48L2Rpdj5cbjxkaXYgI3F1YXJ0ZXJseURhdGVQaWNrZXIgY2xhc3M9XCJkci1xdWFydGVybHktZGF0ZXBpY2tlclwiICpuZ0lmPVwiY3VycmVudFZpZXdJc1F1YXJ0ZXJcIj5cbiAgICA8ZGl2XG4gICAgICAgICpuZ0Zvcj1cImxldCBxdWFydGVyIG9mIHF1YXJ0ZXJzXCJcbiAgICAgICAgY2xhc3M9XCJxdWFydGVyLXNlbGVjdG9yXCJcbiAgICAgICAgKGNsaWNrKT1cIm9uU2VsZWN0UXVhcnRlcihxdWFydGVyKVwiXG4gICAgICAgIFtjbGFzc109XCJxdWFydGVyID09PSBzZWxlY3RlZFF1YXJ0ZXIgPyAnc2VsZWN0ZWQnIDogJydcIlxuICAgICAgICBbY2xhc3MucXVhcnRlci1zZWxlY3Rvci0tZGlzYWJsZWRdPVwiaXNRdWFydGVyRGlzYWJsZWQocXVhcnRlcilcIj5cbiAgICAgICAgUXt7IHF1YXJ0ZXIgfX1cbiAgICA8L2Rpdj5cbjwvZGl2PlxuIl19
|
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
import { DrDatePickerCustomHeaderComponent } from '../dr-date-picker_custom-header/dr-date-picker_custom-header.component';
|
|
2
|
+
import { ChangeDetectionStrategy, Component } from '@angular/core';
|
|
3
|
+
import { takeUntil } from 'rxjs/operators';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
import * as i1 from "@angular/forms";
|
|
6
|
+
import * as i2 from "@angular/common";
|
|
7
|
+
import * as i3 from "../../../dr-tooltip/dr-tooltip.directive";
|
|
8
|
+
import * as i4 from "../../dr-select/dr-select.component";
|
|
9
|
+
import * as i5 from "../dr-show-timeframe.pipe";
|
|
10
|
+
const _c0 = ["class", "component"];
|
|
11
|
+
const _c1 = function (a0) { return { "dr-datepicker-preset-date__tags__tag--selected": a0 }; };
|
|
12
|
+
function DrFiscalMonthCalendarHeaderComponent_div_0_div_1_div_2_Template(rf, ctx) { if (rf & 1) {
|
|
13
|
+
const _r6 = i0.ɵɵgetCurrentView();
|
|
14
|
+
i0.ɵɵelementStart(0, "div", 14);
|
|
15
|
+
i0.ɵɵlistener("click", function DrFiscalMonthCalendarHeaderComponent_div_0_div_1_div_2_Template_div_click_0_listener() { const restoredCtx = i0.ɵɵrestoreView(_r6); const tag_r4 = restoredCtx.$implicit; const ctx_r5 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r5.onSelectPresetTag(tag_r4)); });
|
|
16
|
+
i0.ɵɵtext(1);
|
|
17
|
+
i0.ɵɵelementEnd();
|
|
18
|
+
} if (rf & 2) {
|
|
19
|
+
const tag_r4 = ctx.$implicit;
|
|
20
|
+
const ctx_r3 = i0.ɵɵnextContext(3);
|
|
21
|
+
i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(4, _c1, tag_r4.key === ctx_r3.selectedPresetTag))("drTooltip", ctx_r3.selectedPresetTag === tag_r4.key ? "Unselect preset" : "")("drTooltipPosition", "top");
|
|
22
|
+
i0.ɵɵadvance(1);
|
|
23
|
+
i0.ɵɵtextInterpolate1(" ", tag_r4.label, " ");
|
|
24
|
+
} }
|
|
25
|
+
function DrFiscalMonthCalendarHeaderComponent_div_0_div_1_Template(rf, ctx) { if (rf & 1) {
|
|
26
|
+
i0.ɵɵelementStart(0, "div", 11)(1, "div", 12);
|
|
27
|
+
i0.ɵɵtemplate(2, DrFiscalMonthCalendarHeaderComponent_div_0_div_1_div_2_Template, 2, 6, "div", 13);
|
|
28
|
+
i0.ɵɵelementEnd()();
|
|
29
|
+
} if (rf & 2) {
|
|
30
|
+
const ctx_r2 = i0.ɵɵnextContext(2);
|
|
31
|
+
i0.ɵɵadvance(2);
|
|
32
|
+
i0.ɵɵproperty("ngForOf", ctx_r2.presetTagList);
|
|
33
|
+
} }
|
|
34
|
+
function DrFiscalMonthCalendarHeaderComponent_div_0_Template(rf, ctx) { if (rf & 1) {
|
|
35
|
+
const _r8 = i0.ɵɵgetCurrentView();
|
|
36
|
+
i0.ɵɵelementStart(0, "div", 8);
|
|
37
|
+
i0.ɵɵtemplate(1, DrFiscalMonthCalendarHeaderComponent_div_0_div_1_Template, 3, 1, "div", 9);
|
|
38
|
+
i0.ɵɵelementStart(2, "dr-select", 10);
|
|
39
|
+
i0.ɵɵlistener("ngModelChange", function DrFiscalMonthCalendarHeaderComponent_div_0_Template_dr_select_ngModelChange_2_listener($event) { i0.ɵɵrestoreView(_r8); const ctx_r7 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r7.setTimeframe($event)); });
|
|
40
|
+
i0.ɵɵpipe(3, "drShowTimeframePipe");
|
|
41
|
+
i0.ɵɵelementEnd()();
|
|
42
|
+
} if (rf & 2) {
|
|
43
|
+
const ctx_r0 = i0.ɵɵnextContext();
|
|
44
|
+
i0.ɵɵadvance(1);
|
|
45
|
+
i0.ɵɵproperty("ngIf", ctx_r0.datePickerService.isUsingDateTagPresets);
|
|
46
|
+
i0.ɵɵadvance(1);
|
|
47
|
+
i0.ɵɵproperty("ngModel", ctx_r0.selectedTimeframe)("items", i0.ɵɵpipeBind2(3, 3, ctx_r0.timeframeOptions, ctx_r0.datePickerService.availableTimeframes));
|
|
48
|
+
} }
|
|
49
|
+
function DrFiscalMonthCalendarHeaderComponent_div_11_div_2_Template(rf, ctx) { if (rf & 1) {
|
|
50
|
+
const _r13 = i0.ɵɵgetCurrentView();
|
|
51
|
+
i0.ɵɵelementStart(0, "div", 18);
|
|
52
|
+
i0.ɵɵlistener("click", function DrFiscalMonthCalendarHeaderComponent_div_11_div_2_Template_div_click_0_listener() { const restoredCtx = i0.ɵɵrestoreView(_r13); const quarter_r11 = restoredCtx.$implicit; const ctx_r12 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r12.onSelectQuarter(quarter_r11)); });
|
|
53
|
+
i0.ɵɵtext(1);
|
|
54
|
+
i0.ɵɵelementEnd();
|
|
55
|
+
} if (rf & 2) {
|
|
56
|
+
const quarter_r11 = ctx.$implicit;
|
|
57
|
+
const ctx_r10 = i0.ɵɵnextContext(2);
|
|
58
|
+
i0.ɵɵclassMap(quarter_r11 === ctx_r10.selectedQuarter ? "selected" : "");
|
|
59
|
+
i0.ɵɵclassProp("quarter-selector--disabled", ctx_r10.isQuarterDisabled(quarter_r11));
|
|
60
|
+
i0.ɵɵadvance(1);
|
|
61
|
+
i0.ɵɵtextInterpolate1(" Q", quarter_r11, " ");
|
|
62
|
+
} }
|
|
63
|
+
function DrFiscalMonthCalendarHeaderComponent_div_11_Template(rf, ctx) { if (rf & 1) {
|
|
64
|
+
i0.ɵɵelementStart(0, "div", 15, 16);
|
|
65
|
+
i0.ɵɵtemplate(2, DrFiscalMonthCalendarHeaderComponent_div_11_div_2_Template, 2, 5, "div", 17);
|
|
66
|
+
i0.ɵɵelementEnd();
|
|
67
|
+
} if (rf & 2) {
|
|
68
|
+
const ctx_r1 = i0.ɵɵnextContext();
|
|
69
|
+
i0.ɵɵadvance(2);
|
|
70
|
+
i0.ɵɵproperty("ngForOf", ctx_r1.quarters);
|
|
71
|
+
} }
|
|
72
|
+
export class DrFiscalMonthCalendarHeaderComponent extends DrDatePickerCustomHeaderComponent {
|
|
73
|
+
ngOnInit() {
|
|
74
|
+
setTimeout(() => {
|
|
75
|
+
if (this._calendar.multiYearView) {
|
|
76
|
+
this.transformDateInMultiyearViewAccordingToFY();
|
|
77
|
+
}
|
|
78
|
+
if (this._calendar.yearView) {
|
|
79
|
+
this.transformDateInFiscalMonthViewAccordingToFY();
|
|
80
|
+
}
|
|
81
|
+
this.goToCurrentDateInViewByFY();
|
|
82
|
+
});
|
|
83
|
+
}
|
|
84
|
+
transformDateInFiscalMonthViewAccordingToFY() {
|
|
85
|
+
if (this._calendar.selected) {
|
|
86
|
+
this._calendar.selected = this.datePickerService.subtractFiscalYearMonthsFromDate(this._calendar.activeDate);
|
|
87
|
+
this._calendar.activeDate = this._calendar.selected;
|
|
88
|
+
this._calendar._changeDetectorRef.markForCheck();
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
listenToCalendarViewChanges() {
|
|
92
|
+
this._calendar.viewChanged.pipe(takeUntil(this._destroyed)).subscribe(() => {
|
|
93
|
+
this.setPeriodLabels();
|
|
94
|
+
if (this._calendar.multiYearView) {
|
|
95
|
+
this.transformDateInMultiyearViewAccordingToFY();
|
|
96
|
+
}
|
|
97
|
+
if (this._calendar.yearView) {
|
|
98
|
+
this.transformDateInFiscalMonthViewAccordingToFY();
|
|
99
|
+
}
|
|
100
|
+
});
|
|
101
|
+
}
|
|
102
|
+
/** @nocollapse */ static { this.ɵfac = /** @pureOrBreakMyCode */ function () { let ɵDrFiscalMonthCalendarHeaderComponent_BaseFactory; return function DrFiscalMonthCalendarHeaderComponent_Factory(t) { return (ɵDrFiscalMonthCalendarHeaderComponent_BaseFactory || (ɵDrFiscalMonthCalendarHeaderComponent_BaseFactory = i0.ɵɵgetInheritedFactory(DrFiscalMonthCalendarHeaderComponent)))(t || DrFiscalMonthCalendarHeaderComponent); }; }(); }
|
|
103
|
+
/** @nocollapse */ static { this.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DrFiscalMonthCalendarHeaderComponent, selectors: [["dr-fiscal-month-calendar-header", 8, "component"]], features: [i0.ɵɵInheritDefinitionFeature], attrs: _c0, decls: 12, vars: 4, consts: [["class", "dr-datepicker__timeframe-select__wrapper", 4, "ngIf"], [1, "dr-date-paging"], [1, "dr-date-paging", "flip-page-button", 3, "click"], [1, "dr-icon-arrow-left", "presentation_buttons-navigate_input"], [1, "example-header-label"], [3, "click"], [1, "dr-icon-arrow-right", "presentation_buttons-navigate_input"], ["class", "dr-quarterly-datepicker", 4, "ngIf"], [1, "dr-datepicker__timeframe-select__wrapper"], ["class", "dr-datepicker-preset-date", 4, "ngIf"], ["bindLabel", "title", "bindValue", "value", 1, "dr-datepicker__timeframe-select", 3, "ngModel", "items", "ngModelChange"], [1, "dr-datepicker-preset-date"], [1, "dr-datepicker-preset-date__tags"], ["id", "preset_tag", "class", "dr-datepicker-preset-date__tags__tag", 3, "ngClass", "drTooltip", "drTooltipPosition", "click", 4, "ngFor", "ngForOf"], ["id", "preset_tag", 1, "dr-datepicker-preset-date__tags__tag", 3, "ngClass", "drTooltip", "drTooltipPosition", "click"], [1, "dr-quarterly-datepicker"], ["quarterlyDatePicker", ""], ["class", "quarter-selector", 3, "class", "quarter-selector--disabled", "click", 4, "ngFor", "ngForOf"], [1, "quarter-selector", 3, "click"]], template: function DrFiscalMonthCalendarHeaderComponent_Template(rf, ctx) { if (rf & 1) {
|
|
104
|
+
i0.ɵɵtemplate(0, DrFiscalMonthCalendarHeaderComponent_div_0_Template, 4, 6, "div", 0);
|
|
105
|
+
i0.ɵɵelementStart(1, "div", 1)(2, "div", 2);
|
|
106
|
+
i0.ɵɵlistener("click", function DrFiscalMonthCalendarHeaderComponent_Template_div_click_2_listener() { return ctx.pagingClicked(false); });
|
|
107
|
+
i0.ɵɵelement(3, "i", 3);
|
|
108
|
+
i0.ɵɵelementEnd();
|
|
109
|
+
i0.ɵɵelementStart(4, "span", 4)(5, "span", 5);
|
|
110
|
+
i0.ɵɵlistener("click", function DrFiscalMonthCalendarHeaderComponent_Template_span_click_5_listener() { return ctx.switchViewOnClickOnPeriodLabel(ctx.calendarView.FOR_MONTHS); });
|
|
111
|
+
i0.ɵɵtext(6);
|
|
112
|
+
i0.ɵɵelementEnd();
|
|
113
|
+
i0.ɵɵelementStart(7, "span", 5);
|
|
114
|
+
i0.ɵɵlistener("click", function DrFiscalMonthCalendarHeaderComponent_Template_span_click_7_listener() { return ctx.switchViewOnClickOnPeriodLabel(ctx.calendarView.FOR_YEARS); });
|
|
115
|
+
i0.ɵɵtext(8);
|
|
116
|
+
i0.ɵɵelementEnd()();
|
|
117
|
+
i0.ɵɵelementStart(9, "div", 2);
|
|
118
|
+
i0.ɵɵlistener("click", function DrFiscalMonthCalendarHeaderComponent_Template_div_click_9_listener() { return ctx.pagingClicked(true); });
|
|
119
|
+
i0.ɵɵelement(10, "i", 6);
|
|
120
|
+
i0.ɵɵelementEnd()();
|
|
121
|
+
i0.ɵɵtemplate(11, DrFiscalMonthCalendarHeaderComponent_div_11_Template, 3, 1, "div", 7);
|
|
122
|
+
} if (rf & 2) {
|
|
123
|
+
i0.ɵɵproperty("ngIf", ctx.datePickerService.isTimeframeSelectionEnabled);
|
|
124
|
+
i0.ɵɵadvance(6);
|
|
125
|
+
i0.ɵɵtextInterpolate(ctx.periodMonthLabel + " ");
|
|
126
|
+
i0.ɵɵadvance(2);
|
|
127
|
+
i0.ɵɵtextInterpolate(ctx.periodYearLabel);
|
|
128
|
+
i0.ɵɵadvance(3);
|
|
129
|
+
i0.ɵɵproperty("ngIf", ctx.currentViewIsQuarter);
|
|
130
|
+
} }, dependencies: [i1.NgControlStatus, i1.NgModel, i2.NgClass, i2.NgForOf, i2.NgIf, i3.DrTooltipDirective, i4.DrSelectComponent, i5.DrShowTimeframePipe], styles: ["[_nghost-%COMP%]{height:54px;align-items:center;font-family:Poppins;font-style:normal;font-weight:600;font-size:14px;line-height:22px}.dr-datepicker__timeframe-select__wrapper[_ngcontent-%COMP%]{background-color:#f9faff;padding:16px 32px;border-radius:18px 18px 0 0}.dr-datepicker-preset-date[_ngcontent-%COMP%]{display:flex;flex-direction:column}.dr-datepicker-preset-date__tags[_ngcontent-%COMP%]{display:flex;padding-bottom:21px;padding-top:10px;font-size:12px}.dr-datepicker-preset-date__tags__tag[_ngcontent-%COMP%]{cursor:pointer;font-weight:400;line-height:20px!important;padding:2px 8px;border:1px solid #9ea1aa;border-radius:18px;background:#fff;margin-right:4px}.dr-datepicker-preset-date__tags__tag--selected[_ngcontent-%COMP%]{color:#4646ce;background:#f2f2fb;border:1px solid #4646ce}.dr-date-paging[_ngcontent-%COMP%]{display:flex;flex-direction:row;justify-content:space-between;align-items:center;padding:16px 32px 32px;gap:4px}.dr-date-paging.flip-page-button[_ngcontent-%COMP%]{width:20px;height:20px;padding:0;color:#4e566c}.dr-date-paging.flip-page-button[_ngcontent-%COMP%]:hover{border-radius:50%;background:#f2f2fb;color:#4646ce}.example-header-label[_ngcontent-%COMP%]{cursor:pointer}.dr-quarterly-datepicker[_ngcontent-%COMP%]{display:flex;justify-content:space-between;padding:10px}.dr-quarterly-datepicker[_ngcontent-%COMP%] .quarter-selector[_ngcontent-%COMP%]{display:block;width:74px;height:40px;text-align:center;border-radius:40px;font-weight:400;padding-top:9px}.dr-quarterly-datepicker[_ngcontent-%COMP%] .quarter-selector[_ngcontent-%COMP%]:hover{background:#f2f2fb;color:#4646ce;font-weight:600;cursor:pointer}.dr-quarterly-datepicker[_ngcontent-%COMP%] .quarter-selector.selected[_ngcontent-%COMP%]{background-color:#4646ce;color:#f3f7ff;font-weight:600}.dr-quarterly-datepicker[_ngcontent-%COMP%] .quarter-selector--disabled[_ngcontent-%COMP%], .dr-quarterly-datepicker[_ngcontent-%COMP%] .quarter-selector--disabled.selected[_ngcontent-%COMP%]{pointer-events:none;background-color:transparent;color:#aeabac;font-weight:400}"], changeDetection: 0 }); }
|
|
131
|
+
}
|
|
132
|
+
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(DrFiscalMonthCalendarHeaderComponent, [{
|
|
133
|
+
type: Component,
|
|
134
|
+
args: [{ selector: 'dr-fiscal-month-calendar-header.component', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div *ngIf=\"datePickerService.isTimeframeSelectionEnabled\" class=\"dr-datepicker__timeframe-select__wrapper\">\n <div *ngIf=\"datePickerService.isUsingDateTagPresets\" class=\"dr-datepicker-preset-date\">\n <div class=\"dr-datepicker-preset-date__tags\">\n <div\n *ngFor=\"let tag of presetTagList\"\n id=\"preset_tag\"\n class=\"dr-datepicker-preset-date__tags__tag\"\n (click)=\"onSelectPresetTag(tag)\"\n [ngClass]=\"{ 'dr-datepicker-preset-date__tags__tag--selected': tag.key === selectedPresetTag }\"\n [drTooltip]=\"selectedPresetTag === tag.key ? 'Unselect preset' : ''\"\n [drTooltipPosition]=\"'top'\">\n {{ tag.label }}\n </div>\n </div>\n </div>\n <dr-select\n class=\"dr-datepicker__timeframe-select\"\n [ngModel]=\"selectedTimeframe\"\n [items]=\"timeframeOptions | drShowTimeframePipe: datePickerService.availableTimeframes\"\n bindLabel=\"title\"\n bindValue=\"value\"\n (ngModelChange)=\"setTimeframe($event)\">\n </dr-select>\n</div>\n\n<div class=\"dr-date-paging\">\n <div class=\"dr-date-paging flip-page-button\" (click)=\"pagingClicked(false)\">\n <i class=\"dr-icon-arrow-left presentation_buttons-navigate_input\"></i>\n </div>\n <span class=\"example-header-label\">\n <span (click)=\"switchViewOnClickOnPeriodLabel(calendarView.FOR_MONTHS)\">{{ periodMonthLabel + ' ' }}</span>\n <span (click)=\"switchViewOnClickOnPeriodLabel(calendarView.FOR_YEARS)\">{{ periodYearLabel }}</span>\n </span>\n <div class=\"dr-date-paging flip-page-button\" (click)=\"pagingClicked(true)\">\n <i class=\"dr-icon-arrow-right presentation_buttons-navigate_input\"></i>\n </div>\n</div>\n<div #quarterlyDatePicker class=\"dr-quarterly-datepicker\" *ngIf=\"currentViewIsQuarter\">\n <div\n *ngFor=\"let quarter of quarters\"\n class=\"quarter-selector\"\n (click)=\"onSelectQuarter(quarter)\"\n [class]=\"quarter === selectedQuarter ? 'selected' : ''\"\n [class.quarter-selector--disabled]=\"isQuarterDisabled(quarter)\">\n Q{{ quarter }}\n </div>\n</div>\n", styles: [":host{height:54px;align-items:center;font-family:Poppins;font-style:normal;font-weight:600;font-size:14px;line-height:22px}.dr-datepicker__timeframe-select__wrapper{background-color:#f9faff;padding:16px 32px;border-radius:18px 18px 0 0}.dr-datepicker-preset-date{display:flex;flex-direction:column}.dr-datepicker-preset-date__tags{display:flex;padding-bottom:21px;padding-top:10px;font-size:12px}.dr-datepicker-preset-date__tags__tag{cursor:pointer;font-weight:400;line-height:20px!important;padding:2px 8px;border:1px solid #9ea1aa;border-radius:18px;background:#fff;margin-right:4px}.dr-datepicker-preset-date__tags__tag--selected{color:#4646ce;background:#f2f2fb;border:1px solid #4646ce}.dr-date-paging{display:flex;flex-direction:row;justify-content:space-between;align-items:center;padding:16px 32px 32px;gap:4px}.dr-date-paging.flip-page-button{width:20px;height:20px;padding:0;color:#4e566c}.dr-date-paging.flip-page-button:hover{border-radius:50%;background:#f2f2fb;color:#4646ce}.example-header-label{cursor:pointer}.dr-quarterly-datepicker{display:flex;justify-content:space-between;padding:10px}.dr-quarterly-datepicker .quarter-selector{display:block;width:74px;height:40px;text-align:center;border-radius:40px;font-weight:400;padding-top:9px}.dr-quarterly-datepicker .quarter-selector:hover{background:#f2f2fb;color:#4646ce;font-weight:600;cursor:pointer}.dr-quarterly-datepicker .quarter-selector.selected{background-color:#4646ce;color:#f3f7ff;font-weight:600}.dr-quarterly-datepicker .quarter-selector--disabled,.dr-quarterly-datepicker .quarter-selector--disabled.selected{pointer-events:none;background-color:transparent;color:#aeabac;font-weight:400}\n"] }]
|
|
135
|
+
}], null, null); })();
|
|
136
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHItZmlzY2FsLW1vbnRoLWNhbGVuZGFyLWhlYWRlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kYXRhcmFpbHNzaGFyZWQvc3JjL2xpYi9kci1pbnB1dHMvZGF0ZS1waWNrZXJzL2RyLWZpc2NhbC1tb250aC1jYWxlbmRhci1waWNrZXIvZHItZmlzY2FsLW1vbnRoLWNhbGVuZGFyLWhlYWRlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kYXRhcmFpbHNzaGFyZWQvc3JjL2xpYi9kci1pbnB1dHMvZGF0ZS1waWNrZXJzL2RyLWRhdGUtcGlja2VyX2N1c3RvbS1oZWFkZXIvZHItZGF0ZS1waWNrZXJfY3VzdG9tLWhlYWRlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsaUNBQWlDLEVBQUUsTUFBTSx3RUFBd0UsQ0FBQztBQUMzSCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25FLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7Ozs7Ozs7SUNDL0IsK0JBT2dDO0lBSDVCLHFQQUFTLGVBQUEsZ0NBQXNCLENBQUEsSUFBQztJQUloQyxZQUNKO0lBQUEsaUJBQU07Ozs7SUFKRiw2RkFBK0YsK0VBQUEsNEJBQUE7SUFHL0YsZUFDSjtJQURJLDZDQUNKOzs7SUFYUiwrQkFBdUYsY0FBQTtJQUUvRSxrR0FTTTtJQUNWLGlCQUFNLEVBQUE7OztJQVRrQixlQUFnQjtJQUFoQiw4Q0FBZ0I7Ozs7SUFKaEQsOEJBQTRHO0lBQ3hHLDJGQWFNO0lBQ04scUNBTTJDO0lBQXZDLDBNQUFpQixlQUFBLDJCQUFvQixDQUFBLElBQUM7O0lBQzFDLGlCQUFZLEVBQUE7OztJQXJCTixlQUE2QztJQUE3QyxxRUFBNkM7SUFnQi9DLGVBQTZCO0lBQTdCLGtEQUE2QixzR0FBQTs7OztJQXFCakMsK0JBS29FO0lBRmhFLHVQQUFTLGVBQUEsb0NBQXdCLENBQUEsSUFBQztJQUdsQyxZQUNKO0lBQUEsaUJBQU07Ozs7SUFIRix3RUFBdUQ7SUFDdkQsb0ZBQStEO0lBQy9ELGVBQ0o7SUFESSw2Q0FDSjs7O0lBUkosbUNBQXVGO0lBQ25GLDZGQU9NO0lBQ1YsaUJBQU07OztJQVBzQixlQUFXO0lBQVgseUNBQVc7O0FEN0J2QyxNQUFNLE9BQU8sb0NBQTZDLFNBQVEsaUNBQXlDO0lBQzlGLFFBQVE7UUFDYixVQUFVLENBQUMsR0FBRyxFQUFFO1lBQ1osSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLGFBQWEsRUFBRTtnQkFDOUIsSUFBSSxDQUFDLHlDQUF5QyxFQUFFLENBQUM7YUFDcEQ7WUFDRCxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxFQUFFO2dCQUN6QixJQUFJLENBQUMsMkNBQTJDLEVBQUUsQ0FBQzthQUN0RDtZQUNELElBQUksQ0FBQyx5QkFBeUIsRUFBRSxDQUFDO1FBQ3JDLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELDJDQUEyQztRQUN2QyxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxFQUFFO1lBQ3pCLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxnQ0FBZ0MsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1lBQzdHLElBQUksQ0FBQyxTQUFTLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDO1lBQ25ELElBQUksQ0FBQyxTQUFpQixDQUFDLGtCQUFrQixDQUFDLFlBQVksRUFBRSxDQUFDO1NBQzdEO0lBQ0wsQ0FBQztJQUVrQiwyQkFBMkI7UUFDMUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQ3ZFLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztZQUN2QixJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsYUFBYSxFQUFFO2dCQUM5QixJQUFJLENBQUMseUNBQXlDLEVBQUUsQ0FBQzthQUNwRDtZQUVELElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLEVBQUU7Z0JBQ3pCLElBQUksQ0FBQywyQ0FBMkMsRUFBRSxDQUFDO2FBQ3REO1FBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO3dWQWhDUSxvQ0FBb0MsU0FBcEMsb0NBQW9DO21HQUFwQyxvQ0FBb0M7WUNWakQscUZBdUJNO1lBRU4sOEJBQTRCLGFBQUE7WUFDcUIsOEdBQVMsa0JBQWMsS0FBSyxDQUFDLElBQUM7WUFDdkUsdUJBQXNFO1lBQzFFLGlCQUFNO1lBQ04sK0JBQW1DLGNBQUE7WUFDekIsK0dBQVMsK0RBQXVELElBQUM7WUFBQyxZQUE0QjtZQUFBLGlCQUFPO1lBQzNHLCtCQUF1RTtZQUFqRSwrR0FBUyw4REFBc0QsSUFBQztZQUFDLFlBQXFCO1lBQUEsaUJBQU8sRUFBQTtZQUV2Ryw4QkFBMkU7WUFBOUIsOEdBQVMsa0JBQWMsSUFBSSxDQUFDLElBQUM7WUFDdEUsd0JBQXVFO1lBQzNFLGlCQUFNLEVBQUE7WUFFVix1RkFTTTs7WUE5Q0Esd0VBQW1EO1lBOEJ1QixlQUE0QjtZQUE1QixnREFBNEI7WUFDN0IsZUFBcUI7WUFBckIseUNBQXFCO1lBTXpDLGVBQTBCO1lBQTFCLCtDQUEwQjs7O3VGRDNCeEUsb0NBQW9DO2NBTmhELFNBQVM7MkJBQ0ksMkNBQTJDLG1CQUdwQyx1QkFBdUIsQ0FBQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRHJEYXRlUGlja2VyQ3VzdG9tSGVhZGVyQ29tcG9uZW50IH0gZnJvbSAnLi4vZHItZGF0ZS1waWNrZXJfY3VzdG9tLWhlYWRlci9kci1kYXRlLXBpY2tlcl9jdXN0b20taGVhZGVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZHItZmlzY2FsLW1vbnRoLWNhbGVuZGFyLWhlYWRlci5jb21wb25lbnQnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi4vZHItZGF0ZS1waWNrZXJfY3VzdG9tLWhlYWRlci9kci1kYXRlLXBpY2tlcl9jdXN0b20taGVhZGVyLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi4vZHItZGF0ZS1waWNrZXJfY3VzdG9tLWhlYWRlci9kci1kYXRlLXBpY2tlcl9jdXN0b20taGVhZGVyLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIERyRmlzY2FsTW9udGhDYWxlbmRhckhlYWRlckNvbXBvbmVudDxNb21lbnQ+IGV4dGVuZHMgRHJEYXRlUGlja2VyQ3VzdG9tSGVhZGVyQ29tcG9uZW50PE1vbWVudD4ge1xuICAgIG92ZXJyaWRlIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIGlmICh0aGlzLl9jYWxlbmRhci5tdWx0aVllYXJWaWV3KSB7XG4gICAgICAgICAgICAgICAgdGhpcy50cmFuc2Zvcm1EYXRlSW5NdWx0aXllYXJWaWV3QWNjb3JkaW5nVG9GWSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHRoaXMuX2NhbGVuZGFyLnllYXJWaWV3KSB7XG4gICAgICAgICAgICAgICAgdGhpcy50cmFuc2Zvcm1EYXRlSW5GaXNjYWxNb250aFZpZXdBY2NvcmRpbmdUb0ZZKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLmdvVG9DdXJyZW50RGF0ZUluVmlld0J5RlkoKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgdHJhbnNmb3JtRGF0ZUluRmlzY2FsTW9udGhWaWV3QWNjb3JkaW5nVG9GWSgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuX2NhbGVuZGFyLnNlbGVjdGVkKSB7XG4gICAgICAgICAgICB0aGlzLl9jYWxlbmRhci5zZWxlY3RlZCA9IHRoaXMuZGF0ZVBpY2tlclNlcnZpY2Uuc3VidHJhY3RGaXNjYWxZZWFyTW9udGhzRnJvbURhdGUodGhpcy5fY2FsZW5kYXIuYWN0aXZlRGF0ZSk7XG4gICAgICAgICAgICB0aGlzLl9jYWxlbmRhci5hY3RpdmVEYXRlID0gdGhpcy5fY2FsZW5kYXIuc2VsZWN0ZWQ7XG4gICAgICAgICAgICAodGhpcy5fY2FsZW5kYXIgYXMgYW55KS5fY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgb3ZlcnJpZGUgbGlzdGVuVG9DYWxlbmRhclZpZXdDaGFuZ2VzKCkge1xuICAgICAgICB0aGlzLl9jYWxlbmRhci52aWV3Q2hhbmdlZC5waXBlKHRha2VVbnRpbCh0aGlzLl9kZXN0cm95ZWQpKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5zZXRQZXJpb2RMYWJlbHMoKTtcbiAgICAgICAgICAgIGlmICh0aGlzLl9jYWxlbmRhci5tdWx0aVllYXJWaWV3KSB7XG4gICAgICAgICAgICAgICAgdGhpcy50cmFuc2Zvcm1EYXRlSW5NdWx0aXllYXJWaWV3QWNjb3JkaW5nVG9GWSgpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAodGhpcy5fY2FsZW5kYXIueWVhclZpZXcpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnRyYW5zZm9ybURhdGVJbkZpc2NhbE1vbnRoVmlld0FjY29yZGluZ1RvRlkoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxufVxuIiwiPGRpdiAqbmdJZj1cImRhdGVQaWNrZXJTZXJ2aWNlLmlzVGltZWZyYW1lU2VsZWN0aW9uRW5hYmxlZFwiIGNsYXNzPVwiZHItZGF0ZXBpY2tlcl9fdGltZWZyYW1lLXNlbGVjdF9fd3JhcHBlclwiPlxuICAgIDxkaXYgKm5nSWY9XCJkYXRlUGlja2VyU2VydmljZS5pc1VzaW5nRGF0ZVRhZ1ByZXNldHNcIiBjbGFzcz1cImRyLWRhdGVwaWNrZXItcHJlc2V0LWRhdGVcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImRyLWRhdGVwaWNrZXItcHJlc2V0LWRhdGVfX3RhZ3NcIj5cbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgdGFnIG9mIHByZXNldFRhZ0xpc3RcIlxuICAgICAgICAgICAgICAgIGlkPVwicHJlc2V0X3RhZ1wiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJkci1kYXRlcGlja2VyLXByZXNldC1kYXRlX190YWdzX190YWdcIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJvblNlbGVjdFByZXNldFRhZyh0YWcpXCJcbiAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7ICdkci1kYXRlcGlja2VyLXByZXNldC1kYXRlX190YWdzX190YWctLXNlbGVjdGVkJzogdGFnLmtleSA9PT0gc2VsZWN0ZWRQcmVzZXRUYWcgfVwiXG4gICAgICAgICAgICAgICAgW2RyVG9vbHRpcF09XCJzZWxlY3RlZFByZXNldFRhZyA9PT0gdGFnLmtleSA/ICdVbnNlbGVjdCBwcmVzZXQnIDogJydcIlxuICAgICAgICAgICAgICAgIFtkclRvb2x0aXBQb3NpdGlvbl09XCIndG9wJ1wiPlxuICAgICAgICAgICAgICAgIHt7IHRhZy5sYWJlbCB9fVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxkci1zZWxlY3RcbiAgICAgICAgY2xhc3M9XCJkci1kYXRlcGlja2VyX190aW1lZnJhbWUtc2VsZWN0XCJcbiAgICAgICAgW25nTW9kZWxdPVwic2VsZWN0ZWRUaW1lZnJhbWVcIlxuICAgICAgICBbaXRlbXNdPVwidGltZWZyYW1lT3B0aW9ucyB8IGRyU2hvd1RpbWVmcmFtZVBpcGU6IGRhdGVQaWNrZXJTZXJ2aWNlLmF2YWlsYWJsZVRpbWVmcmFtZXNcIlxuICAgICAgICBiaW5kTGFiZWw9XCJ0aXRsZVwiXG4gICAgICAgIGJpbmRWYWx1ZT1cInZhbHVlXCJcbiAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwic2V0VGltZWZyYW1lKCRldmVudClcIj5cbiAgICA8L2RyLXNlbGVjdD5cbjwvZGl2PlxuXG48ZGl2IGNsYXNzPVwiZHItZGF0ZS1wYWdpbmdcIj5cbiAgICA8ZGl2IGNsYXNzPVwiZHItZGF0ZS1wYWdpbmcgZmxpcC1wYWdlLWJ1dHRvblwiIChjbGljayk9XCJwYWdpbmdDbGlja2VkKGZhbHNlKVwiPlxuICAgICAgICA8aSBjbGFzcz1cImRyLWljb24tYXJyb3ctbGVmdCBwcmVzZW50YXRpb25fYnV0dG9ucy1uYXZpZ2F0ZV9pbnB1dFwiPjwvaT5cbiAgICA8L2Rpdj5cbiAgICA8c3BhbiBjbGFzcz1cImV4YW1wbGUtaGVhZGVyLWxhYmVsXCI+XG4gICAgICAgIDxzcGFuIChjbGljayk9XCJzd2l0Y2hWaWV3T25DbGlja09uUGVyaW9kTGFiZWwoY2FsZW5kYXJWaWV3LkZPUl9NT05USFMpXCI+e3sgcGVyaW9kTW9udGhMYWJlbCArICcgJyB9fTwvc3Bhbj5cbiAgICAgICAgPHNwYW4gKGNsaWNrKT1cInN3aXRjaFZpZXdPbkNsaWNrT25QZXJpb2RMYWJlbChjYWxlbmRhclZpZXcuRk9SX1lFQVJTKVwiPnt7IHBlcmlvZFllYXJMYWJlbCB9fTwvc3Bhbj5cbiAgICA8L3NwYW4+XG4gICAgPGRpdiBjbGFzcz1cImRyLWRhdGUtcGFnaW5nIGZsaXAtcGFnZS1idXR0b25cIiAoY2xpY2spPVwicGFnaW5nQ2xpY2tlZCh0cnVlKVwiPlxuICAgICAgICA8aSBjbGFzcz1cImRyLWljb24tYXJyb3ctcmlnaHQgcHJlc2VudGF0aW9uX2J1dHRvbnMtbmF2aWdhdGVfaW5wdXRcIj48L2k+XG4gICAgPC9kaXY+XG48L2Rpdj5cbjxkaXYgI3F1YXJ0ZXJseURhdGVQaWNrZXIgY2xhc3M9XCJkci1xdWFydGVybHktZGF0ZXBpY2tlclwiICpuZ0lmPVwiY3VycmVudFZpZXdJc1F1YXJ0ZXJcIj5cbiAgICA8ZGl2XG4gICAgICAgICpuZ0Zvcj1cImxldCBxdWFydGVyIG9mIHF1YXJ0ZXJzXCJcbiAgICAgICAgY2xhc3M9XCJxdWFydGVyLXNlbGVjdG9yXCJcbiAgICAgICAgKGNsaWNrKT1cIm9uU2VsZWN0UXVhcnRlcihxdWFydGVyKVwiXG4gICAgICAgIFtjbGFzc109XCJxdWFydGVyID09PSBzZWxlY3RlZFF1YXJ0ZXIgPyAnc2VsZWN0ZWQnIDogJydcIlxuICAgICAgICBbY2xhc3MucXVhcnRlci1zZWxlY3Rvci0tZGlzYWJsZWRdPVwiaXNRdWFydGVyRGlzYWJsZWQocXVhcnRlcilcIj5cbiAgICAgICAgUXt7IHF1YXJ0ZXIgfX1cbiAgICA8L2Rpdj5cbjwvZGl2PlxuIl19
|
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component, inject } from '@angular/core';
|
|
2
|
+
import { NG_VALUE_ACCESSOR } from '@angular/forms';
|
|
3
|
+
import { DateAdapter } from '@angular/material/core';
|
|
4
|
+
import { DrDatePickerService } from '../services/dr-date-picker.service';
|
|
5
|
+
import { CustomDateAdapter, DrDatePickerComponent } from '../dr-date-picker/dr-date-picker.component';
|
|
6
|
+
import * as moment from 'moment';
|
|
7
|
+
import { ForecastTagService } from '../../../date-tags/forecast-tag/forecast-tag.service';
|
|
8
|
+
import { TimeframeOption } from '../../../models/datePicker';
|
|
9
|
+
import { DrFiscalMonthCalendarHeaderComponent } from './dr-fiscal-month-calendar-header.component';
|
|
10
|
+
import * as i0 from "@angular/core";
|
|
11
|
+
import * as i1 from "@angular/forms";
|
|
12
|
+
import * as i2 from "@angular/common";
|
|
13
|
+
import * as i3 from "@angular/material/datepicker";
|
|
14
|
+
import * as i4 from "../directives/dr-date-picker-format.directive";
|
|
15
|
+
function DrFiscalMonthCalendarPickerComponent_ng_container_1_Template(rf, ctx) { if (rf & 1) {
|
|
16
|
+
const _r5 = i0.ɵɵgetCurrentView();
|
|
17
|
+
i0.ɵɵelementContainerStart(0);
|
|
18
|
+
i0.ɵɵelementStart(1, "input", 2);
|
|
19
|
+
i0.ɵɵlistener("click", function DrFiscalMonthCalendarPickerComponent_ng_container_1_Template_input_click_1_listener() { i0.ɵɵrestoreView(_r5); const _r3 = i0.ɵɵreference(9); return i0.ɵɵresetView(_r3.open()); });
|
|
20
|
+
i0.ɵɵelementEnd();
|
|
21
|
+
i0.ɵɵelementStart(2, "mat-date-range-input", 3)(3, "input", 4, 5);
|
|
22
|
+
i0.ɵɵlistener("dateChange", function DrFiscalMonthCalendarPickerComponent_ng_container_1_Template_input_dateChange_3_listener() { i0.ɵɵrestoreView(_r5); const ctx_r6 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r6.valueChangedInCalendar(ctx_r6.rangeForm.value.start)); });
|
|
23
|
+
i0.ɵɵpipe(5, "async");
|
|
24
|
+
i0.ɵɵelementEnd();
|
|
25
|
+
i0.ɵɵelement(6, "input", 6);
|
|
26
|
+
i0.ɵɵpipe(7, "async");
|
|
27
|
+
i0.ɵɵelementEnd();
|
|
28
|
+
i0.ɵɵelementStart(8, "mat-date-range-picker", 7, 8);
|
|
29
|
+
i0.ɵɵlistener("yearSelected", function DrFiscalMonthCalendarPickerComponent_ng_container_1_Template_mat_date_range_picker_yearSelected_8_listener($event) { i0.ɵɵrestoreView(_r5); const _r3 = i0.ɵɵreference(9); const ctx_r7 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r7.chosenPeriodHandler($event, ctx_r7.timeframeOption.YEAR, _r3)); })("monthSelected", function DrFiscalMonthCalendarPickerComponent_ng_container_1_Template_mat_date_range_picker_monthSelected_8_listener($event) { i0.ɵɵrestoreView(_r5); const _r3 = i0.ɵɵreference(9); const ctx_r8 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r8.chosenPeriodHandler($event, ctx_r8.timeframeOption.MONTH, _r3)); })("opened", function DrFiscalMonthCalendarPickerComponent_ng_container_1_Template_mat_date_range_picker_opened_8_listener() { i0.ɵɵrestoreView(_r5); const ctx_r9 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r9.onOpen()); })("closed", function DrFiscalMonthCalendarPickerComponent_ng_container_1_Template_mat_date_range_picker_closed_8_listener() { i0.ɵɵrestoreView(_r5); const ctx_r10 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r10.onCLose()); });
|
|
30
|
+
i0.ɵɵelementEnd();
|
|
31
|
+
i0.ɵɵelementContainerEnd();
|
|
32
|
+
} if (rf & 2) {
|
|
33
|
+
const _r2 = i0.ɵɵreference(4);
|
|
34
|
+
const _r3 = i0.ɵɵreference(9);
|
|
35
|
+
const ctx_r0 = i0.ɵɵnextContext();
|
|
36
|
+
i0.ɵɵadvance(1);
|
|
37
|
+
i0.ɵɵproperty("ngModel", _r2.value)("disabled", ctx_r0.disabled)("placeholder", ctx_r0.placeholder)("readonly", ctx_r0.readonly)("min", ctx_r0._min)("max", ctx_r0._max);
|
|
38
|
+
i0.ɵɵadvance(1);
|
|
39
|
+
i0.ɵɵproperty("formGroup", ctx_r0.rangeForm)("rangePicker", _r3)("dateFilter", ctx_r0.dateFilter);
|
|
40
|
+
i0.ɵɵadvance(1);
|
|
41
|
+
i0.ɵɵproperty("drDatePickerFormat", i0.ɵɵpipeBind1(5, 13, ctx_r0.datePickerService.format$));
|
|
42
|
+
i0.ɵɵadvance(3);
|
|
43
|
+
i0.ɵɵproperty("drDatePickerFormat", i0.ɵɵpipeBind1(7, 15, ctx_r0.datePickerService.format$));
|
|
44
|
+
i0.ɵɵadvance(2);
|
|
45
|
+
i0.ɵɵproperty("panelClass", "dr-week-datepicker")("calendarHeaderComponent", ctx_r0.customHeader);
|
|
46
|
+
} }
|
|
47
|
+
function DrFiscalMonthCalendarPickerComponent_ng_container_3_Template(rf, ctx) { if (rf & 1) {
|
|
48
|
+
const _r13 = i0.ɵɵgetCurrentView();
|
|
49
|
+
i0.ɵɵelementContainerStart(0);
|
|
50
|
+
i0.ɵɵelementStart(1, "input", 9);
|
|
51
|
+
i0.ɵɵlistener("ngModelChange", function DrFiscalMonthCalendarPickerComponent_ng_container_3_Template_input_ngModelChange_1_listener($event) { i0.ɵɵrestoreView(_r13); const ctx_r12 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r12.valueChangedInCalendar($event)); })("click", function DrFiscalMonthCalendarPickerComponent_ng_container_3_Template_input_click_1_listener() { i0.ɵɵrestoreView(_r13); const _r11 = i0.ɵɵreference(5); return i0.ɵɵresetView(_r11.open()); });
|
|
52
|
+
i0.ɵɵpipe(2, "async");
|
|
53
|
+
i0.ɵɵpipe(3, "async");
|
|
54
|
+
i0.ɵɵelementEnd();
|
|
55
|
+
i0.ɵɵelementStart(4, "mat-datepicker", 10, 8);
|
|
56
|
+
i0.ɵɵlistener("yearSelected", function DrFiscalMonthCalendarPickerComponent_ng_container_3_Template_mat_datepicker_yearSelected_4_listener($event) { i0.ɵɵrestoreView(_r13); const _r11 = i0.ɵɵreference(5); const ctx_r15 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r15.chosenPeriodHandler($event, ctx_r15.timeframeOption.YEAR, _r11)); })("monthSelected", function DrFiscalMonthCalendarPickerComponent_ng_container_3_Template_mat_datepicker_monthSelected_4_listener($event) { i0.ɵɵrestoreView(_r13); const _r11 = i0.ɵɵreference(5); const ctx_r16 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r16.chosenPeriodHandler($event, ctx_r16.timeframeOption.MONTH, _r11)); })("opened", function DrFiscalMonthCalendarPickerComponent_ng_container_3_Template_mat_datepicker_opened_4_listener() { i0.ɵɵrestoreView(_r13); const ctx_r17 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r17.onOpen()); })("closed", function DrFiscalMonthCalendarPickerComponent_ng_container_3_Template_mat_datepicker_closed_4_listener() { i0.ɵɵrestoreView(_r13); const ctx_r18 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r18.onCLose()); });
|
|
57
|
+
i0.ɵɵelementEnd();
|
|
58
|
+
i0.ɵɵelementContainerEnd();
|
|
59
|
+
} if (rf & 2) {
|
|
60
|
+
const _r11 = i0.ɵɵreference(5);
|
|
61
|
+
const ctx_r1 = i0.ɵɵnextContext();
|
|
62
|
+
i0.ɵɵadvance(1);
|
|
63
|
+
i0.ɵɵproperty("ngModel", i0.ɵɵpipeBind1(2, 10, ctx_r1.displayValue$))("matDatepicker", _r11)("matDatepickerFilter", ctx_r1.dateFilter)("disabled", ctx_r1.disabled)("placeholder", ctx_r1.placeholder)("drDatePickerFormat", i0.ɵɵpipeBind1(3, 12, ctx_r1.datePickerService.format$))("readonly", ctx_r1.readonly)("min", ctx_r1._min)("max", ctx_r1._max);
|
|
64
|
+
i0.ɵɵadvance(3);
|
|
65
|
+
i0.ɵɵproperty("calendarHeaderComponent", ctx_r1.customHeader);
|
|
66
|
+
} }
|
|
67
|
+
export class FiscalMonthAdapter extends CustomDateAdapter {
|
|
68
|
+
constructor() {
|
|
69
|
+
super(...arguments);
|
|
70
|
+
this.datePickerService = inject(DrDatePickerService);
|
|
71
|
+
}
|
|
72
|
+
getMonthNames(style) {
|
|
73
|
+
return ForecastTagService.getForecastMonthTemplates();
|
|
74
|
+
}
|
|
75
|
+
format(date, displayFormat) {
|
|
76
|
+
if (!date)
|
|
77
|
+
return '';
|
|
78
|
+
const dateToFormat = this.datePickerService.subtractFiscalYearMonthsFromDate(date.clone());
|
|
79
|
+
const month = dateToFormat.month();
|
|
80
|
+
const year = dateToFormat.year();
|
|
81
|
+
return `${ForecastTagService.getForecastLabel(month + 1)} (${year})`;
|
|
82
|
+
}
|
|
83
|
+
today() {
|
|
84
|
+
const currentMoment = moment.utc();
|
|
85
|
+
const momentWithSubstrMonth = this.datePickerService.subtractFiscalYearMonthsFromDate(currentMoment);
|
|
86
|
+
const momentWithShiftedYear = this.datePickerService.addFiscalYearShiftForYear(momentWithSubstrMonth);
|
|
87
|
+
return momentWithShiftedYear ? momentWithShiftedYear : momentWithSubstrMonth;
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
export class DrFiscalMonthCalendarPickerComponent extends DrDatePickerComponent {
|
|
91
|
+
constructor() {
|
|
92
|
+
super(...arguments);
|
|
93
|
+
this.customHeader = DrFiscalMonthCalendarHeaderComponent;
|
|
94
|
+
this.format = TimeframeOption.MONTH;
|
|
95
|
+
}
|
|
96
|
+
ngOnInit() {
|
|
97
|
+
this.updateFormat();
|
|
98
|
+
}
|
|
99
|
+
chosenPeriodHandler(chosenDate, timeframe, picker) {
|
|
100
|
+
if (timeframe === TimeframeOption.YEAR) {
|
|
101
|
+
chosenDate = this.datePickerService.addFiscalYearMonthsToDate(chosenDate);
|
|
102
|
+
}
|
|
103
|
+
if (timeframe === TimeframeOption.MONTH) {
|
|
104
|
+
const momentWithShiftedYear = this.datePickerService.subtractFiscalYearShiftForYear(chosenDate);
|
|
105
|
+
chosenDate = this.datePickerService.addFiscalYearMonthsToDate(momentWithShiftedYear ? momentWithShiftedYear : chosenDate);
|
|
106
|
+
}
|
|
107
|
+
if (this.datePickerService.timeframe === timeframe) {
|
|
108
|
+
this.valueChangedInCalendar(chosenDate);
|
|
109
|
+
picker.close();
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
transformDisplayedValue(value, timeframe) {
|
|
113
|
+
const valueToReturn = value?.clone();
|
|
114
|
+
if (valueToReturn &&
|
|
115
|
+
(this.datePickerService.isTimeframeDependingOnFY(timeframe) || timeframe === TimeframeOption.MONTH)) {
|
|
116
|
+
this.datePickerService.addFiscalYearShiftForYear(valueToReturn);
|
|
117
|
+
}
|
|
118
|
+
return valueToReturn;
|
|
119
|
+
}
|
|
120
|
+
/** @nocollapse */ static { this.ɵfac = /** @pureOrBreakMyCode */ function () { let ɵDrFiscalMonthCalendarPickerComponent_BaseFactory; return function DrFiscalMonthCalendarPickerComponent_Factory(t) { return (ɵDrFiscalMonthCalendarPickerComponent_BaseFactory || (ɵDrFiscalMonthCalendarPickerComponent_BaseFactory = i0.ɵɵgetInheritedFactory(DrFiscalMonthCalendarPickerComponent)))(t || DrFiscalMonthCalendarPickerComponent); }; }(); }
|
|
121
|
+
/** @nocollapse */ static { this.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DrFiscalMonthCalendarPickerComponent, selectors: [["dr-fiscal-month-picker"]], features: [i0.ɵɵProvidersFeature([
|
|
122
|
+
{ provide: NG_VALUE_ACCESSOR, useExisting: DrFiscalMonthCalendarPickerComponent, multi: true },
|
|
123
|
+
{ provide: DateAdapter, useClass: FiscalMonthAdapter },
|
|
124
|
+
DrDatePickerService,
|
|
125
|
+
]), i0.ɵɵInheritDefinitionFeature], decls: 5, vars: 6, consts: [[1, "dr-icon-date", 3, "click"], [4, "ngIf"], [3, "ngModel", "disabled", "placeholder", "readonly", "min", "max", "click"], [1, "range-input", 3, "formGroup", "rangePicker", "dateFilter"], ["matStartDate", "", "formControlName", "start", 3, "drDatePickerFormat", "dateChange"], ["input", ""], ["matEndDate", "", "formControlName", "end", 3, "drDatePickerFormat"], [3, "panelClass", "calendarHeaderComponent", "yearSelected", "monthSelected", "opened", "closed"], ["datePicker", ""], [3, "ngModel", "matDatepicker", "matDatepickerFilter", "disabled", "placeholder", "drDatePickerFormat", "readonly", "min", "max", "ngModelChange", "click"], [3, "calendarHeaderComponent", "yearSelected", "monthSelected", "opened", "closed"]], template: function DrFiscalMonthCalendarPickerComponent_Template(rf, ctx) { if (rf & 1) {
|
|
126
|
+
i0.ɵɵelementStart(0, "i", 0);
|
|
127
|
+
i0.ɵɵlistener("click", function DrFiscalMonthCalendarPickerComponent_Template_i_click_0_listener() { return ctx.datePicker.open(); });
|
|
128
|
+
i0.ɵɵelementEnd();
|
|
129
|
+
i0.ɵɵtemplate(1, DrFiscalMonthCalendarPickerComponent_ng_container_1_Template, 10, 17, "ng-container", 1);
|
|
130
|
+
i0.ɵɵpipe(2, "async");
|
|
131
|
+
i0.ɵɵtemplate(3, DrFiscalMonthCalendarPickerComponent_ng_container_3_Template, 6, 14, "ng-container", 1);
|
|
132
|
+
i0.ɵɵpipe(4, "async");
|
|
133
|
+
} if (rf & 2) {
|
|
134
|
+
i0.ɵɵadvance(1);
|
|
135
|
+
i0.ɵɵproperty("ngIf", i0.ɵɵpipeBind1(2, 2, ctx.datePickerService.timeframe$) === "week");
|
|
136
|
+
i0.ɵɵadvance(2);
|
|
137
|
+
i0.ɵɵproperty("ngIf", i0.ɵɵpipeBind1(4, 4, ctx.datePickerService.timeframe$) !== "week");
|
|
138
|
+
} }, dependencies: [i1.DefaultValueAccessor, i1.NgControlStatus, i1.NgControlStatusGroup, i1.NgModel, i1.FormGroupDirective, i1.FormControlName, i2.NgIf, i3.MatDatepicker, i3.MatDatepickerInput, i3.MatDateRangeInput, i3.MatStartDate, i3.MatEndDate, i3.MatDateRangePicker, i4.DrDatePickerFormatDirective, i2.AsyncPipe], styles: ["[_nghost-%COMP%]{position:relative;width:100%;display:flex;flex-direction:row;min-height:32px;height:32px;font-size:14px;font-family:Poppins,sans-serif;background-color:#fff;border:1px solid #9ea1aa;border-radius:6px;color:#333;overflow:hidden;outline:none;cursor:pointer}[_nghost-%COMP%]:hover{border-color:#9ea1aa}.active[_nghost-%COMP%], [_nghost-%COMP%]:focus-within{border-color:#4646ce!important;color:#333}.disabled[_nghost-%COMP%]{pointer-events:none;border:1px solid #aeabac;background:#f0f1f4;color:#aeabac}.disabled[_nghost-%COMP%]:after{color:#aeabac}.ng-valid.ng-dirty[_nghost-%COMP%]{border-color:#037c5a}.ng-invalid.ng-dirty[_nghost-%COMP%]:not(:focus-within){border-color:#bf1d30!important}.ng-untouched.ng-valid[_nghost-%COMP%]{border-color:#9ea1aa}[_nghost-%COMP%]:after, [_nghost-%COMP%]:before{position:absolute;display:flex;border-color:#6d6e6f transparent transparent;color:#6d6e6f}[_nghost-%COMP%]:after{font-family:DataRails!important;content:\"\\ea16\";font-size:24px;color:#6d6e6f;top:0;bottom:0;right:8px;pointer-events:none;position:absolute;display:flex;align-items:center;justify-content:center}[_nghost-%COMP%] i[_ngcontent-%COMP%]{display:flex;align-items:center;position:absolute;color:#6d6e6f;left:8px;top:0;bottom:0}[_nghost-%COMP%] input[_ngcontent-%COMP%]{display:flex;flex-grow:1;height:100%;border:none;text-align:left;padding-left:35px;padding-right:25px;cursor:pointer!important;outline:none}[_nghost-%COMP%] input.when-quarter[_ngcontent-%COMP%]{position:absolute;visibility:hidden}[_nghost-%COMP%] input[_ngcontent-%COMP%]:disabled{border:none;color:#aeabac;background:transparent}[_nghost-%COMP%] input[_ngcontent-%COMP%]::-webkit-search-decoration, [_nghost-%COMP%] input[_ngcontent-%COMP%]::-webkit-search-cancel-button, [_nghost-%COMP%] input[_ngcontent-%COMP%]::-webkit-search-results-button, [_nghost-%COMP%] input[_ngcontent-%COMP%]::-webkit-search-results-decoration{-webkit-appearance:none}[_nghost-%COMP%] input[_ngcontent-%COMP%]::placeholder{color:#6d6e6f;font-size:14px;line-height:18px}[_nghost-%COMP%] .range-input[_ngcontent-%COMP%]{position:absolute;height:0;width:0;bottom:0;left:0;z-index:-1} .mat-datepicker-popup .dr-week-datepicker{width:386px!important} .mat-datepicker-popup .dr-week-datepicker .mat-calendar-body-in-range:before{background:initial!important} .mat-datepicker-popup .dr-week-datepicker .mat-calendar-body-in-range .mat-calendar-body-selected, .mat-datepicker-popup .dr-week-datepicker .mat-calendar-body-in-range .mat-calendar-body-cell-content{background:#f2f2fb!important;color:#4646ce!important;font-weight:600!important} .mat-datepicker-popup .mat-datepicker-content{margin:7px 0;box-shadow:0 4px 8px 1px #00000040;border-radius:12px!important} .mat-datepicker-popup .mat-datepicker-content button[disabled]{border:inherit;color:inherit;background-color:inherit} .mat-datepicker-popup .mat-datepicker-content button[disabled]:hover{border:inherit} .mat-datepicker-popup .cdk-keyboard-focused .mat-calendar-body-active>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical), .mat-datepicker-popup .cdk-program-focused .mat-calendar-body-active>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical){background-color:#fff} .mat-datepicker-popup .mat-calendar-body-cell:not(.mat-calendar-body-disabled):hover>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical){background:#f2f2fb;color:#4646ce;font-weight:600} .mat-datepicker-popup .mat-calendar-body-selected{background-color:#4646ce;color:#f2f2fb;font-weight:600} .mat-datepicker-popup .mat-calendar-body-today.mat-calendar-body-selected{box-shadow:none} .mat-datepicker-popup .mat-button-focus-overlay{background:#f5f5f5} .mat-datepicker-popup .mat-calendar-controls .mat-icon-button:hover .mat-button-focus-overlay{opacity:1!important;background:#f5f5f5;transition:opacity .2s cubic-bezier(.35,0,.25,1)} .mat-datepicker-popup .mat-calendar-controls .mat-calendar-period-button:hover{background:#f5f5f5;transition:background .2s cubic-bezier(.35,0,.25,1)} .mat-datepicker-popup .mat-calendar-table-header th{font-size:14px;font-weight:600;color:#333} .mat-datepicker-popup .mat-calendar-table-header-divider{display:none} .mat-datepicker-popup .mat-calendar-body-label{color:#fff;padding:0} .mat-datepicker-popup .mat-calendar-body>tr[aria-hidden=true]>.mat-calendar-body-label{display:none} .mat-datepicker-popup .mat-calendar-content{display:flex} .mat-datepicker-popup .mat-calendar-content dr-week-selector{flex:0} .mat-datepicker-popup .mat-calendar-content mat-month-view, .mat-datepicker-popup .mat-calendar-content mat-multi-year-view, .mat-datepicker-popup .mat-calendar-content mat-year-view{flex:1}"], changeDetection: 0 }); }
|
|
139
|
+
}
|
|
140
|
+
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(DrFiscalMonthCalendarPickerComponent, [{
|
|
141
|
+
type: Component,
|
|
142
|
+
args: [{ selector: 'dr-fiscal-month-picker', changeDetection: ChangeDetectionStrategy.OnPush, providers: [
|
|
143
|
+
{ provide: NG_VALUE_ACCESSOR, useExisting: DrFiscalMonthCalendarPickerComponent, multi: true },
|
|
144
|
+
{ provide: DateAdapter, useClass: FiscalMonthAdapter },
|
|
145
|
+
DrDatePickerService,
|
|
146
|
+
], template: "<i class=\"dr-icon-date\" (click)=\"datePicker.open()\"></i>\n\n<ng-container *ngIf=\"(datePickerService.timeframe$ | async) === 'week'\">\n <input\n [ngModel]=\"input.value\"\n (click)=\"datePicker.open()\"\n [disabled]=\"disabled\"\n [placeholder]=\"placeholder\"\n [readonly]=\"readonly\"\n [min]=\"_min\"\n [max]=\"_max\" />\n\n <mat-date-range-input [formGroup]=\"rangeForm\" [rangePicker]=\"datePicker\" [dateFilter]=\"dateFilter\" class=\"range-input\">\n <input\n matStartDate\n #input\n [drDatePickerFormat]=\"datePickerService.format$ | async\"\n formControlName=\"start\"\n (dateChange)=\"valueChangedInCalendar(rangeForm.value.start)\" />\n <input matEndDate [drDatePickerFormat]=\"datePickerService.format$ | async\" formControlName=\"end\" />\n </mat-date-range-input>\n\n <mat-date-range-picker\n #datePicker\n [panelClass]=\"'dr-week-datepicker'\"\n [calendarHeaderComponent]=\"customHeader\"\n (yearSelected)=\"chosenPeriodHandler($event, timeframeOption.YEAR, datePicker)\"\n (monthSelected)=\"chosenPeriodHandler($event, timeframeOption.MONTH, datePicker)\"\n (opened)=\"onOpen()\"\n (closed)=\"onCLose()\">\n </mat-date-range-picker>\n</ng-container>\n\n<ng-container *ngIf=\"(datePickerService.timeframe$ | async) !== 'week'\">\n <input\n [ngModel]=\"displayValue$ | async\"\n (ngModelChange)=\"valueChangedInCalendar($event)\"\n (click)=\"datePicker.open()\"\n [matDatepicker]=\"datePicker\"\n [matDatepickerFilter]=\"dateFilter\"\n [disabled]=\"disabled\"\n [placeholder]=\"placeholder\"\n [drDatePickerFormat]=\"datePickerService.format$ | async\"\n [readonly]=\"readonly\"\n [min]=\"_min\"\n [max]=\"_max\" />\n\n <mat-datepicker\n #datePicker\n [calendarHeaderComponent]=\"customHeader\"\n (yearSelected)=\"chosenPeriodHandler($event, timeframeOption.YEAR, datePicker)\"\n (monthSelected)=\"chosenPeriodHandler($event, timeframeOption.MONTH, datePicker)\"\n (opened)=\"onOpen()\"\n (closed)=\"onCLose()\">\n </mat-datepicker>\n</ng-container>\n", styles: [":host{position:relative;width:100%;display:flex;flex-direction:row;min-height:32px;height:32px;font-size:14px;font-family:Poppins,sans-serif;background-color:#fff;border:1px solid #9ea1aa;border-radius:6px;color:#333;overflow:hidden;outline:none;cursor:pointer}:host:hover{border-color:#9ea1aa}:host.active,:host:focus-within{border-color:#4646ce!important;color:#333}:host.disabled{pointer-events:none;border:1px solid #aeabac;background:#f0f1f4;color:#aeabac}:host.disabled:after{color:#aeabac}:host.ng-valid.ng-dirty{border-color:#037c5a}:host.ng-invalid.ng-dirty:not(:focus-within){border-color:#bf1d30!important}:host.ng-untouched.ng-valid{border-color:#9ea1aa}:host:after,:host:before{position:absolute;display:flex;border-color:#6d6e6f transparent transparent;color:#6d6e6f}:host:after{font-family:DataRails!important;content:\"\\ea16\";font-size:24px;color:#6d6e6f;top:0;bottom:0;right:8px;pointer-events:none;position:absolute;display:flex;align-items:center;justify-content:center}:host i{display:flex;align-items:center;position:absolute;color:#6d6e6f;left:8px;top:0;bottom:0}:host input{display:flex;flex-grow:1;height:100%;border:none;text-align:left;padding-left:35px;padding-right:25px;cursor:pointer!important;outline:none}:host input.when-quarter{position:absolute;visibility:hidden}:host input:disabled{border:none;color:#aeabac;background:transparent}:host input::-webkit-search-decoration,:host input::-webkit-search-cancel-button,:host input::-webkit-search-results-button,:host input::-webkit-search-results-decoration{-webkit-appearance:none}:host input::placeholder{color:#6d6e6f;font-size:14px;line-height:18px}:host .range-input{position:absolute;height:0;width:0;bottom:0;left:0;z-index:-1}::ng-deep .mat-datepicker-popup .dr-week-datepicker{width:386px!important}::ng-deep .mat-datepicker-popup .dr-week-datepicker .mat-calendar-body-in-range:before{background:initial!important}::ng-deep .mat-datepicker-popup .dr-week-datepicker .mat-calendar-body-in-range .mat-calendar-body-selected,::ng-deep .mat-datepicker-popup .dr-week-datepicker .mat-calendar-body-in-range .mat-calendar-body-cell-content{background:#f2f2fb!important;color:#4646ce!important;font-weight:600!important}::ng-deep .mat-datepicker-popup .mat-datepicker-content{margin:7px 0;box-shadow:0 4px 8px 1px #00000040;border-radius:12px!important}::ng-deep .mat-datepicker-popup .mat-datepicker-content button[disabled]{border:inherit;color:inherit;background-color:inherit}::ng-deep .mat-datepicker-popup .mat-datepicker-content button[disabled]:hover{border:inherit}::ng-deep .mat-datepicker-popup .cdk-keyboard-focused .mat-calendar-body-active>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical),::ng-deep .mat-datepicker-popup .cdk-program-focused .mat-calendar-body-active>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical){background-color:#fff}::ng-deep .mat-datepicker-popup .mat-calendar-body-cell:not(.mat-calendar-body-disabled):hover>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical){background:#f2f2fb;color:#4646ce;font-weight:600}::ng-deep .mat-datepicker-popup .mat-calendar-body-selected{background-color:#4646ce;color:#f2f2fb;font-weight:600}::ng-deep .mat-datepicker-popup .mat-calendar-body-today.mat-calendar-body-selected{box-shadow:none}::ng-deep .mat-datepicker-popup .mat-button-focus-overlay{background:#f5f5f5}::ng-deep .mat-datepicker-popup .mat-calendar-controls .mat-icon-button:hover .mat-button-focus-overlay{opacity:1!important;background:#f5f5f5;transition:opacity .2s cubic-bezier(.35,0,.25,1)}::ng-deep .mat-datepicker-popup .mat-calendar-controls .mat-calendar-period-button:hover{background:#f5f5f5;transition:background .2s cubic-bezier(.35,0,.25,1)}::ng-deep .mat-datepicker-popup .mat-calendar-table-header th{font-size:14px;font-weight:600;color:#333}::ng-deep .mat-datepicker-popup .mat-calendar-table-header-divider{display:none}::ng-deep .mat-datepicker-popup .mat-calendar-body-label{color:#fff;padding:0}::ng-deep .mat-datepicker-popup .mat-calendar-body>tr[aria-hidden=true]>.mat-calendar-body-label{display:none}::ng-deep .mat-datepicker-popup .mat-calendar-content{display:flex}::ng-deep .mat-datepicker-popup .mat-calendar-content dr-week-selector{flex:0}::ng-deep .mat-datepicker-popup .mat-calendar-content mat-month-view,::ng-deep .mat-datepicker-popup .mat-calendar-content mat-multi-year-view,::ng-deep .mat-datepicker-popup .mat-calendar-content mat-year-view{flex:1}\n"] }]
|
|
147
|
+
}], null, null); })();
|
|
148
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHItZmlzY2FsLW1vbnRoLWNhbGVuZGFyLXBpY2tlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kYXRhcmFpbHNzaGFyZWQvc3JjL2xpYi9kci1pbnB1dHMvZGF0ZS1waWNrZXJzL2RyLWZpc2NhbC1tb250aC1jYWxlbmRhci1waWNrZXIvZHItZmlzY2FsLW1vbnRoLWNhbGVuZGFyLXBpY2tlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kYXRhcmFpbHNzaGFyZWQvc3JjL2xpYi9kci1pbnB1dHMvZGF0ZS1waWNrZXJzL2RyLWRhdGUtcGlja2VyL2RyLWRhdGUtcGlja2VyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQ25GLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUN6RSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUscUJBQXFCLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUN0RyxPQUFPLEtBQUssTUFBTSxNQUFNLFFBQVEsQ0FBQztBQUNqQyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxzREFBc0QsQ0FBQztBQUMxRixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFFN0QsT0FBTyxFQUFFLG9DQUFvQyxFQUFFLE1BQU0sNkNBQTZDLENBQUM7Ozs7Ozs7O0lDUG5HLDZCQUF3RTtJQUNwRSxnQ0FPbUI7SUFMZixxTEFBUyxlQUFBLFVBQWlCLENBQUEsSUFBQztJQUYvQixpQkFPbUI7SUFF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RSxPQUFPLEVBQUUsV0FBVyxFQUFFLFFBQVEsRUFBRSxrQkFBa0IsRUFBRTtnQkFDdEQsbUJBQW1CO2FBQ3RCO1lDM0NMLDRCQUFvRDtZQUE1Qiw0R0FBUyxxQkFBaUIsSUFBQztZQUFDLGlCQUFJO1lBRXhELHlHQTZCZTs7WUFFZix3R0FzQmU7OztZQXJEQSxlQUF1RDtZQUF2RCx3RkFBdUQ7WUErQnZELGVBQXVEO1lBQXZELHdGQUF1RDs7O3VGRFl6RCxvQ0FBb0M7Y0FYaEQsU0FBUzsyQkFDSSx3QkFBd0IsbUJBR2pCLHVCQUF1QixDQUFDLE1BQU0sYUFDcEM7b0JBQ1AsRUFBRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsV0FBVyxzQ0FBc0MsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFO29CQUM5RixFQUFFLE9BQU8sRUFBRSxXQUFXLEVBQUUsUUFBUSxFQUFFLGtCQUFrQixFQUFFO29CQUN0RCxtQkFBbUI7aUJBQ3RCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgaW5qZWN0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgRGF0ZUFkYXB0ZXIgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jb3JlJztcbmltcG9ydCB7IERyRGF0ZVBpY2tlclNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9kci1kYXRlLXBpY2tlci5zZXJ2aWNlJztcbmltcG9ydCB7IEN1c3RvbURhdGVBZGFwdGVyLCBEckRhdGVQaWNrZXJDb21wb25lbnQgfSBmcm9tICcuLi9kci1kYXRlLXBpY2tlci9kci1kYXRlLXBpY2tlci5jb21wb25lbnQnO1xuaW1wb3J0ICogYXMgbW9tZW50IGZyb20gJ21vbWVudCc7XG5pbXBvcnQgeyBGb3JlY2FzdFRhZ1NlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9kYXRlLXRhZ3MvZm9yZWNhc3QtdGFnL2ZvcmVjYXN0LXRhZy5zZXJ2aWNlJztcbmltcG9ydCB7IFRpbWVmcmFtZU9wdGlvbiB9IGZyb20gJy4uLy4uLy4uL21vZGVscy9kYXRlUGlja2VyJztcbmltcG9ydCB7IE1hdERhdGVwaWNrZXIgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kYXRlcGlja2VyJztcbmltcG9ydCB7IERyRmlzY2FsTW9udGhDYWxlbmRhckhlYWRlckNvbXBvbmVudCB9IGZyb20gJy4vZHItZmlzY2FsLW1vbnRoLWNhbGVuZGFyLWhlYWRlci5jb21wb25lbnQnO1xuXG5leHBvcnQgY2xhc3MgRmlzY2FsTW9udGhBZGFwdGVyIGV4dGVuZHMgQ3VzdG9tRGF0ZUFkYXB0ZXIge1xuICAgIHJlYWRvbmx5IGRhdGVQaWNrZXJTZXJ2aWNlID0gaW5qZWN0KERyRGF0ZVBpY2tlclNlcnZpY2UpO1xuXG4gICAgb3ZlcnJpZGUgZ2V0TW9udGhOYW1lcyhzdHlsZTogJ2xvbmcnIHwgJ3Nob3J0JyB8ICduYXJyb3cnKTogc3RyaW5nW10ge1xuICAgICAgICByZXR1cm4gRm9yZWNhc3RUYWdTZXJ2aWNlLmdldEZvcmVjYXN0TW9udGhUZW1wbGF0ZXMoKTtcbiAgICB9XG5cbiAgICBvdmVycmlkZSBmb3JtYXQoZGF0ZTogbW9tZW50Lk1vbWVudCwgZGlzcGxheUZvcm1hdDogc3RyaW5nKTogc3RyaW5nIHwgYW55IHtcbiAgICAgICAgaWYgKCFkYXRlKSByZXR1cm4gJyc7XG4gICAgICAgIGNvbnN0IGRhdGVUb0Zvcm1hdCA9IHRoaXMuZGF0ZVBpY2tlclNlcnZpY2Uuc3VidHJhY3RGaXNjYWxZZWFyTW9udGhzRnJvbURhdGUoZGF0ZS5jbG9uZSgpKTtcbiAgICAgICAgY29uc3QgbW9udGggPSBkYXRlVG9Gb3JtYXQubW9udGgoKTtcbiAgICAgICAgY29uc3QgeWVhciA9IGRhdGVUb0Zvcm1hdC55ZWFyKCk7XG4gICAgICAgIHJldHVybiBgJHtGb3JlY2FzdFRhZ1NlcnZpY2UuZ2V0Rm9yZWNhc3RMYWJlbChtb250aCArIDEpfSAoJHt5ZWFyfSlgO1xuICAgIH1cblxuICAgIG92ZXJyaWRlIHRvZGF5KCk6IG1vbWVudC5Nb21lbnQge1xuICAgICAgICBjb25zdCBjdXJyZW50TW9tZW50ID0gbW9tZW50LnV0YygpO1xuICAgICAgICBjb25zdCBtb21lbnRXaXRoU3Vic3RyTW9udGggPSB0aGlzLmRhdGVQaWNrZXJTZXJ2aWNlLnN1YnRyYWN0RmlzY2FsWWVhck1vbnRoc0Zyb21EYXRlKGN1cnJlbnRNb21lbnQpO1xuICAgICAgICBjb25zdCBtb21lbnRXaXRoU2hpZnRlZFllYXIgPSB0aGlzLmRhdGVQaWNrZXJTZXJ2aWNlLmFkZEZpc2NhbFllYXJTaGlmdEZvclllYXIobW9tZW50V2l0aFN1YnN0ck1vbnRoKTtcbiAgICAgICAgcmV0dXJuIG1vbWVudFdpdGhTaGlmdGVkWWVhciA/IG1vbWVudFdpdGhTaGlmdGVkWWVhciA6IG1vbWVudFdpdGhTdWJzdHJNb250aDtcbiAgICB9XG59XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZHItZmlzY2FsLW1vbnRoLXBpY2tlcicsXG4gICAgdGVtcGxhdGVVcmw6ICcuLi9kci1kYXRlLXBpY2tlci9kci1kYXRlLXBpY2tlci5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4uL2RyLWRhdGUtcGlja2VyL2RyLWRhdGUtcGlja2VyLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHsgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsIHVzZUV4aXN0aW5nOiBEckZpc2NhbE1vbnRoQ2FsZW5kYXJQaWNrZXJDb21wb25lbnQsIG11bHRpOiB0cnVlIH0sXG4gICAgICAgIHsgcHJvdmlkZTogRGF0ZUFkYXB0ZXIsIHVzZUNsYXNzOiBGaXNjYWxNb250aEFkYXB0ZXIgfSxcbiAgICAgICAgRHJEYXRlUGlja2VyU2VydmljZSxcbiAgICBdLFxufSlcbmV4cG9ydCBjbGFzcyBEckZpc2NhbE1vbnRoQ2FsZW5kYXJQaWNrZXJDb21wb25lbnQgZXh0ZW5kcyBEckRhdGVQaWNrZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICAgIHB1YmxpYyBvdmVycmlkZSByZWFkb25seSBjdXN0b21IZWFkZXIgPSBEckZpc2NhbE1vbnRoQ2FsZW5kYXJIZWFkZXJDb21wb25lbnQ7XG4gICAgb3ZlcnJpZGUgZm9ybWF0ID0gVGltZWZyYW1lT3B0aW9uLk1PTlRIO1xuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIHRoaXMudXBkYXRlRm9ybWF0KCk7XG4gICAgfVxuXG4gICAgb3ZlcnJpZGUgY2hvc2VuUGVyaW9kSGFuZGxlcihjaG9zZW5EYXRlOiBtb21lbnQuTW9tZW50LCB0aW1lZnJhbWU6IFRpbWVmcmFtZU9wdGlvbiwgcGlja2VyOiBNYXREYXRlcGlja2VyPGFueT4pOiB2b2lkIHtcbiAgICAgICAgaWYgKHRpbWVmcmFtZSA9PT0gVGltZWZyYW1lT3B0aW9uLllFQVIpIHtcbiAgICAgICAgICAgIGNob3NlbkRhdGUgPSB0aGlzLmRhdGVQaWNrZXJTZXJ2aWNlLmFkZEZpc2NhbFllYXJNb250aHNUb0RhdGUoY2hvc2VuRGF0ZSk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGltZWZyYW1lID09PSBUaW1lZnJhbWVPcHRpb24uTU9OVEgpIHtcbiAgICAgICAgICAgIGNvbnN0IG1vbWVudFdpdGhTaGlmdGVkWWVhciA9IHRoaXMuZGF0ZVBpY2tlclNlcnZpY2Uuc3VidHJhY3RGaXNjYWxZZWFyU2hpZnRGb3JZZWFyKGNob3NlbkRhdGUpO1xuICAgICAgICAgICAgY2hvc2VuRGF0ZSA9IHRoaXMuZGF0ZVBpY2tlclNlcnZpY2UuYWRkRmlzY2FsWWVhck1vbnRoc1RvRGF0ZShcbiAgICAgICAgICAgICAgICBtb21lbnRXaXRoU2hpZnRlZFllYXIgPyBtb21lbnRXaXRoU2hpZnRlZFllYXIgOiBjaG9zZW5EYXRlLFxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLmRhdGVQaWNrZXJTZXJ2aWNlLnRpbWVmcmFtZSA9PT0gdGltZWZyYW1lKSB7XG4gICAgICAgICAgICB0aGlzLnZhbHVlQ2hhbmdlZEluQ2FsZW5kYXIoY2hvc2VuRGF0ZSk7XG4gICAgICAgICAgICBwaWNrZXIuY2xvc2UoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByb3RlY3RlZCBvdmVycmlkZSB0cmFuc2Zvcm1EaXNwbGF5ZWRWYWx1ZSh2YWx1ZTogbW9tZW50Lk1vbWVudCwgdGltZWZyYW1lOiBUaW1lZnJhbWVPcHRpb24pOiBtb21lbnQuTW9tZW50IHtcbiAgICAgICAgY29uc3QgdmFsdWVUb1JldHVybiA9IHZhbHVlPy5jbG9uZSgpO1xuICAgICAgICBpZiAoXG4gICAgICAgICAgICB2YWx1ZVRvUmV0dXJuICYmXG4gICAgICAgICAgICAodGhpcy5kYXRlUGlja2VyU2VydmljZS5pc1RpbWVmcmFtZURlcGVuZGluZ09uRlkodGltZWZyYW1lKSB8fCB0aW1lZnJhbWUgPT09IFRpbWVmcmFtZU9wdGlvbi5NT05USClcbiAgICAgICAgKSB7XG4gICAgICAgICAgICB0aGlzLmRhdGVQaWNrZXJTZXJ2aWNlLmFkZEZpc2NhbFllYXJTaGlmdEZvclllYXIodmFsdWVUb1JldHVybik7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHZhbHVlVG9SZXR1cm47XG4gICAgfVxufVxuIiwiPGkgY2xhc3M9XCJkci1pY29uLWRhdGVcIiAoY2xpY2spPVwiZGF0ZVBpY2tlci5vcGVuKClcIj48L2k+XG5cbjxuZy1jb250YWluZXIgKm5nSWY9XCIoZGF0ZVBpY2tlclNlcnZpY2UudGltZWZyYW1lJCB8IGFzeW5jKSA9PT0gJ3dlZWsnXCI+XG4gICAgPGlucHV0XG4gICAgICAgIFtuZ01vZGVsXT1cImlucHV0LnZhbHVlXCJcbiAgICAgICAgKGNsaWNrKT1cImRhdGVQaWNrZXIub3BlbigpXCJcbiAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgICAgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCJcbiAgICAgICAgW3JlYWRvbmx5XT1cInJlYWRvbmx5XCJcbiAgICAgICAgW21pbl09XCJfbWluXCJcbiAgICAgICAgW21heF09XCJfbWF4XCIgLz5cblxuICAgIDxtYXQtZGF0ZS1yYW5nZS1pbnB1dCBbZm9ybUdyb3VwXT1cInJhbmdlRm9ybVwiIFtyYW5nZVBpY2tlcl09XCJkYXRlUGlja2VyXCIgW2RhdGVGaWx0ZXJdPVwiZGF0ZUZpbHRlclwiIGNsYXNzPVwicmFuZ2UtaW5wdXRcIj5cbiAgICAgICAgPGlucHV0XG4gICAgICAgICAgICBtYXRTdGFydERhdGVcbiAgICAgICAgICAgICNpbnB1dFxuICAgICAgICAgICAgW2RyRGF0ZVBpY2tlckZvcm1hdF09XCJkYXRlUGlja2VyU2VydmljZS5mb3JtYXQkIHwgYXN5bmNcIlxuICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwic3RhcnRcIlxuICAgICAgICAgICAgKGRhdGVDaGFuZ2UpPVwidmFsdWVDaGFuZ2VkSW5DYWxlbmRhcihyYW5nZUZvcm0udmFsdWUuc3RhcnQpXCIgLz5cbiAgICAgICAgPGlucHV0IG1hdEVuZERhdGUgW2RyRGF0ZVBpY2tlckZvcm1hdF09XCJkYXRlUGlja2VyU2VydmljZS5mb3JtYXQkIHwgYXN5bmNcIiBmb3JtQ29udHJvbE5hbWU9XCJlbmRcIiAvPlxuICAgIDwvbWF0LWRhdGUtcmFuZ2UtaW5wdXQ+XG5cbiAgICA8bWF0LWRhdGUtcmFuZ2UtcGlja2VyXG4gICAgICAgICNkYXRlUGlja2VyXG4gICAgICAgIFtwYW5lbENsYXNzXT1cIidkci13ZWVrLWRhdGVwaWNrZXInXCJcbiAgICAgICAgW2NhbGVuZGFySGVhZGVyQ29tcG9uZW50XT1cImN1c3RvbUhlYWRlclwiXG4gICAgICAgICh5ZWFyU2VsZWN0ZWQpPVwiY2hvc2VuUGVyaW9kSGFuZGxlcigkZXZlbnQsIHRpbWVmcmFtZU9wdGlvbi5ZRUFSLCBkYXRlUGlja2VyKVwiXG4gICAgICAgIChtb250aFNlbGVjdGVkKT1cImNob3NlblBlcmlvZEhhbmRsZXIoJGV2ZW50LCB0aW1lZnJhbWVPcHRpb24uTU9OVEgsIGRhdGVQaWNrZXIpXCJcbiAgICAgICAgKG9wZW5lZCk9XCJvbk9wZW4oKVwiXG4gICAgICAgIChjbG9zZWQpPVwib25DTG9zZSgpXCI+XG4gICAgPC9tYXQtZGF0ZS1yYW5nZS1waWNrZXI+XG48L25nLWNvbnRhaW5lcj5cblxuPG5nLWNvbnRhaW5lciAqbmdJZj1cIihkYXRlUGlja2VyU2VydmljZS50aW1lZnJhbWUkIHwgYXN5bmMpICE9PSAnd2VlaydcIj5cbiAgICA8aW5wdXRcbiAgICAgICAgW25nTW9kZWxdPVwiZGlzcGxheVZhbHVlJCB8IGFzeW5jXCJcbiAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwidmFsdWVDaGFuZ2VkSW5DYWxlbmRhcigkZXZlbnQpXCJcbiAgICAgICAgKGNsaWNrKT1cImRhdGVQaWNrZXIub3BlbigpXCJcbiAgICAgICAgW21hdERhdGVwaWNrZXJdPVwiZGF0ZVBpY2tlclwiXG4gICAgICAgIFttYXREYXRlcGlja2VyRmlsdGVyXT1cImRhdGVGaWx0ZXJcIlxuICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgICBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIlxuICAgICAgICBbZHJEYXRlUGlja2VyRm9ybWF0XT1cImRhdGVQaWNrZXJTZXJ2aWNlLmZvcm1hdCQgfCBhc3luY1wiXG4gICAgICAgIFtyZWFkb25seV09XCJyZWFkb25seVwiXG4gICAgICAgIFttaW5dPVwiX21pblwiXG4gICAgICAgIFttYXhdPVwiX21heFwiIC8+XG5cbiAgICA8bWF0LWRhdGVwaWNrZXJcbiAgICAgICAgI2RhdGVQaWNrZXJcbiAgICAgICAgW2NhbGVuZGFySGVhZGVyQ29tcG9uZW50XT1cImN1c3RvbUhlYWRlclwiXG4gICAgICAgICh5ZWFyU2VsZWN0ZWQpPVwiY2hvc2VuUGVyaW9kSGFuZGxlcigkZXZlbnQsIHRpbWVmcmFtZU9wdGlvbi5ZRUFSLCBkYXRlUGlja2VyKVwiXG4gICAgICAgIChtb250aFNlbGVjdGVkKT1cImNob3NlblBlcmlvZEhhbmRsZXIoJGV2ZW50LCB0aW1lZnJhbWVPcHRpb24uTU9OVEgsIGRhdGVQaWNrZXIpXCJcbiAgICAgICAgKG9wZW5lZCk9XCJvbk9wZW4oKVwiXG4gICAgICAgIChjbG9zZWQpPVwib25DTG9zZSgpXCI+XG4gICAgPC9tYXQtZGF0ZXBpY2tlcj5cbjwvbmctY29udGFpbmVyPlxuIl19
|