@knora/search
Version:
Knora ui module: search
81 lines • 10.7 kB
JavaScript
import * as tslib_1 from "tslib";
import { Component, Host, Inject } from '@angular/core';
import { FormBuilder, FormGroup, Validators } from '@angular/forms';
import { DateAdapter } from '@angular/material/core';
import { MatCalendar, MatDatepickerContent } from '@angular/material/datepicker';
import { JDNConvertibleCalendarDateAdapter } from 'jdnconvertiblecalendardateadapter';
/** Custom header component containing a calendar format switcher */
let HeaderComponent = class HeaderComponent {
constructor(_calendar, _dateAdapter, _datepickerContent, fb) {
this._calendar = _calendar;
this._dateAdapter = _dateAdapter;
this._datepickerContent = _datepickerContent;
this.fb = fb;
// a list of supported calendar formats (Gregorian and Julian)
this.supportedCalendarFormats = ['Gregorian', 'Julian'];
}
ngOnInit() {
// get the currently active calendar format from the date adapter
if (this._dateAdapter instanceof JDNConvertibleCalendarDateAdapter) {
this.activeFormat = this._dateAdapter.activeCalendar;
}
else {
console.log('date adapter is expected to be an instance of JDNConvertibleCalendarDateAdapter');
}
// build a form for the calendar format selection
this.form = this.fb.group({
calendar: [this.activeFormat, Validators.required]
});
// do the conversion when the user selects another calendar format
this.form.valueChanges.subscribe((data) => {
// pass the target calendar format to the conversion method
this.convertDate(data.calendar);
});
}
/**
* Converts the date into the target format.
*
* @param calendar the target calendar format.
*/
convertDate(calendar) {
if (this._dateAdapter instanceof JDNConvertibleCalendarDateAdapter) {
// convert the date into the target calendar format
const convertedDate = this._dateAdapter.convertCalendar(this._calendar.activeDate, calendar);
// set the new date
this._calendar.activeDate = convertedDate;
// select the new date in the datepicker UI
this._datepickerContent.datepicker.select(convertedDate);
// update view after calendar format conversion
this._calendar.updateTodaysDate();
}
else {
console.log('date adapter is expected to be an instance of JDNConvertibleCalendarDateAdapter');
}
}
};
HeaderComponent.ctorParameters = () => [
{ type: MatCalendar, decorators: [{ type: Host }] },
{ type: DateAdapter },
{ type: MatDatepickerContent },
{ type: FormBuilder, decorators: [{ type: Inject, args: [FormBuilder,] }] }
];
HeaderComponent = tslib_1.__decorate([
Component({
selector: 'kui-calendar-header',
template: `
<mat-select placeholder="Calendar Format" class="kui-calendar-header" [formControl]="form.controls['calendar']">
<mat-option *ngFor="let cal of supportedCalendarFormats" [value]="cal">{{cal}}</mat-option>
</mat-select>
<mat-calendar-header></mat-calendar-header>
`,
styles: [":host .mat-select.kui-calendar-header{margin:16px 16px 0!important;width:calc(100% - 32px)!important}"]
}),
tslib_1.__param(0, Host()),
tslib_1.__param(3, Inject(FormBuilder)),
tslib_1.__metadata("design:paramtypes", [MatCalendar,
DateAdapter,
MatDatepickerContent,
FormBuilder])
], HeaderComponent);
export { HeaderComponent };
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVhZGVyLWNhbGVuZGFyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0Brbm9yYS9zZWFyY2gvIiwic291cmNlcyI6WyJsaWIvZXh0ZW5kZWQtc2VhcmNoL3NlbGVjdC1wcm9wZXJ0eS9zcGVjaWZ5LXByb3BlcnR5LXZhbHVlL2RhdGUtdmFsdWUvaGVhZGVyLWNhbGVuZGFyL2hlYWRlci1jYWxlbmRhci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUNoRSxPQUFPLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNwRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDckQsT0FBTyxFQUFFLFdBQVcsRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBRWpGLE9BQU8sRUFBRSxpQ0FBaUMsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBRXRGLG9FQUFvRTtBQVdwRSxJQUFhLGVBQWUsR0FBNUIsTUFBYSxlQUFlO0lBQ3hCLFlBQTRCLFNBQThDLEVBQzlELFlBQWlELEVBQ2pELGtCQUFnRSxFQUMzQyxFQUFlO1FBSHBCLGNBQVMsR0FBVCxTQUFTLENBQXFDO1FBQzlELGlCQUFZLEdBQVosWUFBWSxDQUFxQztRQUNqRCx1QkFBa0IsR0FBbEIsa0JBQWtCLENBQThDO1FBQzNDLE9BQUUsR0FBRixFQUFFLENBQWE7UUFLaEQsOERBQThEO1FBQzlELDZCQUF3QixHQUFHLENBQUMsV0FBVyxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBTG5ELENBQUM7SUFVRCxRQUFRO1FBRUosaUVBQWlFO1FBQ2pFLElBQUksSUFBSSxDQUFDLFlBQVksWUFBWSxpQ0FBaUMsRUFBRTtZQUNoRSxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsY0FBYyxDQUFDO1NBQ3hEO2FBQU07WUFDSCxPQUFPLENBQUMsR0FBRyxDQUFDLGlGQUFpRixDQUFDLENBQUM7U0FDbEc7UUFFRCxpREFBaUQ7UUFDakQsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQztZQUN0QixRQUFRLEVBQUUsQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLFVBQVUsQ0FBQyxRQUFRLENBQUM7U0FDckQsQ0FBQyxDQUFDO1FBRUgsa0VBQWtFO1FBQ2xFLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO1lBQ3RDLDJEQUEyRDtZQUMzRCxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNwQyxDQUFDLENBQUMsQ0FBQztJQUVQLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsV0FBVyxDQUFDLFFBQWdDO1FBRXhDLElBQUksSUFBSSxDQUFDLFlBQVksWUFBWSxpQ0FBaUMsRUFBRTtZQUVoRSxtREFBbUQ7WUFDbkQsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxVQUFVLEVBQUUsUUFBUSxDQUFDLENBQUM7WUFFN0YsbUJBQW1CO1lBQ25CLElBQUksQ0FBQyxTQUFTLENBQUMsVUFBVSxHQUFHLGFBQWEsQ0FBQztZQUUxQywyQ0FBMkM7WUFDM0MsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUM7WUFFekQsK0NBQStDO1lBQy9DLElBQUksQ0FBQyxTQUFTLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztTQUNyQzthQUFNO1lBQ0gsT0FBTyxDQUFDLEdBQUcsQ0FBQyxpRkFBaUYsQ0FBQyxDQUFDO1NBQ2xHO0lBQ0wsQ0FBQztDQUNKLENBQUE7O1lBNUQwQyxXQUFXLHVCQUFyQyxJQUFJO1lBQ1MsV0FBVztZQUNMLG9CQUFvQjtZQUNmLFdBQVcsdUJBQTNDLE1BQU0sU0FBQyxXQUFXOztBQUpkLGVBQWU7SUFWM0IsU0FBUyxDQUFDO1FBQ1AsUUFBUSxFQUFFLHFCQUFxQjtRQUMvQixRQUFRLEVBQUU7Ozs7O0tBS1Q7O0tBRUosQ0FBQztJQUVlLG1CQUFBLElBQUksRUFBRSxDQUFBO0lBR2QsbUJBQUEsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFBOzZDQUhlLFdBQVc7UUFDeEIsV0FBVztRQUNMLG9CQUFvQjtRQUNmLFdBQVc7R0FKdkMsZUFBZSxDQTZEM0I7U0E3RFksZUFBZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSG9zdCwgSW5qZWN0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1CdWlsZGVyLCBGb3JtR3JvdXAsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBEYXRlQWRhcHRlciB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NvcmUnO1xuaW1wb3J0IHsgTWF0Q2FsZW5kYXIsIE1hdERhdGVwaWNrZXJDb250ZW50IH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGF0ZXBpY2tlcic7XG5pbXBvcnQgeyBKRE5Db252ZXJ0aWJsZUNhbGVuZGFyIH0gZnJvbSAnamRuY29udmVydGlibGVjYWxlbmRhcic7XG5pbXBvcnQgeyBKRE5Db252ZXJ0aWJsZUNhbGVuZGFyRGF0ZUFkYXB0ZXIgfSBmcm9tICdqZG5jb252ZXJ0aWJsZWNhbGVuZGFyZGF0ZWFkYXB0ZXInO1xuXG4vKiogQ3VzdG9tIGhlYWRlciBjb21wb25lbnQgY29udGFpbmluZyBhIGNhbGVuZGFyIGZvcm1hdCBzd2l0Y2hlciAqL1xuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdrdWktY2FsZW5kYXItaGVhZGVyJyxcbiAgICB0ZW1wbGF0ZTogYFxuICAgICAgPG1hdC1zZWxlY3QgcGxhY2Vob2xkZXI9XCJDYWxlbmRhciBGb3JtYXRcIiBjbGFzcz1cImt1aS1jYWxlbmRhci1oZWFkZXJcIiBbZm9ybUNvbnRyb2xdPVwiZm9ybS5jb250cm9sc1snY2FsZW5kYXInXVwiPlxuICAgICAgICA8bWF0LW9wdGlvbiAqbmdGb3I9XCJsZXQgY2FsIG9mIHN1cHBvcnRlZENhbGVuZGFyRm9ybWF0c1wiIFt2YWx1ZV09XCJjYWxcIj57e2NhbH19PC9tYXQtb3B0aW9uPlxuICAgICAgPC9tYXQtc2VsZWN0PlxuICAgICAgPG1hdC1jYWxlbmRhci1oZWFkZXI+PC9tYXQtY2FsZW5kYXItaGVhZGVyPlxuICAgIGAsXG4gICAgc3R5bGVVcmxzOiBbJy4vaGVhZGVyLWNhbGVuZGFyLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgSGVhZGVyQ29tcG9uZW50PEQ+IGltcGxlbWVudHMgT25Jbml0IHtcbiAgICBjb25zdHJ1Y3RvcihASG9zdCgpIHByaXZhdGUgX2NhbGVuZGFyOiBNYXRDYWxlbmRhcjxKRE5Db252ZXJ0aWJsZUNhbGVuZGFyPixcbiAgICAgICAgcHJpdmF0ZSBfZGF0ZUFkYXB0ZXI6IERhdGVBZGFwdGVyPEpETkNvbnZlcnRpYmxlQ2FsZW5kYXI+LFxuICAgICAgICBwcml2YXRlIF9kYXRlcGlja2VyQ29udGVudDogTWF0RGF0ZXBpY2tlckNvbnRlbnQ8SkROQ29udmVydGlibGVDYWxlbmRhcj4sXG4gICAgICAgIEBJbmplY3QoRm9ybUJ1aWxkZXIpIHByaXZhdGUgZmI6IEZvcm1CdWlsZGVyKSB7XG4gICAgfVxuXG4gICAgZm9ybTogRm9ybUdyb3VwO1xuXG4gICAgLy8gYSBsaXN0IG9mIHN1cHBvcnRlZCBjYWxlbmRhciBmb3JtYXRzIChHcmVnb3JpYW4gYW5kIEp1bGlhbilcbiAgICBzdXBwb3J0ZWRDYWxlbmRhckZvcm1hdHMgPSBbJ0dyZWdvcmlhbicsICdKdWxpYW4nXTtcblxuICAgIC8vIHRoZSBjdXJyZW50bHkgYWN0aXZlIGNhbGVuZGFyIGZvcm1hdFxuICAgIGFjdGl2ZUZvcm1hdDtcblxuICAgIG5nT25Jbml0KCkge1xuXG4gICAgICAgIC8vIGdldCB0aGUgY3VycmVudGx5IGFjdGl2ZSBjYWxlbmRhciBmb3JtYXQgZnJvbSB0aGUgZGF0ZSBhZGFwdGVyXG4gICAgICAgIGlmICh0aGlzLl9kYXRlQWRhcHRlciBpbnN0YW5jZW9mIEpETkNvbnZlcnRpYmxlQ2FsZW5kYXJEYXRlQWRhcHRlcikge1xuICAgICAgICAgICAgdGhpcy5hY3RpdmVGb3JtYXQgPSB0aGlzLl9kYXRlQWRhcHRlci5hY3RpdmVDYWxlbmRhcjtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKCdkYXRlIGFkYXB0ZXIgaXMgZXhwZWN0ZWQgdG8gYmUgYW4gaW5zdGFuY2Ugb2YgSkROQ29udmVydGlibGVDYWxlbmRhckRhdGVBZGFwdGVyJyk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBidWlsZCBhIGZvcm0gZm9yIHRoZSBjYWxlbmRhciBmb3JtYXQgc2VsZWN0aW9uXG4gICAgICAgIHRoaXMuZm9ybSA9IHRoaXMuZmIuZ3JvdXAoe1xuICAgICAgICAgICAgY2FsZW5kYXI6IFt0aGlzLmFjdGl2ZUZvcm1hdCwgVmFsaWRhdG9ycy5yZXF1aXJlZF1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgLy8gZG8gdGhlIGNvbnZlcnNpb24gd2hlbiB0aGUgdXNlciBzZWxlY3RzIGFub3RoZXIgY2FsZW5kYXIgZm9ybWF0XG4gICAgICAgIHRoaXMuZm9ybS52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKChkYXRhKSA9PiB7XG4gICAgICAgICAgICAvLyBwYXNzIHRoZSB0YXJnZXQgY2FsZW5kYXIgZm9ybWF0IHRvIHRoZSBjb252ZXJzaW9uIG1ldGhvZFxuICAgICAgICAgICAgdGhpcy5jb252ZXJ0RGF0ZShkYXRhLmNhbGVuZGFyKTtcbiAgICAgICAgfSk7XG5cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDb252ZXJ0cyB0aGUgZGF0ZSBpbnRvIHRoZSB0YXJnZXQgZm9ybWF0LlxuICAgICAqXG4gICAgICogQHBhcmFtIGNhbGVuZGFyIHRoZSB0YXJnZXQgY2FsZW5kYXIgZm9ybWF0LlxuICAgICAqL1xuICAgIGNvbnZlcnREYXRlKGNhbGVuZGFyOiAnR3JlZ29yaWFuJyB8ICdKdWxpYW4nKSB7XG5cbiAgICAgICAgaWYgKHRoaXMuX2RhdGVBZGFwdGVyIGluc3RhbmNlb2YgSkROQ29udmVydGlibGVDYWxlbmRhckRhdGVBZGFwdGVyKSB7XG5cbiAgICAgICAgICAgIC8vIGNvbnZlcnQgdGhlIGRhdGUgaW50byB0aGUgdGFyZ2V0IGNhbGVuZGFyIGZvcm1hdFxuICAgICAgICAgICAgY29uc3QgY29udmVydGVkRGF0ZSA9IHRoaXMuX2RhdGVBZGFwdGVyLmNvbnZlcnRDYWxlbmRhcih0aGlzLl9jYWxlbmRhci5hY3RpdmVEYXRlLCBjYWxlbmRhcik7XG5cbiAgICAgICAgICAgIC8vIHNldCB0aGUgbmV3IGRhdGVcbiAgICAgICAgICAgIHRoaXMuX2NhbGVuZGFyLmFjdGl2ZURhdGUgPSBjb252ZXJ0ZWREYXRlO1xuXG4gICAgICAgICAgICAvLyBzZWxlY3QgdGhlIG5ldyBkYXRlIGluIHRoZSBkYXRlcGlja2VyIFVJXG4gICAgICAgICAgICB0aGlzLl9kYXRlcGlja2VyQ29udGVudC5kYXRlcGlja2VyLnNlbGVjdChjb252ZXJ0ZWREYXRlKTtcblxuICAgICAgICAgICAgLy8gdXBkYXRlIHZpZXcgYWZ0ZXIgY2FsZW5kYXIgZm9ybWF0IGNvbnZlcnNpb25cbiAgICAgICAgICAgIHRoaXMuX2NhbGVuZGFyLnVwZGF0ZVRvZGF5c0RhdGUoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKCdkYXRlIGFkYXB0ZXIgaXMgZXhwZWN0ZWQgdG8gYmUgYW4gaW5zdGFuY2Ugb2YgSkROQ29udmVydGlibGVDYWxlbmRhckRhdGVBZGFwdGVyJyk7XG4gICAgICAgIH1cbiAgICB9XG59XG4iXX0=