Iniit
Этот коммит содержится в:
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
@@ -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 = {}));
|
||||
Исполняемый файл
Различия файлов скрыты, потому что одна или несколько строк слишком длинны
@@ -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={}));
|
||||
Ссылка в новой задаче
Block a user