Этот коммит содержится в:
2023-03-11 17:30:20 +00:00
Коммит b6c4e025bc
5124 изменённых файлов: 1153349 добавлений и 0 удалений
Разница между файлами не показана из-за своего большого размера Загрузить разницу
+325
Просмотреть файл
@@ -0,0 +1,325 @@
function isMobileApp() {
return Unibase.Platform.Helpers.MobileHelper !== undefined && Unibase.Platform.Helpers.MobileHelper.Instance() !== undefined;
}
;
var Unibase;
(function (Unibase) {
let Platform;
(function (Platform) {
let Helpers;
(function (Helpers) {
let FileType;
(function (FileType) {
FileType[FileType["Js"] = 1] = "Js";
FileType[FileType["Css"] = 2] = "Css";
FileType[FileType["Html"] = 3] = "Html";
FileType[FileType["Image"] = 4] = "Image";
})(FileType = Helpers.FileType || (Helpers.FileType = {}));
class FileCacheOptions {
}
Helpers.FileCacheOptions = FileCacheOptions;
class FileCallBack {
}
Helpers.FileCallBack = FileCallBack;
class FileCacheHelper {
constructor() {
}
updateFileLoadStatus(cbindex) {
let _currentFile = FileCacheHelper.loadedFile_callbacks[cbindex];
FileCacheHelper.cached_files.push(_currentFile.FileName);
_currentFile.IsLoaded = true;
this.executeCallBackForFile(cbindex);
}
;
executeCallBackForFile(cbindex) {
let _currentFile = FileCacheHelper.loadedFile_callbacks[cbindex];
if (_currentFile !== undefined) {
if (_currentFile.IsLoaded) {
let _fileCallbacks = _currentFile.Callbacks;
if (_fileCallbacks != undefined && _fileCallbacks.length > 0) {
_fileCallbacks = _currentFile.Callbacks.filter(c => c.IsExecuted == false);
if (_fileCallbacks != undefined && _fileCallbacks.length > 0) {
for (let i = 0; i < _fileCallbacks.length; i++) {
let _exeCallback = _fileCallbacks[i];
if (_exeCallback != undefined && _exeCallback.Callback != null) {
if (_exeCallback.Args != undefined) {
_exeCallback.IsExecuted = true;
_exeCallback.Callback(_exeCallback.Args);
}
else {
_exeCallback.IsExecuted = true;
_exeCallback.Callback();
}
}
}
}
}
}
}
}
;
executeCallback(cbindex, filetype, isAlreadyadded, args) {
let _currentFile = FileCacheHelper.loadedFile_callbacks[cbindex];
if (filetype == undefined) {
filetype = _currentFile.FileType;
}
if (filetype == undefined) {
isAlreadyadded = false;
}
if (filetype === FileType.Html) {
if (_currentFile.FileRef != undefined && _currentFile.Element != null) {
_currentFile.Element.load(_currentFile.FileRef, _currentFile.Callbacks[0].Callback);
}
else if (_currentFile.FileRef != undefined) {
$.get(_currentFile.FileRef, function (data) {
let callback = _currentFile.Callbacks[0].Callback;
callback(data);
});
}
}
else if (filetype === FileType.Image) {
if (_currentFile.FileRef != undefined && _currentFile.Element != null) {
$(_currentFile.Element).attr('src', _currentFile.FileRef.replace(window.location.origin, '') + '?loaded=true');
}
}
else if (!isAlreadyadded && _currentFile != undefined) {
try {
document.getElementsByTagName("head")[0].appendChild(_currentFile.FileRef);
if (_currentFile.FileRef != undefined && _currentFile.Callbacks != null) {
var fun = function () {
FileCacheHelper.Instance().updateFileLoadStatus(cbindex);
};
_currentFile.FileRef.onload = fun;
}
}
catch (e) {
e;
}
}
else {
this.executeCallBackForFile(cbindex);
}
}
;
loadFiles(options, Success) {
let instance = this;
let isExeCallback = false;
let FileGrpId = moment().unix();
if (options.length == 1) {
return this.loadFile(options[0], Success);
}
else {
var option = options[0];
var newOptions = options.slice(1, options.length);
this.loadFile(option, function () {
if (newOptions.length !== 0)
instance.loadFiles(newOptions, Success);
});
}
}
addCacheFiles(files) {
if (FileCacheHelper.cached_files === null || FileCacheHelper.cached_files === undefined) {
FileCacheHelper.cached_files = new Array();
}
for (var i = 0; i < files.length; i++) {
var file = files[i];
if (file[0] == '/') {
file = file.substring(1);
}
if (FileCacheHelper.cached_files.filter(x => x.includes(file)).length == 0) {
FileCacheHelper.cached_files.push(`${window.location.origin}/${file}`);
}
}
}
loadFile(options, Success) {
if (options !== undefined) {
let filename = options.FileName;
if (isMobileApp()) {
filename = filename;
}
else {
filename = window['_appsettings'].client_url() + filename;
}
if (options.FileType == FileType.Js && filename.indexOf('wwwroot/') < -1) {
filename = filename.replace('wwwroot/', '');
}
if (filename[0] == '/') {
filename = filename.substring(1);
options.FileName = filename;
}
if (FileCacheHelper.cached_files === null || FileCacheHelper.cached_files === undefined)
FileCacheHelper.cached_files = new Array();
var fileref;
let callback_currentindex = 0;
let callback_currentfile = new FileCacheOptions();
callback_currentfile.Callbacks = new Array();
if (FileCacheHelper.cached_files.filter(x => x.includes(filename)).length == 0) {
callback_currentindex = FileCacheHelper.callback_index;
let _cb = null;
if (Success != null && Success != undefined) {
_cb = new FileCallBack();
_cb.Callback = Success;
_cb.Args = options.Args;
_cb.IsExecuted = false;
callback_currentfile.Callbacks.push(_cb);
}
callback_currentfile.FileName = filename;
callback_currentfile.FileType = options.FileType;
callback_currentfile.IsLoaded = false;
const filetype = options.FileType;
if (filetype === FileType.Js) {
fileref = document.createElement('script');
fileref.setAttribute("type", "text/javascript");
fileref.setAttribute("src", filename);
callback_currentfile.FileRef = fileref;
}
else if (filetype === FileType.Css) {
fileref = document.createElement("link");
fileref.setAttribute("rel", "stylesheet");
fileref.setAttribute("type", "text/css");
fileref.setAttribute("href", filename);
callback_currentfile.FileRef = fileref;
}
else if (filetype === FileType.Image) {
filename = options.Element.attributes.src.value;
callback_currentfile.FileRef = filename;
callback_currentfile.Element = options.Element;
}
if (FileCacheHelper.loadedFile_callbacks === null || FileCacheHelper.loadedFile_callbacks === undefined)
FileCacheHelper.loadedFile_callbacks = new Array();
FileCacheHelper.loadedFile_callbacks[callback_currentindex] = callback_currentfile;
FileCacheHelper.callback_index += 1;
if (isMobileApp()) {
try {
Unibase.Platform.Helpers.MobileHelper.Instance().loadFileFromDevice(filename, callback_currentindex);
}
catch (e) {
}
}
else {
this.executeCallback(callback_currentindex, filetype, false, options.Args);
}
}
else {
callback_currentindex = FileCacheHelper.loadedFile_callbacks.findIndex(x => x.FileName == filename);
if (FileCacheHelper.cached_files.filter(x => x.includes(filename)).length == 0) {
if (callback_currentindex > -1) {
let _callBack = new FileCallBack();
_callBack.Callback = Success;
_callBack.Args = options.Args;
_callBack.IsExecuted = false;
FileCacheHelper.loadedFile_callbacks[callback_currentindex].Callbacks.push(_callBack);
}
if (Success !== null) {
this.executeCallback(callback_currentindex, options.FileType, true, options.Args);
}
}
else {
if (Success !== null) {
Success();
}
}
}
}
}
loadJsFiles(filepaths, success) {
if (filepaths.length != 0) {
var options = new Array();
const fileTracker = {};
for (var i = 0; i < filepaths.length; i++) {
if (fileTracker[filepaths[i]] == undefined) {
fileTracker[filepaths[i]] = true;
options.push({
FileName: filepaths[i].replace('\n', ''),
FileType: FileType.Js
});
}
}
return this.loadFiles(options, success);
}
else {
if (success !== null) {
success();
}
}
}
laodJsFileChecking(filePath, instance, Success) {
try {
if (eval(instance) != undefined) {
if (Success !== null)
Success();
}
else {
return this.loadJsFile(filePath, Success);
}
}
catch (_a) {
return this.loadJsFile(filePath, Success);
}
}
loadJsFile(filePath, Success) {
if (filePath != undefined) {
return this.loadFile({
FileName: filePath.replace("\n", ''),
FileType: FileType.Js
}, Success);
}
}
loadJsFileAsync(filePath, Success) {
return this.loadFile({
FileName: filePath,
FileType: FileType.Js,
Async: true
}, Success);
}
loadCssFile(filePath, Success) {
return this.loadFile({
FileName: filePath,
FileType: FileType.Css
}, Success);
}
loadCssFiles(filepaths, success) {
var options = new Array();
const fileTracker = {};
for (var i = 0; i < filepaths.length; i++) {
if (fileTracker[filepaths[i]] == undefined) {
fileTracker[filepaths[i]] = true;
options.push({
FileName: filepaths[i],
FileType: FileType.Css
});
}
}
return this.loadFiles(options, success);
}
loadImage(filePath, Success, imgElement) {
if (FileCacheHelper.cached_files.indexOf(filePath) > -1) {
let fileindex = FileCacheHelper.loadedFile_callbacks.findIndex(x => x.FileName == filePath);
if (fileindex != undefined && fileindex > 0)
FileCacheHelper.loadedFile_callbacks[fileindex].Element = imgElement;
}
this.loadFile({
FileName: filePath,
FileType: FileType.Image,
Element: imgElement
}, Success);
}
isFileRegistered(filename) {
if (FileCacheHelper.cached_files === undefined || FileCacheHelper.cached_files.indexOf(filename) === -1) {
return false;
}
else {
return true;
}
}
static Instance() {
if (this._instance === undefined)
this._instance = new FileCacheHelper();
return this._instance;
}
}
FileCacheHelper.callback_index = 0;
Helpers.FileCacheHelper = FileCacheHelper;
})(Helpers = Platform.Helpers || (Platform.Helpers = {}));
})(Platform = Unibase.Platform || (Unibase.Platform = {}));
})(Unibase || (Unibase = {}));
Различия файлов скрыты, потому что одна или несколько строк слишком длинны
поставляемый Исполняемый файл
+1
Просмотреть файл
@@ -0,0 +1 @@
function isMobileApp(){return Unibase.Platform.Helpers.MobileHelper!==undefined&&Unibase.Platform.Helpers.MobileHelper.Instance()!==undefined}var Unibase;(function(n){let t;(function(t){let i;(function(t){let r;(function(n){n[n.Js=1]="Js";n[n.Css=2]="Css";n[n.Html=3]="Html";n[n.Image=4]="Image"})(r=t.FileType||(t.FileType={}));class f{}t.FileCacheOptions=f;class u{}t.FileCallBack=u;class i{constructor(){}updateFileLoadStatus(n){let t=i.loadedFile_callbacks[n];t.IsLoaded=!0;this.executeCallBackForFile(n)}executeCallBackForFile(n){let t=i.loadedFile_callbacks[n];if(t!==undefined&&t.IsLoaded){let n=t.Callbacks;if(n!=undefined&&n.length>0&&(n=t.Callbacks.filter(n=>n.IsExecuted==!1),n!=undefined&&n.length>0))for(let t=0;t<n.length;t++){let i=n[t];i!=undefined&&i.Callback!=null&&(i.Args!=undefined?(i.IsExecuted=!0,i.Callback(i.Args)):(i.IsExecuted=!0,i.Callback()))}}}executeCallback(n,t,u){let f=i.loadedFile_callbacks[n];if(t==undefined&&(t=f.FileType),t==undefined&&(u=!1),t===r.Html)f.FileRef!=undefined&&f.Element!=null?f.Element.load(f.FileRef,f.Callbacks[0].Callback):f.FileRef!=undefined&&$.get(f.FileRef,function(n){let t=f.Callbacks[0].Callback;t(n)});else if(t===r.Image)f.FileRef!=undefined&&f.Element!=null&&$(f.Element).attr("src",f.FileRef.replace(window.location.origin,"")+"?loaded=true");else if(u||f==undefined)this.executeCallBackForFile(n);else try{if(document.getElementsByTagName("head")[0].appendChild(f.FileRef),f.FileRef!=undefined&&f.Callbacks!=null){var e=function(){i.Instance().updateFileLoadStatus(n)};f.FileRef.onload=e}}catch(o){o}}loadFiles(n,t){if(n.length==1)return this.loadFile(n[0],t);var r=n[0],i=n.slice(1,n.length),u=this;this.loadFile(r,function(){i.length!==0&&u.loadFiles(i,t)})}addCacheFiles(n){var r,t;for((i.cached_files===null||i.cached_files===undefined)&&(i.cached_files=[]),r=0;r<n.length;r++)t=n[r],t[0]=="/"&&(t=t.substring(1)),i.cached_files.indexOf(t)===-1}loadFile(t,e){if(t!==undefined){let s=t.FileName;s=isMobileApp()?s:window._appsettings.client_url()+s;t.FileType==r.Js&&s.indexOf("wwwroot/")<-1&&(s=s.replace("wwwroot/",""));s[0]=="/"&&(s=s.substring(1),t.FileName=s);(i.cached_files===null||i.cached_files===undefined)&&(i.cached_files=[]);var o;let c=0,h=new f;if(h.Callbacks=[],i.cached_files.indexOf(s)===-1){i.cached_files.push(s);c=i.callback_index;let f=null;e!=null&&e!=undefined&&(f=new u,f.Callback=e,f.Args=t.Args,f.IsExecuted=!1,h.Callbacks.push(f));h.FileName=s;h.FileType=t.FileType;h.IsLoaded=!1;const l=t.FileType;if(l===r.Js?(o=document.createElement("script"),o.setAttribute("type","text/javascript"),o.setAttribute("src",s),h.FileRef=o):l===r.Css?(o=document.createElement("link"),o.setAttribute("rel","stylesheet"),o.setAttribute("type","text/css"),o.setAttribute("href",s),h.FileRef=o):l===r.Image&&(s=t.Element.attributes.src.value,h.FileRef=s,h.Element=t.Element),(i.loadedFile_callbacks===null||i.loadedFile_callbacks===undefined)&&(i.loadedFile_callbacks=[]),i.loadedFile_callbacks[c]=h,i.callback_index+=1,isMobileApp())try{n.Platform.Helpers.MobileHelper.Instance().loadFileFromDevice(s,c)}catch(s){}else this.executeCallback(c,l,!1,t.Args)}else{if(c=i.loadedFile_callbacks.findIndex(n=>n.FileName==s),c>-1){let n=new u;n.Callback=e;n.Args=t.Args;n.IsExecuted=!1;i.loadedFile_callbacks[c].Callbacks.push(n)}e!==null&&this.executeCallback(c,t.FileType,!0,t.Args)}}}loadJsFiles(n,t){var u=[],i;const f={};for(i=0;i<n.length;i++)f[n[i]]==undefined&&(f[n[i]]=!0,u.push({FileName:n[i],FileType:r.Js}));return this.loadFiles(u,t)}loadJsFile(n,t){return this.loadFile({FileName:n,FileType:r.Js},t)}loadJsFileAsync(n,t){return this.loadFile({FileName:n,FileType:r.Js,Async:!0},t)}loadCssFile(n,t){return this.loadFile({FileName:n,FileType:r.Css},t)}loadCssFiles(n,t){var u=[],i;const f={};for(i=0;i<n.length;i++)f[n[i]]==undefined&&(f[n[i]]=!0,u.push({FileName:n[i],FileType:r.Css}));return this.loadFiles(u,t)}loadImage(n,t,u){if(i.cached_files.indexOf(n)>-1){let t=i.loadedFile_callbacks.findIndex(t=>t.FileName==n);t!=undefined&&t>0&&(i.loadedFile_callbacks[t].Element=u)}this.loadFile({FileName:n,FileType:r.Image,Element:u},t)}isFileRegistered(n){return i.cached_files===undefined||i.cached_files.indexOf(n)===-1?!1:!0}static Instance(){return this._instance===undefined&&(this._instance=new i),this._instance}}i.callback_index=0;t.FileCacheHelper=i})(i=t.Helpers||(t.Helpers={}))})(t=n.Platform||(n.Platform={}))})(Unibase||(Unibase={}));