@dasch-swiss/dsp-js
Version:
JavaScript library that handles API requests to Knora
191 lines • 7.59 kB
JavaScript
var __extends = (this && this.__extends) || (function () {
var extendStatics = function (d, b) {
extendStatics = Object.setPrototypeOf ||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
return extendStatics(d, b);
};
return function (d, b) {
if (typeof b !== "function" && b !== null)
throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
extendStatics(d, b);
function __() { this.constructor = d; }
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
};
})();
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
return c > 3 && r && Object.defineProperty(target, key, r), r;
};
var __metadata = (this && this.__metadata) || function (k, v) {
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};
import { JsonObject, JsonProperty } from "json2typescript";
import { Constants } from "../../../Constants";
import { ReadValue } from "./read-value";
/**
* @category Internal
*/
var ParseReadDateValue = /** @class */ (function (_super) {
__extends(ParseReadDateValue, _super);
function ParseReadDateValue() {
var _this = _super !== null && _super.apply(this, arguments) || this;
_this.datestring = "";
_this.calendar = "";
_this.startDay = undefined;
_this.startMonth = undefined;
_this.startYear = 0;
_this.startEra = undefined;
_this.endDay = undefined;
_this.endMonth = undefined;
_this.endYear = 0;
_this.endEra = undefined;
return _this;
}
__decorate([
JsonProperty(Constants.ValueAsString, String),
__metadata("design:type", String)
], ParseReadDateValue.prototype, "datestring", void 0);
__decorate([
JsonProperty(Constants.DateValueHasCalendar, String),
__metadata("design:type", String)
], ParseReadDateValue.prototype, "calendar", void 0);
__decorate([
JsonProperty(Constants.DateValueHasStartDay, Number, true),
__metadata("design:type", Number)
], ParseReadDateValue.prototype, "startDay", void 0);
__decorate([
JsonProperty(Constants.DateValueHasStartMonth, Number, true),
__metadata("design:type", Number)
], ParseReadDateValue.prototype, "startMonth", void 0);
__decorate([
JsonProperty(Constants.DateValueHasStartYear, Number),
__metadata("design:type", Number)
], ParseReadDateValue.prototype, "startYear", void 0);
__decorate([
JsonProperty(Constants.DateValueHasStartEra, String, true),
__metadata("design:type", String)
], ParseReadDateValue.prototype, "startEra", void 0);
__decorate([
JsonProperty(Constants.DateValueHasEndDay, Number, true),
__metadata("design:type", Number)
], ParseReadDateValue.prototype, "endDay", void 0);
__decorate([
JsonProperty(Constants.DateValueHasEndMonth, Number, true),
__metadata("design:type", Number)
], ParseReadDateValue.prototype, "endMonth", void 0);
__decorate([
JsonProperty(Constants.DateValueHasEndYear, Number),
__metadata("design:type", Number)
], ParseReadDateValue.prototype, "endYear", void 0);
__decorate([
JsonProperty(Constants.DateValueHasEndEra, String, true),
__metadata("design:type", String)
], ParseReadDateValue.prototype, "endEra", void 0);
ParseReadDateValue = __decorate([
JsonObject("ReadDateValue")
], ParseReadDateValue);
return ParseReadDateValue;
}(ReadValue));
export { ParseReadDateValue };
/**
* Precision of a date.
*
* @category Model V2
*/
export var Precision;
(function (Precision) {
/**
* Year precision (first to last day of the year).
*/
Precision[Precision["yearPrecision"] = 0] = "yearPrecision";
/**
* Month precision (first to last day of the month).
*/
Precision[Precision["monthPrecision"] = 1] = "monthPrecision";
/**
* Day precision.
*/
Precision[Precision["dayPrecision"] = 2] = "dayPrecision";
})(Precision || (Precision = {}));
/**
* Represents a Salsah date object with a precision information.
*
* @category Model V2
*/
var KnoraDate = /** @class */ (function () {
function KnoraDate(calendar, era, year, month, day) {
this.calendar = calendar;
this.era = era;
this.year = year;
this.month = month;
this.day = day;
if (this.month === undefined) {
// year precision
this.precision = Precision.yearPrecision;
}
else if (this.day === undefined) {
// month precision
this.precision = Precision.monthPrecision;
}
else {
// day precision
this.precision = Precision.dayPrecision;
}
}
// TODO: support instantiation of a JDNConvertibleCalendar subclass, e.g., GregorianCalendarDate
KnoraDate.separator = "-";
return KnoraDate;
}());
export { KnoraDate };
/**
* Represents a period (with start date and end date).
*
* @category Model V2
*/
var KnoraPeriod = /** @class */ (function () {
function KnoraPeriod(start, end) {
this.start = start;
this.end = end;
}
return KnoraPeriod;
}());
export { KnoraPeriod };
/**
* @category Model V2
*/
var ReadDateValue = /** @class */ (function (_super) {
__extends(ReadDateValue, _super);
function ReadDateValue(date) {
var _this = _super.call(this, date.id, date.type, date.attachedToUser, date.arkUrl, date.versionArkUrl, date.valueCreationDate, date.hasPermissions, date.userHasPermission, date.uuid, date.propertyLabel, date.propertyComment, date.property, date.datestring, date.valueHasComment) || this;
if (date.startYear === date.endYear && date.startMonth === date.endMonth && date.startDay === date.endDay && date.startEra === date.endEra) {
// single date
_this.date = new KnoraDate(date.calendar, _this.handleEra(date.startEra), date.startYear, date.startMonth, date.startDay);
}
else {
// date period
_this.date = new KnoraPeriod(new KnoraDate(date.calendar, _this.handleEra(date.startEra), date.startYear, date.startMonth, date.startDay), new KnoraDate(date.calendar, _this.handleEra(date.endEra), date.endYear, date.endMonth, date.endDay));
}
return _this;
}
/**
* Determines if an era is given.
* Returns "noEra" in case none is given (the given calendar date does not have an era).
*
* @param era given era, if any.
*/
ReadDateValue.prototype.handleEra = function (era) {
// determine era
if (era !== undefined) {
return era;
}
else {
return "noEra";
}
};
return ReadDateValue;
}(ReadValue));
export { ReadDateValue };
//# sourceMappingURL=read-date-value.js.map