UNPKG

uc-base-libraries

Version:
162 lines 6.47 kB
System.register(["./Tasks", "./ApiLibrary", "./EventHandler"], function (exports_1, context_1) { "use strict"; var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; var Tasks, ApiLibrary, EventHandler, ServerTime, serverTime; var __moduleName = context_1 && context_1.id; function dateFromIso8601(isostr) { if (isostr == null) { return new Date(); } const parts = isostr.match(/\d+/g); if (parts.length < 6) { return new Date(); } const y = parseInt(parts[0], 10); const m = parseInt(parts[1], 10) - 1; const d = parseInt(parts[2], 10); const h = parseInt(parts[3], 10); const mn = parseInt(parts[4], 10); const s = parseInt(parts[5], 10); return new Date(y, m, d, h, mn, s); } exports_1("dateFromIso8601", dateFromIso8601); function formatTimeSpan(ts) { if (ts <= 0) { return ''; } const ms = ts - Math.floor(ts); ts = ts - ms; let second = ts % 60; ts = ts - second; second = second + ms; ts = ts / 60; const minute = ts % 60; ts = ts - minute; ts = ts / 60; const hour = Math.floor(ts); let shour = '' + hour; let sminute = '' + minute; let ssecond = '' + Math.round(second * 1000) / 1000; if (hour < 10) { shour = '0' + shour; } if (minute < 10) { sminute = '0' + sminute; } if (second < 10) { ssecond = '0' + ssecond; } return shour + ':' + sminute + ':' + ssecond; } exports_1("formatTimeSpan", formatTimeSpan); function formatDate(dt) { const currDate = dt.getDate(); const currMonth = dt.getMonth() + 1; const currYear = dt.getFullYear(); return '' + currMonth + '/' + currDate + '/' + currYear; } exports_1("formatDate", formatDate); function formatTime(dt, hideMs) { hideMs = !!hideMs; let hour = dt.getHours(); const minute = dt.getMinutes(); const second = dt.getSeconds(); const ms = dt.getMilliseconds(); let ampm = 'AM'; if (hour > 11) { hour = hour - 12; ampm = 'PM'; } if (hour === 0) { hour = 12; } let sminute = '' + minute; let ssecond = '' + second; if (minute < 10) { sminute = '0' + sminute; } if (second < 10) { ssecond = '0' + ssecond; } return hour + ':' + sminute + (hideMs ? '' : ':' + ssecond) + ' ' + ampm + (hideMs ? '' : ':' + ms); } exports_1("formatTime", formatTime); function getTimeCount() { const Now = new Date(); const Cnt = Math.round(Now.getTime()); return Cnt; } exports_1("getTimeCount", getTimeCount); return { setters: [ function (Tasks_1) { Tasks = Tasks_1; }, function (ApiLibrary_1) { ApiLibrary = ApiLibrary_1; }, function (EventHandler_1) { EventHandler = EventHandler_1; } ], execute: function () { Date.prototype.addDays = function (days) { const dat = new Date(this.valueOf()); dat.setDate(dat.getDate() + days); return dat; }; Date.prototype.formatDate = function () { return formatDate(this); }; Date.prototype.formatTime = function (hideMs) { return formatTime(this, hideMs); }; ServerTime = class ServerTime { constructor(timeApiUrl) { this.timeApiUrl = timeApiUrl; this.serverStartTime = null; this.startTime = new Date(); this.serverDateTime = null; this.offset = 0; this.serverTimeLoaded = false; this.raiseMessageEvent = new EventHandler.EventHandler(); this.init = () => __awaiter(this, void 0, void 0, function* () { yield Tasks.whenReady(); yield Tasks.delay(10); yield this.refreshServerTime(); this.raiseMessageEvent.trigger('Time Loaded from Server'); }); this.now = () => { return new Date(); }; this.refreshServerTime = () => __awaiter(this, void 0, void 0, function* () { const URL = this.timeApiUrl; const data = yield ApiLibrary.getCallAsync(URL); const sdt = new Date(Date.parse(data.item.date)); sdt.setTime(sdt.getTime() + data.item.milliseconds); this.serverDateTime = sdt; const ldt = new Date(); this.offset = this.serverDateTime.getTime() - ldt.getTime(); this.serverTimeLoaded = true; this.raiseMessageEvent.trigger('ServerDateTime = ' + formatTime(this.serverDateTime)); this.raiseMessageEvent.trigger('LocalDateTime = ' + formatTime(ldt)); this.raiseMessageEvent.trigger(`Offset = ${this.offset}`); return; }); this.init(); } }; exports_1("ServerTime", ServerTime); exports_1("serverTime", serverTime = new ServerTime('/api/v1/Time')); } }; }); //# sourceMappingURL=DateTime.js.map