@knora/viewer
Version:
Knora ui module: viewer
110 lines • 11.6 kB
JavaScript
import * as tslib_1 from "tslib";
import { Component, Input } from '@angular/core';
import { KnoraPeriod, Precision, ReadDateValue } from '@knora/api';
var DateValueComponent = /** @class */ (function () {
function DateValueComponent() {
}
Object.defineProperty(DateValueComponent.prototype, "calendar", {
get: function () {
return this._calendar;
},
set: function (value) {
this._calendar = value;
},
enumerable: true,
configurable: true
});
Object.defineProperty(DateValueComponent.prototype, "era", {
get: function () {
return this._era;
},
set: function (value) {
this._era = value;
},
enumerable: true,
configurable: true
});
Object.defineProperty(DateValueComponent.prototype, "valueObject", {
get: function () {
return this._dateValueObj;
},
set: function (value) {
this._dateValueObj = value;
var dateOrRange = this.valueObject.date;
if (dateOrRange instanceof KnoraPeriod) {
// period (start and end dates)
this.period = true;
this.dates = [this.getJSDate(dateOrRange.start), this.getJSDate(dateOrRange.end)];
}
else {
// single date
this.period = false;
this.dates = [this.getJSDate(dateOrRange)];
}
},
enumerable: true,
configurable: true
});
/**
* Converts a `KnoraDate` to a JS Date, providing necessary formatting information.
* JULIAN and GREGORIAN calendar are the only available for the moment.
*
* @param date the date to be converted.
* @return DateFormatter.
*/
DateValueComponent.prototype.getJSDate = function (date) {
if (date.precision === Precision.yearPrecision) {
return {
format: 'yyyy',
date: new Date(date.year.toString()),
era: date.era,
calendar: date.calendar
};
}
else if (date.precision === Precision.monthPrecision) {
return {
format: 'MMMM ' + 'yyyy',
date: new Date(date.year, date.month - 1, 1),
era: date.era,
calendar: date.calendar
};
}
else if (date.precision === Precision.dayPrecision) {
return {
format: 'longDate',
date: new Date(date.year, date.month - 1, date.day),
era: date.era,
calendar: date.calendar
};
}
else {
console.error('Error: incorrect precision for date');
}
};
tslib_1.__decorate([
Input(),
tslib_1.__metadata("design:type", Boolean),
tslib_1.__metadata("design:paramtypes", [Boolean])
], DateValueComponent.prototype, "calendar", null);
tslib_1.__decorate([
Input(),
tslib_1.__metadata("design:type", Boolean),
tslib_1.__metadata("design:paramtypes", [Boolean])
], DateValueComponent.prototype, "era", null);
tslib_1.__decorate([
Input(),
tslib_1.__metadata("design:type", ReadDateValue),
tslib_1.__metadata("design:paramtypes", [ReadDateValue])
], DateValueComponent.prototype, "valueObject", null);
DateValueComponent = tslib_1.__decorate([
Component({
selector: 'kui-date-value',
template: "<span *ngIf=\"period; else preciseDate\">\n {{dates[0].date | date: dates[0].format}}\n <span *ngIf=\"era\">\n {{dates[0].era}}\n </span>\n - {{dates[1].date | date: dates[1].format}}\n <span *ngIf=\"era\">\n {{dates[1].era}}\n </span>\n\n <span *ngIf=\"calendar\">\n ({{dates[0].calendar}})\n </span>\n</span>\n\n<ng-template #preciseDate>\n\n <span>\n {{dates[0].date | date: dates[0].format}}\n <span *ngIf=\"era\">\n {{dates[0].era}}\n </span>\n <span *ngIf=\"calendar\">\n ({{dates[0].calendar}})\n </span>\n </span>\n\n</ng-template>\n",
styles: [".mat-form-field{width:320px}.fill-remaining-space{-webkit-box-flex:1;flex:1 1 auto}.center{text-align:center}a{text-decoration:none;color:inherit}.kui-link{cursor:pointer;border-bottom:2px solid rgba(0,105,92,.25)}.lv-prop-label{color:rgba(0,0,0,.54)}.lv-html-text{position:relative;overflow:hidden}"]
}),
tslib_1.__metadata("design:paramtypes", [])
], DateValueComponent);
return DateValueComponent;
}());
export { DateValueComponent };
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS12YWx1ZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Aa25vcmEvdmlld2VyLyIsInNvdXJjZXMiOlsibGliL3Byb3BlcnR5L2RhdGUtdmFsdWUvZGF0ZS12YWx1ZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2pELE9BQU8sRUFBYSxXQUFXLEVBQUUsU0FBUyxFQUFFLGFBQWEsRUFBRSxNQUFNLFlBQVksQ0FBQztBQU85RTtJQStDSTtJQUFnQixDQUFDO0lBNUNqQixzQkFBSSx3Q0FBUTthQUlaO1lBQ0ksT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDO1FBQzFCLENBQUM7YUFORCxVQUFhLEtBQWM7WUFDdkIsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7UUFDM0IsQ0FBQzs7O09BQUE7SUFPRCxzQkFBSSxtQ0FBRzthQUlQO1lBQ0ksT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDO1FBQ3JCLENBQUM7YUFORCxVQUFRLEtBQWM7WUFDbEIsSUFBSSxDQUFDLElBQUksR0FBRyxLQUFLLENBQUM7UUFDdEIsQ0FBQzs7O09BQUE7SUFPRCxzQkFBSSwyQ0FBVzthQWdCZjtZQUNJLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQztRQUM5QixDQUFDO2FBbEJELFVBQWdCLEtBQW9CO1lBQ2hDLElBQUksQ0FBQyxhQUFhLEdBQUcsS0FBSyxDQUFDO1lBRTNCLElBQU0sV0FBVyxHQUE0QixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQztZQUNuRSxJQUFJLFdBQVcsWUFBWSxXQUFXLEVBQUU7Z0JBQ3BDLCtCQUErQjtnQkFDL0IsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7Z0JBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO2FBQ3JGO2lCQUFNO2dCQUNILGNBQWM7Z0JBQ2QsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7Z0JBQ3BCLElBQUksQ0FBQyxLQUFLLEdBQUcsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUM7YUFDOUM7UUFFTCxDQUFDOzs7T0FBQTtJQWNEOzs7Ozs7T0FNRztJQUNILHNDQUFTLEdBQVQsVUFBVSxJQUFlO1FBRXJCLElBQUksSUFBSSxDQUFDLFNBQVMsS0FBSyxTQUFTLENBQUMsYUFBYSxFQUFFO1lBQzVDLE9BQU87Z0JBQ0gsTUFBTSxFQUFFLE1BQU07Z0JBQ2QsSUFBSSxFQUFFLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7Z0JBQ3BDLEdBQUcsRUFBRSxJQUFJLENBQUMsR0FBRztnQkFDYixRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVE7YUFDMUIsQ0FBQztTQUNMO2FBQU0sSUFBSSxJQUFJLENBQUMsU0FBUyxLQUFLLFNBQVMsQ0FBQyxjQUFjLEVBQUU7WUFDcEQsT0FBTztnQkFDSCxNQUFNLEVBQUUsT0FBTyxHQUFHLE1BQU07Z0JBQ3hCLElBQUksRUFBRSxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxLQUFLLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQztnQkFDNUMsR0FBRyxFQUFFLElBQUksQ0FBQyxHQUFHO2dCQUNiLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUTthQUMxQixDQUFDO1NBQ0w7YUFBTSxJQUFJLElBQUksQ0FBQyxTQUFTLEtBQUssU0FBUyxDQUFDLFlBQVksRUFBRTtZQUNsRCxPQUFPO2dCQUNILE1BQU0sRUFBRSxVQUFVO2dCQUNsQixJQUFJLEVBQUUsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsS0FBSyxHQUFHLENBQUMsRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDO2dCQUNuRCxHQUFHLEVBQUUsSUFBSSxDQUFDLEdBQUc7Z0JBQ2IsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRO2FBQzFCLENBQUM7U0FDTDthQUFNO1lBQ0gsT0FBTyxDQUFDLEtBQUssQ0FBQyxxQ0FBcUMsQ0FBQyxDQUFDO1NBQ3hEO0lBRUwsQ0FBQztJQWhGRDtRQURDLEtBQUssRUFBRTs7O3NEQUdQO0lBT0Q7UUFEQyxLQUFLLEVBQUU7OztpREFHUDtJQU9EO1FBREMsS0FBSyxFQUFFOzBDQUNlLGFBQWE7aURBQWIsYUFBYTt5REFjbkM7SUFuQ1Esa0JBQWtCO1FBTDlCLFNBQVMsQ0FBQztZQUNQLFFBQVEsRUFBRSxnQkFBZ0I7WUFDMUIscXBCQUEwQzs7U0FFN0MsQ0FBQzs7T0FDVyxrQkFBa0IsQ0FxRjlCO0lBQUQseUJBQUM7Q0FBQSxBQXJGRCxJQXFGQztTQXJGWSxrQkFBa0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBLbm9yYURhdGUsIEtub3JhUGVyaW9kLCBQcmVjaXNpb24sIFJlYWREYXRlVmFsdWUgfSBmcm9tICdAa25vcmEvYXBpJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdrdWktZGF0ZS12YWx1ZScsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2RhdGUtdmFsdWUuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2RhdGUtdmFsdWUuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBEYXRlVmFsdWVDb21wb25lbnQge1xuXG4gICAgQElucHV0KClcbiAgICBzZXQgY2FsZW5kYXIodmFsdWU6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5fY2FsZW5kYXIgPSB2YWx1ZTtcbiAgICB9XG5cbiAgICBnZXQgY2FsZW5kYXIoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9jYWxlbmRhcjtcbiAgICB9XG5cbiAgICBASW5wdXQoKVxuICAgIHNldCBlcmEodmFsdWU6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5fZXJhID0gdmFsdWU7XG4gICAgfVxuXG4gICAgZ2V0IGVyYSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2VyYTtcbiAgICB9XG5cbiAgICBASW5wdXQoKVxuICAgIHNldCB2YWx1ZU9iamVjdCh2YWx1ZTogUmVhZERhdGVWYWx1ZSkge1xuICAgICAgICB0aGlzLl9kYXRlVmFsdWVPYmogPSB2YWx1ZTtcblxuICAgICAgICBjb25zdCBkYXRlT3JSYW5nZTogS25vcmFEYXRlIHwgS25vcmFQZXJpb2QgPSB0aGlzLnZhbHVlT2JqZWN0LmRhdGU7XG4gICAgICAgIGlmIChkYXRlT3JSYW5nZSBpbnN0YW5jZW9mIEtub3JhUGVyaW9kKSB7XG4gICAgICAgICAgICAvLyBwZXJpb2QgKHN0YXJ0IGFuZCBlbmQgZGF0ZXMpXG4gICAgICAgICAgICB0aGlzLnBlcmlvZCA9IHRydWU7XG4gICAgICAgICAgICB0aGlzLmRhdGVzID0gW3RoaXMuZ2V0SlNEYXRlKGRhdGVPclJhbmdlLnN0YXJ0KSwgdGhpcy5nZXRKU0RhdGUoZGF0ZU9yUmFuZ2UuZW5kKV07XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAvLyBzaW5nbGUgZGF0ZVxuICAgICAgICAgICAgdGhpcy5wZXJpb2QgPSBmYWxzZTtcbiAgICAgICAgICAgIHRoaXMuZGF0ZXMgPSBbdGhpcy5nZXRKU0RhdGUoZGF0ZU9yUmFuZ2UpXTtcbiAgICAgICAgfVxuXG4gICAgfVxuXG4gICAgZ2V0IHZhbHVlT2JqZWN0KCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fZGF0ZVZhbHVlT2JqO1xuICAgIH1cblxuICAgIGRhdGVzOiBEYXRlRm9ybWF0dGVyW107XG4gICAgcGVyaW9kOiBib29sZWFuO1xuICAgIHByaXZhdGUgX2NhbGVuZGFyOiBib29sZWFuO1xuICAgIHByaXZhdGUgX2VyYTogYm9vbGVhbjtcbiAgICBwcml2YXRlIF9kYXRlVmFsdWVPYmo6IFJlYWREYXRlVmFsdWU7XG5cbiAgICBjb25zdHJ1Y3RvcigpIHsgfVxuXG4gICAgLyoqXG4gICAgICogQ29udmVydHMgYSBgS25vcmFEYXRlYCB0byBhIEpTIERhdGUsIHByb3ZpZGluZyBuZWNlc3NhcnkgZm9ybWF0dGluZyBpbmZvcm1hdGlvbi5cbiAgICAgKiBKVUxJQU4gYW5kIEdSRUdPUklBTiBjYWxlbmRhciBhcmUgdGhlIG9ubHkgYXZhaWxhYmxlIGZvciB0aGUgbW9tZW50LlxuICAgICAqXG4gICAgICogQHBhcmFtIGRhdGUgdGhlIGRhdGUgdG8gYmUgY29udmVydGVkLlxuICAgICAqIEByZXR1cm4gRGF0ZUZvcm1hdHRlci5cbiAgICAgKi9cbiAgICBnZXRKU0RhdGUoZGF0ZTogS25vcmFEYXRlKTogRGF0ZUZvcm1hdHRlciB7XG5cbiAgICAgICAgaWYgKGRhdGUucHJlY2lzaW9uID09PSBQcmVjaXNpb24ueWVhclByZWNpc2lvbikge1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICBmb3JtYXQ6ICd5eXl5JyxcbiAgICAgICAgICAgICAgICBkYXRlOiBuZXcgRGF0ZShkYXRlLnllYXIudG9TdHJpbmcoKSksXG4gICAgICAgICAgICAgICAgZXJhOiBkYXRlLmVyYSxcbiAgICAgICAgICAgICAgICBjYWxlbmRhcjogZGF0ZS5jYWxlbmRhclxuICAgICAgICAgICAgfTtcbiAgICAgICAgfSBlbHNlIGlmIChkYXRlLnByZWNpc2lvbiA9PT0gUHJlY2lzaW9uLm1vbnRoUHJlY2lzaW9uKSB7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIGZvcm1hdDogJ01NTU0gJyArICd5eXl5JyxcbiAgICAgICAgICAgICAgICBkYXRlOiBuZXcgRGF0ZShkYXRlLnllYXIsIGRhdGUubW9udGggLSAxLCAxKSwgLy8gMCBiYXNlIG1vbnRoXG4gICAgICAgICAgICAgICAgZXJhOiBkYXRlLmVyYSxcbiAgICAgICAgICAgICAgICBjYWxlbmRhcjogZGF0ZS5jYWxlbmRhclxuICAgICAgICAgICAgfTtcbiAgICAgICAgfSBlbHNlIGlmIChkYXRlLnByZWNpc2lvbiA9PT0gUHJlY2lzaW9uLmRheVByZWNpc2lvbikge1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICBmb3JtYXQ6ICdsb25nRGF0ZScsXG4gICAgICAgICAgICAgICAgZGF0ZTogbmV3IERhdGUoZGF0ZS55ZWFyLCBkYXRlLm1vbnRoIC0gMSwgZGF0ZS5kYXkpLCAgLy8gMCBiYXNlIG1vbnRoXG4gICAgICAgICAgICAgICAgZXJhOiBkYXRlLmVyYSxcbiAgICAgICAgICAgICAgICBjYWxlbmRhcjogZGF0ZS5jYWxlbmRhclxuICAgICAgICAgICAgfTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yOiBpbmNvcnJlY3QgcHJlY2lzaW9uIGZvciBkYXRlJyk7XG4gICAgICAgIH1cblxuICAgIH1cblxufVxuXG4vKipcbiAqIERhdGUgc3RydWN0dXJlIGZvciB0aGUgdGVtcGxhdGVcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBEYXRlRm9ybWF0dGVyIHtcbiAgICBmb3JtYXQ6IHN0cmluZztcbiAgICBkYXRlOiBEYXRlO1xuICAgIGVyYTogc3RyaW5nO1xuICAgIGNhbGVuZGFyOiBzdHJpbmc7XG59XG4iXX0=