uc-base-libraries
Version:
Typescript libraries for UC projects
108 lines (104 loc) • 4.33 kB
JavaScript
System.register(["./DateTime"], function (exports_1, context_1) {
"use strict";
var DateTime, SiteInfo, siteInfo;
var __moduleName = context_1 && context_1.id;
function fixDoubleSlash(path) {
path = path.replaceAll('//', '/');
path = path.replaceAll(':/', '://');
return path;
}
function virtualUrl() {
return siteInfo.virtualUrl;
}
exports_1("virtualUrl", virtualUrl);
function applicationUrl() {
return siteInfo.applicationUrl;
}
exports_1("applicationUrl", applicationUrl);
function isCleanHtml() {
return siteInfo.isCleanHtml;
}
exports_1("isCleanHtml", isCleanHtml);
function refreshPage() {
redirect(getFullURL(window.location.pathname + window.location.search));
}
exports_1("refreshPage", refreshPage);
function getParameterByName(name) {
return siteInfo.getParameterByName(name);
}
exports_1("getParameterByName", getParameterByName);
function getVirtualURL(url) {
return fixDoubleSlash(applicationUrl() + virtualUrl() + url);
}
exports_1("getVirtualURL", getVirtualURL);
function getFullURL(url) {
let cntPiece = 'Cnt=' + DateTime.getTimeCount();
if (url.indexOf('?') !== -1) {
cntPiece = '&' + cntPiece;
}
else {
cntPiece = '?' + cntPiece;
}
return fixDoubleSlash(applicationUrl() + url + cntPiece);
}
exports_1("getFullURL", getFullURL);
function redirect(url) {
window.location.href = url;
}
exports_1("redirect", redirect);
return {
setters: [
function (DateTime_1) {
DateTime = DateTime_1;
}
],
execute: function () {
SiteInfo = class SiteInfo {
constructor() {
this.sitepath = '/';
this.virtualUrl = '';
this.applicationUrl = '';
this.isCleanHtml = false;
/*
private getSitePath():string {
const myAwesomeScript = document.createElement('script');
myAwesomeScript.setAttribute('src', './TestSrc.js');
document.head.appendChild(myAwesomeScript);
const scripts = document.getElementsByTagName('script');
const lastScript = scripts[scripts.length - 1];
const scriptName = lastScript?.src ?? '';
const subDirs = new Queryable<string>(['/LIB/UC-BASE-LIBARIES/', '/JS/', '/BUNDLES/']);
const indexs = subDirs
.select((d) => {
return scriptName.toUpperCase().indexOf(d);
})
.where((i) => i > 0);
if (indexs.any()) {
const minIdx = indexs.min();
return scriptName.substring(0, minIdx) + '/';
}
return '/';
}
*/
this.getParameterByName = (name) => {
name = name.replace(/[\[]/, '\\[').replace(/[\]]/, '\\]');
const regex = new RegExp('[\\?&]' + name + '=([^&#]*)');
const results = regex.exec(location.search);
return results == null ? '' : decodeURIComponent(results[1].replace(/\+/g, ' '));
};
if (document) {
// this.sitepath = this.getSitePath();
const base = window.location.protocol + '//' + window.location.host + '/';
this.virtualUrl = this.sitepath.replace(base, '');
this.applicationUrl = base;
const t = window.location.pathname + window.location.search;
this.isCleanHtml = t.indexOf('Format=CleanHTML') > -1;
}
}
};
exports_1("SiteInfo", SiteInfo);
exports_1("siteInfo", siteInfo = new SiteInfo());
}
};
});
//# sourceMappingURL=SiteInfo.js.map