fundamental-ngx
Version:
SAP Fundamentals, implemented in Angular
133 lines • 10.1 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
/**
* Default date with time model used by the fundamental components.
*/
import { FdDate } from '../../calendar/models/fd-date';
export class FdDatetime {
/**
* Static function to get the current date in FdDateTime form.
* @return {?}
*/
static getToday() {
/** @type {?} */
const date = new Date();
/** @type {?} */
const time = { hour: date.getHours(), minute: date.getMinutes(), second: date.getSeconds() };
return new FdDatetime(FdDate.getToday(), time);
}
/**
* Constructor to build a FdDateTime object from a FdDate and TimeObject.
* @param {?} date the FdDate object.
* @param {?} time the TimeObject object.
*/
constructor(date, time) {
this.date = date;
this.time = time;
}
/**
* Get Luxon date object converted to string from FdDate.
* @return {?}
*/
toLocaleDateString() {
if (this.toDate() && this.isTimeValid() && this.isDateValid()) {
return this.toDate().toLocaleString();
}
else {
return null;
}
}
/**
* Method that checks validity of time on FdDateTime object.
* @return {?}
*/
isTimeValid() {
if (!this.time ||
this.hour === undefined ||
this.minute === undefined ||
this.second === undefined) {
return false;
}
if (this.hour > 23 || this.hour < 0) {
return false;
}
if (this.minute > 59 || this.minute < 0) {
return false;
}
if (this.second > 59 || this.second < 0) {
return false;
}
return true;
}
/**
* Method that checks validity of date on FdDateTime object.
* @return {?}
*/
isDateValid() {
return this.date && this.date.isDateValid();
}
/**
* @return {?}
*/
get year() {
if (this.date) {
return this.date.year;
}
}
/**
* @return {?}
*/
get month() {
if (this.date) {
return this.date.month;
}
}
/**
* @return {?}
*/
get day() {
if (this.date) {
return this.date.day;
}
}
/**
* @return {?}
*/
get hour() {
if (this.time) {
return this.time.hour;
}
}
/**
* @return {?}
*/
get minute() {
if (this.time) {
return this.time.minute;
}
}
/**
* @return {?}
*/
get second() {
if (this.time) {
return this.time.second;
}
}
/**
* Get native date object from FdDate.
* @return {?}
*/
toDate() {
return new Date(this.year, this.month - 1, this.day, this.hour, this.minute, this.second);
}
}
if (false) {
/** @type {?} */
FdDatetime.prototype.date;
/** @type {?} */
FdDatetime.prototype.time;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmQtZGF0ZXRpbWUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9mdW5kYW1lbnRhbC1uZ3gvIiwic291cmNlcyI6WyJsaWIvZGF0ZXRpbWUtcGlja2VyL21vZGVscy9mZC1kYXRldGltZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBSUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBR3ZELE1BQU0sT0FBTyxVQUFVOzs7OztJQVFuQixNQUFNLENBQUMsUUFBUTs7Y0FDTCxJQUFJLEdBQVMsSUFBSSxJQUFJLEVBQUU7O2NBQ3ZCLElBQUksR0FBZSxFQUFDLElBQUksRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxVQUFVLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDLFVBQVUsRUFBRSxFQUFDO1FBQ3RHLE9BQU8sSUFBSSxVQUFVLENBQUMsTUFBTSxDQUFDLFFBQVEsRUFBRSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ25ELENBQUM7Ozs7OztJQU9ELFlBQ0ksSUFBWSxFQUNaLElBQWdCO1FBRWhCLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO1FBQ2pCLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO0lBQ3JCLENBQUM7Ozs7O0lBS00sa0JBQWtCO1FBQ3JCLElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRSxJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUUsSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFLEVBQUU7WUFDM0QsT0FBTyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsY0FBYyxFQUFFLENBQUM7U0FDekM7YUFBTTtZQUNILE9BQU8sSUFBSSxDQUFDO1NBQ2Y7SUFDTCxDQUFDOzs7OztJQUtNLFdBQVc7UUFFZCxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUk7WUFDVixJQUFJLENBQUMsSUFBSSxLQUFLLFNBQVM7WUFDdkIsSUFBSSxDQUFDLE1BQU0sS0FBSyxTQUFTO1lBQ3pCLElBQUksQ0FBQyxNQUFNLEtBQUssU0FBUyxFQUMzQjtZQUNFLE9BQU8sS0FBSyxDQUFDO1NBQ2hCO1FBRUQsSUFBSSxJQUFJLENBQUMsSUFBSSxHQUFHLEVBQUUsSUFBSSxJQUFJLENBQUMsSUFBSSxHQUFHLENBQUMsRUFBRTtZQUNqQyxPQUFPLEtBQUssQ0FBQztTQUNoQjtRQUVELElBQUksSUFBSSxDQUFDLE1BQU0sR0FBRyxFQUFFLElBQUksSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7WUFDckMsT0FBTyxLQUFLLENBQUM7U0FDaEI7UUFFRCxJQUFJLElBQUksQ0FBQyxNQUFNLEdBQUcsRUFBRSxJQUFJLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1lBQ3JDLE9BQU8sS0FBSyxDQUFDO1NBQ2hCO1FBRUQsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQzs7Ozs7SUFLTSxXQUFXO1FBQ2QsT0FBTyxJQUFJLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDaEQsQ0FBQzs7OztJQUVELElBQVcsSUFBSTtRQUNYLElBQUksSUFBSSxDQUFDLElBQUksRUFBRTtZQUNYLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7U0FDekI7SUFDTCxDQUFDOzs7O0lBRUQsSUFBVyxLQUFLO1FBQ1osSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFO1lBQ1gsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQztTQUMxQjtJQUNMLENBQUM7Ozs7SUFFRCxJQUFXLEdBQUc7UUFDVixJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUU7WUFDWCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDO1NBQ3hCO0lBQ0wsQ0FBQzs7OztJQUVELElBQVcsSUFBSTtRQUNYLElBQUksSUFBSSxDQUFDLElBQUksRUFBRTtZQUNYLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7U0FDekI7SUFDTCxDQUFDOzs7O0lBRUQsSUFBVyxNQUFNO1FBQ2IsSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFO1lBQ1gsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQztTQUMzQjtJQUNMLENBQUM7Ozs7SUFFRCxJQUFXLE1BQU07UUFDYixJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUU7WUFDWCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDO1NBQzNCO0lBQ0wsQ0FBQzs7Ozs7SUFLTSxNQUFNO1FBQ1QsT0FBTyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxLQUFLLEdBQUcsQ0FBQyxFQUFFLElBQUksQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUM5RixDQUFDO0NBQ0o7OztJQWpIRywwQkFBYTs7SUFDYiwwQkFBaUIiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIERlZmF1bHQgZGF0ZSB3aXRoIHRpbWUgbW9kZWwgdXNlZCBieSB0aGUgZnVuZGFtZW50YWwgY29tcG9uZW50cy5cbiAqL1xuXG5pbXBvcnQgeyBGZERhdGUgfSBmcm9tICcuLi8uLi9jYWxlbmRhci9tb2RlbHMvZmQtZGF0ZSc7XG5pbXBvcnQgeyBUaW1lT2JqZWN0IH0gZnJvbSAnLi4vLi4vdGltZS90aW1lLW9iamVjdCc7XG5cbmV4cG9ydCBjbGFzcyBGZERhdGV0aW1lIHtcblxuICAgIGRhdGU6IEZkRGF0ZTtcbiAgICB0aW1lOiBUaW1lT2JqZWN0O1xuXG4gICAgLyoqXG4gICAgICogU3RhdGljIGZ1bmN0aW9uIHRvIGdldCB0aGUgY3VycmVudCBkYXRlIGluIEZkRGF0ZVRpbWUgZm9ybS5cbiAgICAgKi9cbiAgICBzdGF0aWMgZ2V0VG9kYXkoKTogRmREYXRldGltZSB7XG4gICAgICAgIGNvbnN0IGRhdGU6IERhdGUgPSBuZXcgRGF0ZSgpO1xuICAgICAgICBjb25zdCB0aW1lOiBUaW1lT2JqZWN0ID0ge2hvdXI6IGRhdGUuZ2V0SG91cnMoKSwgbWludXRlOiBkYXRlLmdldE1pbnV0ZXMoKSwgc2Vjb25kOiBkYXRlLmdldFNlY29uZHMoKX07XG4gICAgICAgIHJldHVybiBuZXcgRmREYXRldGltZShGZERhdGUuZ2V0VG9kYXkoKSwgdGltZSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ29uc3RydWN0b3IgdG8gYnVpbGQgYSBGZERhdGVUaW1lIG9iamVjdCBmcm9tIGEgRmREYXRlIGFuZCBUaW1lT2JqZWN0LlxuICAgICAqIEBwYXJhbSBkYXRlIHRoZSBGZERhdGUgb2JqZWN0LlxuICAgICAqIEBwYXJhbSB0aW1lIHRoZSBUaW1lT2JqZWN0IG9iamVjdC5cbiAgICAgKi9cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgZGF0ZTogRmREYXRlLFxuICAgICAgICB0aW1lOiBUaW1lT2JqZWN0XG4gICAgKSB7XG4gICAgICAgIHRoaXMuZGF0ZSA9IGRhdGU7XG4gICAgICAgIHRoaXMudGltZSA9IHRpbWU7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2V0IEx1eG9uIGRhdGUgb2JqZWN0IGNvbnZlcnRlZCB0byBzdHJpbmcgZnJvbSBGZERhdGUuXG4gICAgICovXG4gICAgcHVibGljIHRvTG9jYWxlRGF0ZVN0cmluZygpOiBzdHJpbmcge1xuICAgICAgICBpZiAodGhpcy50b0RhdGUoKSAmJiB0aGlzLmlzVGltZVZhbGlkKCkgJiYgdGhpcy5pc0RhdGVWYWxpZCgpKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy50b0RhdGUoKS50b0xvY2FsZVN0cmluZygpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBNZXRob2QgdGhhdCBjaGVja3MgdmFsaWRpdHkgb2YgdGltZSBvbiBGZERhdGVUaW1lIG9iamVjdC5cbiAgICAgKi9cbiAgICBwdWJsaWMgaXNUaW1lVmFsaWQoKTogYm9vbGVhbiB7XG5cbiAgICAgICAgaWYgKCF0aGlzLnRpbWUgfHxcbiAgICAgICAgICAgIHRoaXMuaG91ciA9PT0gdW5kZWZpbmVkIHx8XG4gICAgICAgICAgICB0aGlzLm1pbnV0ZSA9PT0gdW5kZWZpbmVkIHx8XG4gICAgICAgICAgICB0aGlzLnNlY29uZCA9PT0gdW5kZWZpbmVkXG4gICAgICAgICkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuaG91ciA+IDIzIHx8IHRoaXMuaG91ciA8IDApIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLm1pbnV0ZSA+IDU5IHx8IHRoaXMubWludXRlIDwgMCkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuc2Vjb25kID4gNTkgfHwgdGhpcy5zZWNvbmQgPCAwKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBNZXRob2QgdGhhdCBjaGVja3MgdmFsaWRpdHkgb2YgZGF0ZSBvbiBGZERhdGVUaW1lIG9iamVjdC5cbiAgICAgKi9cbiAgICBwdWJsaWMgaXNEYXRlVmFsaWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmRhdGUgJiYgdGhpcy5kYXRlLmlzRGF0ZVZhbGlkKCk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCB5ZWFyKCk6IG51bWJlciB7XG4gICAgICAgIGlmICh0aGlzLmRhdGUpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmRhdGUueWVhcjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgbW9udGgoKTogbnVtYmVyIHtcbiAgICAgICAgaWYgKHRoaXMuZGF0ZSkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuZGF0ZS5tb250aDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgZGF5KCk6IG51bWJlciB7XG4gICAgICAgIGlmICh0aGlzLmRhdGUpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmRhdGUuZGF5O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBob3VyKCk6IG51bWJlciB7XG4gICAgICAgIGlmICh0aGlzLnRpbWUpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnRpbWUuaG91cjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgbWludXRlKCk6IG51bWJlciB7XG4gICAgICAgIGlmICh0aGlzLnRpbWUpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnRpbWUubWludXRlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBzZWNvbmQoKTogbnVtYmVyIHtcbiAgICAgICAgaWYgKHRoaXMudGltZSkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMudGltZS5zZWNvbmQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBHZXQgbmF0aXZlIGRhdGUgb2JqZWN0IGZyb20gRmREYXRlLlxuICAgICAqL1xuICAgIHB1YmxpYyB0b0RhdGUoKTogRGF0ZSB7XG4gICAgICAgIHJldHVybiBuZXcgRGF0ZSh0aGlzLnllYXIsIHRoaXMubW9udGggLSAxLCB0aGlzLmRheSwgdGhpcy5ob3VyLCB0aGlzLm1pbnV0ZSwgdGhpcy5zZWNvbmQpO1xuICAgIH1cbn1cbiJdfQ==