UNPKG

@knora/viewer

Version:
110 lines 11.6 kB
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=