@knora/search
Version:
Knora ui module: search
66 lines • 9.4 kB
JavaScript
import * as tslib_1 from "tslib";
import { Component, Inject, Input } from '@angular/core';
import { FormBuilder, FormGroup, Validators } from '@angular/forms';
import { Constants } from '@knora/api';
import { KnoraConstants, ValueLiteral } from '@knora/core';
import { HeaderComponent } from './header-calendar/header-calendar.component';
// https://stackoverflow.com/questions/45661010/dynamic-nested-reactive-form-expressionchangedafterithasbeencheckederror
var resolvedPromise = Promise.resolve(null);
var DateValueComponent = /** @class */ (function () {
function DateValueComponent(fb) {
this.fb = fb;
this.type = Constants.DateValue;
// custom header for the datepicker
this.headerComponent = HeaderComponent;
}
DateValueComponent.prototype.ngOnInit = function () {
var _this = this;
// init datepicker
this.form = this.fb.group({
dateValue: [null, Validators.compose([Validators.required])]
});
this.form.valueChanges.subscribe(function (data) {
// console.log(data.dateValue);
});
resolvedPromise.then(function () {
// add form to the parent form group
_this.formGroup.addControl('propValue', _this.form);
});
};
DateValueComponent.prototype.ngOnDestroy = function () {
var _this = this;
// remove form from the parent form group
resolvedPromise.then(function () {
_this.formGroup.removeControl('propValue');
});
};
DateValueComponent.prototype.getValue = function () {
var dateObj = this.form.value.dateValue;
// get calendar format
var calendarFormat = dateObj.calendarName;
// get calendar period
var calendarPeriod = dateObj.toCalendarPeriod();
// get the date
var dateString = calendarFormat.toUpperCase() + ":" + calendarPeriod.periodStart.year + "-" + calendarPeriod.periodStart.month + "-" + calendarPeriod.periodStart.day + ":" + calendarPeriod.periodEnd.year + "-" + calendarPeriod.periodEnd.month + "-" + calendarPeriod.periodEnd.day;
return new ValueLiteral(String(dateString), KnoraConstants.dateSimple);
};
DateValueComponent.ctorParameters = function () { return [
{ type: FormBuilder, decorators: [{ type: Inject, args: [FormBuilder,] }] }
]; };
tslib_1.__decorate([
Input(),
tslib_1.__metadata("design:type", FormGroup)
], DateValueComponent.prototype, "formGroup", void 0);
DateValueComponent = tslib_1.__decorate([
Component({
selector: 'date-value',
template: "<mat-form-field class=\"large-field\">\n <kuiJdnDatepicker>\n <input matInput [matDatepicker]=\"picker\" placeholder=\"Choose a date\" [formControl]=\"form.controls['dateValue']\">\n <mat-datepicker #picker [calendarHeaderComponent]=\"headerComponent\"></mat-datepicker>\n </kuiJdnDatepicker>\n <mat-datepicker-toggle matSuffix [for]=\"picker\"></mat-datepicker-toggle>\n</mat-form-field>\n",
styles: [".cdk-overlay-pane .mat-datepicker-content .mat-calendar{height:auto!important}"]
}),
tslib_1.__param(0, Inject(FormBuilder)),
tslib_1.__metadata("design:paramtypes", [FormBuilder])
], DateValueComponent);
return DateValueComponent;
}());
export { DateValueComponent };
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS12YWx1ZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Aa25vcmEvc2VhcmNoLyIsInNvdXJjZXMiOlsibGliL2V4dGVuZGVkLXNlYXJjaC9zZWxlY3QtcHJvcGVydHkvc3BlY2lmeS1wcm9wZXJ0eS12YWx1ZS9kYXRlLXZhbHVlL2RhdGUtdmFsdWUuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQXFCLE1BQU0sZUFBZSxDQUFDO0FBQzVFLE9BQU8sRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDdkMsT0FBTyxFQUFFLGNBQWMsRUFBd0IsWUFBWSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBR2pGLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQztBQUU5RSx3SEFBd0g7QUFDeEgsSUFBTSxlQUFlLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztBQU85QztJQVlJLDRCQUEwQyxFQUFlO1FBQWYsT0FBRSxHQUFGLEVBQUUsQ0FBYTtRQVB6RCxTQUFJLEdBQUcsU0FBUyxDQUFDLFNBQVMsQ0FBQztRQUkzQixtQ0FBbUM7UUFDbkMsb0JBQWUsR0FBRyxlQUFlLENBQUM7SUFHbEMsQ0FBQztJQUVELHFDQUFRLEdBQVI7UUFBQSxpQkFnQkM7UUFkRyxrQkFBa0I7UUFDbEIsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQztZQUN0QixTQUFTLEVBQUUsQ0FBQyxJQUFJLEVBQUUsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO1NBQy9ELENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxVQUFDLElBQUk7WUFDbEMsK0JBQStCO1FBQ25DLENBQUMsQ0FBQyxDQUFDO1FBRUgsZUFBZSxDQUFDLElBQUksQ0FBQztZQUNqQixvQ0FBb0M7WUFDcEMsS0FBSSxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsV0FBVyxFQUFFLEtBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN0RCxDQUFDLENBQUMsQ0FBQztJQUVQLENBQUM7SUFFRCx3Q0FBVyxHQUFYO1FBQUEsaUJBT0M7UUFMRyx5Q0FBeUM7UUFDekMsZUFBZSxDQUFDLElBQUksQ0FBQztZQUNqQixLQUFJLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUM5QyxDQUFDLENBQUMsQ0FBQztJQUVQLENBQUM7SUFFRCxxQ0FBUSxHQUFSO1FBRUksSUFBTSxPQUFPLEdBQTJCLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQztRQUVsRSxzQkFBc0I7UUFDdEIsSUFBTSxjQUFjLEdBQUcsT0FBTyxDQUFDLFlBQVksQ0FBQztRQUM1QyxzQkFBc0I7UUFDdEIsSUFBTSxjQUFjLEdBQUcsT0FBTyxDQUFDLGdCQUFnQixFQUFFLENBQUM7UUFDbEQsZUFBZTtRQUNmLElBQU0sVUFBVSxHQUFNLGNBQWMsQ0FBQyxXQUFXLEVBQUUsU0FBSSxjQUFjLENBQUMsV0FBVyxDQUFDLElBQUksU0FBSSxjQUFjLENBQUMsV0FBVyxDQUFDLEtBQUssU0FBSSxjQUFjLENBQUMsV0FBVyxDQUFDLEdBQUcsU0FBSSxjQUFjLENBQUMsU0FBUyxDQUFDLElBQUksU0FBSSxjQUFjLENBQUMsU0FBUyxDQUFDLEtBQUssU0FBSSxjQUFjLENBQUMsU0FBUyxDQUFDLEdBQUssQ0FBQztRQUVqUSxPQUFPLElBQUksWUFBWSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsRUFBRSxjQUFjLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDM0UsQ0FBQzs7Z0JBMUM2QyxXQUFXLHVCQUEzQyxNQUFNLFNBQUMsV0FBVzs7SUFUdkI7UUFBUixLQUFLLEVBQUU7MENBQVksU0FBUzt5REFBQztJQUhyQixrQkFBa0I7UUFMOUIsU0FBUyxDQUFDO1lBQ1AsUUFBUSxFQUFFLFlBQVk7WUFDdEIseWFBQTBDOztTQUU3QyxDQUFDO1FBYWdCLG1CQUFBLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQTtpREFBYSxXQUFXO09BWmhELGtCQUFrQixDQXVEOUI7SUFBRCx5QkFBQztDQUFBLEFBdkRELElBdURDO1NBdkRZLGtCQUFrQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5qZWN0LCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1CdWlsZGVyLCBGb3JtR3JvdXAsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBDb25zdGFudHMgfSBmcm9tICdAa25vcmEvYXBpJztcbmltcG9ydCB7IEtub3JhQ29uc3RhbnRzLCBQcm9wZXJ0eVZhbHVlLCBWYWx1ZSwgVmFsdWVMaXRlcmFsIH0gZnJvbSAnQGtub3JhL2NvcmUnO1xuaW1wb3J0IHsgSkROQ29udmVydGlibGVDYWxlbmRhciB9IGZyb20gJ2pkbmNvbnZlcnRpYmxlY2FsZW5kYXInO1xuXG5pbXBvcnQgeyBIZWFkZXJDb21wb25lbnQgfSBmcm9tICcuL2hlYWRlci1jYWxlbmRhci9oZWFkZXItY2FsZW5kYXIuY29tcG9uZW50JztcblxuLy8gaHR0cHM6Ly9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvNDU2NjEwMTAvZHluYW1pYy1uZXN0ZWQtcmVhY3RpdmUtZm9ybS1leHByZXNzaW9uY2hhbmdlZGFmdGVyaXRoYXNiZWVuY2hlY2tlZGVycm9yXG5jb25zdCByZXNvbHZlZFByb21pc2UgPSBQcm9taXNlLnJlc29sdmUobnVsbCk7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZGF0ZS12YWx1ZScsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2RhdGUtdmFsdWUuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2RhdGUtdmFsdWUuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBEYXRlVmFsdWVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSwgUHJvcGVydHlWYWx1ZSB7XG5cbiAgICAvLyBwYXJlbnQgRm9ybUdyb3VwXG4gICAgQElucHV0KCkgZm9ybUdyb3VwOiBGb3JtR3JvdXA7XG5cbiAgICB0eXBlID0gQ29uc3RhbnRzLkRhdGVWYWx1ZTtcblxuICAgIGZvcm06IEZvcm1Hcm91cDtcblxuICAgIC8vIGN1c3RvbSBoZWFkZXIgZm9yIHRoZSBkYXRlcGlja2VyXG4gICAgaGVhZGVyQ29tcG9uZW50ID0gSGVhZGVyQ29tcG9uZW50O1xuXG4gICAgY29uc3RydWN0b3IgKEBJbmplY3QoRm9ybUJ1aWxkZXIpIHByaXZhdGUgZmI6IEZvcm1CdWlsZGVyKSB7XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKSB7XG5cbiAgICAgICAgLy8gaW5pdCBkYXRlcGlja2VyXG4gICAgICAgIHRoaXMuZm9ybSA9IHRoaXMuZmIuZ3JvdXAoe1xuICAgICAgICAgICAgZGF0ZVZhbHVlOiBbbnVsbCwgVmFsaWRhdG9ycy5jb21wb3NlKFtWYWxpZGF0b3JzLnJlcXVpcmVkXSldXG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMuZm9ybS52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKChkYXRhKSA9PiB7XG4gICAgICAgICAgICAvLyBjb25zb2xlLmxvZyhkYXRhLmRhdGVWYWx1ZSk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHJlc29sdmVkUHJvbWlzZS50aGVuKCgpID0+IHtcbiAgICAgICAgICAgIC8vIGFkZCBmb3JtIHRvIHRoZSBwYXJlbnQgZm9ybSBncm91cFxuICAgICAgICAgICAgdGhpcy5mb3JtR3JvdXAuYWRkQ29udHJvbCgncHJvcFZhbHVlJywgdGhpcy5mb3JtKTtcbiAgICAgICAgfSk7XG5cbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpIHtcblxuICAgICAgICAvLyByZW1vdmUgZm9ybSBmcm9tIHRoZSBwYXJlbnQgZm9ybSBncm91cFxuICAgICAgICByZXNvbHZlZFByb21pc2UudGhlbigoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmZvcm1Hcm91cC5yZW1vdmVDb250cm9sKCdwcm9wVmFsdWUnKTtcbiAgICAgICAgfSk7XG5cbiAgICB9XG5cbiAgICBnZXRWYWx1ZSgpOiBWYWx1ZSB7XG5cbiAgICAgICAgY29uc3QgZGF0ZU9iajogSkROQ29udmVydGlibGVDYWxlbmRhciA9IHRoaXMuZm9ybS52YWx1ZS5kYXRlVmFsdWU7XG5cbiAgICAgICAgLy8gZ2V0IGNhbGVuZGFyIGZvcm1hdFxuICAgICAgICBjb25zdCBjYWxlbmRhckZvcm1hdCA9IGRhdGVPYmouY2FsZW5kYXJOYW1lO1xuICAgICAgICAvLyBnZXQgY2FsZW5kYXIgcGVyaW9kXG4gICAgICAgIGNvbnN0IGNhbGVuZGFyUGVyaW9kID0gZGF0ZU9iai50b0NhbGVuZGFyUGVyaW9kKCk7XG4gICAgICAgIC8vIGdldCB0aGUgZGF0ZVxuICAgICAgICBjb25zdCBkYXRlU3RyaW5nID0gYCR7Y2FsZW5kYXJGb3JtYXQudG9VcHBlckNhc2UoKX06JHtjYWxlbmRhclBlcmlvZC5wZXJpb2RTdGFydC55ZWFyfS0ke2NhbGVuZGFyUGVyaW9kLnBlcmlvZFN0YXJ0Lm1vbnRofS0ke2NhbGVuZGFyUGVyaW9kLnBlcmlvZFN0YXJ0LmRheX06JHtjYWxlbmRhclBlcmlvZC5wZXJpb2RFbmQueWVhcn0tJHtjYWxlbmRhclBlcmlvZC5wZXJpb2RFbmQubW9udGh9LSR7Y2FsZW5kYXJQZXJpb2QucGVyaW9kRW5kLmRheX1gO1xuXG4gICAgICAgIHJldHVybiBuZXcgVmFsdWVMaXRlcmFsKFN0cmluZyhkYXRlU3RyaW5nKSwgS25vcmFDb25zdGFudHMuZGF0ZVNpbXBsZSk7XG4gICAgfVxufVxuIl19