uc-base-libraries
Version:
Typescript libraries for UC projects
137 lines • 6.66 kB
JavaScript
System.register(["./Tasks", "./DateTime"], 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, DateTime, Message, Messages, messages;
var __moduleName = context_1 && context_1.id;
function debugWrite(msg) {
messages.addMessage(msg);
}
exports_1("debugWrite", debugWrite);
function addMessage(when, msg) {
messages.addMessage(new Message(when, msg));
}
exports_1("addMessage", addMessage);
return {
setters: [
function (Tasks_1) {
Tasks = Tasks_1;
},
function (DateTime_1) {
DateTime = DateTime_1;
}
],
execute: function () {
String.prototype.replaceAll = function (str1, str2, ignore) {
return this.replace(new RegExp(str1.replace(/([\/\,\!\\\^\$\{\}\[\]\(\)\.\*\+\?\|\<\>\-\&])/g, '\\$&'), ignore ? 'gi' : 'g'), typeof str2 === 'string' ? str2.replace(/\$/g, '$$$$') : str2);
};
Message = class Message {
constructor(_date, _message) {
this._date = _date;
this._message = _message;
}
get date() {
return this._date;
}
set date(value) {
this._date = value;
}
get message() {
return this._message;
}
set message(value) {
this._message = value;
}
};
exports_1("Message", Message);
Messages = class Messages {
constructor(displayLocation) {
this.displayLocation = displayLocation;
this.isReady = false;
this.messages = new Array();
this.area = null;
this.init = () => __awaiter(this, void 0, void 0, function* () {
this.addMessage('Script Loaded in Browser');
yield Tasks.whenReady();
this.addMessage('Page Loaded in Browser');
DateTime.serverTime.raiseMessageEvent.addListener((msg) => {
this.addMessage(msg);
});
yield Tasks.delay(1);
if ($) {
this.area = $(this.displayLocation);
const area = this.area;
if (area.length === 0) {
$('body').append("<ol class='MessageArea' style='display:block;'></ol>");
this.displayLocation = $('.MessageArea');
}
yield Tasks.whenTrue(() => {
return DateTime.serverTime.serverTimeLoaded;
});
}
this.isReady = true;
this.refreshMessages();
});
this.refreshMessages = () => {
if (DateTime.serverTime.serverStartTime != null) {
DateTime.serverTime.startTime = new Date(DateTime.serverTime.serverStartTime.getTime() - DateTime.serverTime.offset);
}
const area = this.area;
this.messages.forEach((item) => {
const dt = item.date;
const secondsFromStart = (dt.getTime() - DateTime.serverTime.startTime.getTime()) / 1000;
dt.setTime(dt.getTime() + DateTime.serverTime.offset);
const msgTP = DateTime.formatTime(dt);
const msgPt = item.message;
const msgElapsed = 'Time Elapsed From Start: ' + DateTime.formatTimeSpan(secondsFromStart);
if ($) {
// tslint:disable-next-line:no-console
console.log(msgTP + ' ' + msgPt + ' - ' + msgElapsed);
$(area).append("<li><span class='timePart'>" +
msgTP +
"</span> - <span class='messagePart'>" +
msgPt +
"</span> - <span class='timeElapsedPart'>" +
msgElapsed +
'</span></li>');
}
});
this.messages = new Array();
try {
if ($) {
const item = $(area).find('li:last-child');
const t = item.position().top + item.height() - $(area).height() + $(area).scrollTop();
$(area).scrollTop(t);
}
}
catch (err) { }
};
this.showMessages = () => {
if (this.isReady) {
this.refreshMessages();
}
};
this.addMessage = (msg) => {
if (!(msg instanceof Message)) {
const now = new Date();
msg = new Message(now, msg);
}
this.messages.push(msg);
this.showMessages();
};
this.init();
}
};
exports_1("Messages", Messages);
exports_1("messages", messages = new Messages('.MessageArea'));
}
};
});
//# sourceMappingURL=Debug.js.map