芝麻web文件管理V1.00
编辑当前文件:/home/pulsehostuk9/www/cloud.pulsehost.co.uk/static/js/68.app.79b58e445ed8a919984b.js
(self["webpackChunkafterlogic_aurora_platform"] = self["webpackChunkafterlogic_aurora_platform"] || []).push([[68],{ /***/ "qBBW": /*!******************************************!*\ !*** ./modules/CoreWebclient/js/CJua.js ***! \******************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; var $ = __webpack_require__(/*! jquery */ "M4cL"), _ = __webpack_require__(/*! underscore */ "C3HO"), ko = __webpack_require__(/*! knockout */ "p09A"), queue = __webpack_require__(/*! modules/CoreWebclient/js/vendors/queue.js */ "l6qN"), TextUtils = __webpack_require__(/*! modules/CoreWebclient/js/utils/Text.js */ "H20a"), Types = __webpack_require__(/*! modules/CoreWebclient/js/utils/Types.js */ "KC/L"), App = __webpack_require__(/*! modules/CoreWebclient/js/App.js */ "9kOp"), UserSettings = __webpack_require__(/*! modules/CoreWebclient/js/Settings.js */ "OfVV"), Popups = __webpack_require__(/*! modules/CoreWebclient/js/Popups.js */ "oUN1"), AlertPopup = __webpack_require__(/*! modules/CoreWebclient/js/popups/AlertPopup.js */ "hT1I"), iDefLimit = UserSettings.MultipleFilesUploadLimit; ; /** * @param {*} mValue * @return {boolean} */ function isUndefined(mValue) { return 'undefined' === typeof mValue; } /** * @param {*} oParent * @param {*} oDescendant * * @return {boolean} */ function contains(oParent, oDescendant) { var bResult = false; if (oParent && oDescendant) { if (oParent === oDescendant) { bResult = true; } else if (oParent.contains) { bResult = oParent.contains(oDescendant); } else { /*jshint bitwise: false*/ bResult = oDescendant.compareDocumentPosition ? !!(oDescendant.compareDocumentPosition(oParent) & 8) : false; /*jshint bitwise: true*/ } } return bResult; } function mainClearTimeout(iTimer) { if (0 < iTimer) { clearTimeout(iTimer); } iTimer = 0; } /** * @param {Event} oEvent * @return {?Event} */ function getEvent(oEvent) { oEvent = (oEvent && (oEvent.originalEvent ? oEvent.originalEvent : oEvent)) || window.event; return oEvent.dataTransfer ? oEvent : null; } /** * @param {Object} oValues * @param {string} sKey * @param {?} mDefault * @return {?} */ function getValue(oValues, sKey, mDefault) { return (!oValues || !sKey || isUndefined(oValues[sKey])) ? mDefault : oValues[sKey]; } /** * @param {Object} oOwner * @param {string} sPublicName * @param {*} mObject */ function setValue(oOwner, sPublicName, mObject) { oOwner[sPublicName] = mObject; } /** * @param {Function} fFunction * @param {Object=} oScope * @return {Function} */ function scopeBind(fFunction, oScope) { return function () { return fFunction.apply(isUndefined(oScope) ? null : oScope, Array.prototype.slice.call(arguments)); }; } /** * @param {number=} iLen * @return {string} */ function fakeMd5(iLen) { var sResult = '', sLine = '0123456789abcdefghijklmnopqrstuvwxyz' ; iLen = isUndefined(iLen) ? 32 : Types.pInt(iLen); while (sResult.length < iLen) { sResult += sLine.substr(Math.round(Math.random() * sLine.length), 1); } return sResult; } /** * @return {string} */ function getNewUid() { return 'jua-uid-' + fakeMd5(16) + '-' + (new Date()).getTime().toString(); } /** * @param {*} oFile * @param {string=} sPath * @return {Object} */ function getDataFromFile(oFile, sPath) { var sFileName = isUndefined(oFile.fileName) ? (isUndefined(oFile.name) ? null : oFile.name) : oFile.fileName, iSize = isUndefined(oFile.fileSize) ? (isUndefined(oFile.size) ? null : oFile.size) : oFile.fileSize, sType = isUndefined(oFile.type) ? null : oFile.type ; return { 'FileName': sFileName, 'Size': iSize, 'Type': sType, 'Folder': isUndefined(sPath) ? '' : sPath, 'File' : oFile }; } /** * @param {*} aItems * @param {Function} fFileCallback * @param {boolean=} bEntry = false * @param {boolean=} bAllowFolderDragAndDrop = true * @param {Function=} fEmptyFolderCallback * @param {number=} iLimit = 20 * @param {Function=} fLimitCallback */ function getDataFromFiles(aItems, fFileCallback, bEntry, bAllowFolderDragAndDrop, fEmptyFolderCallback, iLimit, fLimitCallback) { var iInputLimit = 0, iLen = 0, iIndex = 0, oItem = null, oEntry = null, bUseLimit = false, bCallLimit = false, fTraverseFileTree = function (oItem, sPath, fCallback, fLimitCallbackProxy) { if (oItem && !isUndefined(oItem['name'])) { sPath = sPath || ''; if (oItem['isFile']) { oItem.file(function (oFile) { if (!bUseLimit || 0 <= --iLimit) { fCallback(getDataFromFile(oFile, sPath)); } else if (bUseLimit && !bCallLimit) { if (0 > iLimit && fLimitCallback) { bCallLimit = true; fLimitCallback(iInputLimit); } } }); } else if (bAllowFolderDragAndDrop && oItem['isDirectory'] && oItem['createReader']) { var oDirReader = oItem['createReader'](), iIndex = 0, iLen = 0 ; if (oDirReader && oDirReader['readEntries']) { oDirReader['readEntries'](function (aEntries) { if (aEntries && Types.isNonEmptyArray(aEntries)) { for (iIndex = 0, iLen = aEntries.length; iIndex < iLen; iIndex++) { fTraverseFileTree(aEntries[iIndex], sPath + oItem['name'] + '/', fCallback, fLimitCallbackProxy); } } else { fEmptyFolderCallback(oItem); } }); } } } } ; bAllowFolderDragAndDrop = isUndefined(bAllowFolderDragAndDrop) ? true : !!bAllowFolderDragAndDrop; bEntry = isUndefined(bEntry) ? false : !!bEntry; iLimit = isUndefined(iLimit) ? iDefLimit : Types.pInt(iLimit); iInputLimit = iLimit; bUseLimit = 0 < iLimit; aItems = aItems && 0 < aItems.length ? aItems : null; if (aItems) { for (iIndex = 0, iLen = aItems.length; iIndex < iLen; iIndex++) { oItem = aItems[iIndex]; if (oItem) { if (bEntry) { if ('file' === oItem['kind'] && oItem['webkitGetAsEntry']) { oEntry = oItem['webkitGetAsEntry'](); if (oEntry) { fTraverseFileTree(oEntry, '', fFileCallback, fLimitCallback); } } } else { if (!bUseLimit || 0 <= --iLimit) { fFileCallback(getDataFromFile(oItem)); } else if (bUseLimit && !bCallLimit) { if (0 > iLimit && fLimitCallback) { bCallLimit = true; fLimitCallback(iInputLimit); } } } } } } } /** * @param {*} oInput * @param {Function} fFileCallback * @param {number=} iLimit = 20 * @param {Function=} fLimitCallback */ function getDataFromInput(oInput, fFileCallback, iLimit, fLimitCallback) { var aFiles = oInput && oInput.files && 0 < oInput.files.length ? oInput.files : null; if (aFiles) { getDataFromFiles(aFiles, fFileCallback, false, false, () => {}, iLimit, fLimitCallback); } else { fFileCallback({ 'FileName': oInput.value.split('\\').pop().split('/').pop(), 'Size': null, 'Type': null, 'Folder': '', 'File' : null }); } } function eventContainsFiles(oEvent) { var bResult = false; if (oEvent && oEvent.dataTransfer && oEvent.dataTransfer.types && oEvent.dataTransfer.types.length) { var iIindex = 0, iLen = oEvent.dataTransfer.types.length ; for (; iIindex < iLen; iIindex++) { if (oEvent.dataTransfer.types[iIindex].toLowerCase() === 'files') { bResult = true; break; } } } return bResult; } /** * @param {Event} oEvent * @param {Function} fFileCallback * @param {Function=} fEmptyFolderCallback * @param {number=} iLimit = 20 * @param {Function=} fLimitCallback * @param {boolean=} bAllowFolderDragAndDrop = true */ function getDataFromDragEvent(oEvent, fFileCallback, fEmptyFolderCallback, iLimit, fLimitCallback, bAllowFolderDragAndDrop) { var aItems = null, aFiles = null ; oEvent = getEvent(oEvent); if (oEvent) { aItems = (oEvent.dataTransfer ? getValue(oEvent.dataTransfer, 'items', null) : null) || getValue(oEvent, 'items', null); if (aItems && 0 < aItems.length && aItems[0] && aItems[0]['webkitGetAsEntry']) { getDataFromFiles(aItems, fFileCallback, true, bAllowFolderDragAndDrop, fEmptyFolderCallback, iLimit, fLimitCallback); } else if (eventContainsFiles(oEvent)) { aFiles = (getValue(oEvent, 'files', null) || (oEvent.dataTransfer ? getValue(oEvent.dataTransfer, 'files', null) : null)); if (aFiles && 0 < aFiles.length) { getDataFromFiles(aFiles, fFileCallback, false, false, fEmptyFolderCallback, iLimit, fLimitCallback); } } } } function createNextLabel() { return $('
').css({ 'opacity': 0 }); } /** * @param {string} sInputPos * @param {string=} sAccept = '' * @return {?Object} */ function createNextInput(sInputPos, sAccept) { if (sAccept !== '') { sAccept = ' accept="' + sAccept + '"'; } return $('
'); } /** * @param {string=} sName * @param {boolean=} bMultiple = true * @param {string=} sInputPos = 'left' * @param {string=} sAccept = '' * @return {?Object} */ function getNewInput(sName, bMultiple, sInputPos, sAccept) { sName = isUndefined(sName) ? '' : sName.toString(); sInputPos = isUndefined(sInputPos) ? 'left' : sInputPos.toString(); sAccept = isUndefined(sAccept) ? '' : sAccept.toString(); var oLocal = createNextInput(sInputPos, sAccept); if (0 < sName.length) { oLocal.attr('name', sName); } if (isUndefined(bMultiple) ? true : bMultiple) { oLocal.prop('multiple', true); } return oLocal; } /** * @param {?} mStringOrFunction * @param {Array=} aFunctionParams * @return {string} */ function getStringOrCallFunction(mStringOrFunction, aFunctionParams) { return Types.pString(_.isFunction(mStringOrFunction) ? mStringOrFunction.apply(null, _.isArray(aFunctionParams) ? aFunctionParams : []) : mStringOrFunction); } /** * @constructor * @param {CJua} oJua * @param {Object} oOptions */ function AjaxDriver(oJua, oOptions) { this.oXhrs = {}; this.oUids = {}; this.oJua = oJua; this.oOptions = oOptions; } /** * @type {Object} */ AjaxDriver.prototype.oXhrs = {}; /** * @type {Object} */ AjaxDriver.prototype.oUids = {}; /** * @type {?CJua} */ AjaxDriver.prototype.oJua = null; /** * @type {Object} */ AjaxDriver.prototype.oOptions = {}; /** * @return {boolean} */ AjaxDriver.prototype.isDragAndDropSupported = function () { return true; }; /** * @param {string} sUid */ AjaxDriver.prototype.regTaskUid = function (sUid) { this.oUids[sUid] = true; }; /** * @param {string} sUid * @param {object} oFileInfo * @param {object} oParsedHiddenParameters * @param {function} fCallback * @param {boolean} bSkipCompleteFunction * @param {boolean} bUseResponce * @param {number} iProgressOffset * @returns {Boolean} */ AjaxDriver.prototype.uploadTask = function (sUid, oFileInfo, oParsedHiddenParameters, fCallback, bSkipCompleteFunction, bUseResponce, iProgressOffset) { if (false === this.oUids[sUid] || !oFileInfo || !oFileInfo['File']) { fCallback(null, sUid); return false; } try { var self = this, oXhr = new XMLHttpRequest(), oFormData = new FormData(), sAction = getValue(this.oOptions, 'action', ''), aHidden = _.clone(getValue(this.oOptions, 'hidden', {})), fStartFunction = this.oJua.getEvent('onStart'), fCompleteFunction = this.oJua.getEvent('onComplete'), fProgressFunction = this.oJua.getEvent('onProgress') ; oXhr.open('POST', sAction, true); oXhr.setRequestHeader('Authorization', 'Bearer ' + $.cookie('AuthToken')); oXhr.setRequestHeader('X-Client', 'WebClient'); oXhr.setRequestHeader('X-DeviceId', App.getCurrentDeviceId()); if (fProgressFunction && oXhr.upload) { oXhr.upload.onprogress = function (oEvent) { if (oEvent && oEvent.lengthComputable && !isUndefined(oEvent.loaded) && !isUndefined(oEvent.total)) { if (typeof iProgressOffset === 'undefined') { fProgressFunction(sUid, oEvent.loaded, oEvent.total); } else { fProgressFunction(sUid, (iProgressOffset + oEvent.loaded) > oFileInfo.Size ? oFileInfo.Size : iProgressOffset + oEvent.loaded, oFileInfo.Size); } } }; } oXhr.onreadystatechange = function () { if (4 === oXhr.readyState && 200 === oXhr.status) { if (fCompleteFunction && !bSkipCompleteFunction) { var bResult = false, oResult = null ; try { oResult = $.parseJSON(oXhr.responseText); bResult = true; } catch (oException) { oResult = null; } fCompleteFunction(sUid, bResult, oResult); } if (!isUndefined(self.oXhrs[sUid])) { self.oXhrs[sUid] = null; } if (bUseResponce) { fCallback(oXhr.responseText, sUid); } else { fCallback(null, sUid); } } else { if (4 === oXhr.readyState) { fCompleteFunction(sUid, false, null); fCallback(null, sUid); } } }; if (fStartFunction) { fStartFunction(sUid); } oFormData.append('jua-post-type', 'ajax'); oFormData.append(getValue(this.oOptions, 'name', 'juaFile'), oFileInfo['File'], oFileInfo['FileName']); //extending jua hidden parameters with file hidden parameters oParsedHiddenParameters = _.extend(oParsedHiddenParameters, oFileInfo.Hidden || {}); aHidden.Parameters = JSON.stringify(oParsedHiddenParameters); $.each(aHidden, function (sKey, mValue) { oFormData.append(sKey, getStringOrCallFunction(mValue, [oFileInfo])); }); oXhr.send(oFormData); this.oXhrs[sUid] = oXhr; return true; } catch (oError) { if (window.console) { window.console.error(oError); } } fCallback(null, sUid); return false; }; AjaxDriver.prototype.generateNewInput = function (oClickElement) { var self = this, oLabel = null, oInput = null ; if (oClickElement) { oInput = getNewInput('', !getValue(this.oOptions, 'disableMultiple', false), getValue(this.oOptions, 'hiddenElementsPosition', 'left'), getValue(this.oOptions, 'accept', '')); oLabel = createNextLabel(); oLabel.append(oInput); $(oClickElement).append(oLabel); oInput .on('click', function (event) { if (!self.oJua.bEnableButton) { event.preventDefault(); return; } var fOn = self.oJua.getEvent('onDialog'); if (fOn) { fOn(); } }) .on('change', function () { getDataFromInput(this, function (oFile) { self.oJua.addNewFile(oFile); self.generateNewInput(oClickElement); setTimeout(function () { oLabel.remove(); }, 10); }, getValue(self.oOptions, 'multipleSizeLimit', iDefLimit), self.oJua.getEvent('onLimitReached') ); }) ; } }; AjaxDriver.prototype.cancel = function (sUid) { this.oUids[sUid] = false; if (this.oXhrs[sUid]) { try { if (this.oXhrs[sUid].abort) { this.oXhrs[sUid].abort(); } } catch (oError) { } this.oXhrs[sUid] = null; } }; /** * @constructor * @param {CJua} oJua * @param {Object} oOptions */ function IframeDriver(oJua, oOptions) { this.oUids = {}; this.oForms = {}; this.oJua = oJua; this.oOptions = oOptions; } /** * @type {Object} */ IframeDriver.prototype.oUids = {}; /** * @type {Object} */ IframeDriver.prototype.oForms = {}; /** * @type {?CJua} */ IframeDriver.prototype.oJua = null; /** * @type {Object} */ IframeDriver.prototype.oOptions = {}; /** * @return {boolean} */ IframeDriver.prototype.isDragAndDropSupported = function () { return false; }; /** * @param {string} sUid */ IframeDriver.prototype.regTaskUid = function (sUid) { this.oUids[sUid] = true; }; /** * @param {string} sUid * @param {object} oFileInfo * @param {object} oParsedHiddenParameters * @param {function} fCallback * @param {boolean} bSkipCompleteFunction * @param {boolean} bUseResponce * @param {number} iProgressOffset * @returns {Boolean} */ IframeDriver.prototype.uploadTask = function (sUid, oFileInfo, oParsedHiddenParameters, fCallback, bSkipCompleteFunction, bUseResponce, iProgressOffset) { if (false === this.oUids[sUid]) { fCallback(null, sUid); return false; } var oForm = this.oForms[sUid], aHidden = _.clone(getValue(this.oOptions, 'hidden', {})), fStartFunction = this.oJua.getEvent('onStart'), fCompleteFunction = this.oJua.getEvent('onComplete') ; if (oForm) { oForm.append($('
').attr('name', 'jua-post-type').val('iframe')); //extending jua hidden parameters with file hidden parameters oParsedHiddenParameters = _.extend(oParsedHiddenParameters, oFileInfo.Hidden || {}); aHidden.Parameters = JSON.stringify(oParsedHiddenParameters); $.each(aHidden, function (sKey, sValue) { oForm.append($('
').attr('name', sKey).val(getStringOrCallFunction(sValue, [oFileInfo]))); }); oForm.trigger('submit'); if (fStartFunction) { fStartFunction(sUid); } oForm.find('iframe').on('load', function (oEvent) { var bResult = false, oIframeDoc = null, oResult = {} ; if (fCompleteFunction) { try { oIframeDoc = this.contentDocument ? this.contentDocument: this.contentWindow.document; oResult = $.parseJSON(oIframeDoc.body.innerHTML); bResult = true; } catch (oErr) { oResult = {}; } fCompleteFunction(sUid, bResult, oResult); } fCallback(null, sUid); window.setTimeout(function () { oForm.remove(); }, 100); }); } else { fCallback(null, sUid); } return true; }; IframeDriver.prototype.generateNewInput = function (oClickElement) { var self = this, sUid = '', oInput = null, oIframe = null, sAction = getValue(this.oOptions, 'action', ''), oForm = null, sPos = getValue(this.oOptions, 'hiddenElementsPosition', 'left') ; if (oClickElement) { sUid = getNewUid(); oInput = getNewInput(getValue(this.oOptions, 'name', 'juaFile'), !getValue(this.oOptions, 'disableMultiple', false), getValue(this.oOptions, 'hiddenElementsPosition', 'left'), getValue(this.oOptions, 'accept', '')); oForm = $('
'); oIframe = $('
').css({'opacity': 0}); oForm.append(createNextLabel().append(oInput)).append(oIframe); $(oClickElement).append(oForm); this.oForms[sUid] = oForm; oInput .on('click', function (event) { if (!self.oJua.bEnableButton) { event.preventDefault(); return; } var fOn = self.oJua.getEvent('onDialog'); if (fOn) { fOn(); } }) .on('change', function () { getDataFromInput(this, function (oFile) { if (oFile) { var sPos = getValue(self.oOptions, 'hiddenElementsPosition', 'left'); oForm.css({ 'position': 'absolute', 'top': -1000 }); oForm.css(sPos, -1000); self.oJua.addFile(sUid, oFile); self.generateNewInput(oClickElement); } }, getValue(self.oOptions, 'multipleSizeLimit', iDefLimit), self.oJua.getEvent('onLimitReached') ); }) ; } }; IframeDriver.prototype.cancel = function (sUid) { this.oUids[sUid] = false; if (this.oForms[sUid]) { this.oForms[sUid].remove(); this.oForms[sUid] = false; } }; /** * @constructor * @param {Object=} oOptions */ function CJua(oOptions) { oOptions = isUndefined(oOptions) ? {} : oOptions; var self = this; self.bEnableDnD = true; self.bEnableButton = true; self.oEvents = { 'onDialog': null, 'onSelect': null, 'onStart': null, 'onComplete': null, 'onCompleteAll': null, 'onProgress': null, 'onDragEnter': null, 'onDragLeave': null, 'onDrop': null, 'onEmptyFolderDrop': null, 'onBodyDragEnter': null, 'onBodyDragLeave': null, 'onLimitReached': function () { Popups.showPopup(AlertPopup, [TextUtils.i18n('COREWEBCLIENT/ERROR_UPLOAD_NUMBER_LIMIT_PLURAL', { 'NUMBERLIMIT': iDefLimit }, null, iDefLimit)]); } }; self.oOptions = _.extend({ 'action': '', 'name': '', 'hidden': {}, 'queueSize': 10, 'clickElement': false, 'dragAndDropElement': false, 'dragAndDropBodyElement': false, 'disableAjaxUpload': false, 'disableFolderDragAndDrop': true, 'disableDragAndDrop': false, 'disableMultiple': false, 'disableDocumentDropPrevent': false, 'disableAutoUploadOnDrop': false, 'multipleSizeLimit': iDefLimit, 'hiddenElementsPosition': 'left' }, oOptions); self.oQueue = queue(Types.pInt(getValue(self.oOptions, 'queueSize', 10))); if (self.runEvent('onCompleteAll')) { self.oQueue.await(function () { self.runEvent('onCompleteAll'); }); } self.oDriver = self.isAjaxUploaderSupported() && !getValue(self.oOptions, 'disableAjaxUpload', false) ? new AjaxDriver(self, self.oOptions) : new IframeDriver(self, self.oOptions); self.oClickElement = getValue(self.oOptions, 'clickElement', null); if (self.oClickElement) { $(self.oClickElement).css({ 'position': 'relative', 'overflow': 'hidden' }); if ('inline' === $(this.oClickElement).css('display')) { $(this.oClickElement).css('display', 'inline-block'); } this.oDriver.generateNewInput(this.oClickElement); } if (this.oDriver.isDragAndDropSupported() && getValue(this.oOptions, 'dragAndDropElement', false) && !getValue(this.oOptions, 'disableAjaxUpload', false)) { (function (self) { var $doc = $(document), oBigDropZone = $(getValue(self.oOptions, 'dragAndDropBodyElement', false) || $doc), oDragAndDropElement = getValue(self.oOptions, 'dragAndDropElement', false), fHandleDragOver = function (oEvent) { if (self.bEnableDnD && oEvent) { oEvent = getEvent(oEvent); if (oEvent && oEvent.dataTransfer && eventContainsFiles(oEvent)) { try { var sEffect = oEvent.dataTransfer.effectAllowed; mainClearTimeout(self.iDocTimer); oEvent.dataTransfer.dropEffect = (sEffect === 'move' || sEffect === 'linkMove') ? 'move' : 'copy'; oEvent.stopPropagation(); oEvent.preventDefault(); oBigDropZone.trigger('dragover', oEvent); } catch (oExc) {} } } }, fHandleDrop = function (oEvent) { if (self.bEnableDnD && oEvent) { oEvent = getEvent(oEvent); if (oEvent && eventContainsFiles(oEvent)) { oEvent.preventDefault(); getDataFromDragEvent( oEvent, function (oFile) { if (oFile) { if (getValue(self.oOptions, 'disableAutoUploadOnDrop', false)) { self.runEvent('onDrop', [ oFile, oEvent, function () { self.addNewFile(oFile); mainClearTimeout(self.iDocTimer); } ]); } else { self.runEvent('onDrop', [oFile, oEvent]); self.addNewFile(oFile); mainClearTimeout(self.iDocTimer); } } }, self.getEvent('onEmptyFolderDrop'), getValue(self.oOptions, 'multipleSizeLimit', iDefLimit), self.getEvent('onLimitReached'), !getValue(self.oOptions, 'disableFolderDragAndDrop', true) ); } } self.runEvent('onDragLeave', [oEvent]); }, fHandleDragEnter = function (oEvent) { if (self.bEnableDnD && oEvent) { oEvent = getEvent(oEvent); if (oEvent && eventContainsFiles(oEvent)) { mainClearTimeout(self.iDocTimer); oEvent.preventDefault(); self.runEvent('onDragEnter', [oDragAndDropElement, oEvent]); } } }, fHandleDragLeave = function (oEvent) { if (self.bEnableDnD && oEvent) { oEvent = getEvent(oEvent); if (oEvent) { var oRelatedTarget = document['elementFromPoint'] ? document['elementFromPoint'](oEvent['clientX'], oEvent['clientY']) : null; if (oRelatedTarget && contains(this, oRelatedTarget)) { return; } mainClearTimeout(self.iDocTimer); self.runEvent('onDragLeave', [oDragAndDropElement, oEvent]); } return; } } ; if (oDragAndDropElement) { if (!getValue(self.oOptions, 'disableDocumentDropPrevent', false)) { $doc.on('dragover', function (oEvent) { if (self.bEnableDnD && oEvent) { oEvent = getEvent(oEvent); if (oEvent && oEvent.dataTransfer && eventContainsFiles(oEvent)) { try { oEvent.dataTransfer.dropEffect = 'none'; oEvent.preventDefault(); } catch (oExc) {} } } }); } if (oBigDropZone && oBigDropZone[0]) { oBigDropZone .on('dragover', function (oEvent) { if (self.bEnableDnD && oEvent) { mainClearTimeout(self.iDocTimer); } }) .on('dragenter', function (oEvent) { if (self.bEnableDnD && oEvent) { oEvent = getEvent(oEvent); if (oEvent && eventContainsFiles(oEvent)) { mainClearTimeout(self.iDocTimer); oEvent.preventDefault(); self.runEvent('onBodyDragEnter', [oEvent]); } } }) .on('dragleave', function (oEvent) { if (self.bEnableDnD && oEvent) { oEvent = getEvent(oEvent); if (oEvent) { mainClearTimeout(self.iDocTimer); self.iDocTimer = setTimeout(function () { self.runEvent('onBodyDragLeave', [oEvent]); }, 200); } } }) .on('drop', function (oEvent) { if (self.bEnableDnD && oEvent) { oEvent = getEvent(oEvent); if (oEvent) { var bFiles = eventContainsFiles(oEvent); if (bFiles) { oEvent.preventDefault(); } self.runEvent('onBodyDragLeave', [oEvent]); return !bFiles; } } return false; }) ; } $(oDragAndDropElement) .bind('dragenter', fHandleDragEnter) .bind('dragover', fHandleDragOver) .bind('dragleave', fHandleDragLeave) .bind('drop', fHandleDrop) ; } }(self)); } else { self.bEnableDnD = false; } setValue(self, 'on', self.on); setValue(self, 'cancel', self.cancel); setValue(self, 'isDragAndDropSupported', self.isDragAndDropSupported); setValue(self, 'isAjaxUploaderSupported', self.isAjaxUploaderSupported); setValue(self, 'setDragAndDropEnabledStatus', self.setDragAndDropEnabledStatus); } /** * @type {boolean} */ CJua.prototype.bEnableDnD = true; /** * @type {number} */ CJua.prototype.iDocTimer = 0; /** * @type {Object} */ CJua.prototype.oOptions = {}; /** * @type {Object} */ CJua.prototype.oEvents = {}; /** * @type {?Object} */ CJua.prototype.oQueue = null; /** * @type {?Object} */ CJua.prototype.oDriver = null; /** * @param {string} sName * @param {Function} fFunc */ CJua.prototype.on = function (sName, fFunc) { this.oEvents[sName] = fFunc; return this; }; /** * @param {string} sName * @param {string=} aArgs */ CJua.prototype.runEvent = function (sName, aArgs) { if (this.oEvents[sName]) { this.oEvents[sName].apply(null, aArgs || []); } }; /** * @param {string} sName */ CJua.prototype.getEvent = function (sName) { return this.oEvents[sName] || null; }; /** * @param {string} sUid */ CJua.prototype.cancel = function (sUid) { this.oDriver.cancel(sUid); }; /** * @return {boolean} */ CJua.prototype.isAjaxUploaderSupported = function () { return (function () { var oInput = document.createElement('input'); oInput.type = 'file'; return !!('XMLHttpRequest' in window && 'multiple' in oInput && 'FormData' in window && (new XMLHttpRequest()).upload && true); }()); }; /** * @param {boolean} bEnabled */ CJua.prototype.setDragAndDropEnabledStatus = function (bEnabled) { this.bEnableDnD = !!bEnabled; }; /** * @return {boolean} */ CJua.prototype.isDragAndDropSupported = function () { return this.oDriver.isDragAndDropSupported(); }; /** * @param {Object} oFileInfo */ CJua.prototype.addNewFile = function (oFileInfo) { this.addFile(getNewUid(), oFileInfo); }; /** * @param {string} sUid * @param {Object} oFileInfo */ CJua.prototype.addFile = function (sUid, oFileInfo) { var fOnSelect = this.getEvent('onSelect'), fOnChunkReadyCallback = null, bBreakUpload = false, aHidden = getValue(this.oOptions, 'hidden', {}), fCompleteFunction = this.getEvent('onComplete'), fRegularUploadFileCallback = _.bind(function (sUid, oFileInfo) { var aHidden = getValue(this.oOptions, 'hidden', {}), oParsedHiddenParameters = JSON.parse(getStringOrCallFunction(aHidden.Parameters, [oFileInfo])) ; this.oDriver.regTaskUid(sUid); this.oQueue.defer(scopeBind(this.oDriver.uploadTask, this.oDriver), sUid, oFileInfo, oParsedHiddenParameters); }, this), fCancelFunction = this.getEvent('onCancel') ; if (oFileInfo && (!fOnSelect || (false !== fOnSelect(sUid, oFileInfo)))) { // fOnChunkReadyCallback runs when chunk ready for uploading fOnChunkReadyCallback = _.bind(function (sUid, oFileInfo, fProcessNextChunkCallback, iCurrChunk, iChunkNumber, iProgressOffset) { var fOnUploadCallback = null; // fOnUploadCallback runs when server have responded for upload fOnUploadCallback = function (sResponse, sFileUploadUid) { var oResponse = null; try { // Suppress exceptions in the connection failure case oResponse = $.parseJSON(sResponse); } catch (err) { } if (oResponse && oResponse.Result && !oResponse.Result.Error && !oResponse.ErrorCode) {//if response contains result and have no errors fProcessNextChunkCallback(sUid, fOnChunkReadyCallback); } else if (oResponse && oResponse.Result && oResponse.Result.Error) { App.broadcastEvent('Jua::FileUploadingError'); fCompleteFunction(sFileUploadUid, false, {ErrorCode: oResponse.Result.Error}); } else if (oResponse && oResponse.ErrorCode) { App.broadcastEvent('Jua::FileUploadingError'); fCompleteFunction(sFileUploadUid, false, {ErrorCode: oResponse.ErrorCode}); } else { App.broadcastEvent('Jua::FileUploadingError'); fCompleteFunction(sFileUploadUid, false); } }; var aHidden = getValue(this.oOptions, 'hidden', {}), oParsedHiddenParameters = JSON.parse(getStringOrCallFunction(aHidden.Parameters, [oFileInfo])) ; this.oDriver.regTaskUid(sUid); this.oDriver.uploadTask(sUid, oFileInfo, oParsedHiddenParameters, fOnUploadCallback, iCurrChunk < iChunkNumber, true, iProgressOffset); }, this); var isUploadAvailable = ko.observable(true), oParsedHiddenParameters = JSON.parse(getStringOrCallFunction(aHidden.Parameters, [oFileInfo])) ; App.broadcastEvent('Jua::FileUpload::isUploadAvailable', { isUploadAvailable: isUploadAvailable, sModuleName: aHidden.Module, sUid: sUid, oFileInfo: oFileInfo }); if (isUploadAvailable()) { bBreakUpload = App.broadcastEvent('Jua::FileUpload::before', { sUid: sUid, oFileInfo: oFileInfo, fOnChunkReadyCallback: fOnChunkReadyCallback, sModuleName: aHidden.Module, fRegularUploadFileCallback: fRegularUploadFileCallback, fCancelFunction: fCancelFunction, sStorageType: oParsedHiddenParameters.Type }); if (bBreakUpload === false) { fRegularUploadFileCallback(sUid, oFileInfo); } } else if(_.isFunction(fCancelFunction)) { fCancelFunction(sUid); } } else { this.oDriver.cancel(sUid); } }; /** * @param {string} sName * @param {mixed} mValue */ CJua.prototype.setOption = function (sName, mValue) { this.oOptions[sName] = mValue; }; module.exports = CJua; /***/ }), /***/ "jNBr": /*!*******************************************************!*\ !*** ./modules/CoreWebclient/js/models/CDateModel.js ***! \*******************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; var moment = __webpack_require__(/*! moment */ "sdEb"), TextUtils = __webpack_require__(/*! modules/CoreWebclient/js/utils/Text.js */ "H20a"), Utils = __webpack_require__(/*! modules/CoreWebclient/js/utils/Common.js */ "REt5"), UserSettings = __webpack_require__(/*! modules/CoreWebclient/js/Settings.js */ "OfVV") ; /** * @constructor */ function CDateModel() { this.iTimeStampInUTC = 0; this.oMoment = null; } /** * @param {number} iTimeStampInUTC */ CDateModel.prototype.parse = function (iTimeStampInUTC) { this.iTimeStampInUTC = iTimeStampInUTC; this.oMoment = moment.unix(this.iTimeStampInUTC); }; /** * @param {number} iYear * @param {number} iMonth * @param {number} iDay */ CDateModel.prototype.setDate = function (iYear, iMonth, iDay) { this.oMoment = moment([iYear, iMonth, iDay]); }; /** * @return {string} */ CDateModel.prototype.getTimeFormat = function () { return (UserSettings.timeFormat() === window.Enums.TimeFormat.F24) ? 'HH:mm' : 'hh:mm A'; }; /** * @return {string} */ CDateModel.prototype.getFullDate = function () { return this.getDate() + ' ' + this.getTime(); }; /** * @return {string} */ CDateModel.prototype.getMidDate = function () { return this.getShortDate(true); }; /** * @param {boolean=} bTime = false * * @return {string} */ CDateModel.prototype.getShortDate = function (bTime) { var sResult = '', oMomentNow = null ; if (this.oMoment) { oMomentNow = moment(); if (oMomentNow.format('L') === this.oMoment.format('L')) { sResult = this.oMoment.format(this.getTimeFormat()); } else { if (oMomentNow.clone().subtract(1, 'days').format('L') === this.oMoment.format('L')) { sResult = TextUtils.i18n('COREWEBCLIENT/LABEL_YESTERDAY'); } else { if (UserSettings.UserSelectsDateFormat) { sResult = this.oMoment.format(Utils.getDateFormatForMoment(UserSettings.dateFormat())); } else { if (oMomentNow.year() === this.oMoment.year()) { sResult = this.oMoment.format('MMM D'); } else { sResult = this.oMoment.format('MMM D, YYYY'); } } } if (!!bTime) { sResult += ', ' + this.oMoment.format(this.getTimeFormat()); } } } return sResult; }; /** * @return {string} */ CDateModel.prototype.getDate = function () { var sFormat = 'ddd, MMM D, YYYY'; if (UserSettings.UserSelectsDateFormat) { sFormat = 'ddd, ' + Utils.getDateFormatForMoment(UserSettings.dateFormat()); } return (this.oMoment) ? this.oMoment.format(sFormat) : ''; }; /** * @return {string} */ CDateModel.prototype.getTime = function () { return (this.oMoment) ? this.oMoment.format(this.getTimeFormat()): ''; }; /** * @return {number} */ CDateModel.prototype.getTimeStampInUTC = function () { return this.iTimeStampInUTC; }; module.exports = CDateModel; /***/ }), /***/ "l6qN": /*!***************************************************!*\ !*** ./modules/CoreWebclient/js/vendors/queue.js ***! \***************************************************/ /***/ ((module, exports, __webpack_require__) => { var __WEBPACK_AMD_DEFINE_RESULT__;!function(){function n(n){function e(){for(;i=a
p;){var u=a++,e=c[u],o=t.call(e,1);o.push(l(u)),++p,e[0].apply(null,o)}}function l(n){return function(u,t){--p,null==s&&(null!=u?(s=u,a=d=0/0,o()):(c[n]=t,--d?i||e():o()))}}function o(){null!=s?m(s):f?m(s,c):m.apply(null,[s].concat(c))}var r,i,f,c=[],a=0,p=0,d=0,s=null,m=u;return n||(n=1/0),r={defer:function(){return s||(c.push(arguments),++d,e()),r},await:function(n){return m=n,f=!1,d||o(),r},awaitAll:function(n){return m=n,f=!0,d||o(),r}}}function u(){}var t=[].slice;n.version="1.0.7", true?!(__WEBPACK_AMD_DEFINE_RESULT__ = (function(){return n}).call(exports, __webpack_require__, exports, module), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)):0}(); /***/ }) }]);