sirius-common-utils 1.0.28 → 1.0.29
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -212,22 +212,12 @@ function userHasRole(roleCodeOrArray) {
|
|
|
212
212
|
return _$1.includes(currUserInfoCache.roleList, roleCodeOrArray);
|
|
213
213
|
}
|
|
214
214
|
}
|
|
215
|
-
function buildUserAuthorization() {
|
|
216
|
-
let currUserInfo = getCurrUserInfoCache();
|
|
217
|
-
if (currUserInfo && currUserInfo.accessToken) {
|
|
218
|
-
return {
|
|
219
|
-
authorization: currUserInfo.accessToken
|
|
220
|
-
};
|
|
221
|
-
}
|
|
222
|
-
return {};
|
|
223
|
-
}
|
|
224
215
|
const LoginUserUtils = {
|
|
225
216
|
init: init$2,
|
|
226
217
|
clear,
|
|
227
218
|
getCurrUserInfo,
|
|
228
219
|
getCurrUserInfoCache,
|
|
229
220
|
getCurrUserId,
|
|
230
|
-
buildUserAuthorization,
|
|
231
221
|
userHasRole,
|
|
232
222
|
isMobileDevice: isMobileDevice$1
|
|
233
223
|
};
|
|
@@ -253,6 +243,15 @@ function init$1(pAxios, pContext, pSpinHandlerInstance, pDialogUtilsInstance, pL
|
|
|
253
243
|
globalSpinHandlerInstance = pSpinHandlerInstance;
|
|
254
244
|
loginServiceInstance = pLoginServiceInstance;
|
|
255
245
|
}
|
|
246
|
+
let AUTHENTICATION = AppUtils.getLocalStorageObjItem("CURRENT_AUTHENTICATION") || {
|
|
247
|
+
"header": {
|
|
248
|
+
"authorization": null
|
|
249
|
+
}
|
|
250
|
+
};
|
|
251
|
+
function updateAuthentication(authentication) {
|
|
252
|
+
AUTHENTICATION = authentication;
|
|
253
|
+
AppUtils.setLocalStorageObjItem("CURRENT_AUTHENTICATION", authentication);
|
|
254
|
+
}
|
|
256
255
|
function getHostName() {
|
|
257
256
|
return window.location.hostname;
|
|
258
257
|
}
|
|
@@ -522,8 +521,7 @@ function execute(method, url, data, headers, onUploadProgress, customizedOptions
|
|
|
522
521
|
});
|
|
523
522
|
}
|
|
524
523
|
async function buildUserAccessToken(headers) {
|
|
525
|
-
|
|
526
|
-
_$1.each(authorizations, function(value, key) {
|
|
524
|
+
_$1.each(AUTHENTICATION == null ? void 0 : AUTHENTICATION.header, function(value, key) {
|
|
527
525
|
headers[key] = value;
|
|
528
526
|
});
|
|
529
527
|
}
|
|
@@ -601,7 +599,9 @@ const AxiosUtils = {
|
|
|
601
599
|
handlerError,
|
|
602
600
|
getErrorMsgByCode,
|
|
603
601
|
RESULT,
|
|
604
|
-
EXCEPTION_CODE
|
|
602
|
+
EXCEPTION_CODE,
|
|
603
|
+
AUTHENTICATION,
|
|
604
|
+
updateAuthentication
|
|
605
605
|
};
|
|
606
606
|
var commonjsGlobal = typeof globalThis !== "undefined" ? globalThis : typeof window !== "undefined" ? window : typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : {};
|
|
607
607
|
function getDefaultExportFromCjs(x) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sirius-common-utils.js","sources":["../src/packages/utils/CfgUtils.js","../src/packages/utils/AppUtils.js","../src/packages/utils/LoginUserUtils.js","../src/packages/utils/AxiosUtils.js","../node_modules/dayjs/plugin/updateLocale.js","../node_modules/dayjs/plugin/customParseFormat.js","../node_modules/dayjs/plugin/utc.js","../src/packages/utils/DateUtils.js","../src/packages/utils/DomUtils.js","../src/packages/utils/ExplorerTypeUtils.js","../src/packages/utils/FormUtils.js","../src/packages/utils/JsonUtils.js","../src/packages/utils/NumberUtils.js","../src/packages/utils/SignatureUtils.js","../src/packages/utils/StringUtils.js"],"sourcesContent":["export default {\r\n //Application Configuration\r\n appInfo: {\r\n appName: 'XMS', //application name\r\n frontEndValueEncodeFlag: false, //need to encode for LocalStorage values\r\n needFrontEndExceptionStatisticsFlag: true, //need trace front-end logs\r\n },\r\n //Ajax Configuration\r\n ajax:{\r\n timeOut: 60000, //Timeout\r\n },\r\n sysCfg: {\r\n ibmsEnabled: true,\r\n }\r\n};\r\n","import _ from 'lodash';\r\n\r\nimport {Base64} from 'js-base64';\r\nimport CfgUtils from \"./CfgUtils\";\r\n\r\n//appVersion\r\nfunction setAppVersion(version) {\r\n setLocalStorageStringItem(\"APP_VERSION\", version);\r\n}\r\n\r\nfunction getAppVersion() {\r\n return getLocalStorageStringItem(\"APP_VERSION\");\r\n}\r\n\r\n//app build version\r\nfunction setBuildVersion(version) {\r\n setLocalStorageStringItem(\"BUILD_VERSION\", version);\r\n}\r\n\r\nfunction getBuildVersion() {\r\n return getLocalStorageStringItem(\"BUILD_VERSION\");\r\n}\r\n\r\n//app cache version\r\nfunction setAppCacheVersion(version) {\r\n setLocalStorageStringItem(\"APP_CACHE_VERSION\", version);\r\n}\r\n\r\nfunction getAppCacheVersion() {\r\n return getLocalStorageStringItem(\"APP_CACHE_VERSION\");\r\n}\r\n\r\n\r\n/**\r\n * 检查LocalStorage中是否存在该键\r\n */\r\nfunction isLocalStorageItemExisted(key){\r\n let realKey = CfgUtils.appInfo.appName + '_' + key;\r\n let obj = localStorage.getItem(realKey);\r\n return obj !=null;\r\n}\r\n\r\nfunction removeLocalStorageItem(key, obj) {\r\n let realKey = CfgUtils.appInfo.appName + '_' + key;\r\n localStorage.removeItem(realKey);\r\n}\r\n\r\n/**\r\n * String类型的数据存储\r\n */\r\nfunction setLocalStorageStringItem(key, obj) {\r\n let realKey = CfgUtils.appInfo.appName + '_' + key;\r\n let realValue = obj;\r\n localStorage.setItem(realKey, encode(realValue));\r\n}\r\n\r\nfunction getLocalStorageStringItem(key) {\r\n let realKey = CfgUtils.appInfo.appName + '_' + key;\r\n let obj = decode(localStorage.getItem(realKey));\r\n return obj;\r\n}\r\n\r\n/**\r\n * Object类型的数据存储\r\n */\r\n\r\nfunction setLocalStorageObjItem(key, obj) {\r\n let realKey = CfgUtils.appInfo.appName + '_' + key;\r\n localStorage.setItem(realKey, encode(JSON.stringify(obj)));\r\n}\r\n\r\nfunction getLocalStorageObjItem(key) {\r\n let realKey = CfgUtils.appInfo.appName + '_' + key;\r\n let obj = null;\r\n try {\r\n let jsonVal = localStorage.getItem(realKey);\r\n obj = JSON.parse(decode(jsonVal));\r\n } catch (e) {\r\n }\r\n return obj;\r\n}\r\n\r\nfunction atomSetLocalStorageObjItem(key, obj){\r\n setLocalStorageObjItem(key, obj);\r\n}\r\n\r\nfunction atomGetLocalStorageObjItem(key){\r\n let result = getLocalStorageObjItem(key);\r\n setLocalStorageObjItem(key, null);\r\n return result;\r\n}\r\n\r\nfunction pushLocalStorageStringItem(key, obj){\r\n setLocalStorageStringItem(key, obj);\r\n}\r\n\r\nfunction popLocalStorageStringItem(key){\r\n let result = getLocalStorageStringItem(key);\r\n removeLocalStorageItem(key);\r\n return result;\r\n}\r\n\r\nfunction atomSetSessionStorageObjItem(key, obj){\r\n setSessionStorageObjItem(key, obj);\r\n}\r\n\r\nfunction atomGetSessionStorageObjItem(key){\r\n let result = getSessionStorageObjItem(key);\r\n setSessionStorageObjItem(key, null);\r\n return result;\r\n}\r\n\r\nfunction setSessionStorageObjItem(key, obj) {\r\n let realKey = CfgUtils.appInfo.appName + '_' + key;\r\n sessionStorage.setItem(realKey, encode(JSON.stringify(obj)));\r\n}\r\n\r\nfunction getSessionStorageObjItem(key) {\r\n let realKey = CfgUtils.appInfo.appName + '_' + key;\r\n let obj = null;\r\n try {\r\n let jsonVal = sessionStorage.getItem(realKey);\r\n obj = JSON.parse(decode(jsonVal));\r\n } catch (e) {\r\n }\r\n return obj;\r\n}\r\n\r\nfunction encode(originalValue){\r\n if(!originalValue){\r\n return originalValue;\r\n }\r\n if(!CfgUtils.appInfo.frontEndValueEncodeFlag){\r\n return originalValue;\r\n }\r\n return Base64.encode(originalValue);\r\n}\r\n\r\nfunction decode(encodeValue){\r\n if(!encodeValue){\r\n return encodeValue;\r\n }\r\n if(!CfgUtils.appInfo.frontEndValueEncodeFlag){\r\n return encodeValue;\r\n }\r\n return Base64.decode(encodeValue);\r\n}\r\n\r\nexport default {\r\n setAppVersion: setAppVersion,\r\n getAppVersion: getAppVersion,\r\n setBuildVersion: setBuildVersion,\r\n getBuildVersion: getBuildVersion,\r\n setAppCacheVersion: setAppCacheVersion,\r\n getAppCacheVersion: getAppCacheVersion,\r\n\r\n atomSetLocalStorageObjItem: atomSetLocalStorageObjItem,\r\n atomGetLocalStorageObjItem: atomGetLocalStorageObjItem,\r\n pushLocalStorageStringItem: pushLocalStorageStringItem,\r\n popLocalStorageStringItem: popLocalStorageStringItem,\r\n\r\n isLocalStorageItemExisted: isLocalStorageItemExisted,\r\n setLocalStorageObjItem: setLocalStorageObjItem,\r\n getLocalStorageObjItem: getLocalStorageObjItem,\r\n setLocalStorageStringItem: setLocalStorageStringItem,\r\n getLocalStorageStringItem: getLocalStorageStringItem,\r\n\r\n atomSetSessionStorageObjItem: atomSetSessionStorageObjItem,\r\n atomGetSessionStorageObjItem: atomGetSessionStorageObjItem,\r\n\r\n setSessionStorageObjItem: setSessionStorageObjItem,\r\n getSessionStorageObjItem: getSessionStorageObjItem,\r\n};\r\n","/**\r\n * getCurrUserInfo\r\n */\r\nimport AxiosUtils from \"./AxiosUtils\";\r\nimport _ from \"lodash\";\r\nimport AppUtils from \"./AppUtils\";\r\n\r\n\r\nasync function init(\r\n deviceType,\r\n pCurrUserInfoCache,\r\n pCustomizedUserUtils,\r\n pUriGetCurrUserInfo,\r\n) {\r\n if (pCurrUserInfoCache) {\r\n currUserInfoCache = pCurrUserInfoCache;\r\n AppUtils.setLocalStorageObjItem(\"CURRENT_USER\", currUserInfoCache);\r\n }\r\n\r\n customizedUserUtils = pCustomizedUserUtils;\r\n uriGetCurrUserInfo = pUriGetCurrUserInfo || `/api/user/getCurrUserInfo`;\r\n\r\n setDeviceType(deviceType);\r\n}\r\n\r\nasync function clear() {\r\n currUserInfoCache = null;\r\n AppUtils.setLocalStorageObjItem(\"CURRENT_USER\", null);\r\n}\r\n\r\nfunction setDeviceType(deviceType) {\r\n if (deviceType === 'MOBILE') {\r\n AppUtils.setLocalStorageStringItem(\"DEVICE_TYPE\", \"MOBILE\");\r\n } else {\r\n AppUtils.setLocalStorageStringItem(\"DEVICE_TYPE\", \"WEB\");\r\n }\r\n}\r\n\r\nfunction isMobileDevice() {\r\n let deviceType = AppUtils.getLocalStorageStringItem(\"DEVICE_TYPE\");\r\n return deviceType === 'MOBILE';\r\n}\r\n\r\nlet customizedUserUtils = null;\r\nlet currUserInfoCache = null;\r\n\r\nasync function getCurrUserInfo() {\r\n if (customizedUserUtils && customizedUserUtils.getUserInfo) {\r\n let currUser = await customizedUserUtils.getUserInfo();\r\n currUserInfoCache = currUser;\r\n AppUtils.setLocalStorageObjItem(\"CURRENT_USER\", currUser);\r\n\r\n return currUser;\r\n } else {\r\n let currUser = await AxiosUtils.getJsonData(uriGetCurrUserInfo);\r\n currUserInfoCache = currUser;\r\n AppUtils.setLocalStorageObjItem(\"CURRENT_USER\", currUser);\r\n return currUser;\r\n }\r\n}\r\n\r\nfunction getCurrUserInfoCache() {\r\n if (currUserInfoCache != null) {\r\n return currUserInfoCache;\r\n }\r\n\r\n currUserInfoCache = AppUtils.getLocalStorageObjItem(\"CURRENT_USER\");\r\n if (currUserInfoCache != null) {\r\n return currUserInfoCache;\r\n }\r\n\r\n\r\n // console.debug(\"Please invoke getCurrUserInfo first\");\r\n return null;\r\n}\r\n\r\nfunction getCurrUserId() {\r\n return getCurrUserInfoCache()?.id;\r\n}\r\n\r\n\r\nlet uriGetCurrUserInfo = null;\r\n\r\n\r\n/**\r\n * check user role\r\n */\r\nfunction userHasRole(roleCodeOrArray) {\r\n if (currUserInfoCache == null) {\r\n return false;\r\n }\r\n\r\n if (_.isArray(roleCodeOrArray)) {\r\n return !_.isEmpty(_.intersection(currUserInfoCache.roleList, roleCodeOrArray));\r\n } else {\r\n return _.includes(currUserInfoCache.roleList, roleCodeOrArray);\r\n }\r\n}\r\n\r\nfunction buildUserAuthorization() {\r\n let currUserInfo = getCurrUserInfoCache();\r\n if (currUserInfo && currUserInfo.accessToken) {\r\n return {\r\n authorization: currUserInfo.accessToken\r\n }\r\n }\r\n return {};\r\n}\r\n\r\nexport default {\r\n init: init,\r\n clear: clear,\r\n getCurrUserInfo: getCurrUserInfo,\r\n getCurrUserInfoCache: getCurrUserInfoCache,\r\n getCurrUserId: getCurrUserId,\r\n buildUserAuthorization: buildUserAuthorization,\r\n userHasRole: userHasRole,\r\n\r\n isMobileDevice: isMobileDevice,\r\n\r\n};\r\n","import _ from 'lodash';\r\n\r\nimport CfgUtils from \"./CfgUtils\";\r\nimport LoginUserUtils from \"./LoginUserUtils\";\r\n\r\nlet axios = null;\r\nlet urlContext = null; //URL路径前缀\r\n\r\nlet RESULT = {\r\n SUCCESS: 200,\r\n};\r\n\r\n\r\nlet EXCEPTION_CODE = {\r\n AUTHENTICATION_FAILED_COMMON: 901,\r\n AUTHENTICATION_SESSION_EXPIRED: 905,\r\n NETWORK_ISSUE_CLIENT: 911,\r\n SYS_UNKNOWN_ISSUE: 999,\r\n}\r\n\r\nlet globalDialogUtilsInstance;\r\nlet globalSpinHandlerInstance;\r\nlet loginServiceInstance;\r\n\r\nfunction init(pAxios, pContext, pSpinHandlerInstance, pDialogUtilsInstance, pLoginServiceInstance) {\r\n axios = pAxios;\r\n\r\n // axios.defaults.baseURL = getPath(\"/xms-test\");\r\n axios.defaults.baseURL = getPath(pContext);\r\n axios.defaults.timeout = CfgUtils.ajax.timeout;\r\n\r\n globalDialogUtilsInstance = pDialogUtilsInstance;\r\n globalSpinHandlerInstance = pSpinHandlerInstance;\r\n loginServiceInstance = pLoginServiceInstance;\r\n}\r\n\r\nfunction getHostName() {\r\n return window.location.hostname;\r\n}\r\n\r\n/**\r\n *\r\n */\r\nfunction loadParamFromLocationSearch(paramKey) {\r\n var paramsStr = window.location.search;\r\n if (paramsStr.indexOf('?') === 0) {\r\n paramsStr = paramsStr.substring(1);\r\n }\r\n var entryParams = paramsStr.split('&');\r\n var entryParamStr = _.find(entryParams, function (param) {\r\n return param.indexOf(paramKey) === 0;\r\n });\r\n if (!entryParamStr) {\r\n return null;\r\n }\r\n var param = entryParamStr.split('=');\r\n if (!param[1]) {\r\n return null;\r\n }\r\n return param[1];\r\n}\r\n\r\n/**\r\n * get the entire url path\r\n * @param path start with '/'\r\n * @returns {string|*}\r\n */\r\nfunction getPath(path) {\r\n if (_.startsWith(path, \"http\")) {\r\n return path;\r\n }\r\n\r\n if (urlContext == null) {\r\n urlContext = window.document.location.href;\r\n let lastIdx = urlContext.indexOf('.htm');\r\n if (lastIdx > -1) {\r\n urlContext = urlContext.substring(0, urlContext.lastIndexOf('/', lastIdx));\r\n } else {\r\n lastIdx = urlContext.indexOf('/#');\r\n if (lastIdx > -1) {\r\n urlContext = urlContext.substring(0, lastIdx);\r\n } else {\r\n lastIdx = urlContext.indexOf('#');\r\n if (lastIdx > -1) {\r\n urlContext = urlContext.substring(0, lastIdx);\r\n } else {\r\n console.log(`Could not identify URL path ${urlContext}`);\r\n }\r\n }\r\n }\r\n //http://localhost:3000/index.html/#/index/highTriggerWiggleRoomValue -> http://localhost:3000\r\n }\r\n\r\n if (urlContext.endsWith(\"/\")) { //remove the last '/'\r\n urlContext = urlContext.substring(0, urlContext.length - 1);\r\n }\r\n return urlContext + path;\r\n}\r\n\r\n/**\r\n * Download excel from server\r\n */\r\nfunction downloadExcelData(url, data, headers, options = {}) {\r\n return new Promise(async function (resolve, reject) {\r\n headers = headers || {};\r\n if (headers['Content-Type'] == null) {\r\n headers['Content-Type'] = 'application/json';\r\n }\r\n\r\n await buildUserAccessToken(headers);\r\n\r\n try {\r\n let response = await axios({\r\n method: 'post',\r\n url: url,\r\n data: data,\r\n headers: headers,\r\n responseType: 'blob'\r\n });\r\n if (response.data) {\r\n if (response.data.errorCode && response.data.errorCode !== RESULT.SUCCESS) {\r\n let errorResult = await handlerError(url, data, response);\r\n resolve(errorResult);\r\n return;\r\n }\r\n }\r\n\r\n const link = document.createElement('a')\r\n let blob = new Blob([response.data], {type: 'application/vnd.ms-excel'});\r\n let contentDisposition = response.headers[\"content-disposition\"];\r\n\r\n if (contentDisposition == null) {\r\n let errorResult = await handlerError(url, data, {\r\n data: {\r\n errorCode: EXCEPTION_CODE.SYS_UNKNOWN_ISSUE,\r\n error: \"System Error\",\r\n }\r\n });\r\n resolve(errorResult);\r\n return;\r\n }\r\n\r\n let temp = contentDisposition.split(\";\")[1].split(\"ilename=\")[1];\r\n var fileName = decodeURIComponent(temp);\r\n console.log(fileName)\r\n link.style.display = 'none'\r\n link.href = URL.createObjectURL(blob);\r\n link.setAttribute('download', fileName);\r\n document.body.appendChild(link);\r\n link.click();\r\n document.body.removeChild(link);\r\n\r\n resolve(true);\r\n } catch (e) {\r\n let errorResult = await handlerError(url, {}, e);\r\n resolve(errorResult);\r\n }\r\n });\r\n}\r\n\r\n\r\n/**\r\n * Download image from server, and return ImageData blob\r\n */\r\nfunction downloadImageData(url, data, headers, options = {}) {\r\n return new Promise(async function (resolve, reject) {\r\n headers = headers || {};\r\n if (headers['Content-Type'] == null) {\r\n headers['Content-Type'] = 'application/json';\r\n }\r\n\r\n await buildUserAccessToken(headers);\r\n\r\n try {\r\n let response = await axios({\r\n method: 'post',\r\n url: url,\r\n data: data,\r\n headers: headers,\r\n responseType: 'blob'\r\n });\r\n let imageData = response.data;\r\n if (imageData != null) {\r\n if (response.data.errorCode && response.data.errorCode !== RESULT.SUCCESS) {\r\n let errorResult = await handlerError(url, data, response);\r\n resolve(null);\r\n return;\r\n }\r\n }\r\n resolve(imageData);\r\n } catch (e) {\r\n let errorResult = await handlerError(url, {}, e);\r\n resolve(null);\r\n }\r\n });\r\n}\r\n\r\n/**\r\n *\r\n */\r\nfunction downloadServerData(url) {\r\n return new Promise(function (resolve, reject) {\r\n\r\n const hyperlink = document.createElement('a');\r\n hyperlink.style.display = 'none';//隐藏,没必要展示出来\r\n hyperlink.href = url;\r\n hyperlink.target = \"_blank\";\r\n document.body.appendChild(hyperlink);\r\n hyperlink.click();\r\n URL.revokeObjectURL(hyperlink.href); // 释放URL 对象\r\n document.body.removeChild(hyperlink);//下载\r\n\r\n resolve(true);\r\n });\r\n}\r\n\r\n/**\r\n *\r\n */\r\nfunction downloadServerBlobData(url) {\r\n return new Promise(function (resolve, reject) {\r\n axios.get(url, {\r\n responseType: 'blob',\r\n }).then((res) => {\r\n resolve(res.data);\r\n }, (error) => {\r\n resolve(null);\r\n });\r\n });\r\n}\r\n\r\n/**\r\n * upload file to server\r\n * TODO Joey need check with FormData scenario\r\n */\r\nfunction uploadFile(url, file, headers, onUploadProgress, customizedOptions) {\r\n headers = headers || {};\r\n\r\n let formdata = new FormData();\r\n if (_.isArray(file)) {\r\n formdata.append(\"files\", file);\r\n } else {\r\n formdata.append(\"file\", file)\r\n }\r\n\r\n customizedOptions = customizedOptions || {};\r\n return execute(\"POST\", url, formdata, headers, onUploadProgress, customizedOptions)\r\n}\r\n\r\n/**\r\n * getStaticTextFile\r\n */\r\nfunction getStaticTextFile(url) {\r\n return new Promise(async function (resolve, reject) {\r\n axios.get(url).then((res) => {\r\n resolve(res);\r\n }, (error) => {\r\n resolve(null);\r\n });\r\n });\r\n}\r\n\r\n/**\r\n * build form-data from param object\r\n */\r\nfunction getUrlParam(params) {\r\n if (params) {\r\n var param = '';\r\n _.each(params, function (i, val) {\r\n if (i != null) {\r\n param += val + '=' + encodeURIComponent(i) + '&';\r\n } else {\r\n param += val + '=&';\r\n }\r\n });\r\n param = param.substring(0, param.length - 1);\r\n return param;\r\n } else {\r\n return '';\r\n }\r\n}\r\n\r\nfunction getFormData(url, headers, customizedOptions) {\r\n headers = headers || {};\r\n if (headers['Content-Type'] == null) {\r\n headers['Content-Type'] = 'application/x-www-form-urlencoded';\r\n }\r\n\r\n customizedOptions = customizedOptions || {};\r\n\r\n return execute(\"GET\", url, null, headers, null, customizedOptions)\r\n}\r\n\r\nfunction postFormData(url, dataObject, headers, customizedOptions) {\r\n let formdata = null;\r\n if (dataObject) {\r\n formdata = getUrlParam(dataObject);\r\n }\r\n\r\n headers = headers || {};\r\n if (headers['Content-Type'] == null) {\r\n headers['Content-Type'] = 'application/x-www-form-urlencoded';\r\n }\r\n\r\n customizedOptions = customizedOptions || {};\r\n\r\n return execute(\"POST\", url, formdata, headers, null, customizedOptions)\r\n}\r\n\r\nfunction getJsonData(url, headers, customizedOptions) {\r\n headers = headers || {};\r\n if (headers['Content-Type'] == null) {\r\n headers['Content-Type'] = 'application/json';\r\n }\r\n\r\n return execute(\"GET\", url, null, headers, null, customizedOptions)\r\n}\r\n\r\nfunction postJsonData(url, dataObject, headers, customizedOptions) {\r\n headers = headers || {};\r\n if (headers['Content-Type'] == null) {\r\n headers['Content-Type'] = 'application/json';\r\n }\r\n\r\n return execute(\"POST\", url, dataObject, headers, null, customizedOptions)\r\n}\r\n\r\n/**\r\n * General Axios Data request\r\n *\r\n * @param method\r\n * @param url\r\n * @param data\r\n * @param headers\r\n * @param customizedOptions: { }customizedErrorHandlerFlag: false }\r\n */\r\nfunction execute(method, url, data, headers, onUploadProgress, customizedOptions = {}) {\r\n return new Promise(function (resolve, reject) {\r\n //check and set User AccessToken in the request header\r\n buildUserAccessToken(headers).then(\r\n function () {\r\n //AccessToken is valid\r\n axios({\r\n method: method,\r\n url: url,\r\n data: data,\r\n headers: headers,\r\n onUploadProgress: onUploadProgress,\r\n })\r\n .then((response) => {\r\n if (response.data) {\r\n if (response.data.errorCode && response.data.errorCode !== RESULT.SUCCESS) {\r\n if (customizedOptions.customizedErrorHandlerFlag) {\r\n resolve(response.data);\r\n } else {\r\n handlerError(url, data, response).then((result) => {\r\n resolve(result);\r\n });\r\n }\r\n } else {\r\n resolve(response.data);\r\n }\r\n } else {\r\n resolve(response.data);\r\n }\r\n }, (error) => {\r\n if (customizedOptions.customizedErrorHandlerFlag) {\r\n resolve(error);\r\n } else {\r\n handlerError(url, data, error).then((result) => {\r\n resolve(result);\r\n });\r\n }\r\n });\r\n },\r\n (error) => {\r\n //AccessToken is invalid\r\n handlerError(url, data, error).then((result) => {\r\n resolve(result);\r\n });\r\n });\r\n\r\n });\r\n}\r\n\r\nasync function buildUserAccessToken(headers) {\r\n let authorizations = await LoginUserUtils.buildUserAuthorization();\r\n _.each(authorizations, function(value, key){\r\n headers[key] = value;\r\n });\r\n}\r\n\r\n\r\n/**\r\n * build error message base on errorCode\r\n */\r\nfunction getErrorMsgByCode(errorCode, errorMsg) {\r\n return errorMsg;\r\n}\r\n\r\n/**\r\n * request error handler\r\n * if multiple ajax error happened. just process the first one.\r\n */\r\nvar reqErrorInProcessing = false;\r\n\r\nasync function handlerError(url, reqData, responseOrAxiosError) {\r\n if (reqErrorInProcessing === true) {\r\n return;\r\n }\r\n\r\n reqErrorInProcessing = true;\r\n await handlerErrorLogic(url, reqData, responseOrAxiosError);\r\n reqErrorInProcessing = false;\r\n}\r\n\r\nasync function showErrorMessage(errorCode, heading = \"System Error\", message) {\r\n globalSpinHandlerInstance.complete();\r\n await globalDialogUtilsInstance.showAppErrorDialog(heading, message);\r\n}\r\n\r\nasync function handlerErrorLogic(url, reqData, responseOrAxiosError) {\r\n let errorCode = _.get(responseOrAxiosError, 'data.errorCode');\r\n let error = _.get(responseOrAxiosError, 'data.error');\r\n\r\n if (!errorCode && _.get(responseOrAxiosError, 'code')) {\r\n let axiosErrorStatus = _.get(responseOrAxiosError, 'response.status');\r\n let axiosErrorStatusText = _.get(responseOrAxiosError, 'response.statusText');\r\n\r\n if (_.includes([502, 504], axiosErrorStatus)) {\r\n errorCode = EXCEPTION_CODE.NETWORK_ISSUE_CLIENT;\r\n error = axiosErrorStatusText;\r\n } else if (_.includes([400], axiosErrorStatus)) {\r\n errorCode = EXCEPTION_CODE.SYS_UNKNOWN_ISSUE;\r\n error = axiosErrorStatusText;\r\n } else if (_.includes([404], axiosErrorStatus)) {\r\n errorCode = EXCEPTION_CODE.SYS_UNKNOWN_ISSUE;\r\n error = axiosErrorStatusText;\r\n }\r\n }\r\n\r\n //session timeout\r\n var sessionTimeoutErrorCodes = [\r\n EXCEPTION_CODE.AUTHENTICATION_FAILED_COMMON,\r\n EXCEPTION_CODE.AUTHENTICATION_SESSION_EXPIRED,\r\n ]\r\n\r\n if (_.includes(sessionTimeoutErrorCodes, errorCode)) {\r\n await appSessionExit(errorCode, true);\r\n return;\r\n }\r\n\r\n if (EXCEPTION_CODE.NETWORK_ISSUE_CLIENT === errorCode) {\r\n await showErrorMessage(errorCode, \"Network issue\", error);\r\n return;\r\n }\r\n\r\n await showErrorMessage(errorCode, null, getErrorMsgByCode(errorCode, error));\r\n}\r\n\r\n/**\r\n * application exit handler\r\n */\r\nasync function appSessionExit(resultCode, forceCloseFlag) {\r\n if (loginServiceInstance && loginServiceInstance.logout) {\r\n await loginServiceInstance.logout();\r\n } else {\r\n await globalDialogUtilsInstance.showAppErrorDialog(\"Session Timeout\", \"Please login again\");\r\n }\r\n}\r\n\r\nconst AxiosUtils = {\r\n init: init,\r\n getHostName: getHostName,\r\n loadParamFromLocationSearch: loadParamFromLocationSearch,\r\n getPath: getPath,\r\n getUrlParam: getUrlParam,\r\n getFormData: getFormData,\r\n postFormData: postFormData,\r\n getJsonData: getJsonData,\r\n postJsonData: postJsonData,\r\n downloadExcelData: downloadExcelData,\r\n downloadImageData: downloadImageData,\r\n downloadServerData: downloadServerData,\r\n downloadServerBlobData: downloadServerBlobData,\r\n uploadFile: uploadFile,\r\n getStaticTextFile: getStaticTextFile,\r\n appSessionExit: appSessionExit,\r\n handlerError: handlerError,\r\n getErrorMsgByCode: getErrorMsgByCode,\r\n\r\n RESULT: RESULT,\r\n EXCEPTION_CODE: EXCEPTION_CODE,\r\n};\r\n\r\nexport default AxiosUtils;\r\n","!function(e,n){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=n():\"function\"==typeof define&&define.amd?define(n):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).dayjs_plugin_updateLocale=n()}(this,(function(){\"use strict\";return function(e,n,t){t.updateLocale=function(e,n){var o=t.Ls[e];if(o)return(n?Object.keys(n):[]).forEach((function(e){o[e]=n[e]})),o}}}));","!function(e,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define(t):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).dayjs_plugin_customParseFormat=t()}(this,(function(){\"use strict\";var e={LTS:\"h:mm:ss A\",LT:\"h:mm A\",L:\"MM/DD/YYYY\",LL:\"MMMM D, YYYY\",LLL:\"MMMM D, YYYY h:mm A\",LLLL:\"dddd, MMMM D, YYYY h:mm A\"},t=/(\\[[^[]*\\])|([-_:/.,()\\s]+)|(A|a|YYYY|YY?|MM?M?M?|Do|DD?|hh?|HH?|mm?|ss?|S{1,3}|z|ZZ?)/g,n=/\\d\\d/,r=/\\d\\d?/,i=/\\d*[^-_:/,()\\s\\d]+/,o={},s=function(e){return(e=+e)+(e>68?1900:2e3)};var a=function(e){return function(t){this[e]=+t}},f=[/[+-]\\d\\d:?(\\d\\d)?|Z/,function(e){(this.zone||(this.zone={})).offset=function(e){if(!e)return 0;if(\"Z\"===e)return 0;var t=e.match(/([+-]|\\d\\d)/g),n=60*t[1]+(+t[2]||0);return 0===n?0:\"+\"===t[0]?-n:n}(e)}],h=function(e){var t=o[e];return t&&(t.indexOf?t:t.s.concat(t.f))},u=function(e,t){var n,r=o.meridiem;if(r){for(var i=1;i<=24;i+=1)if(e.indexOf(r(i,0,t))>-1){n=i>12;break}}else n=e===(t?\"pm\":\"PM\");return n},d={A:[i,function(e){this.afternoon=u(e,!1)}],a:[i,function(e){this.afternoon=u(e,!0)}],S:[/\\d/,function(e){this.milliseconds=100*+e}],SS:[n,function(e){this.milliseconds=10*+e}],SSS:[/\\d{3}/,function(e){this.milliseconds=+e}],s:[r,a(\"seconds\")],ss:[r,a(\"seconds\")],m:[r,a(\"minutes\")],mm:[r,a(\"minutes\")],H:[r,a(\"hours\")],h:[r,a(\"hours\")],HH:[r,a(\"hours\")],hh:[r,a(\"hours\")],D:[r,a(\"day\")],DD:[n,a(\"day\")],Do:[i,function(e){var t=o.ordinal,n=e.match(/\\d+/);if(this.day=n[0],t)for(var r=1;r<=31;r+=1)t(r).replace(/\\[|\\]/g,\"\")===e&&(this.day=r)}],M:[r,a(\"month\")],MM:[n,a(\"month\")],MMM:[i,function(e){var t=h(\"months\"),n=(h(\"monthsShort\")||t.map((function(e){return e.slice(0,3)}))).indexOf(e)+1;if(n<1)throw new Error;this.month=n%12||n}],MMMM:[i,function(e){var t=h(\"months\").indexOf(e)+1;if(t<1)throw new Error;this.month=t%12||t}],Y:[/[+-]?\\d+/,a(\"year\")],YY:[n,function(e){this.year=s(e)}],YYYY:[/\\d{4}/,a(\"year\")],Z:f,ZZ:f};function c(n){var r,i;r=n,i=o&&o.formats;for(var s=(n=r.replace(/(\\[[^\\]]+])|(LTS?|l{1,4}|L{1,4})/g,(function(t,n,r){var o=r&&r.toUpperCase();return n||i[r]||e[r]||i[o].replace(/(\\[[^\\]]+])|(MMMM|MM|DD|dddd)/g,(function(e,t,n){return t||n.slice(1)}))}))).match(t),a=s.length,f=0;f<a;f+=1){var h=s[f],u=d[h],c=u&&u[0],l=u&&u[1];s[f]=l?{regex:c,parser:l}:h.replace(/^\\[|\\]$/g,\"\")}return function(e){for(var t={},n=0,r=0;n<a;n+=1){var i=s[n];if(\"string\"==typeof i)r+=i.length;else{var o=i.regex,f=i.parser,h=e.slice(r),u=o.exec(h)[0];f.call(t,u),e=e.replace(u,\"\")}}return function(e){var t=e.afternoon;if(void 0!==t){var n=e.hours;t?n<12&&(e.hours+=12):12===n&&(e.hours=0),delete e.afternoon}}(t),t}}return function(e,t,n){n.p.customParseFormat=!0,e&&e.parseTwoDigitYear&&(s=e.parseTwoDigitYear);var r=t.prototype,i=r.parse;r.parse=function(e){var t=e.date,r=e.utc,s=e.args;this.$u=r;var a=s[1];if(\"string\"==typeof a){var f=!0===s[2],h=!0===s[3],u=f||h,d=s[2];h&&(d=s[2]),o=this.$locale(),!f&&d&&(o=n.Ls[d]),this.$d=function(e,t,n){try{if([\"x\",\"X\"].indexOf(t)>-1)return new Date((\"X\"===t?1e3:1)*e);var r=c(t)(e),i=r.year,o=r.month,s=r.day,a=r.hours,f=r.minutes,h=r.seconds,u=r.milliseconds,d=r.zone,l=new Date,m=s||(i||o?1:l.getDate()),M=i||l.getFullYear(),Y=0;i&&!o||(Y=o>0?o-1:l.getMonth());var p=a||0,v=f||0,D=h||0,g=u||0;return d?new Date(Date.UTC(M,Y,m,p,v,D,g+60*d.offset*1e3)):n?new Date(Date.UTC(M,Y,m,p,v,D,g)):new Date(M,Y,m,p,v,D,g)}catch(e){return new Date(\"\")}}(t,a,r),this.init(),d&&!0!==d&&(this.$L=this.locale(d).$L),u&&t!=this.format(a)&&(this.$d=new Date(\"\")),o={}}else if(a instanceof Array)for(var l=a.length,m=1;m<=l;m+=1){s[1]=a[m-1];var M=n.apply(this,s);if(M.isValid()){this.$d=M.$d,this.$L=M.$L,this.init();break}m===l&&(this.$d=new Date(\"\"))}else i.call(this,e)}}}));","!function(t,i){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=i():\"function\"==typeof define&&define.amd?define(i):(t=\"undefined\"!=typeof globalThis?globalThis:t||self).dayjs_plugin_utc=i()}(this,(function(){\"use strict\";var t=\"minute\",i=/[+-]\\d\\d(?::?\\d\\d)?/g,e=/([+-]|\\d\\d)/g;return function(s,f,n){var u=f.prototype;n.utc=function(t){var i={date:t,utc:!0,args:arguments};return new f(i)},u.utc=function(i){var e=n(this.toDate(),{locale:this.$L,utc:!0});return i?e.add(this.utcOffset(),t):e},u.local=function(){return n(this.toDate(),{locale:this.$L,utc:!1})};var o=u.parse;u.parse=function(t){t.utc&&(this.$u=!0),this.$utils().u(t.$offset)||(this.$offset=t.$offset),o.call(this,t)};var r=u.init;u.init=function(){if(this.$u){var t=this.$d;this.$y=t.getUTCFullYear(),this.$M=t.getUTCMonth(),this.$D=t.getUTCDate(),this.$W=t.getUTCDay(),this.$H=t.getUTCHours(),this.$m=t.getUTCMinutes(),this.$s=t.getUTCSeconds(),this.$ms=t.getUTCMilliseconds()}else r.call(this)};var a=u.utcOffset;u.utcOffset=function(s,f){var n=this.$utils().u;if(n(s))return this.$u?0:n(this.$offset)?a.call(this):this.$offset;if(\"string\"==typeof s&&(s=function(t){void 0===t&&(t=\"\");var s=t.match(i);if(!s)return null;var f=(\"\"+s[0]).match(e)||[\"-\",0,0],n=f[0],u=60*+f[1]+ +f[2];return 0===u?0:\"+\"===n?u:-u}(s),null===s))return this;var u=Math.abs(s)<=16?60*s:s,o=this;if(f)return o.$offset=u,o.$u=0===s,o;if(0!==s){var r=this.$u?this.toDate().getTimezoneOffset():-1*this.utcOffset();(o=this.local().add(u+r,t)).$offset=u,o.$x.$localOffset=r}else o=this.utc();return o};var h=u.format;u.format=function(t){var i=t||(this.$u?\"YYYY-MM-DDTHH:mm:ss[Z]\":\"\");return h.call(this,i)},u.valueOf=function(){var t=this.$utils().u(this.$offset)?0:this.$offset+(this.$x.$localOffset||this.$d.getTimezoneOffset());return this.$d.valueOf()-6e4*t},u.isUTC=function(){return!!this.$u},u.toISOString=function(){return this.toDate().toISOString()},u.toString=function(){return this.toDate().toUTCString()};var l=u.toDate;u.toDate=function(t){return\"s\"===t&&this.$offset?n(this.format(\"YYYY-MM-DD HH:mm:ss:SSS\")).toDate():l.call(this)};var c=u.diff;u.diff=function(t,i,e){if(t&&this.$u===t.$u)return c.call(this,t,i,e);var s=this.local(),f=n(t).local();return c.call(s,f,i,e)}}}));","import dayjs from \"dayjs\";\r\n\r\n\r\nimport updateLocale from 'dayjs/plugin/updateLocale';\r\nimport customParseFormat from 'dayjs/plugin/customParseFormat';\r\nimport utc from 'dayjs/plugin/utc';\r\n\r\ndayjs.extend(utc);\r\ndayjs.extend(updateLocale);\r\ndayjs.extend(customParseFormat);\r\n\r\nconst FORMAT_DATE = \"DD-MM-YYYY\";\r\nconst FORMAT_DATETIME = \"DD-MM-YYYY HH:mm:ss\";\r\nconst FORMAT_YEARMONTH = \"YYYY-MMMM\";\r\nconst FORMAT_YEARWEEK = \"YYYY-WW\";\r\nconst FORMAT_DAYOFMONTH = \"DD\";\r\nconst FORMAT_YEAR = \"YYYY\";\r\nconst FORMAT_TIME = \"HH:mm:ss\";\r\n\r\nfunction getCurrentMoment(){\r\n return dayjs();\r\n}\r\n\r\nfunction getCurrentDateText(){\r\n return convertMomentToDateText(getCurrentMoment());\r\n}\r\n\r\nfunction getCurrentDateTimeText(){\r\n return convertMomentToDateTimeText(getCurrentMoment());\r\n}\r\n\r\nfunction getCurrentDate(){\r\n return getCurrentMoment().toDate();\r\n}\r\n\r\nfunction convertMomentToTimestamp(moment) {\r\n if (moment) {\r\n return moment.toDate().getTime();\r\n } else {\r\n return null;\r\n }\r\n}\r\n\r\nfunction convertMomentToDateText(moment) {\r\n if (moment) {\r\n return moment.format(FORMAT_DATE);\r\n } else {\r\n return '';\r\n }\r\n}\r\n\r\nfunction convertTimestampToMoment(timestamp) {\r\n if (timestamp && timestamp > 0) {\r\n return dayjs(timestamp);\r\n } else {\r\n return null;\r\n }\r\n}\r\n\r\nfunction convertMomentToDateTimeText(moment) {\r\n if (moment) {\r\n return moment.format(FORMAT_DATETIME);\r\n } else {\r\n return \"\";\r\n }\r\n}\r\n\r\nfunction convertMomentToYearText(moment) {\r\n if (moment) {\r\n return moment.format(FORMAT_YEAR);\r\n } else {\r\n return \"\";\r\n }\r\n}\r\n\r\nfunction convertMomentToYearMonthText(moment) {\r\n if (moment) {\r\n return moment.format(FORMAT_YEARMONTH);\r\n } else {\r\n return \"\";\r\n }\r\n}\r\n\r\nfunction convertMomentToDayOfMonthText(moment) {\r\n if (moment) {\r\n return moment.format(FORMAT_DAYOFMONTH);\r\n } else {\r\n return \"\";\r\n }\r\n}\r\n\r\n\r\n\r\nfunction convertMomentToTimeText(moment) {\r\n if (moment) {\r\n return moment.format(FORMAT_TIME);\r\n } else {\r\n return \"\";\r\n }\r\n}\r\n\r\nfunction convertDateTimeTextToMoment(dateTimeText) {\r\n if (dateTimeText) {\r\n return dayjs(dateTimeText, FORMAT_DATETIME);\r\n } else {\r\n return null;\r\n }\r\n}\r\n\r\nfunction convertYearMonthTextToMoment(yearMonthText) {\r\n if (yearMonthText) {\r\n return dayjs(yearMonthText, FORMAT_YEARMONTH);\r\n } else {\r\n return null;\r\n }\r\n}\r\n\r\nfunction convertDateTextToMoment(dateText) {\r\n if (dateText) {\r\n return dayjs(dateText, FORMAT_DATE);\r\n } else {\r\n return null;\r\n }\r\n}\r\n\r\nfunction convertTimeTextToMoment(dateTimeText) {\r\n if (dateTimeText) {\r\n return dayjs(dateTimeText, FORMAT_TIME);\r\n } else {\r\n return null;\r\n }\r\n}\r\n\r\nfunction convertDateTextToDate(dateText) {\r\n if (dateText) {\r\n return dayjs(dateText, FORMAT_DATE).toDate();\r\n } else {\r\n return null;\r\n }\r\n}\r\n\r\nfunction convertDateTimeTextToDate(dateTimeText) {\r\n if (dateTimeText) {\r\n let moment = dayjs(dateTimeText, FORMAT_DATETIME);\r\n return dayjs(dateTimeText, FORMAT_DATETIME).toDate();\r\n } else {\r\n return null;\r\n }\r\n}\r\n\r\nfunction convertTimestampToDateText(timestamp) {\r\n let moments = convertTimestampToMoment(timestamp);\r\n let text = convertMomentToDateText(moments);\r\n return text;\r\n}\r\n\r\nfunction convertTimestampToDateTimeText(timestamp) {\r\n let moments = convertTimestampToMoment(timestamp);\r\n let text = convertMomentToDateTimeText(moments);\r\n return text;\r\n}\r\n\r\nfunction convertTimestampToTimeText(timestamp) {\r\n let moments = convertTimestampToMoment(timestamp);\r\n let text = convertMomentToTimeText(moments);\r\n return text;\r\n}\r\n\r\nfunction convertDateToMoment(date) {\r\n if(!date){\r\n return null;\r\n }\r\n return dayjs(date);\r\n}\r\n\r\nfunction convertDateToDateText(date) {\r\n let moments = convertDateToMoment(date);\r\n let text = convertMomentToDateText(moments);\r\n return text;\r\n}\r\n\r\nfunction convertDateToDateTimeText(date) {\r\n let moments = convertDateToMoment(date);\r\n let text = convertMomentToDateTimeText(moments);\r\n return text;\r\n}\r\n\r\n\r\nfunction buildDateRange(from, to){\r\n return from+\" ~ \"+to;\r\n}\r\n\r\nfunction getFormatTextOfMMM(mthNumber){\r\n let moment = getCurrentMoment();\r\n moment = moment.month(mthNumber-1);\r\n return moment.format('MMM');\r\n}\r\n\r\nexport default {\r\n FORMAT_DATE: FORMAT_DATE,\r\n FORMAT_DATETIME: FORMAT_DATETIME,\r\n FORMAT_YEARMONTH: FORMAT_YEARMONTH,\r\n FORMAT_YEARWEEK: FORMAT_YEARWEEK,\r\n FORMAT_TIME: FORMAT_TIME,\r\n\r\n getCurrentMoment: getCurrentMoment,\r\n getCurrentDateTimeText: getCurrentDateTimeText,\r\n getCurrentDateText: getCurrentDateText,\r\n getCurrentDate: getCurrentDate,\r\n\r\n convertMomentToTimestamp: convertMomentToTimestamp,\r\n convertMomentToDateText: convertMomentToDateText,\r\n convertMomentToDateTimeText: convertMomentToDateTimeText,\r\n convertMomentToYearText: convertMomentToYearText,\r\n convertMomentToYearMonthText: convertMomentToYearMonthText,\r\n convertMomentToDayOfMonthText: convertMomentToDayOfMonthText,\r\n convertMomentToTimeText: convertMomentToTimeText,\r\n\r\n convertTimestampToMoment: convertTimestampToMoment,\r\n convertTimestampToDateText: convertTimestampToDateText,\r\n convertTimestampToDateTimeText: convertTimestampToDateTimeText,\r\n convertTimestampToTimeText: convertTimestampToTimeText,\r\n\r\n convertDateToMoment: convertDateToMoment,\r\n convertDateToDateText: convertDateToDateText,\r\n convertDateToDateTimeText: convertDateToDateTimeText,\r\n\r\n convertYearMonthTextToMoment: convertYearMonthTextToMoment,\r\n convertDateTextToMoment: convertDateTextToMoment,\r\n convertDateTimeTextToMoment: convertDateTimeTextToMoment,\r\n convertTimeTextToMoment: convertTimeTextToMoment,\r\n\r\n convertDateTextToDate: convertDateTextToDate,\r\n convertDateTimeTextToDate: convertDateTimeTextToDate,\r\n\r\n buildDateRange:buildDateRange,\r\n\r\n getFormatTextOfMMM: getFormatTextOfMMM,\r\n};\r\n","import _ from \"lodash\";\r\n\r\nfunction resetBodyScroll() {\r\n document.querySelector(\"body\").style.position = \"initial\";\r\n}\r\n\r\nfunction forbidBodyScroll() {\r\n document.querySelector(\"body\").style.position = \"fixed\";\r\n}\r\n\r\nfunction syncDomAnimation() {\r\n setTimeout(() => {\r\n //sync all animation be the same\r\n _.each(document.getAnimations(), (item) => {\r\n item.startTime = 0;\r\n });\r\n }, 200);\r\n}\r\n\r\n/**\r\n * find the closet parent element by className\r\n *\r\n * @param elem\r\n * @param className\r\n */\r\nfunction closetByClassName(elem, classNameList) {\r\n let classList = elem.classList;\r\n if (classList) {\r\n if (_.intersection(classList, classNameList).length > 0) {\r\n return elem;\r\n }\r\n }\r\n\r\n let parentElement = elem.parentElement;\r\n if (parentElement) {\r\n return closetByClassName(parentElement, classNameList);\r\n } else {\r\n return null;\r\n }\r\n}\r\n\r\n/**\r\n * calc current dom node offset to the left-top of the window\r\n */\r\nfunction offset(domNode) {\r\n var offest = {\r\n top: 0,\r\n left: 0\r\n };\r\n if (!domNode.getClientRects().length) {\r\n return offest;\r\n }\r\n if (window.getComputedStyle(domNode)['display'] === 'none') {\r\n return offest;\r\n }\r\n\r\n offest = domNode.getBoundingClientRect();\r\n var docElement = domNode.ownerDocument.documentElement;\r\n return {\r\n top: offest.top + (window.scrollY || window.pageYOffset) - docElement.clientTop,\r\n left: offest.left + (window.scrollX || window.pageXOffset) - docElement.clientLeft\r\n };\r\n}\r\n\r\nexport default {\r\n resetBodyScroll: resetBodyScroll,\r\n forbidBodyScroll: forbidBodyScroll,\r\n\r\n syncDomAnimation: syncDomAnimation,\r\n closetByClassName: closetByClassName,\r\n\r\n offset: offset,\r\n};\r\n","function isIOS() {\r\n return [\r\n 'iPad Simulator',\r\n 'iPhone Simulator',\r\n 'iPod Simulator',\r\n 'iPad',\r\n 'iPhone',\r\n 'iPod'\r\n ].includes(navigator.platform) || (navigator.userAgent.includes(\"Mac\") && \"ontouchend\" in document)\r\n}\r\n\r\nfunction isDesktopChrome() {\r\n let result = /Chrome/.test(navigator.userAgent) && /Google Inc/.test(navigator.vendor);\r\n if (!result) {\r\n return false;\r\n }\r\n\r\n if (isMobileChrome()) {\r\n return false;\r\n }\r\n\r\n return true;\r\n}\r\n\r\nfunction isMobileChrome() {\r\n return /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent) && /Chrome/.test(navigator.userAgent) && /Google Inc/.test(navigator.vendor);\r\n}\r\n\r\nfunction isMobileDevice() {\r\n return isIOS() || isMobileChrome();\r\n}\r\n\r\nfunction updateViewPort(pOptions = {}) {\r\n let viewport = document.getElementsByName(\"viewport\");\r\n if (!viewport || viewport.length != 1) {\r\n return;\r\n }\r\n\r\n let options = {};\r\n _.merge(options, defaultOptions, pOptions);\r\n\r\n let content = [];\r\n _.each(options, (value, key) => {\r\n content.push(key + \"=\" + value);\r\n });\r\n\r\n viewport[0].content = _.join(content, \",\");\r\n\r\n console.debug(\"curr viewport is: \" + viewport[0].content);\r\n}\r\n\r\nexport default {\r\n isIOS: isIOS,\r\n isDesktopChrome: isDesktopChrome,\r\n isMobileChrome: isMobileChrome,\r\n\r\n isMobileDevice: isMobileDevice,\r\n\r\n updateViewPort: updateViewPort,\r\n};\r\n","import _ from \"lodash\";\r\n\r\nlet globalDialogUtils;\r\n\r\nfunction init(pDialogInstanceUtils) {\r\n globalDialogUtils = pDialogInstanceUtils;\r\n}\r\n\r\nfunction toFormData(keyPrefix, model, ignoreKeys = [], formData = {}) {\r\n if(model == null){\r\n return {\r\n keyPrefix: null\r\n }\r\n }\r\n\r\n _.each(_.keys(model), (attr) => {\r\n let value = model[attr];\r\n let formKeyPath = keyPrefix ? keyPrefix + \"#\" + attr : attr;\r\n\r\n if(_.includes(ignoreKeys, formKeyPath)){\r\n formData[formKeyPath] = value;\r\n return;\r\n }\r\n\r\n if (_.isPlainObject(value)) {\r\n toFormData(formKeyPath, value, ignoreKeys, formData);\r\n } else {\r\n formData[formKeyPath] = value;\r\n }\r\n })\r\n\r\n return formData;\r\n}\r\n\r\nfunction toModel(formData, ignoreKeys = []) {\r\n if(formData == null){\r\n return null;\r\n }\r\n\r\n let model = {};\r\n _.each(_.keys(formData), (formKeyPath) => {\r\n let value = formData[formKeyPath];\r\n let path = formKeyPath.replaceAll(\"#\", \".\");\r\n _.set(model, path, value);\r\n });\r\n\r\n return model;\r\n}\r\n\r\nfunction scrollToFirstError(ex){\r\n const isError = document.getElementsByClassName('ant-form-item-has-error');\r\n isError[0] && isError[0].scrollIntoView();\r\n console.error(ex);\r\n}\r\n\r\n/**\r\n * show leave message when exit from a modified form page\r\n * @param formOrCheckFormDirtyFunc AntDesignForm or checkFormDirtyFunction\r\n * @returns {Promise<boolean>} true: can exit, or: abort exit\r\n */\r\nasync function confirmOfLeavingForm(formOrCheckFormDirtyFunc) {\r\n if(formOrCheckFormDirtyFunc == null){\r\n return true;\r\n }\r\n\r\n let formDirty;\r\n if (typeof formOrCheckFormDirtyFunc === 'function') {\r\n formDirty = await formOrCheckFormDirtyFunc();\r\n }else{\r\n formDirty = formOrCheckFormDirtyFunc.isFieldsTouched();\r\n }\r\n\r\n if (formDirty) {\r\n let result = await globalDialogUtils.showConfirmDialog(leaveMessage);\r\n if (result !== true) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n}\r\n\r\nconst leaveMessage = \"Do you want to give up your modification?\";\r\nexport default {\r\n init: init,\r\n\r\n toFormData: toFormData,\r\n toModel: toModel,\r\n scrollToFirstError: scrollToFirstError,\r\n\r\n confirmOfLeavingForm: confirmOfLeavingForm,\r\n leaveMessage: leaveMessage\r\n};","import _ from \"lodash\";\r\n\r\nfunction isJsonText(value) {\r\n value = _.trim(value);\r\n\r\n return (_.startsWith(value, \"{\") || _.startsWith(value, \"[\"));\r\n}\r\n\r\nfunction formatJsonText(value) {\r\n if (!isJsonText(value)) {\r\n return value;\r\n }\r\n\r\n return JSON.stringify(JSON.parse(value), null, 4);\r\n}\r\n\r\n\r\nexport default {\r\n isJsonText: isJsonText,\r\n formatJsonText: formatJsonText,\r\n};\r\n","import _ from \"lodash\";\r\n\r\nfunction formatNumberTextWithUnit(numberText, unitText) {\r\n if (!unitText) {\r\n return numberText;\r\n }\r\n return numberText + \" \" + unitText;\r\n}\r\n\r\nfunction formatPctWith2Digital(valuePct) {\r\n let valuePctText = formatNumberWithDigital(valuePct, 2, false);\r\n return valuePctText + \"%\";\r\n}\r\n\r\nfunction formatNumberWith2Digital(value) {\r\n return formatNumberWithDigital(value, 2);\r\n}\r\n\r\nfunction formatNumberWith4Digital(value) {\r\n return formatNumberWithDigital(value, 4);\r\n}\r\n\r\nfunction formatNumberWithDigital(value, digital) {\r\n if (value === null) {\r\n return \"\";\r\n }\r\n\r\n let dblValue = (_.toNumber(value));\r\n if (isNaN(dblValue)) {\r\n //the string value could not be convert to number, just return it;\r\n return value;\r\n }\r\n\r\n let valueText = value;\r\n if (digital != null) {\r\n let text = _.round(dblValue, digital) + \"\";\r\n if (text.indexOf(\".\") === -1) {\r\n text += '.';\r\n }\r\n\r\n let part1 = text.substring(0, text.indexOf(\".\"));\r\n let part2 = \"\";\r\n\r\n if (digital > 0) {\r\n part2 = text.substring(text.indexOf(\".\") + 1); //取到小数部分搜索\r\n part2 = \".\" + _.padEnd(part2, digital, '0');\r\n }\r\n valueText = part1 + part2;\r\n }\r\n\r\n return valueText;\r\n}\r\n\r\nexport default {\r\n formatPctWith2Digital: formatPctWith2Digital,\r\n formatNumberWith2Digital: formatNumberWith2Digital,\r\n formatNumberWith4Digital: formatNumberWith4Digital,\r\n formatNumberWithDigital: formatNumberWithDigital,\r\n formatNumberTextWithUnit: formatNumberTextWithUnit,\r\n};\r\n","import _ from \"lodash\";\r\nimport AxiosUtils from \"./AxiosUtils\";\r\n\r\nconst constants = {\r\n CANVAS_WIDTH: 480,\r\n CANVAS_HEIGHT: 270,\r\n}\r\n\r\n/**\r\n * create an empty 2 dimension array\r\n */\r\nfunction new2dArray(width, height, initValue) {\r\n let array = [];\r\n for (let rowIdx = 0; rowIdx < height; rowIdx++) {\r\n let newRow = [];\r\n for (let colIdx = 0; colIdx < width; colIdx++) {\r\n newRow.push(initValue);\r\n }\r\n array.push(newRow);\r\n }\r\n return array;\r\n}\r\n\r\n/**\r\n * render grey level ImageDataArray to Canvas\r\n */\r\nfunction renderImageDataArrayToCtx(ctx, imageDataArray) {\r\n let height = imageDataArray.length;\r\n let width = imageDataArray[0].length;\r\n let imageData = new ImageData(width, height);\r\n let idx = 0;\r\n for (let rowIdx = 0; rowIdx < height; rowIdx++) {\r\n for (let colIdx = 0; colIdx < width; colIdx++) {\r\n let grayData = imageDataArray[rowIdx][colIdx];\r\n\r\n imageData.data[idx + 0] = grayData;\r\n imageData.data[idx + 1] = grayData;\r\n imageData.data[idx + 2] = grayData;\r\n imageData.data[idx + 3] = 255;\r\n idx = idx + 4;\r\n }\r\n }\r\n ctx.putImageData(imageData, 0, 0, 0, 0, width, height);\r\n}\r\n\r\nfunction getImageDataArrayFromCtx(ctx, canvasWidth, canvasHeight) {\r\n let imageData = ctx.getImageData(0, 0, canvasWidth, canvasHeight);\r\n\r\n let isEmpty = true;\r\n let imageDataArray = [];\r\n for (let i = 0; i < imageData.data.length; i = i + 4) {\r\n let red = imageData.data[i];\r\n imageDataArray[i / 4] = red;\r\n if (red !== 255) {\r\n isEmpty = false;\r\n }\r\n }\r\n\r\n if (isEmpty) {\r\n return null;\r\n }\r\n\r\n imageDataArray = _.chunk(imageDataArray, canvasWidth);\r\n return imageDataArray;\r\n}\r\n\r\nfunction initCanvas(ctx, canvasWidth, canvasHeight) {\r\n ctx.fillStyle = \"white\";\r\n ctx.lineWidth = 1;\r\n ctx.lineCap = 'round';\r\n ctx.lineJoin = 'round';\r\n\r\n ctx.fillRect(0, 0, canvasWidth, canvasHeight);\r\n ctx.fill();\r\n}\r\n\r\nasync function convertCanvasToBlobFile(canvas, fileName, fileType = 'image/jpeg') {\r\n return new Promise((resolve, reject) => {\r\n canvas.toBlob(async function (blob) {\r\n const file = new File([blob], fileName);\r\n resolve(file);\r\n }, fileType, 0.9);\r\n });\r\n}\r\n\r\n/**\r\n * Build grey level ImageDataArray from text\r\n */\r\nfunction calcImageDataArrayFromText(valueText) {\r\n if (valueText == null) {\r\n return;\r\n }\r\n\r\n let imageDataArray = [];\r\n _.each(valueText.split(\";\"), (rowData, rowIdx) => {\r\n let row = [];\r\n _.each(rowData.split(\",\"), (item, colIdx) => {\r\n row.push(item);\r\n });\r\n imageDataArray.push(row);\r\n });\r\n return imageDataArray;\r\n}\r\n\r\nfunction calcTextFromImageDataArray(imageDataArray) {\r\n if (imageDataArray == null) {\r\n return;\r\n }\r\n\r\n let valueText = \"\";\r\n for (let rowIdx = 0; rowIdx < imageDataArray.length; rowIdx++) {\r\n if (rowIdx > 0) {\r\n valueText += \";\";\r\n }\r\n valueText += imageDataArray[rowIdx].join(\",\");\r\n }\r\n return valueText;\r\n}\r\n\r\nexport default {\r\n constants: constants,\r\n new2dArray: new2dArray,\r\n initCanvas: initCanvas,\r\n //common\r\n convertCanvasToBlobFile: convertCanvasToBlobFile,\r\n\r\n //for signature\r\n renderImageDataArrayToCtx: renderImageDataArrayToCtx,\r\n getImageDataArrayFromCtx: getImageDataArrayFromCtx,\r\n calcImageDataArrayFromText: calcImageDataArrayFromText,\r\n calcTextFromImageDataArray: calcTextFromImageDataArray,\r\n};\r\n","import _ from \"lodash\";\r\n\r\nlet pattern=/[`~!@#$^\\-&*()=|{}':;,\\\\\\[\\].<>\\/?\\s]/g;\r\n\r\nfunction buildKeyword(text) {\r\n if(!text){\r\n return '';\r\n }\r\n\r\n let keyword = text.replace(pattern, '').toUpperCase();\r\n return keyword;\r\n}\r\n\r\n\r\nexport default {\r\n buildKeyword: buildKeyword,\r\n};\r\n"],"names":["init","isMobileDevice","_","param","this","e","n","t","r","i","s","o","a","f","h","u","c","d","l","m","M"],"mappings":"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","x_google_ignoreList":[4,5,6]}
|
|
1
|
+
{"version":3,"file":"sirius-common-utils.js","sources":["../src/packages/utils/CfgUtils.js","../src/packages/utils/AppUtils.js","../src/packages/utils/LoginUserUtils.js","../src/packages/utils/AxiosUtils.js","../node_modules/dayjs/plugin/updateLocale.js","../node_modules/dayjs/plugin/customParseFormat.js","../node_modules/dayjs/plugin/utc.js","../src/packages/utils/DateUtils.js","../src/packages/utils/DomUtils.js","../src/packages/utils/ExplorerTypeUtils.js","../src/packages/utils/FormUtils.js","../src/packages/utils/JsonUtils.js","../src/packages/utils/NumberUtils.js","../src/packages/utils/SignatureUtils.js","../src/packages/utils/StringUtils.js"],"sourcesContent":["export default {\r\n //Application Configuration\r\n appInfo: {\r\n appName: 'XMS', //application name\r\n frontEndValueEncodeFlag: false, //need to encode for LocalStorage values\r\n needFrontEndExceptionStatisticsFlag: true, //need trace front-end logs\r\n },\r\n //Ajax Configuration\r\n ajax:{\r\n timeOut: 60000, //Timeout\r\n },\r\n sysCfg: {\r\n ibmsEnabled: true,\r\n }\r\n};\r\n","import _ from 'lodash';\r\n\r\nimport {Base64} from 'js-base64';\r\nimport CfgUtils from \"./CfgUtils\";\r\n\r\n//appVersion\r\nfunction setAppVersion(version) {\r\n setLocalStorageStringItem(\"APP_VERSION\", version);\r\n}\r\n\r\nfunction getAppVersion() {\r\n return getLocalStorageStringItem(\"APP_VERSION\");\r\n}\r\n\r\n//app build version\r\nfunction setBuildVersion(version) {\r\n setLocalStorageStringItem(\"BUILD_VERSION\", version);\r\n}\r\n\r\nfunction getBuildVersion() {\r\n return getLocalStorageStringItem(\"BUILD_VERSION\");\r\n}\r\n\r\n//app cache version\r\nfunction setAppCacheVersion(version) {\r\n setLocalStorageStringItem(\"APP_CACHE_VERSION\", version);\r\n}\r\n\r\nfunction getAppCacheVersion() {\r\n return getLocalStorageStringItem(\"APP_CACHE_VERSION\");\r\n}\r\n\r\n\r\n/**\r\n * 检查LocalStorage中是否存在该键\r\n */\r\nfunction isLocalStorageItemExisted(key){\r\n let realKey = CfgUtils.appInfo.appName + '_' + key;\r\n let obj = localStorage.getItem(realKey);\r\n return obj !=null;\r\n}\r\n\r\nfunction removeLocalStorageItem(key, obj) {\r\n let realKey = CfgUtils.appInfo.appName + '_' + key;\r\n localStorage.removeItem(realKey);\r\n}\r\n\r\n/**\r\n * String类型的数据存储\r\n */\r\nfunction setLocalStorageStringItem(key, obj) {\r\n let realKey = CfgUtils.appInfo.appName + '_' + key;\r\n let realValue = obj;\r\n localStorage.setItem(realKey, encode(realValue));\r\n}\r\n\r\nfunction getLocalStorageStringItem(key) {\r\n let realKey = CfgUtils.appInfo.appName + '_' + key;\r\n let obj = decode(localStorage.getItem(realKey));\r\n return obj;\r\n}\r\n\r\n/**\r\n * Object类型的数据存储\r\n */\r\n\r\nfunction setLocalStorageObjItem(key, obj) {\r\n let realKey = CfgUtils.appInfo.appName + '_' + key;\r\n localStorage.setItem(realKey, encode(JSON.stringify(obj)));\r\n}\r\n\r\nfunction getLocalStorageObjItem(key) {\r\n let realKey = CfgUtils.appInfo.appName + '_' + key;\r\n let obj = null;\r\n try {\r\n let jsonVal = localStorage.getItem(realKey);\r\n obj = JSON.parse(decode(jsonVal));\r\n } catch (e) {\r\n }\r\n return obj;\r\n}\r\n\r\nfunction atomSetLocalStorageObjItem(key, obj){\r\n setLocalStorageObjItem(key, obj);\r\n}\r\n\r\nfunction atomGetLocalStorageObjItem(key){\r\n let result = getLocalStorageObjItem(key);\r\n setLocalStorageObjItem(key, null);\r\n return result;\r\n}\r\n\r\nfunction pushLocalStorageStringItem(key, obj){\r\n setLocalStorageStringItem(key, obj);\r\n}\r\n\r\nfunction popLocalStorageStringItem(key){\r\n let result = getLocalStorageStringItem(key);\r\n removeLocalStorageItem(key);\r\n return result;\r\n}\r\n\r\nfunction atomSetSessionStorageObjItem(key, obj){\r\n setSessionStorageObjItem(key, obj);\r\n}\r\n\r\nfunction atomGetSessionStorageObjItem(key){\r\n let result = getSessionStorageObjItem(key);\r\n setSessionStorageObjItem(key, null);\r\n return result;\r\n}\r\n\r\nfunction setSessionStorageObjItem(key, obj) {\r\n let realKey = CfgUtils.appInfo.appName + '_' + key;\r\n sessionStorage.setItem(realKey, encode(JSON.stringify(obj)));\r\n}\r\n\r\nfunction getSessionStorageObjItem(key) {\r\n let realKey = CfgUtils.appInfo.appName + '_' + key;\r\n let obj = null;\r\n try {\r\n let jsonVal = sessionStorage.getItem(realKey);\r\n obj = JSON.parse(decode(jsonVal));\r\n } catch (e) {\r\n }\r\n return obj;\r\n}\r\n\r\nfunction encode(originalValue){\r\n if(!originalValue){\r\n return originalValue;\r\n }\r\n if(!CfgUtils.appInfo.frontEndValueEncodeFlag){\r\n return originalValue;\r\n }\r\n return Base64.encode(originalValue);\r\n}\r\n\r\nfunction decode(encodeValue){\r\n if(!encodeValue){\r\n return encodeValue;\r\n }\r\n if(!CfgUtils.appInfo.frontEndValueEncodeFlag){\r\n return encodeValue;\r\n }\r\n return Base64.decode(encodeValue);\r\n}\r\n\r\nexport default {\r\n setAppVersion: setAppVersion,\r\n getAppVersion: getAppVersion,\r\n setBuildVersion: setBuildVersion,\r\n getBuildVersion: getBuildVersion,\r\n setAppCacheVersion: setAppCacheVersion,\r\n getAppCacheVersion: getAppCacheVersion,\r\n\r\n atomSetLocalStorageObjItem: atomSetLocalStorageObjItem,\r\n atomGetLocalStorageObjItem: atomGetLocalStorageObjItem,\r\n pushLocalStorageStringItem: pushLocalStorageStringItem,\r\n popLocalStorageStringItem: popLocalStorageStringItem,\r\n\r\n isLocalStorageItemExisted: isLocalStorageItemExisted,\r\n setLocalStorageObjItem: setLocalStorageObjItem,\r\n getLocalStorageObjItem: getLocalStorageObjItem,\r\n setLocalStorageStringItem: setLocalStorageStringItem,\r\n getLocalStorageStringItem: getLocalStorageStringItem,\r\n\r\n atomSetSessionStorageObjItem: atomSetSessionStorageObjItem,\r\n atomGetSessionStorageObjItem: atomGetSessionStorageObjItem,\r\n\r\n setSessionStorageObjItem: setSessionStorageObjItem,\r\n getSessionStorageObjItem: getSessionStorageObjItem,\r\n};\r\n","/**\r\n * getCurrUserInfo\r\n */\r\nimport AxiosUtils from \"./AxiosUtils\";\r\nimport _ from \"lodash\";\r\nimport AppUtils from \"./AppUtils\";\r\n\r\n\r\nasync function init(\r\n deviceType,\r\n pCurrUserInfoCache,\r\n pCustomizedUserUtils,\r\n pUriGetCurrUserInfo,\r\n) {\r\n if (pCurrUserInfoCache) {\r\n currUserInfoCache = pCurrUserInfoCache;\r\n AppUtils.setLocalStorageObjItem(\"CURRENT_USER\", currUserInfoCache);\r\n }\r\n\r\n customizedUserUtils = pCustomizedUserUtils;\r\n uriGetCurrUserInfo = pUriGetCurrUserInfo || `/api/user/getCurrUserInfo`;\r\n\r\n setDeviceType(deviceType);\r\n}\r\n\r\nasync function clear() {\r\n currUserInfoCache = null;\r\n AppUtils.setLocalStorageObjItem(\"CURRENT_USER\", null);\r\n}\r\n\r\nfunction setDeviceType(deviceType) {\r\n if (deviceType === 'MOBILE') {\r\n AppUtils.setLocalStorageStringItem(\"DEVICE_TYPE\", \"MOBILE\");\r\n } else {\r\n AppUtils.setLocalStorageStringItem(\"DEVICE_TYPE\", \"WEB\");\r\n }\r\n}\r\n\r\nfunction isMobileDevice() {\r\n let deviceType = AppUtils.getLocalStorageStringItem(\"DEVICE_TYPE\");\r\n return deviceType === 'MOBILE';\r\n}\r\n\r\nlet customizedUserUtils = null;\r\nlet currUserInfoCache = null;\r\n\r\nasync function getCurrUserInfo() {\r\n if (customizedUserUtils && customizedUserUtils.getUserInfo) {\r\n let currUser = await customizedUserUtils.getUserInfo();\r\n currUserInfoCache = currUser;\r\n AppUtils.setLocalStorageObjItem(\"CURRENT_USER\", currUser);\r\n\r\n return currUser;\r\n } else {\r\n let currUser = await AxiosUtils.getJsonData(uriGetCurrUserInfo);\r\n currUserInfoCache = currUser;\r\n AppUtils.setLocalStorageObjItem(\"CURRENT_USER\", currUser);\r\n return currUser;\r\n }\r\n}\r\n\r\nfunction getCurrUserInfoCache() {\r\n if (currUserInfoCache != null) {\r\n return currUserInfoCache;\r\n }\r\n\r\n currUserInfoCache = AppUtils.getLocalStorageObjItem(\"CURRENT_USER\");\r\n if (currUserInfoCache != null) {\r\n return currUserInfoCache;\r\n }\r\n\r\n\r\n // console.debug(\"Please invoke getCurrUserInfo first\");\r\n return null;\r\n}\r\n\r\nfunction getCurrUserId() {\r\n return getCurrUserInfoCache()?.id;\r\n}\r\n\r\n\r\nlet uriGetCurrUserInfo = null;\r\n\r\n\r\n/**\r\n * check user role\r\n */\r\nfunction userHasRole(roleCodeOrArray) {\r\n if (currUserInfoCache == null) {\r\n return false;\r\n }\r\n\r\n if (_.isArray(roleCodeOrArray)) {\r\n return !_.isEmpty(_.intersection(currUserInfoCache.roleList, roleCodeOrArray));\r\n } else {\r\n return _.includes(currUserInfoCache.roleList, roleCodeOrArray);\r\n }\r\n}\r\n\r\nexport default {\r\n init: init,\r\n clear: clear,\r\n getCurrUserInfo: getCurrUserInfo,\r\n getCurrUserInfoCache: getCurrUserInfoCache,\r\n getCurrUserId: getCurrUserId,\r\n userHasRole: userHasRole,\r\n\r\n isMobileDevice: isMobileDevice,\r\n\r\n};\r\n","import _ from 'lodash';\r\n\r\nimport CfgUtils from \"./CfgUtils\";\r\nimport LoginUserUtils from \"./LoginUserUtils\";\r\nimport AppUtils from \"./AppUtils.js\";\r\n\r\nlet axios = null;\r\nlet urlContext = null; //URL路径前缀\r\n\r\nlet RESULT = {\r\n SUCCESS: 200,\r\n};\r\n\r\n\r\nlet EXCEPTION_CODE = {\r\n AUTHENTICATION_FAILED_COMMON: 901,\r\n AUTHENTICATION_SESSION_EXPIRED: 905,\r\n NETWORK_ISSUE_CLIENT: 911,\r\n SYS_UNKNOWN_ISSUE: 999,\r\n}\r\n\r\n\r\nlet globalDialogUtilsInstance;\r\nlet globalSpinHandlerInstance;\r\nlet loginServiceInstance;\r\n\r\nfunction init(pAxios, pContext, pSpinHandlerInstance, pDialogUtilsInstance, pLoginServiceInstance) {\r\n axios = pAxios;\r\n\r\n // axios.defaults.baseURL = getPath(\"/xms-test\");\r\n axios.defaults.baseURL = getPath(pContext);\r\n axios.defaults.timeout = CfgUtils.ajax.timeout;\r\n\r\n globalDialogUtilsInstance = pDialogUtilsInstance;\r\n globalSpinHandlerInstance = pSpinHandlerInstance;\r\n loginServiceInstance = pLoginServiceInstance;\r\n}\r\n\r\n\r\nlet AUTHENTICATION = AppUtils.getLocalStorageObjItem(\"CURRENT_AUTHENTICATION\") || {\r\n \"header\": {\r\n \"authorization\": null\r\n }\r\n};\r\n\r\nfunction updateAuthentication(authentication){\r\n AUTHENTICATION = authentication;\r\n AppUtils.setLocalStorageObjItem(\"CURRENT_AUTHENTICATION\", authentication);\r\n}\r\n\r\nfunction getHostName() {\r\n return window.location.hostname;\r\n}\r\n\r\n/**\r\n *\r\n */\r\nfunction loadParamFromLocationSearch(paramKey) {\r\n var paramsStr = window.location.search;\r\n if (paramsStr.indexOf('?') === 0) {\r\n paramsStr = paramsStr.substring(1);\r\n }\r\n var entryParams = paramsStr.split('&');\r\n var entryParamStr = _.find(entryParams, function (param) {\r\n return param.indexOf(paramKey) === 0;\r\n });\r\n if (!entryParamStr) {\r\n return null;\r\n }\r\n var param = entryParamStr.split('=');\r\n if (!param[1]) {\r\n return null;\r\n }\r\n return param[1];\r\n}\r\n\r\n/**\r\n * get the entire url path\r\n * @param path start with '/'\r\n * @returns {string|*}\r\n */\r\nfunction getPath(path) {\r\n if (_.startsWith(path, \"http\")) {\r\n return path;\r\n }\r\n\r\n if (urlContext == null) {\r\n urlContext = window.document.location.href;\r\n let lastIdx = urlContext.indexOf('.htm');\r\n if (lastIdx > -1) {\r\n urlContext = urlContext.substring(0, urlContext.lastIndexOf('/', lastIdx));\r\n } else {\r\n lastIdx = urlContext.indexOf('/#');\r\n if (lastIdx > -1) {\r\n urlContext = urlContext.substring(0, lastIdx);\r\n } else {\r\n lastIdx = urlContext.indexOf('#');\r\n if (lastIdx > -1) {\r\n urlContext = urlContext.substring(0, lastIdx);\r\n } else {\r\n console.log(`Could not identify URL path ${urlContext}`);\r\n }\r\n }\r\n }\r\n //http://localhost:3000/index.html/#/index/highTriggerWiggleRoomValue -> http://localhost:3000\r\n }\r\n\r\n if (urlContext.endsWith(\"/\")) { //remove the last '/'\r\n urlContext = urlContext.substring(0, urlContext.length - 1);\r\n }\r\n return urlContext + path;\r\n}\r\n\r\n/**\r\n * Download excel from server\r\n */\r\nfunction downloadExcelData(url, data, headers, options = {}) {\r\n return new Promise(async function (resolve, reject) {\r\n headers = headers || {};\r\n if (headers['Content-Type'] == null) {\r\n headers['Content-Type'] = 'application/json';\r\n }\r\n\r\n await buildUserAccessToken(headers);\r\n\r\n try {\r\n let response = await axios({\r\n method: 'post',\r\n url: url,\r\n data: data,\r\n headers: headers,\r\n responseType: 'blob'\r\n });\r\n if (response.data) {\r\n if (response.data.errorCode && response.data.errorCode !== RESULT.SUCCESS) {\r\n let errorResult = await handlerError(url, data, response);\r\n resolve(errorResult);\r\n return;\r\n }\r\n }\r\n\r\n const link = document.createElement('a')\r\n let blob = new Blob([response.data], {type: 'application/vnd.ms-excel'});\r\n let contentDisposition = response.headers[\"content-disposition\"];\r\n\r\n if (contentDisposition == null) {\r\n let errorResult = await handlerError(url, data, {\r\n data: {\r\n errorCode: EXCEPTION_CODE.SYS_UNKNOWN_ISSUE,\r\n error: \"System Error\",\r\n }\r\n });\r\n resolve(errorResult);\r\n return;\r\n }\r\n\r\n let temp = contentDisposition.split(\";\")[1].split(\"ilename=\")[1];\r\n var fileName = decodeURIComponent(temp);\r\n console.log(fileName)\r\n link.style.display = 'none'\r\n link.href = URL.createObjectURL(blob);\r\n link.setAttribute('download', fileName);\r\n document.body.appendChild(link);\r\n link.click();\r\n document.body.removeChild(link);\r\n\r\n resolve(true);\r\n } catch (e) {\r\n let errorResult = await handlerError(url, {}, e);\r\n resolve(errorResult);\r\n }\r\n });\r\n}\r\n\r\n\r\n/**\r\n * Download image from server, and return ImageData blob\r\n */\r\nfunction downloadImageData(url, data, headers, options = {}) {\r\n return new Promise(async function (resolve, reject) {\r\n headers = headers || {};\r\n if (headers['Content-Type'] == null) {\r\n headers['Content-Type'] = 'application/json';\r\n }\r\n\r\n await buildUserAccessToken(headers);\r\n\r\n try {\r\n let response = await axios({\r\n method: 'post',\r\n url: url,\r\n data: data,\r\n headers: headers,\r\n responseType: 'blob'\r\n });\r\n let imageData = response.data;\r\n if (imageData != null) {\r\n if (response.data.errorCode && response.data.errorCode !== RESULT.SUCCESS) {\r\n let errorResult = await handlerError(url, data, response);\r\n resolve(null);\r\n return;\r\n }\r\n }\r\n resolve(imageData);\r\n } catch (e) {\r\n let errorResult = await handlerError(url, {}, e);\r\n resolve(null);\r\n }\r\n });\r\n}\r\n\r\n/**\r\n *\r\n */\r\nfunction downloadServerData(url) {\r\n return new Promise(function (resolve, reject) {\r\n\r\n const hyperlink = document.createElement('a');\r\n hyperlink.style.display = 'none';//隐藏,没必要展示出来\r\n hyperlink.href = url;\r\n hyperlink.target = \"_blank\";\r\n document.body.appendChild(hyperlink);\r\n hyperlink.click();\r\n URL.revokeObjectURL(hyperlink.href); // 释放URL 对象\r\n document.body.removeChild(hyperlink);//下载\r\n\r\n resolve(true);\r\n });\r\n}\r\n\r\n/**\r\n *\r\n */\r\nfunction downloadServerBlobData(url) {\r\n return new Promise(function (resolve, reject) {\r\n axios.get(url, {\r\n responseType: 'blob',\r\n }).then((res) => {\r\n resolve(res.data);\r\n }, (error) => {\r\n resolve(null);\r\n });\r\n });\r\n}\r\n\r\n/**\r\n * upload file to server\r\n * TODO Joey need check with FormData scenario\r\n */\r\nfunction uploadFile(url, file, headers, onUploadProgress, customizedOptions) {\r\n headers = headers || {};\r\n\r\n let formdata = new FormData();\r\n if (_.isArray(file)) {\r\n formdata.append(\"files\", file);\r\n } else {\r\n formdata.append(\"file\", file)\r\n }\r\n\r\n customizedOptions = customizedOptions || {};\r\n return execute(\"POST\", url, formdata, headers, onUploadProgress, customizedOptions)\r\n}\r\n\r\n/**\r\n * getStaticTextFile\r\n */\r\nfunction getStaticTextFile(url) {\r\n return new Promise(async function (resolve, reject) {\r\n axios.get(url).then((res) => {\r\n resolve(res);\r\n }, (error) => {\r\n resolve(null);\r\n });\r\n });\r\n}\r\n\r\n/**\r\n * build form-data from param object\r\n */\r\nfunction getUrlParam(params) {\r\n if (params) {\r\n var param = '';\r\n _.each(params, function (i, val) {\r\n if (i != null) {\r\n param += val + '=' + encodeURIComponent(i) + '&';\r\n } else {\r\n param += val + '=&';\r\n }\r\n });\r\n param = param.substring(0, param.length - 1);\r\n return param;\r\n } else {\r\n return '';\r\n }\r\n}\r\n\r\nfunction getFormData(url, headers, customizedOptions) {\r\n headers = headers || {};\r\n if (headers['Content-Type'] == null) {\r\n headers['Content-Type'] = 'application/x-www-form-urlencoded';\r\n }\r\n\r\n customizedOptions = customizedOptions || {};\r\n\r\n return execute(\"GET\", url, null, headers, null, customizedOptions)\r\n}\r\n\r\nfunction postFormData(url, dataObject, headers, customizedOptions) {\r\n let formdata = null;\r\n if (dataObject) {\r\n formdata = getUrlParam(dataObject);\r\n }\r\n\r\n headers = headers || {};\r\n if (headers['Content-Type'] == null) {\r\n headers['Content-Type'] = 'application/x-www-form-urlencoded';\r\n }\r\n\r\n customizedOptions = customizedOptions || {};\r\n\r\n return execute(\"POST\", url, formdata, headers, null, customizedOptions)\r\n}\r\n\r\nfunction getJsonData(url, headers, customizedOptions) {\r\n headers = headers || {};\r\n if (headers['Content-Type'] == null) {\r\n headers['Content-Type'] = 'application/json';\r\n }\r\n\r\n return execute(\"GET\", url, null, headers, null, customizedOptions)\r\n}\r\n\r\nfunction postJsonData(url, dataObject, headers, customizedOptions) {\r\n headers = headers || {};\r\n if (headers['Content-Type'] == null) {\r\n headers['Content-Type'] = 'application/json';\r\n }\r\n\r\n return execute(\"POST\", url, dataObject, headers, null, customizedOptions)\r\n}\r\n\r\n/**\r\n * General Axios Data request\r\n *\r\n * @param method\r\n * @param url\r\n * @param data\r\n * @param headers\r\n * @param customizedOptions: { }customizedErrorHandlerFlag: false }\r\n */\r\nfunction execute(method, url, data, headers, onUploadProgress, customizedOptions = {}) {\r\n return new Promise(function (resolve, reject) {\r\n //check and set User AccessToken in the request header\r\n buildUserAccessToken(headers).then(\r\n function () {\r\n //AccessToken is valid\r\n axios({\r\n method: method,\r\n url: url,\r\n data: data,\r\n headers: headers,\r\n onUploadProgress: onUploadProgress,\r\n })\r\n .then((response) => {\r\n if (response.data) {\r\n if (response.data.errorCode && response.data.errorCode !== RESULT.SUCCESS) {\r\n if (customizedOptions.customizedErrorHandlerFlag) {\r\n resolve(response.data);\r\n } else {\r\n handlerError(url, data, response).then((result) => {\r\n resolve(result);\r\n });\r\n }\r\n } else {\r\n resolve(response.data);\r\n }\r\n } else {\r\n resolve(response.data);\r\n }\r\n }, (error) => {\r\n if (customizedOptions.customizedErrorHandlerFlag) {\r\n resolve(error);\r\n } else {\r\n handlerError(url, data, error).then((result) => {\r\n resolve(result);\r\n });\r\n }\r\n });\r\n },\r\n (error) => {\r\n //AccessToken is invalid\r\n handlerError(url, data, error).then((result) => {\r\n resolve(result);\r\n });\r\n });\r\n\r\n });\r\n}\r\n\r\nasync function buildUserAccessToken(headers) {\r\n _.each(AUTHENTICATION?.header, function(value, key){\r\n headers[key] = value;\r\n });\r\n}\r\n\r\n\r\n/**\r\n * build error message base on errorCode\r\n */\r\nfunction getErrorMsgByCode(errorCode, errorMsg) {\r\n return errorMsg;\r\n}\r\n\r\n/**\r\n * request error handler\r\n * if multiple ajax error happened. just process the first one.\r\n */\r\nvar reqErrorInProcessing = false;\r\n\r\nasync function handlerError(url, reqData, responseOrAxiosError) {\r\n if (reqErrorInProcessing === true) {\r\n return;\r\n }\r\n\r\n reqErrorInProcessing = true;\r\n await handlerErrorLogic(url, reqData, responseOrAxiosError);\r\n reqErrorInProcessing = false;\r\n}\r\n\r\nasync function showErrorMessage(errorCode, heading = \"System Error\", message) {\r\n globalSpinHandlerInstance.complete();\r\n await globalDialogUtilsInstance.showAppErrorDialog(heading, message);\r\n}\r\n\r\nasync function handlerErrorLogic(url, reqData, responseOrAxiosError) {\r\n let errorCode = _.get(responseOrAxiosError, 'data.errorCode');\r\n let error = _.get(responseOrAxiosError, 'data.error');\r\n\r\n if (!errorCode && _.get(responseOrAxiosError, 'code')) {\r\n let axiosErrorStatus = _.get(responseOrAxiosError, 'response.status');\r\n let axiosErrorStatusText = _.get(responseOrAxiosError, 'response.statusText');\r\n\r\n if (_.includes([502, 504], axiosErrorStatus)) {\r\n errorCode = EXCEPTION_CODE.NETWORK_ISSUE_CLIENT;\r\n error = axiosErrorStatusText;\r\n } else if (_.includes([400], axiosErrorStatus)) {\r\n errorCode = EXCEPTION_CODE.SYS_UNKNOWN_ISSUE;\r\n error = axiosErrorStatusText;\r\n } else if (_.includes([404], axiosErrorStatus)) {\r\n errorCode = EXCEPTION_CODE.SYS_UNKNOWN_ISSUE;\r\n error = axiosErrorStatusText;\r\n }\r\n }\r\n\r\n //session timeout\r\n var sessionTimeoutErrorCodes = [\r\n EXCEPTION_CODE.AUTHENTICATION_FAILED_COMMON,\r\n EXCEPTION_CODE.AUTHENTICATION_SESSION_EXPIRED,\r\n ]\r\n\r\n if (_.includes(sessionTimeoutErrorCodes, errorCode)) {\r\n await appSessionExit(errorCode, true);\r\n return;\r\n }\r\n\r\n if (EXCEPTION_CODE.NETWORK_ISSUE_CLIENT === errorCode) {\r\n await showErrorMessage(errorCode, \"Network issue\", error);\r\n return;\r\n }\r\n\r\n await showErrorMessage(errorCode, null, getErrorMsgByCode(errorCode, error));\r\n}\r\n\r\n/**\r\n * application exit handler\r\n */\r\nasync function appSessionExit(resultCode, forceCloseFlag) {\r\n if (loginServiceInstance && loginServiceInstance.logout) {\r\n await loginServiceInstance.logout();\r\n } else {\r\n await globalDialogUtilsInstance.showAppErrorDialog(\"Session Timeout\", \"Please login again\");\r\n }\r\n}\r\n\r\nconst AxiosUtils = {\r\n init: init,\r\n getHostName: getHostName,\r\n loadParamFromLocationSearch: loadParamFromLocationSearch,\r\n getPath: getPath,\r\n getUrlParam: getUrlParam,\r\n getFormData: getFormData,\r\n postFormData: postFormData,\r\n getJsonData: getJsonData,\r\n postJsonData: postJsonData,\r\n downloadExcelData: downloadExcelData,\r\n downloadImageData: downloadImageData,\r\n downloadServerData: downloadServerData,\r\n downloadServerBlobData: downloadServerBlobData,\r\n uploadFile: uploadFile,\r\n getStaticTextFile: getStaticTextFile,\r\n appSessionExit: appSessionExit,\r\n handlerError: handlerError,\r\n getErrorMsgByCode: getErrorMsgByCode,\r\n\r\n RESULT: RESULT,\r\n EXCEPTION_CODE: EXCEPTION_CODE,\r\n\r\n AUTHENTICATION: AUTHENTICATION,\r\n updateAuthentication: updateAuthentication,\r\n};\r\n\r\nexport default AxiosUtils;\r\n","!function(e,n){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=n():\"function\"==typeof define&&define.amd?define(n):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).dayjs_plugin_updateLocale=n()}(this,(function(){\"use strict\";return function(e,n,t){t.updateLocale=function(e,n){var o=t.Ls[e];if(o)return(n?Object.keys(n):[]).forEach((function(e){o[e]=n[e]})),o}}}));","!function(e,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define(t):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).dayjs_plugin_customParseFormat=t()}(this,(function(){\"use strict\";var e={LTS:\"h:mm:ss A\",LT:\"h:mm A\",L:\"MM/DD/YYYY\",LL:\"MMMM D, YYYY\",LLL:\"MMMM D, YYYY h:mm A\",LLLL:\"dddd, MMMM D, YYYY h:mm A\"},t=/(\\[[^[]*\\])|([-_:/.,()\\s]+)|(A|a|YYYY|YY?|MM?M?M?|Do|DD?|hh?|HH?|mm?|ss?|S{1,3}|z|ZZ?)/g,n=/\\d\\d/,r=/\\d\\d?/,i=/\\d*[^-_:/,()\\s\\d]+/,o={},s=function(e){return(e=+e)+(e>68?1900:2e3)};var a=function(e){return function(t){this[e]=+t}},f=[/[+-]\\d\\d:?(\\d\\d)?|Z/,function(e){(this.zone||(this.zone={})).offset=function(e){if(!e)return 0;if(\"Z\"===e)return 0;var t=e.match(/([+-]|\\d\\d)/g),n=60*t[1]+(+t[2]||0);return 0===n?0:\"+\"===t[0]?-n:n}(e)}],h=function(e){var t=o[e];return t&&(t.indexOf?t:t.s.concat(t.f))},u=function(e,t){var n,r=o.meridiem;if(r){for(var i=1;i<=24;i+=1)if(e.indexOf(r(i,0,t))>-1){n=i>12;break}}else n=e===(t?\"pm\":\"PM\");return n},d={A:[i,function(e){this.afternoon=u(e,!1)}],a:[i,function(e){this.afternoon=u(e,!0)}],S:[/\\d/,function(e){this.milliseconds=100*+e}],SS:[n,function(e){this.milliseconds=10*+e}],SSS:[/\\d{3}/,function(e){this.milliseconds=+e}],s:[r,a(\"seconds\")],ss:[r,a(\"seconds\")],m:[r,a(\"minutes\")],mm:[r,a(\"minutes\")],H:[r,a(\"hours\")],h:[r,a(\"hours\")],HH:[r,a(\"hours\")],hh:[r,a(\"hours\")],D:[r,a(\"day\")],DD:[n,a(\"day\")],Do:[i,function(e){var t=o.ordinal,n=e.match(/\\d+/);if(this.day=n[0],t)for(var r=1;r<=31;r+=1)t(r).replace(/\\[|\\]/g,\"\")===e&&(this.day=r)}],M:[r,a(\"month\")],MM:[n,a(\"month\")],MMM:[i,function(e){var t=h(\"months\"),n=(h(\"monthsShort\")||t.map((function(e){return e.slice(0,3)}))).indexOf(e)+1;if(n<1)throw new Error;this.month=n%12||n}],MMMM:[i,function(e){var t=h(\"months\").indexOf(e)+1;if(t<1)throw new Error;this.month=t%12||t}],Y:[/[+-]?\\d+/,a(\"year\")],YY:[n,function(e){this.year=s(e)}],YYYY:[/\\d{4}/,a(\"year\")],Z:f,ZZ:f};function c(n){var r,i;r=n,i=o&&o.formats;for(var s=(n=r.replace(/(\\[[^\\]]+])|(LTS?|l{1,4}|L{1,4})/g,(function(t,n,r){var o=r&&r.toUpperCase();return n||i[r]||e[r]||i[o].replace(/(\\[[^\\]]+])|(MMMM|MM|DD|dddd)/g,(function(e,t,n){return t||n.slice(1)}))}))).match(t),a=s.length,f=0;f<a;f+=1){var h=s[f],u=d[h],c=u&&u[0],l=u&&u[1];s[f]=l?{regex:c,parser:l}:h.replace(/^\\[|\\]$/g,\"\")}return function(e){for(var t={},n=0,r=0;n<a;n+=1){var i=s[n];if(\"string\"==typeof i)r+=i.length;else{var o=i.regex,f=i.parser,h=e.slice(r),u=o.exec(h)[0];f.call(t,u),e=e.replace(u,\"\")}}return function(e){var t=e.afternoon;if(void 0!==t){var n=e.hours;t?n<12&&(e.hours+=12):12===n&&(e.hours=0),delete e.afternoon}}(t),t}}return function(e,t,n){n.p.customParseFormat=!0,e&&e.parseTwoDigitYear&&(s=e.parseTwoDigitYear);var r=t.prototype,i=r.parse;r.parse=function(e){var t=e.date,r=e.utc,s=e.args;this.$u=r;var a=s[1];if(\"string\"==typeof a){var f=!0===s[2],h=!0===s[3],u=f||h,d=s[2];h&&(d=s[2]),o=this.$locale(),!f&&d&&(o=n.Ls[d]),this.$d=function(e,t,n){try{if([\"x\",\"X\"].indexOf(t)>-1)return new Date((\"X\"===t?1e3:1)*e);var r=c(t)(e),i=r.year,o=r.month,s=r.day,a=r.hours,f=r.minutes,h=r.seconds,u=r.milliseconds,d=r.zone,l=new Date,m=s||(i||o?1:l.getDate()),M=i||l.getFullYear(),Y=0;i&&!o||(Y=o>0?o-1:l.getMonth());var p=a||0,v=f||0,D=h||0,g=u||0;return d?new Date(Date.UTC(M,Y,m,p,v,D,g+60*d.offset*1e3)):n?new Date(Date.UTC(M,Y,m,p,v,D,g)):new Date(M,Y,m,p,v,D,g)}catch(e){return new Date(\"\")}}(t,a,r),this.init(),d&&!0!==d&&(this.$L=this.locale(d).$L),u&&t!=this.format(a)&&(this.$d=new Date(\"\")),o={}}else if(a instanceof Array)for(var l=a.length,m=1;m<=l;m+=1){s[1]=a[m-1];var M=n.apply(this,s);if(M.isValid()){this.$d=M.$d,this.$L=M.$L,this.init();break}m===l&&(this.$d=new Date(\"\"))}else i.call(this,e)}}}));","!function(t,i){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=i():\"function\"==typeof define&&define.amd?define(i):(t=\"undefined\"!=typeof globalThis?globalThis:t||self).dayjs_plugin_utc=i()}(this,(function(){\"use strict\";var t=\"minute\",i=/[+-]\\d\\d(?::?\\d\\d)?/g,e=/([+-]|\\d\\d)/g;return function(s,f,n){var u=f.prototype;n.utc=function(t){var i={date:t,utc:!0,args:arguments};return new f(i)},u.utc=function(i){var e=n(this.toDate(),{locale:this.$L,utc:!0});return i?e.add(this.utcOffset(),t):e},u.local=function(){return n(this.toDate(),{locale:this.$L,utc:!1})};var o=u.parse;u.parse=function(t){t.utc&&(this.$u=!0),this.$utils().u(t.$offset)||(this.$offset=t.$offset),o.call(this,t)};var r=u.init;u.init=function(){if(this.$u){var t=this.$d;this.$y=t.getUTCFullYear(),this.$M=t.getUTCMonth(),this.$D=t.getUTCDate(),this.$W=t.getUTCDay(),this.$H=t.getUTCHours(),this.$m=t.getUTCMinutes(),this.$s=t.getUTCSeconds(),this.$ms=t.getUTCMilliseconds()}else r.call(this)};var a=u.utcOffset;u.utcOffset=function(s,f){var n=this.$utils().u;if(n(s))return this.$u?0:n(this.$offset)?a.call(this):this.$offset;if(\"string\"==typeof s&&(s=function(t){void 0===t&&(t=\"\");var s=t.match(i);if(!s)return null;var f=(\"\"+s[0]).match(e)||[\"-\",0,0],n=f[0],u=60*+f[1]+ +f[2];return 0===u?0:\"+\"===n?u:-u}(s),null===s))return this;var u=Math.abs(s)<=16?60*s:s,o=this;if(f)return o.$offset=u,o.$u=0===s,o;if(0!==s){var r=this.$u?this.toDate().getTimezoneOffset():-1*this.utcOffset();(o=this.local().add(u+r,t)).$offset=u,o.$x.$localOffset=r}else o=this.utc();return o};var h=u.format;u.format=function(t){var i=t||(this.$u?\"YYYY-MM-DDTHH:mm:ss[Z]\":\"\");return h.call(this,i)},u.valueOf=function(){var t=this.$utils().u(this.$offset)?0:this.$offset+(this.$x.$localOffset||this.$d.getTimezoneOffset());return this.$d.valueOf()-6e4*t},u.isUTC=function(){return!!this.$u},u.toISOString=function(){return this.toDate().toISOString()},u.toString=function(){return this.toDate().toUTCString()};var l=u.toDate;u.toDate=function(t){return\"s\"===t&&this.$offset?n(this.format(\"YYYY-MM-DD HH:mm:ss:SSS\")).toDate():l.call(this)};var c=u.diff;u.diff=function(t,i,e){if(t&&this.$u===t.$u)return c.call(this,t,i,e);var s=this.local(),f=n(t).local();return c.call(s,f,i,e)}}}));","import dayjs from \"dayjs\";\r\n\r\n\r\nimport updateLocale from 'dayjs/plugin/updateLocale';\r\nimport customParseFormat from 'dayjs/plugin/customParseFormat';\r\nimport utc from 'dayjs/plugin/utc';\r\n\r\ndayjs.extend(utc);\r\ndayjs.extend(updateLocale);\r\ndayjs.extend(customParseFormat);\r\n\r\nconst FORMAT_DATE = \"DD-MM-YYYY\";\r\nconst FORMAT_DATETIME = \"DD-MM-YYYY HH:mm:ss\";\r\nconst FORMAT_YEARMONTH = \"YYYY-MMMM\";\r\nconst FORMAT_YEARWEEK = \"YYYY-WW\";\r\nconst FORMAT_DAYOFMONTH = \"DD\";\r\nconst FORMAT_YEAR = \"YYYY\";\r\nconst FORMAT_TIME = \"HH:mm:ss\";\r\n\r\nfunction getCurrentMoment(){\r\n return dayjs();\r\n}\r\n\r\nfunction getCurrentDateText(){\r\n return convertMomentToDateText(getCurrentMoment());\r\n}\r\n\r\nfunction getCurrentDateTimeText(){\r\n return convertMomentToDateTimeText(getCurrentMoment());\r\n}\r\n\r\nfunction getCurrentDate(){\r\n return getCurrentMoment().toDate();\r\n}\r\n\r\nfunction convertMomentToTimestamp(moment) {\r\n if (moment) {\r\n return moment.toDate().getTime();\r\n } else {\r\n return null;\r\n }\r\n}\r\n\r\nfunction convertMomentToDateText(moment) {\r\n if (moment) {\r\n return moment.format(FORMAT_DATE);\r\n } else {\r\n return '';\r\n }\r\n}\r\n\r\nfunction convertTimestampToMoment(timestamp) {\r\n if (timestamp && timestamp > 0) {\r\n return dayjs(timestamp);\r\n } else {\r\n return null;\r\n }\r\n}\r\n\r\nfunction convertMomentToDateTimeText(moment) {\r\n if (moment) {\r\n return moment.format(FORMAT_DATETIME);\r\n } else {\r\n return \"\";\r\n }\r\n}\r\n\r\nfunction convertMomentToYearText(moment) {\r\n if (moment) {\r\n return moment.format(FORMAT_YEAR);\r\n } else {\r\n return \"\";\r\n }\r\n}\r\n\r\nfunction convertMomentToYearMonthText(moment) {\r\n if (moment) {\r\n return moment.format(FORMAT_YEARMONTH);\r\n } else {\r\n return \"\";\r\n }\r\n}\r\n\r\nfunction convertMomentToDayOfMonthText(moment) {\r\n if (moment) {\r\n return moment.format(FORMAT_DAYOFMONTH);\r\n } else {\r\n return \"\";\r\n }\r\n}\r\n\r\n\r\n\r\nfunction convertMomentToTimeText(moment) {\r\n if (moment) {\r\n return moment.format(FORMAT_TIME);\r\n } else {\r\n return \"\";\r\n }\r\n}\r\n\r\nfunction convertDateTimeTextToMoment(dateTimeText) {\r\n if (dateTimeText) {\r\n return dayjs(dateTimeText, FORMAT_DATETIME);\r\n } else {\r\n return null;\r\n }\r\n}\r\n\r\nfunction convertYearMonthTextToMoment(yearMonthText) {\r\n if (yearMonthText) {\r\n return dayjs(yearMonthText, FORMAT_YEARMONTH);\r\n } else {\r\n return null;\r\n }\r\n}\r\n\r\nfunction convertDateTextToMoment(dateText) {\r\n if (dateText) {\r\n return dayjs(dateText, FORMAT_DATE);\r\n } else {\r\n return null;\r\n }\r\n}\r\n\r\nfunction convertTimeTextToMoment(dateTimeText) {\r\n if (dateTimeText) {\r\n return dayjs(dateTimeText, FORMAT_TIME);\r\n } else {\r\n return null;\r\n }\r\n}\r\n\r\nfunction convertDateTextToDate(dateText) {\r\n if (dateText) {\r\n return dayjs(dateText, FORMAT_DATE).toDate();\r\n } else {\r\n return null;\r\n }\r\n}\r\n\r\nfunction convertDateTimeTextToDate(dateTimeText) {\r\n if (dateTimeText) {\r\n let moment = dayjs(dateTimeText, FORMAT_DATETIME);\r\n return dayjs(dateTimeText, FORMAT_DATETIME).toDate();\r\n } else {\r\n return null;\r\n }\r\n}\r\n\r\nfunction convertTimestampToDateText(timestamp) {\r\n let moments = convertTimestampToMoment(timestamp);\r\n let text = convertMomentToDateText(moments);\r\n return text;\r\n}\r\n\r\nfunction convertTimestampToDateTimeText(timestamp) {\r\n let moments = convertTimestampToMoment(timestamp);\r\n let text = convertMomentToDateTimeText(moments);\r\n return text;\r\n}\r\n\r\nfunction convertTimestampToTimeText(timestamp) {\r\n let moments = convertTimestampToMoment(timestamp);\r\n let text = convertMomentToTimeText(moments);\r\n return text;\r\n}\r\n\r\nfunction convertDateToMoment(date) {\r\n if(!date){\r\n return null;\r\n }\r\n return dayjs(date);\r\n}\r\n\r\nfunction convertDateToDateText(date) {\r\n let moments = convertDateToMoment(date);\r\n let text = convertMomentToDateText(moments);\r\n return text;\r\n}\r\n\r\nfunction convertDateToDateTimeText(date) {\r\n let moments = convertDateToMoment(date);\r\n let text = convertMomentToDateTimeText(moments);\r\n return text;\r\n}\r\n\r\n\r\nfunction buildDateRange(from, to){\r\n return from+\" ~ \"+to;\r\n}\r\n\r\nfunction getFormatTextOfMMM(mthNumber){\r\n let moment = getCurrentMoment();\r\n moment = moment.month(mthNumber-1);\r\n return moment.format('MMM');\r\n}\r\n\r\nexport default {\r\n FORMAT_DATE: FORMAT_DATE,\r\n FORMAT_DATETIME: FORMAT_DATETIME,\r\n FORMAT_YEARMONTH: FORMAT_YEARMONTH,\r\n FORMAT_YEARWEEK: FORMAT_YEARWEEK,\r\n FORMAT_TIME: FORMAT_TIME,\r\n\r\n getCurrentMoment: getCurrentMoment,\r\n getCurrentDateTimeText: getCurrentDateTimeText,\r\n getCurrentDateText: getCurrentDateText,\r\n getCurrentDate: getCurrentDate,\r\n\r\n convertMomentToTimestamp: convertMomentToTimestamp,\r\n convertMomentToDateText: convertMomentToDateText,\r\n convertMomentToDateTimeText: convertMomentToDateTimeText,\r\n convertMomentToYearText: convertMomentToYearText,\r\n convertMomentToYearMonthText: convertMomentToYearMonthText,\r\n convertMomentToDayOfMonthText: convertMomentToDayOfMonthText,\r\n convertMomentToTimeText: convertMomentToTimeText,\r\n\r\n convertTimestampToMoment: convertTimestampToMoment,\r\n convertTimestampToDateText: convertTimestampToDateText,\r\n convertTimestampToDateTimeText: convertTimestampToDateTimeText,\r\n convertTimestampToTimeText: convertTimestampToTimeText,\r\n\r\n convertDateToMoment: convertDateToMoment,\r\n convertDateToDateText: convertDateToDateText,\r\n convertDateToDateTimeText: convertDateToDateTimeText,\r\n\r\n convertYearMonthTextToMoment: convertYearMonthTextToMoment,\r\n convertDateTextToMoment: convertDateTextToMoment,\r\n convertDateTimeTextToMoment: convertDateTimeTextToMoment,\r\n convertTimeTextToMoment: convertTimeTextToMoment,\r\n\r\n convertDateTextToDate: convertDateTextToDate,\r\n convertDateTimeTextToDate: convertDateTimeTextToDate,\r\n\r\n buildDateRange:buildDateRange,\r\n\r\n getFormatTextOfMMM: getFormatTextOfMMM,\r\n};\r\n","import _ from \"lodash\";\r\n\r\nfunction resetBodyScroll() {\r\n document.querySelector(\"body\").style.position = \"initial\";\r\n}\r\n\r\nfunction forbidBodyScroll() {\r\n document.querySelector(\"body\").style.position = \"fixed\";\r\n}\r\n\r\nfunction syncDomAnimation() {\r\n setTimeout(() => {\r\n //sync all animation be the same\r\n _.each(document.getAnimations(), (item) => {\r\n item.startTime = 0;\r\n });\r\n }, 200);\r\n}\r\n\r\n/**\r\n * find the closet parent element by className\r\n *\r\n * @param elem\r\n * @param className\r\n */\r\nfunction closetByClassName(elem, classNameList) {\r\n let classList = elem.classList;\r\n if (classList) {\r\n if (_.intersection(classList, classNameList).length > 0) {\r\n return elem;\r\n }\r\n }\r\n\r\n let parentElement = elem.parentElement;\r\n if (parentElement) {\r\n return closetByClassName(parentElement, classNameList);\r\n } else {\r\n return null;\r\n }\r\n}\r\n\r\n/**\r\n * calc current dom node offset to the left-top of the window\r\n */\r\nfunction offset(domNode) {\r\n var offest = {\r\n top: 0,\r\n left: 0\r\n };\r\n if (!domNode.getClientRects().length) {\r\n return offest;\r\n }\r\n if (window.getComputedStyle(domNode)['display'] === 'none') {\r\n return offest;\r\n }\r\n\r\n offest = domNode.getBoundingClientRect();\r\n var docElement = domNode.ownerDocument.documentElement;\r\n return {\r\n top: offest.top + (window.scrollY || window.pageYOffset) - docElement.clientTop,\r\n left: offest.left + (window.scrollX || window.pageXOffset) - docElement.clientLeft\r\n };\r\n}\r\n\r\nexport default {\r\n resetBodyScroll: resetBodyScroll,\r\n forbidBodyScroll: forbidBodyScroll,\r\n\r\n syncDomAnimation: syncDomAnimation,\r\n closetByClassName: closetByClassName,\r\n\r\n offset: offset,\r\n};\r\n","function isIOS() {\r\n return [\r\n 'iPad Simulator',\r\n 'iPhone Simulator',\r\n 'iPod Simulator',\r\n 'iPad',\r\n 'iPhone',\r\n 'iPod'\r\n ].includes(navigator.platform) || (navigator.userAgent.includes(\"Mac\") && \"ontouchend\" in document)\r\n}\r\n\r\nfunction isDesktopChrome() {\r\n let result = /Chrome/.test(navigator.userAgent) && /Google Inc/.test(navigator.vendor);\r\n if (!result) {\r\n return false;\r\n }\r\n\r\n if (isMobileChrome()) {\r\n return false;\r\n }\r\n\r\n return true;\r\n}\r\n\r\nfunction isMobileChrome() {\r\n return /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent) && /Chrome/.test(navigator.userAgent) && /Google Inc/.test(navigator.vendor);\r\n}\r\n\r\nfunction isMobileDevice() {\r\n return isIOS() || isMobileChrome();\r\n}\r\n\r\nfunction updateViewPort(pOptions = {}) {\r\n let viewport = document.getElementsByName(\"viewport\");\r\n if (!viewport || viewport.length != 1) {\r\n return;\r\n }\r\n\r\n let options = {};\r\n _.merge(options, defaultOptions, pOptions);\r\n\r\n let content = [];\r\n _.each(options, (value, key) => {\r\n content.push(key + \"=\" + value);\r\n });\r\n\r\n viewport[0].content = _.join(content, \",\");\r\n\r\n console.debug(\"curr viewport is: \" + viewport[0].content);\r\n}\r\n\r\nexport default {\r\n isIOS: isIOS,\r\n isDesktopChrome: isDesktopChrome,\r\n isMobileChrome: isMobileChrome,\r\n\r\n isMobileDevice: isMobileDevice,\r\n\r\n updateViewPort: updateViewPort,\r\n};\r\n","import _ from \"lodash\";\r\n\r\nlet globalDialogUtils;\r\n\r\nfunction init(pDialogInstanceUtils) {\r\n globalDialogUtils = pDialogInstanceUtils;\r\n}\r\n\r\nfunction toFormData(keyPrefix, model, ignoreKeys = [], formData = {}) {\r\n if(model == null){\r\n return {\r\n keyPrefix: null\r\n }\r\n }\r\n\r\n _.each(_.keys(model), (attr) => {\r\n let value = model[attr];\r\n let formKeyPath = keyPrefix ? keyPrefix + \"#\" + attr : attr;\r\n\r\n if(_.includes(ignoreKeys, formKeyPath)){\r\n formData[formKeyPath] = value;\r\n return;\r\n }\r\n\r\n if (_.isPlainObject(value)) {\r\n toFormData(formKeyPath, value, ignoreKeys, formData);\r\n } else {\r\n formData[formKeyPath] = value;\r\n }\r\n })\r\n\r\n return formData;\r\n}\r\n\r\nfunction toModel(formData, ignoreKeys = []) {\r\n if(formData == null){\r\n return null;\r\n }\r\n\r\n let model = {};\r\n _.each(_.keys(formData), (formKeyPath) => {\r\n let value = formData[formKeyPath];\r\n let path = formKeyPath.replaceAll(\"#\", \".\");\r\n _.set(model, path, value);\r\n });\r\n\r\n return model;\r\n}\r\n\r\nfunction scrollToFirstError(ex){\r\n const isError = document.getElementsByClassName('ant-form-item-has-error');\r\n isError[0] && isError[0].scrollIntoView();\r\n console.error(ex);\r\n}\r\n\r\n/**\r\n * show leave message when exit from a modified form page\r\n * @param formOrCheckFormDirtyFunc AntDesignForm or checkFormDirtyFunction\r\n * @returns {Promise<boolean>} true: can exit, or: abort exit\r\n */\r\nasync function confirmOfLeavingForm(formOrCheckFormDirtyFunc) {\r\n if(formOrCheckFormDirtyFunc == null){\r\n return true;\r\n }\r\n\r\n let formDirty;\r\n if (typeof formOrCheckFormDirtyFunc === 'function') {\r\n formDirty = await formOrCheckFormDirtyFunc();\r\n }else{\r\n formDirty = formOrCheckFormDirtyFunc.isFieldsTouched();\r\n }\r\n\r\n if (formDirty) {\r\n let result = await globalDialogUtils.showConfirmDialog(leaveMessage);\r\n if (result !== true) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n}\r\n\r\nconst leaveMessage = \"Do you want to give up your modification?\";\r\nexport default {\r\n init: init,\r\n\r\n toFormData: toFormData,\r\n toModel: toModel,\r\n scrollToFirstError: scrollToFirstError,\r\n\r\n confirmOfLeavingForm: confirmOfLeavingForm,\r\n leaveMessage: leaveMessage\r\n};","import _ from \"lodash\";\r\n\r\nfunction isJsonText(value) {\r\n value = _.trim(value);\r\n\r\n return (_.startsWith(value, \"{\") || _.startsWith(value, \"[\"));\r\n}\r\n\r\nfunction formatJsonText(value) {\r\n if (!isJsonText(value)) {\r\n return value;\r\n }\r\n\r\n return JSON.stringify(JSON.parse(value), null, 4);\r\n}\r\n\r\n\r\nexport default {\r\n isJsonText: isJsonText,\r\n formatJsonText: formatJsonText,\r\n};\r\n","import _ from \"lodash\";\r\n\r\nfunction formatNumberTextWithUnit(numberText, unitText) {\r\n if (!unitText) {\r\n return numberText;\r\n }\r\n return numberText + \" \" + unitText;\r\n}\r\n\r\nfunction formatPctWith2Digital(valuePct) {\r\n let valuePctText = formatNumberWithDigital(valuePct, 2, false);\r\n return valuePctText + \"%\";\r\n}\r\n\r\nfunction formatNumberWith2Digital(value) {\r\n return formatNumberWithDigital(value, 2);\r\n}\r\n\r\nfunction formatNumberWith4Digital(value) {\r\n return formatNumberWithDigital(value, 4);\r\n}\r\n\r\nfunction formatNumberWithDigital(value, digital) {\r\n if (value === null) {\r\n return \"\";\r\n }\r\n\r\n let dblValue = (_.toNumber(value));\r\n if (isNaN(dblValue)) {\r\n //the string value could not be convert to number, just return it;\r\n return value;\r\n }\r\n\r\n let valueText = value;\r\n if (digital != null) {\r\n let text = _.round(dblValue, digital) + \"\";\r\n if (text.indexOf(\".\") === -1) {\r\n text += '.';\r\n }\r\n\r\n let part1 = text.substring(0, text.indexOf(\".\"));\r\n let part2 = \"\";\r\n\r\n if (digital > 0) {\r\n part2 = text.substring(text.indexOf(\".\") + 1); //取到小数部分搜索\r\n part2 = \".\" + _.padEnd(part2, digital, '0');\r\n }\r\n valueText = part1 + part2;\r\n }\r\n\r\n return valueText;\r\n}\r\n\r\nexport default {\r\n formatPctWith2Digital: formatPctWith2Digital,\r\n formatNumberWith2Digital: formatNumberWith2Digital,\r\n formatNumberWith4Digital: formatNumberWith4Digital,\r\n formatNumberWithDigital: formatNumberWithDigital,\r\n formatNumberTextWithUnit: formatNumberTextWithUnit,\r\n};\r\n","import _ from \"lodash\";\r\nimport AxiosUtils from \"./AxiosUtils\";\r\n\r\nconst constants = {\r\n CANVAS_WIDTH: 480,\r\n CANVAS_HEIGHT: 270,\r\n}\r\n\r\n/**\r\n * create an empty 2 dimension array\r\n */\r\nfunction new2dArray(width, height, initValue) {\r\n let array = [];\r\n for (let rowIdx = 0; rowIdx < height; rowIdx++) {\r\n let newRow = [];\r\n for (let colIdx = 0; colIdx < width; colIdx++) {\r\n newRow.push(initValue);\r\n }\r\n array.push(newRow);\r\n }\r\n return array;\r\n}\r\n\r\n/**\r\n * render grey level ImageDataArray to Canvas\r\n */\r\nfunction renderImageDataArrayToCtx(ctx, imageDataArray) {\r\n let height = imageDataArray.length;\r\n let width = imageDataArray[0].length;\r\n let imageData = new ImageData(width, height);\r\n let idx = 0;\r\n for (let rowIdx = 0; rowIdx < height; rowIdx++) {\r\n for (let colIdx = 0; colIdx < width; colIdx++) {\r\n let grayData = imageDataArray[rowIdx][colIdx];\r\n\r\n imageData.data[idx + 0] = grayData;\r\n imageData.data[idx + 1] = grayData;\r\n imageData.data[idx + 2] = grayData;\r\n imageData.data[idx + 3] = 255;\r\n idx = idx + 4;\r\n }\r\n }\r\n ctx.putImageData(imageData, 0, 0, 0, 0, width, height);\r\n}\r\n\r\nfunction getImageDataArrayFromCtx(ctx, canvasWidth, canvasHeight) {\r\n let imageData = ctx.getImageData(0, 0, canvasWidth, canvasHeight);\r\n\r\n let isEmpty = true;\r\n let imageDataArray = [];\r\n for (let i = 0; i < imageData.data.length; i = i + 4) {\r\n let red = imageData.data[i];\r\n imageDataArray[i / 4] = red;\r\n if (red !== 255) {\r\n isEmpty = false;\r\n }\r\n }\r\n\r\n if (isEmpty) {\r\n return null;\r\n }\r\n\r\n imageDataArray = _.chunk(imageDataArray, canvasWidth);\r\n return imageDataArray;\r\n}\r\n\r\nfunction initCanvas(ctx, canvasWidth, canvasHeight) {\r\n ctx.fillStyle = \"white\";\r\n ctx.lineWidth = 1;\r\n ctx.lineCap = 'round';\r\n ctx.lineJoin = 'round';\r\n\r\n ctx.fillRect(0, 0, canvasWidth, canvasHeight);\r\n ctx.fill();\r\n}\r\n\r\nasync function convertCanvasToBlobFile(canvas, fileName, fileType = 'image/jpeg') {\r\n return new Promise((resolve, reject) => {\r\n canvas.toBlob(async function (blob) {\r\n const file = new File([blob], fileName);\r\n resolve(file);\r\n }, fileType, 0.9);\r\n });\r\n}\r\n\r\n/**\r\n * Build grey level ImageDataArray from text\r\n */\r\nfunction calcImageDataArrayFromText(valueText) {\r\n if (valueText == null) {\r\n return;\r\n }\r\n\r\n let imageDataArray = [];\r\n _.each(valueText.split(\";\"), (rowData, rowIdx) => {\r\n let row = [];\r\n _.each(rowData.split(\",\"), (item, colIdx) => {\r\n row.push(item);\r\n });\r\n imageDataArray.push(row);\r\n });\r\n return imageDataArray;\r\n}\r\n\r\nfunction calcTextFromImageDataArray(imageDataArray) {\r\n if (imageDataArray == null) {\r\n return;\r\n }\r\n\r\n let valueText = \"\";\r\n for (let rowIdx = 0; rowIdx < imageDataArray.length; rowIdx++) {\r\n if (rowIdx > 0) {\r\n valueText += \";\";\r\n }\r\n valueText += imageDataArray[rowIdx].join(\",\");\r\n }\r\n return valueText;\r\n}\r\n\r\nexport default {\r\n constants: constants,\r\n new2dArray: new2dArray,\r\n initCanvas: initCanvas,\r\n //common\r\n convertCanvasToBlobFile: convertCanvasToBlobFile,\r\n\r\n //for signature\r\n renderImageDataArrayToCtx: renderImageDataArrayToCtx,\r\n getImageDataArrayFromCtx: getImageDataArrayFromCtx,\r\n calcImageDataArrayFromText: calcImageDataArrayFromText,\r\n calcTextFromImageDataArray: calcTextFromImageDataArray,\r\n};\r\n","import _ from \"lodash\";\r\n\r\nlet pattern=/[`~!@#$^\\-&*()=|{}':;,\\\\\\[\\].<>\\/?\\s]/g;\r\n\r\nfunction buildKeyword(text) {\r\n if(!text){\r\n return '';\r\n }\r\n\r\n let keyword = text.replace(pattern, '').toUpperCase();\r\n return keyword;\r\n}\r\n\r\n\r\nexport default {\r\n buildKeyword: buildKeyword,\r\n};\r\n"],"names":["init","isMobileDevice","_","param","this","e","n","t","r","i","s","o","a","f","h","u","c","d","l","m","M"],"mappings":"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","x_google_ignoreList":[4,5,6]}
|
|
@@ -213,22 +213,12 @@
|
|
|
213
213
|
return _$1.includes(currUserInfoCache.roleList, roleCodeOrArray);
|
|
214
214
|
}
|
|
215
215
|
}
|
|
216
|
-
function buildUserAuthorization() {
|
|
217
|
-
let currUserInfo = getCurrUserInfoCache();
|
|
218
|
-
if (currUserInfo && currUserInfo.accessToken) {
|
|
219
|
-
return {
|
|
220
|
-
authorization: currUserInfo.accessToken
|
|
221
|
-
};
|
|
222
|
-
}
|
|
223
|
-
return {};
|
|
224
|
-
}
|
|
225
216
|
const LoginUserUtils = {
|
|
226
217
|
init: init$2,
|
|
227
218
|
clear,
|
|
228
219
|
getCurrUserInfo,
|
|
229
220
|
getCurrUserInfoCache,
|
|
230
221
|
getCurrUserId,
|
|
231
|
-
buildUserAuthorization,
|
|
232
222
|
userHasRole,
|
|
233
223
|
isMobileDevice: isMobileDevice$1
|
|
234
224
|
};
|
|
@@ -254,6 +244,15 @@
|
|
|
254
244
|
globalSpinHandlerInstance = pSpinHandlerInstance;
|
|
255
245
|
loginServiceInstance = pLoginServiceInstance;
|
|
256
246
|
}
|
|
247
|
+
let AUTHENTICATION = AppUtils.getLocalStorageObjItem("CURRENT_AUTHENTICATION") || {
|
|
248
|
+
"header": {
|
|
249
|
+
"authorization": null
|
|
250
|
+
}
|
|
251
|
+
};
|
|
252
|
+
function updateAuthentication(authentication) {
|
|
253
|
+
AUTHENTICATION = authentication;
|
|
254
|
+
AppUtils.setLocalStorageObjItem("CURRENT_AUTHENTICATION", authentication);
|
|
255
|
+
}
|
|
257
256
|
function getHostName() {
|
|
258
257
|
return window.location.hostname;
|
|
259
258
|
}
|
|
@@ -523,8 +522,7 @@
|
|
|
523
522
|
});
|
|
524
523
|
}
|
|
525
524
|
async function buildUserAccessToken(headers) {
|
|
526
|
-
|
|
527
|
-
_$1.each(authorizations, function(value, key) {
|
|
525
|
+
_$1.each(AUTHENTICATION == null ? void 0 : AUTHENTICATION.header, function(value, key) {
|
|
528
526
|
headers[key] = value;
|
|
529
527
|
});
|
|
530
528
|
}
|
|
@@ -602,7 +600,9 @@
|
|
|
602
600
|
handlerError,
|
|
603
601
|
getErrorMsgByCode,
|
|
604
602
|
RESULT,
|
|
605
|
-
EXCEPTION_CODE
|
|
603
|
+
EXCEPTION_CODE,
|
|
604
|
+
AUTHENTICATION,
|
|
605
|
+
updateAuthentication
|
|
606
606
|
};
|
|
607
607
|
var commonjsGlobal = typeof globalThis !== "undefined" ? globalThis : typeof window !== "undefined" ? window : typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : {};
|
|
608
608
|
function getDefaultExportFromCjs(x) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sirius-common-utils.umd.cjs","sources":["../src/packages/utils/CfgUtils.js","../src/packages/utils/AppUtils.js","../src/packages/utils/LoginUserUtils.js","../src/packages/utils/AxiosUtils.js","../node_modules/dayjs/plugin/updateLocale.js","../node_modules/dayjs/plugin/customParseFormat.js","../node_modules/dayjs/plugin/utc.js","../src/packages/utils/DateUtils.js","../src/packages/utils/DomUtils.js","../src/packages/utils/ExplorerTypeUtils.js","../src/packages/utils/FormUtils.js","../src/packages/utils/JsonUtils.js","../src/packages/utils/NumberUtils.js","../src/packages/utils/SignatureUtils.js","../src/packages/utils/StringUtils.js"],"sourcesContent":["export default {\r\n //Application Configuration\r\n appInfo: {\r\n appName: 'XMS', //application name\r\n frontEndValueEncodeFlag: false, //need to encode for LocalStorage values\r\n needFrontEndExceptionStatisticsFlag: true, //need trace front-end logs\r\n },\r\n //Ajax Configuration\r\n ajax:{\r\n timeOut: 60000, //Timeout\r\n },\r\n sysCfg: {\r\n ibmsEnabled: true,\r\n }\r\n};\r\n","import _ from 'lodash';\r\n\r\nimport {Base64} from 'js-base64';\r\nimport CfgUtils from \"./CfgUtils\";\r\n\r\n//appVersion\r\nfunction setAppVersion(version) {\r\n setLocalStorageStringItem(\"APP_VERSION\", version);\r\n}\r\n\r\nfunction getAppVersion() {\r\n return getLocalStorageStringItem(\"APP_VERSION\");\r\n}\r\n\r\n//app build version\r\nfunction setBuildVersion(version) {\r\n setLocalStorageStringItem(\"BUILD_VERSION\", version);\r\n}\r\n\r\nfunction getBuildVersion() {\r\n return getLocalStorageStringItem(\"BUILD_VERSION\");\r\n}\r\n\r\n//app cache version\r\nfunction setAppCacheVersion(version) {\r\n setLocalStorageStringItem(\"APP_CACHE_VERSION\", version);\r\n}\r\n\r\nfunction getAppCacheVersion() {\r\n return getLocalStorageStringItem(\"APP_CACHE_VERSION\");\r\n}\r\n\r\n\r\n/**\r\n * 检查LocalStorage中是否存在该键\r\n */\r\nfunction isLocalStorageItemExisted(key){\r\n let realKey = CfgUtils.appInfo.appName + '_' + key;\r\n let obj = localStorage.getItem(realKey);\r\n return obj !=null;\r\n}\r\n\r\nfunction removeLocalStorageItem(key, obj) {\r\n let realKey = CfgUtils.appInfo.appName + '_' + key;\r\n localStorage.removeItem(realKey);\r\n}\r\n\r\n/**\r\n * String类型的数据存储\r\n */\r\nfunction setLocalStorageStringItem(key, obj) {\r\n let realKey = CfgUtils.appInfo.appName + '_' + key;\r\n let realValue = obj;\r\n localStorage.setItem(realKey, encode(realValue));\r\n}\r\n\r\nfunction getLocalStorageStringItem(key) {\r\n let realKey = CfgUtils.appInfo.appName + '_' + key;\r\n let obj = decode(localStorage.getItem(realKey));\r\n return obj;\r\n}\r\n\r\n/**\r\n * Object类型的数据存储\r\n */\r\n\r\nfunction setLocalStorageObjItem(key, obj) {\r\n let realKey = CfgUtils.appInfo.appName + '_' + key;\r\n localStorage.setItem(realKey, encode(JSON.stringify(obj)));\r\n}\r\n\r\nfunction getLocalStorageObjItem(key) {\r\n let realKey = CfgUtils.appInfo.appName + '_' + key;\r\n let obj = null;\r\n try {\r\n let jsonVal = localStorage.getItem(realKey);\r\n obj = JSON.parse(decode(jsonVal));\r\n } catch (e) {\r\n }\r\n return obj;\r\n}\r\n\r\nfunction atomSetLocalStorageObjItem(key, obj){\r\n setLocalStorageObjItem(key, obj);\r\n}\r\n\r\nfunction atomGetLocalStorageObjItem(key){\r\n let result = getLocalStorageObjItem(key);\r\n setLocalStorageObjItem(key, null);\r\n return result;\r\n}\r\n\r\nfunction pushLocalStorageStringItem(key, obj){\r\n setLocalStorageStringItem(key, obj);\r\n}\r\n\r\nfunction popLocalStorageStringItem(key){\r\n let result = getLocalStorageStringItem(key);\r\n removeLocalStorageItem(key);\r\n return result;\r\n}\r\n\r\nfunction atomSetSessionStorageObjItem(key, obj){\r\n setSessionStorageObjItem(key, obj);\r\n}\r\n\r\nfunction atomGetSessionStorageObjItem(key){\r\n let result = getSessionStorageObjItem(key);\r\n setSessionStorageObjItem(key, null);\r\n return result;\r\n}\r\n\r\nfunction setSessionStorageObjItem(key, obj) {\r\n let realKey = CfgUtils.appInfo.appName + '_' + key;\r\n sessionStorage.setItem(realKey, encode(JSON.stringify(obj)));\r\n}\r\n\r\nfunction getSessionStorageObjItem(key) {\r\n let realKey = CfgUtils.appInfo.appName + '_' + key;\r\n let obj = null;\r\n try {\r\n let jsonVal = sessionStorage.getItem(realKey);\r\n obj = JSON.parse(decode(jsonVal));\r\n } catch (e) {\r\n }\r\n return obj;\r\n}\r\n\r\nfunction encode(originalValue){\r\n if(!originalValue){\r\n return originalValue;\r\n }\r\n if(!CfgUtils.appInfo.frontEndValueEncodeFlag){\r\n return originalValue;\r\n }\r\n return Base64.encode(originalValue);\r\n}\r\n\r\nfunction decode(encodeValue){\r\n if(!encodeValue){\r\n return encodeValue;\r\n }\r\n if(!CfgUtils.appInfo.frontEndValueEncodeFlag){\r\n return encodeValue;\r\n }\r\n return Base64.decode(encodeValue);\r\n}\r\n\r\nexport default {\r\n setAppVersion: setAppVersion,\r\n getAppVersion: getAppVersion,\r\n setBuildVersion: setBuildVersion,\r\n getBuildVersion: getBuildVersion,\r\n setAppCacheVersion: setAppCacheVersion,\r\n getAppCacheVersion: getAppCacheVersion,\r\n\r\n atomSetLocalStorageObjItem: atomSetLocalStorageObjItem,\r\n atomGetLocalStorageObjItem: atomGetLocalStorageObjItem,\r\n pushLocalStorageStringItem: pushLocalStorageStringItem,\r\n popLocalStorageStringItem: popLocalStorageStringItem,\r\n\r\n isLocalStorageItemExisted: isLocalStorageItemExisted,\r\n setLocalStorageObjItem: setLocalStorageObjItem,\r\n getLocalStorageObjItem: getLocalStorageObjItem,\r\n setLocalStorageStringItem: setLocalStorageStringItem,\r\n getLocalStorageStringItem: getLocalStorageStringItem,\r\n\r\n atomSetSessionStorageObjItem: atomSetSessionStorageObjItem,\r\n atomGetSessionStorageObjItem: atomGetSessionStorageObjItem,\r\n\r\n setSessionStorageObjItem: setSessionStorageObjItem,\r\n getSessionStorageObjItem: getSessionStorageObjItem,\r\n};\r\n","/**\r\n * getCurrUserInfo\r\n */\r\nimport AxiosUtils from \"./AxiosUtils\";\r\nimport _ from \"lodash\";\r\nimport AppUtils from \"./AppUtils\";\r\n\r\n\r\nasync function init(\r\n deviceType,\r\n pCurrUserInfoCache,\r\n pCustomizedUserUtils,\r\n pUriGetCurrUserInfo,\r\n) {\r\n if (pCurrUserInfoCache) {\r\n currUserInfoCache = pCurrUserInfoCache;\r\n AppUtils.setLocalStorageObjItem(\"CURRENT_USER\", currUserInfoCache);\r\n }\r\n\r\n customizedUserUtils = pCustomizedUserUtils;\r\n uriGetCurrUserInfo = pUriGetCurrUserInfo || `/api/user/getCurrUserInfo`;\r\n\r\n setDeviceType(deviceType);\r\n}\r\n\r\nasync function clear() {\r\n currUserInfoCache = null;\r\n AppUtils.setLocalStorageObjItem(\"CURRENT_USER\", null);\r\n}\r\n\r\nfunction setDeviceType(deviceType) {\r\n if (deviceType === 'MOBILE') {\r\n AppUtils.setLocalStorageStringItem(\"DEVICE_TYPE\", \"MOBILE\");\r\n } else {\r\n AppUtils.setLocalStorageStringItem(\"DEVICE_TYPE\", \"WEB\");\r\n }\r\n}\r\n\r\nfunction isMobileDevice() {\r\n let deviceType = AppUtils.getLocalStorageStringItem(\"DEVICE_TYPE\");\r\n return deviceType === 'MOBILE';\r\n}\r\n\r\nlet customizedUserUtils = null;\r\nlet currUserInfoCache = null;\r\n\r\nasync function getCurrUserInfo() {\r\n if (customizedUserUtils && customizedUserUtils.getUserInfo) {\r\n let currUser = await customizedUserUtils.getUserInfo();\r\n currUserInfoCache = currUser;\r\n AppUtils.setLocalStorageObjItem(\"CURRENT_USER\", currUser);\r\n\r\n return currUser;\r\n } else {\r\n let currUser = await AxiosUtils.getJsonData(uriGetCurrUserInfo);\r\n currUserInfoCache = currUser;\r\n AppUtils.setLocalStorageObjItem(\"CURRENT_USER\", currUser);\r\n return currUser;\r\n }\r\n}\r\n\r\nfunction getCurrUserInfoCache() {\r\n if (currUserInfoCache != null) {\r\n return currUserInfoCache;\r\n }\r\n\r\n currUserInfoCache = AppUtils.getLocalStorageObjItem(\"CURRENT_USER\");\r\n if (currUserInfoCache != null) {\r\n return currUserInfoCache;\r\n }\r\n\r\n\r\n // console.debug(\"Please invoke getCurrUserInfo first\");\r\n return null;\r\n}\r\n\r\nfunction getCurrUserId() {\r\n return getCurrUserInfoCache()?.id;\r\n}\r\n\r\n\r\nlet uriGetCurrUserInfo = null;\r\n\r\n\r\n/**\r\n * check user role\r\n */\r\nfunction userHasRole(roleCodeOrArray) {\r\n if (currUserInfoCache == null) {\r\n return false;\r\n }\r\n\r\n if (_.isArray(roleCodeOrArray)) {\r\n return !_.isEmpty(_.intersection(currUserInfoCache.roleList, roleCodeOrArray));\r\n } else {\r\n return _.includes(currUserInfoCache.roleList, roleCodeOrArray);\r\n }\r\n}\r\n\r\nfunction buildUserAuthorization() {\r\n let currUserInfo = getCurrUserInfoCache();\r\n if (currUserInfo && currUserInfo.accessToken) {\r\n return {\r\n authorization: currUserInfo.accessToken\r\n }\r\n }\r\n return {};\r\n}\r\n\r\nexport default {\r\n init: init,\r\n clear: clear,\r\n getCurrUserInfo: getCurrUserInfo,\r\n getCurrUserInfoCache: getCurrUserInfoCache,\r\n getCurrUserId: getCurrUserId,\r\n buildUserAuthorization: buildUserAuthorization,\r\n userHasRole: userHasRole,\r\n\r\n isMobileDevice: isMobileDevice,\r\n\r\n};\r\n","import _ from 'lodash';\r\n\r\nimport CfgUtils from \"./CfgUtils\";\r\nimport LoginUserUtils from \"./LoginUserUtils\";\r\n\r\nlet axios = null;\r\nlet urlContext = null; //URL路径前缀\r\n\r\nlet RESULT = {\r\n SUCCESS: 200,\r\n};\r\n\r\n\r\nlet EXCEPTION_CODE = {\r\n AUTHENTICATION_FAILED_COMMON: 901,\r\n AUTHENTICATION_SESSION_EXPIRED: 905,\r\n NETWORK_ISSUE_CLIENT: 911,\r\n SYS_UNKNOWN_ISSUE: 999,\r\n}\r\n\r\nlet globalDialogUtilsInstance;\r\nlet globalSpinHandlerInstance;\r\nlet loginServiceInstance;\r\n\r\nfunction init(pAxios, pContext, pSpinHandlerInstance, pDialogUtilsInstance, pLoginServiceInstance) {\r\n axios = pAxios;\r\n\r\n // axios.defaults.baseURL = getPath(\"/xms-test\");\r\n axios.defaults.baseURL = getPath(pContext);\r\n axios.defaults.timeout = CfgUtils.ajax.timeout;\r\n\r\n globalDialogUtilsInstance = pDialogUtilsInstance;\r\n globalSpinHandlerInstance = pSpinHandlerInstance;\r\n loginServiceInstance = pLoginServiceInstance;\r\n}\r\n\r\nfunction getHostName() {\r\n return window.location.hostname;\r\n}\r\n\r\n/**\r\n *\r\n */\r\nfunction loadParamFromLocationSearch(paramKey) {\r\n var paramsStr = window.location.search;\r\n if (paramsStr.indexOf('?') === 0) {\r\n paramsStr = paramsStr.substring(1);\r\n }\r\n var entryParams = paramsStr.split('&');\r\n var entryParamStr = _.find(entryParams, function (param) {\r\n return param.indexOf(paramKey) === 0;\r\n });\r\n if (!entryParamStr) {\r\n return null;\r\n }\r\n var param = entryParamStr.split('=');\r\n if (!param[1]) {\r\n return null;\r\n }\r\n return param[1];\r\n}\r\n\r\n/**\r\n * get the entire url path\r\n * @param path start with '/'\r\n * @returns {string|*}\r\n */\r\nfunction getPath(path) {\r\n if (_.startsWith(path, \"http\")) {\r\n return path;\r\n }\r\n\r\n if (urlContext == null) {\r\n urlContext = window.document.location.href;\r\n let lastIdx = urlContext.indexOf('.htm');\r\n if (lastIdx > -1) {\r\n urlContext = urlContext.substring(0, urlContext.lastIndexOf('/', lastIdx));\r\n } else {\r\n lastIdx = urlContext.indexOf('/#');\r\n if (lastIdx > -1) {\r\n urlContext = urlContext.substring(0, lastIdx);\r\n } else {\r\n lastIdx = urlContext.indexOf('#');\r\n if (lastIdx > -1) {\r\n urlContext = urlContext.substring(0, lastIdx);\r\n } else {\r\n console.log(`Could not identify URL path ${urlContext}`);\r\n }\r\n }\r\n }\r\n //http://localhost:3000/index.html/#/index/highTriggerWiggleRoomValue -> http://localhost:3000\r\n }\r\n\r\n if (urlContext.endsWith(\"/\")) { //remove the last '/'\r\n urlContext = urlContext.substring(0, urlContext.length - 1);\r\n }\r\n return urlContext + path;\r\n}\r\n\r\n/**\r\n * Download excel from server\r\n */\r\nfunction downloadExcelData(url, data, headers, options = {}) {\r\n return new Promise(async function (resolve, reject) {\r\n headers = headers || {};\r\n if (headers['Content-Type'] == null) {\r\n headers['Content-Type'] = 'application/json';\r\n }\r\n\r\n await buildUserAccessToken(headers);\r\n\r\n try {\r\n let response = await axios({\r\n method: 'post',\r\n url: url,\r\n data: data,\r\n headers: headers,\r\n responseType: 'blob'\r\n });\r\n if (response.data) {\r\n if (response.data.errorCode && response.data.errorCode !== RESULT.SUCCESS) {\r\n let errorResult = await handlerError(url, data, response);\r\n resolve(errorResult);\r\n return;\r\n }\r\n }\r\n\r\n const link = document.createElement('a')\r\n let blob = new Blob([response.data], {type: 'application/vnd.ms-excel'});\r\n let contentDisposition = response.headers[\"content-disposition\"];\r\n\r\n if (contentDisposition == null) {\r\n let errorResult = await handlerError(url, data, {\r\n data: {\r\n errorCode: EXCEPTION_CODE.SYS_UNKNOWN_ISSUE,\r\n error: \"System Error\",\r\n }\r\n });\r\n resolve(errorResult);\r\n return;\r\n }\r\n\r\n let temp = contentDisposition.split(\";\")[1].split(\"ilename=\")[1];\r\n var fileName = decodeURIComponent(temp);\r\n console.log(fileName)\r\n link.style.display = 'none'\r\n link.href = URL.createObjectURL(blob);\r\n link.setAttribute('download', fileName);\r\n document.body.appendChild(link);\r\n link.click();\r\n document.body.removeChild(link);\r\n\r\n resolve(true);\r\n } catch (e) {\r\n let errorResult = await handlerError(url, {}, e);\r\n resolve(errorResult);\r\n }\r\n });\r\n}\r\n\r\n\r\n/**\r\n * Download image from server, and return ImageData blob\r\n */\r\nfunction downloadImageData(url, data, headers, options = {}) {\r\n return new Promise(async function (resolve, reject) {\r\n headers = headers || {};\r\n if (headers['Content-Type'] == null) {\r\n headers['Content-Type'] = 'application/json';\r\n }\r\n\r\n await buildUserAccessToken(headers);\r\n\r\n try {\r\n let response = await axios({\r\n method: 'post',\r\n url: url,\r\n data: data,\r\n headers: headers,\r\n responseType: 'blob'\r\n });\r\n let imageData = response.data;\r\n if (imageData != null) {\r\n if (response.data.errorCode && response.data.errorCode !== RESULT.SUCCESS) {\r\n let errorResult = await handlerError(url, data, response);\r\n resolve(null);\r\n return;\r\n }\r\n }\r\n resolve(imageData);\r\n } catch (e) {\r\n let errorResult = await handlerError(url, {}, e);\r\n resolve(null);\r\n }\r\n });\r\n}\r\n\r\n/**\r\n *\r\n */\r\nfunction downloadServerData(url) {\r\n return new Promise(function (resolve, reject) {\r\n\r\n const hyperlink = document.createElement('a');\r\n hyperlink.style.display = 'none';//隐藏,没必要展示出来\r\n hyperlink.href = url;\r\n hyperlink.target = \"_blank\";\r\n document.body.appendChild(hyperlink);\r\n hyperlink.click();\r\n URL.revokeObjectURL(hyperlink.href); // 释放URL 对象\r\n document.body.removeChild(hyperlink);//下载\r\n\r\n resolve(true);\r\n });\r\n}\r\n\r\n/**\r\n *\r\n */\r\nfunction downloadServerBlobData(url) {\r\n return new Promise(function (resolve, reject) {\r\n axios.get(url, {\r\n responseType: 'blob',\r\n }).then((res) => {\r\n resolve(res.data);\r\n }, (error) => {\r\n resolve(null);\r\n });\r\n });\r\n}\r\n\r\n/**\r\n * upload file to server\r\n * TODO Joey need check with FormData scenario\r\n */\r\nfunction uploadFile(url, file, headers, onUploadProgress, customizedOptions) {\r\n headers = headers || {};\r\n\r\n let formdata = new FormData();\r\n if (_.isArray(file)) {\r\n formdata.append(\"files\", file);\r\n } else {\r\n formdata.append(\"file\", file)\r\n }\r\n\r\n customizedOptions = customizedOptions || {};\r\n return execute(\"POST\", url, formdata, headers, onUploadProgress, customizedOptions)\r\n}\r\n\r\n/**\r\n * getStaticTextFile\r\n */\r\nfunction getStaticTextFile(url) {\r\n return new Promise(async function (resolve, reject) {\r\n axios.get(url).then((res) => {\r\n resolve(res);\r\n }, (error) => {\r\n resolve(null);\r\n });\r\n });\r\n}\r\n\r\n/**\r\n * build form-data from param object\r\n */\r\nfunction getUrlParam(params) {\r\n if (params) {\r\n var param = '';\r\n _.each(params, function (i, val) {\r\n if (i != null) {\r\n param += val + '=' + encodeURIComponent(i) + '&';\r\n } else {\r\n param += val + '=&';\r\n }\r\n });\r\n param = param.substring(0, param.length - 1);\r\n return param;\r\n } else {\r\n return '';\r\n }\r\n}\r\n\r\nfunction getFormData(url, headers, customizedOptions) {\r\n headers = headers || {};\r\n if (headers['Content-Type'] == null) {\r\n headers['Content-Type'] = 'application/x-www-form-urlencoded';\r\n }\r\n\r\n customizedOptions = customizedOptions || {};\r\n\r\n return execute(\"GET\", url, null, headers, null, customizedOptions)\r\n}\r\n\r\nfunction postFormData(url, dataObject, headers, customizedOptions) {\r\n let formdata = null;\r\n if (dataObject) {\r\n formdata = getUrlParam(dataObject);\r\n }\r\n\r\n headers = headers || {};\r\n if (headers['Content-Type'] == null) {\r\n headers['Content-Type'] = 'application/x-www-form-urlencoded';\r\n }\r\n\r\n customizedOptions = customizedOptions || {};\r\n\r\n return execute(\"POST\", url, formdata, headers, null, customizedOptions)\r\n}\r\n\r\nfunction getJsonData(url, headers, customizedOptions) {\r\n headers = headers || {};\r\n if (headers['Content-Type'] == null) {\r\n headers['Content-Type'] = 'application/json';\r\n }\r\n\r\n return execute(\"GET\", url, null, headers, null, customizedOptions)\r\n}\r\n\r\nfunction postJsonData(url, dataObject, headers, customizedOptions) {\r\n headers = headers || {};\r\n if (headers['Content-Type'] == null) {\r\n headers['Content-Type'] = 'application/json';\r\n }\r\n\r\n return execute(\"POST\", url, dataObject, headers, null, customizedOptions)\r\n}\r\n\r\n/**\r\n * General Axios Data request\r\n *\r\n * @param method\r\n * @param url\r\n * @param data\r\n * @param headers\r\n * @param customizedOptions: { }customizedErrorHandlerFlag: false }\r\n */\r\nfunction execute(method, url, data, headers, onUploadProgress, customizedOptions = {}) {\r\n return new Promise(function (resolve, reject) {\r\n //check and set User AccessToken in the request header\r\n buildUserAccessToken(headers).then(\r\n function () {\r\n //AccessToken is valid\r\n axios({\r\n method: method,\r\n url: url,\r\n data: data,\r\n headers: headers,\r\n onUploadProgress: onUploadProgress,\r\n })\r\n .then((response) => {\r\n if (response.data) {\r\n if (response.data.errorCode && response.data.errorCode !== RESULT.SUCCESS) {\r\n if (customizedOptions.customizedErrorHandlerFlag) {\r\n resolve(response.data);\r\n } else {\r\n handlerError(url, data, response).then((result) => {\r\n resolve(result);\r\n });\r\n }\r\n } else {\r\n resolve(response.data);\r\n }\r\n } else {\r\n resolve(response.data);\r\n }\r\n }, (error) => {\r\n if (customizedOptions.customizedErrorHandlerFlag) {\r\n resolve(error);\r\n } else {\r\n handlerError(url, data, error).then((result) => {\r\n resolve(result);\r\n });\r\n }\r\n });\r\n },\r\n (error) => {\r\n //AccessToken is invalid\r\n handlerError(url, data, error).then((result) => {\r\n resolve(result);\r\n });\r\n });\r\n\r\n });\r\n}\r\n\r\nasync function buildUserAccessToken(headers) {\r\n let authorizations = await LoginUserUtils.buildUserAuthorization();\r\n _.each(authorizations, function(value, key){\r\n headers[key] = value;\r\n });\r\n}\r\n\r\n\r\n/**\r\n * build error message base on errorCode\r\n */\r\nfunction getErrorMsgByCode(errorCode, errorMsg) {\r\n return errorMsg;\r\n}\r\n\r\n/**\r\n * request error handler\r\n * if multiple ajax error happened. just process the first one.\r\n */\r\nvar reqErrorInProcessing = false;\r\n\r\nasync function handlerError(url, reqData, responseOrAxiosError) {\r\n if (reqErrorInProcessing === true) {\r\n return;\r\n }\r\n\r\n reqErrorInProcessing = true;\r\n await handlerErrorLogic(url, reqData, responseOrAxiosError);\r\n reqErrorInProcessing = false;\r\n}\r\n\r\nasync function showErrorMessage(errorCode, heading = \"System Error\", message) {\r\n globalSpinHandlerInstance.complete();\r\n await globalDialogUtilsInstance.showAppErrorDialog(heading, message);\r\n}\r\n\r\nasync function handlerErrorLogic(url, reqData, responseOrAxiosError) {\r\n let errorCode = _.get(responseOrAxiosError, 'data.errorCode');\r\n let error = _.get(responseOrAxiosError, 'data.error');\r\n\r\n if (!errorCode && _.get(responseOrAxiosError, 'code')) {\r\n let axiosErrorStatus = _.get(responseOrAxiosError, 'response.status');\r\n let axiosErrorStatusText = _.get(responseOrAxiosError, 'response.statusText');\r\n\r\n if (_.includes([502, 504], axiosErrorStatus)) {\r\n errorCode = EXCEPTION_CODE.NETWORK_ISSUE_CLIENT;\r\n error = axiosErrorStatusText;\r\n } else if (_.includes([400], axiosErrorStatus)) {\r\n errorCode = EXCEPTION_CODE.SYS_UNKNOWN_ISSUE;\r\n error = axiosErrorStatusText;\r\n } else if (_.includes([404], axiosErrorStatus)) {\r\n errorCode = EXCEPTION_CODE.SYS_UNKNOWN_ISSUE;\r\n error = axiosErrorStatusText;\r\n }\r\n }\r\n\r\n //session timeout\r\n var sessionTimeoutErrorCodes = [\r\n EXCEPTION_CODE.AUTHENTICATION_FAILED_COMMON,\r\n EXCEPTION_CODE.AUTHENTICATION_SESSION_EXPIRED,\r\n ]\r\n\r\n if (_.includes(sessionTimeoutErrorCodes, errorCode)) {\r\n await appSessionExit(errorCode, true);\r\n return;\r\n }\r\n\r\n if (EXCEPTION_CODE.NETWORK_ISSUE_CLIENT === errorCode) {\r\n await showErrorMessage(errorCode, \"Network issue\", error);\r\n return;\r\n }\r\n\r\n await showErrorMessage(errorCode, null, getErrorMsgByCode(errorCode, error));\r\n}\r\n\r\n/**\r\n * application exit handler\r\n */\r\nasync function appSessionExit(resultCode, forceCloseFlag) {\r\n if (loginServiceInstance && loginServiceInstance.logout) {\r\n await loginServiceInstance.logout();\r\n } else {\r\n await globalDialogUtilsInstance.showAppErrorDialog(\"Session Timeout\", \"Please login again\");\r\n }\r\n}\r\n\r\nconst AxiosUtils = {\r\n init: init,\r\n getHostName: getHostName,\r\n loadParamFromLocationSearch: loadParamFromLocationSearch,\r\n getPath: getPath,\r\n getUrlParam: getUrlParam,\r\n getFormData: getFormData,\r\n postFormData: postFormData,\r\n getJsonData: getJsonData,\r\n postJsonData: postJsonData,\r\n downloadExcelData: downloadExcelData,\r\n downloadImageData: downloadImageData,\r\n downloadServerData: downloadServerData,\r\n downloadServerBlobData: downloadServerBlobData,\r\n uploadFile: uploadFile,\r\n getStaticTextFile: getStaticTextFile,\r\n appSessionExit: appSessionExit,\r\n handlerError: handlerError,\r\n getErrorMsgByCode: getErrorMsgByCode,\r\n\r\n RESULT: RESULT,\r\n EXCEPTION_CODE: EXCEPTION_CODE,\r\n};\r\n\r\nexport default AxiosUtils;\r\n","!function(e,n){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=n():\"function\"==typeof define&&define.amd?define(n):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).dayjs_plugin_updateLocale=n()}(this,(function(){\"use strict\";return function(e,n,t){t.updateLocale=function(e,n){var o=t.Ls[e];if(o)return(n?Object.keys(n):[]).forEach((function(e){o[e]=n[e]})),o}}}));","!function(e,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define(t):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).dayjs_plugin_customParseFormat=t()}(this,(function(){\"use strict\";var e={LTS:\"h:mm:ss A\",LT:\"h:mm A\",L:\"MM/DD/YYYY\",LL:\"MMMM D, YYYY\",LLL:\"MMMM D, YYYY h:mm A\",LLLL:\"dddd, MMMM D, YYYY h:mm A\"},t=/(\\[[^[]*\\])|([-_:/.,()\\s]+)|(A|a|YYYY|YY?|MM?M?M?|Do|DD?|hh?|HH?|mm?|ss?|S{1,3}|z|ZZ?)/g,n=/\\d\\d/,r=/\\d\\d?/,i=/\\d*[^-_:/,()\\s\\d]+/,o={},s=function(e){return(e=+e)+(e>68?1900:2e3)};var a=function(e){return function(t){this[e]=+t}},f=[/[+-]\\d\\d:?(\\d\\d)?|Z/,function(e){(this.zone||(this.zone={})).offset=function(e){if(!e)return 0;if(\"Z\"===e)return 0;var t=e.match(/([+-]|\\d\\d)/g),n=60*t[1]+(+t[2]||0);return 0===n?0:\"+\"===t[0]?-n:n}(e)}],h=function(e){var t=o[e];return t&&(t.indexOf?t:t.s.concat(t.f))},u=function(e,t){var n,r=o.meridiem;if(r){for(var i=1;i<=24;i+=1)if(e.indexOf(r(i,0,t))>-1){n=i>12;break}}else n=e===(t?\"pm\":\"PM\");return n},d={A:[i,function(e){this.afternoon=u(e,!1)}],a:[i,function(e){this.afternoon=u(e,!0)}],S:[/\\d/,function(e){this.milliseconds=100*+e}],SS:[n,function(e){this.milliseconds=10*+e}],SSS:[/\\d{3}/,function(e){this.milliseconds=+e}],s:[r,a(\"seconds\")],ss:[r,a(\"seconds\")],m:[r,a(\"minutes\")],mm:[r,a(\"minutes\")],H:[r,a(\"hours\")],h:[r,a(\"hours\")],HH:[r,a(\"hours\")],hh:[r,a(\"hours\")],D:[r,a(\"day\")],DD:[n,a(\"day\")],Do:[i,function(e){var t=o.ordinal,n=e.match(/\\d+/);if(this.day=n[0],t)for(var r=1;r<=31;r+=1)t(r).replace(/\\[|\\]/g,\"\")===e&&(this.day=r)}],M:[r,a(\"month\")],MM:[n,a(\"month\")],MMM:[i,function(e){var t=h(\"months\"),n=(h(\"monthsShort\")||t.map((function(e){return e.slice(0,3)}))).indexOf(e)+1;if(n<1)throw new Error;this.month=n%12||n}],MMMM:[i,function(e){var t=h(\"months\").indexOf(e)+1;if(t<1)throw new Error;this.month=t%12||t}],Y:[/[+-]?\\d+/,a(\"year\")],YY:[n,function(e){this.year=s(e)}],YYYY:[/\\d{4}/,a(\"year\")],Z:f,ZZ:f};function c(n){var r,i;r=n,i=o&&o.formats;for(var s=(n=r.replace(/(\\[[^\\]]+])|(LTS?|l{1,4}|L{1,4})/g,(function(t,n,r){var o=r&&r.toUpperCase();return n||i[r]||e[r]||i[o].replace(/(\\[[^\\]]+])|(MMMM|MM|DD|dddd)/g,(function(e,t,n){return t||n.slice(1)}))}))).match(t),a=s.length,f=0;f<a;f+=1){var h=s[f],u=d[h],c=u&&u[0],l=u&&u[1];s[f]=l?{regex:c,parser:l}:h.replace(/^\\[|\\]$/g,\"\")}return function(e){for(var t={},n=0,r=0;n<a;n+=1){var i=s[n];if(\"string\"==typeof i)r+=i.length;else{var o=i.regex,f=i.parser,h=e.slice(r),u=o.exec(h)[0];f.call(t,u),e=e.replace(u,\"\")}}return function(e){var t=e.afternoon;if(void 0!==t){var n=e.hours;t?n<12&&(e.hours+=12):12===n&&(e.hours=0),delete e.afternoon}}(t),t}}return function(e,t,n){n.p.customParseFormat=!0,e&&e.parseTwoDigitYear&&(s=e.parseTwoDigitYear);var r=t.prototype,i=r.parse;r.parse=function(e){var t=e.date,r=e.utc,s=e.args;this.$u=r;var a=s[1];if(\"string\"==typeof a){var f=!0===s[2],h=!0===s[3],u=f||h,d=s[2];h&&(d=s[2]),o=this.$locale(),!f&&d&&(o=n.Ls[d]),this.$d=function(e,t,n){try{if([\"x\",\"X\"].indexOf(t)>-1)return new Date((\"X\"===t?1e3:1)*e);var r=c(t)(e),i=r.year,o=r.month,s=r.day,a=r.hours,f=r.minutes,h=r.seconds,u=r.milliseconds,d=r.zone,l=new Date,m=s||(i||o?1:l.getDate()),M=i||l.getFullYear(),Y=0;i&&!o||(Y=o>0?o-1:l.getMonth());var p=a||0,v=f||0,D=h||0,g=u||0;return d?new Date(Date.UTC(M,Y,m,p,v,D,g+60*d.offset*1e3)):n?new Date(Date.UTC(M,Y,m,p,v,D,g)):new Date(M,Y,m,p,v,D,g)}catch(e){return new Date(\"\")}}(t,a,r),this.init(),d&&!0!==d&&(this.$L=this.locale(d).$L),u&&t!=this.format(a)&&(this.$d=new Date(\"\")),o={}}else if(a instanceof Array)for(var l=a.length,m=1;m<=l;m+=1){s[1]=a[m-1];var M=n.apply(this,s);if(M.isValid()){this.$d=M.$d,this.$L=M.$L,this.init();break}m===l&&(this.$d=new Date(\"\"))}else i.call(this,e)}}}));","!function(t,i){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=i():\"function\"==typeof define&&define.amd?define(i):(t=\"undefined\"!=typeof globalThis?globalThis:t||self).dayjs_plugin_utc=i()}(this,(function(){\"use strict\";var t=\"minute\",i=/[+-]\\d\\d(?::?\\d\\d)?/g,e=/([+-]|\\d\\d)/g;return function(s,f,n){var u=f.prototype;n.utc=function(t){var i={date:t,utc:!0,args:arguments};return new f(i)},u.utc=function(i){var e=n(this.toDate(),{locale:this.$L,utc:!0});return i?e.add(this.utcOffset(),t):e},u.local=function(){return n(this.toDate(),{locale:this.$L,utc:!1})};var o=u.parse;u.parse=function(t){t.utc&&(this.$u=!0),this.$utils().u(t.$offset)||(this.$offset=t.$offset),o.call(this,t)};var r=u.init;u.init=function(){if(this.$u){var t=this.$d;this.$y=t.getUTCFullYear(),this.$M=t.getUTCMonth(),this.$D=t.getUTCDate(),this.$W=t.getUTCDay(),this.$H=t.getUTCHours(),this.$m=t.getUTCMinutes(),this.$s=t.getUTCSeconds(),this.$ms=t.getUTCMilliseconds()}else r.call(this)};var a=u.utcOffset;u.utcOffset=function(s,f){var n=this.$utils().u;if(n(s))return this.$u?0:n(this.$offset)?a.call(this):this.$offset;if(\"string\"==typeof s&&(s=function(t){void 0===t&&(t=\"\");var s=t.match(i);if(!s)return null;var f=(\"\"+s[0]).match(e)||[\"-\",0,0],n=f[0],u=60*+f[1]+ +f[2];return 0===u?0:\"+\"===n?u:-u}(s),null===s))return this;var u=Math.abs(s)<=16?60*s:s,o=this;if(f)return o.$offset=u,o.$u=0===s,o;if(0!==s){var r=this.$u?this.toDate().getTimezoneOffset():-1*this.utcOffset();(o=this.local().add(u+r,t)).$offset=u,o.$x.$localOffset=r}else o=this.utc();return o};var h=u.format;u.format=function(t){var i=t||(this.$u?\"YYYY-MM-DDTHH:mm:ss[Z]\":\"\");return h.call(this,i)},u.valueOf=function(){var t=this.$utils().u(this.$offset)?0:this.$offset+(this.$x.$localOffset||this.$d.getTimezoneOffset());return this.$d.valueOf()-6e4*t},u.isUTC=function(){return!!this.$u},u.toISOString=function(){return this.toDate().toISOString()},u.toString=function(){return this.toDate().toUTCString()};var l=u.toDate;u.toDate=function(t){return\"s\"===t&&this.$offset?n(this.format(\"YYYY-MM-DD HH:mm:ss:SSS\")).toDate():l.call(this)};var c=u.diff;u.diff=function(t,i,e){if(t&&this.$u===t.$u)return c.call(this,t,i,e);var s=this.local(),f=n(t).local();return c.call(s,f,i,e)}}}));","import dayjs from \"dayjs\";\r\n\r\n\r\nimport updateLocale from 'dayjs/plugin/updateLocale';\r\nimport customParseFormat from 'dayjs/plugin/customParseFormat';\r\nimport utc from 'dayjs/plugin/utc';\r\n\r\ndayjs.extend(utc);\r\ndayjs.extend(updateLocale);\r\ndayjs.extend(customParseFormat);\r\n\r\nconst FORMAT_DATE = \"DD-MM-YYYY\";\r\nconst FORMAT_DATETIME = \"DD-MM-YYYY HH:mm:ss\";\r\nconst FORMAT_YEARMONTH = \"YYYY-MMMM\";\r\nconst FORMAT_YEARWEEK = \"YYYY-WW\";\r\nconst FORMAT_DAYOFMONTH = \"DD\";\r\nconst FORMAT_YEAR = \"YYYY\";\r\nconst FORMAT_TIME = \"HH:mm:ss\";\r\n\r\nfunction getCurrentMoment(){\r\n return dayjs();\r\n}\r\n\r\nfunction getCurrentDateText(){\r\n return convertMomentToDateText(getCurrentMoment());\r\n}\r\n\r\nfunction getCurrentDateTimeText(){\r\n return convertMomentToDateTimeText(getCurrentMoment());\r\n}\r\n\r\nfunction getCurrentDate(){\r\n return getCurrentMoment().toDate();\r\n}\r\n\r\nfunction convertMomentToTimestamp(moment) {\r\n if (moment) {\r\n return moment.toDate().getTime();\r\n } else {\r\n return null;\r\n }\r\n}\r\n\r\nfunction convertMomentToDateText(moment) {\r\n if (moment) {\r\n return moment.format(FORMAT_DATE);\r\n } else {\r\n return '';\r\n }\r\n}\r\n\r\nfunction convertTimestampToMoment(timestamp) {\r\n if (timestamp && timestamp > 0) {\r\n return dayjs(timestamp);\r\n } else {\r\n return null;\r\n }\r\n}\r\n\r\nfunction convertMomentToDateTimeText(moment) {\r\n if (moment) {\r\n return moment.format(FORMAT_DATETIME);\r\n } else {\r\n return \"\";\r\n }\r\n}\r\n\r\nfunction convertMomentToYearText(moment) {\r\n if (moment) {\r\n return moment.format(FORMAT_YEAR);\r\n } else {\r\n return \"\";\r\n }\r\n}\r\n\r\nfunction convertMomentToYearMonthText(moment) {\r\n if (moment) {\r\n return moment.format(FORMAT_YEARMONTH);\r\n } else {\r\n return \"\";\r\n }\r\n}\r\n\r\nfunction convertMomentToDayOfMonthText(moment) {\r\n if (moment) {\r\n return moment.format(FORMAT_DAYOFMONTH);\r\n } else {\r\n return \"\";\r\n }\r\n}\r\n\r\n\r\n\r\nfunction convertMomentToTimeText(moment) {\r\n if (moment) {\r\n return moment.format(FORMAT_TIME);\r\n } else {\r\n return \"\";\r\n }\r\n}\r\n\r\nfunction convertDateTimeTextToMoment(dateTimeText) {\r\n if (dateTimeText) {\r\n return dayjs(dateTimeText, FORMAT_DATETIME);\r\n } else {\r\n return null;\r\n }\r\n}\r\n\r\nfunction convertYearMonthTextToMoment(yearMonthText) {\r\n if (yearMonthText) {\r\n return dayjs(yearMonthText, FORMAT_YEARMONTH);\r\n } else {\r\n return null;\r\n }\r\n}\r\n\r\nfunction convertDateTextToMoment(dateText) {\r\n if (dateText) {\r\n return dayjs(dateText, FORMAT_DATE);\r\n } else {\r\n return null;\r\n }\r\n}\r\n\r\nfunction convertTimeTextToMoment(dateTimeText) {\r\n if (dateTimeText) {\r\n return dayjs(dateTimeText, FORMAT_TIME);\r\n } else {\r\n return null;\r\n }\r\n}\r\n\r\nfunction convertDateTextToDate(dateText) {\r\n if (dateText) {\r\n return dayjs(dateText, FORMAT_DATE).toDate();\r\n } else {\r\n return null;\r\n }\r\n}\r\n\r\nfunction convertDateTimeTextToDate(dateTimeText) {\r\n if (dateTimeText) {\r\n let moment = dayjs(dateTimeText, FORMAT_DATETIME);\r\n return dayjs(dateTimeText, FORMAT_DATETIME).toDate();\r\n } else {\r\n return null;\r\n }\r\n}\r\n\r\nfunction convertTimestampToDateText(timestamp) {\r\n let moments = convertTimestampToMoment(timestamp);\r\n let text = convertMomentToDateText(moments);\r\n return text;\r\n}\r\n\r\nfunction convertTimestampToDateTimeText(timestamp) {\r\n let moments = convertTimestampToMoment(timestamp);\r\n let text = convertMomentToDateTimeText(moments);\r\n return text;\r\n}\r\n\r\nfunction convertTimestampToTimeText(timestamp) {\r\n let moments = convertTimestampToMoment(timestamp);\r\n let text = convertMomentToTimeText(moments);\r\n return text;\r\n}\r\n\r\nfunction convertDateToMoment(date) {\r\n if(!date){\r\n return null;\r\n }\r\n return dayjs(date);\r\n}\r\n\r\nfunction convertDateToDateText(date) {\r\n let moments = convertDateToMoment(date);\r\n let text = convertMomentToDateText(moments);\r\n return text;\r\n}\r\n\r\nfunction convertDateToDateTimeText(date) {\r\n let moments = convertDateToMoment(date);\r\n let text = convertMomentToDateTimeText(moments);\r\n return text;\r\n}\r\n\r\n\r\nfunction buildDateRange(from, to){\r\n return from+\" ~ \"+to;\r\n}\r\n\r\nfunction getFormatTextOfMMM(mthNumber){\r\n let moment = getCurrentMoment();\r\n moment = moment.month(mthNumber-1);\r\n return moment.format('MMM');\r\n}\r\n\r\nexport default {\r\n FORMAT_DATE: FORMAT_DATE,\r\n FORMAT_DATETIME: FORMAT_DATETIME,\r\n FORMAT_YEARMONTH: FORMAT_YEARMONTH,\r\n FORMAT_YEARWEEK: FORMAT_YEARWEEK,\r\n FORMAT_TIME: FORMAT_TIME,\r\n\r\n getCurrentMoment: getCurrentMoment,\r\n getCurrentDateTimeText: getCurrentDateTimeText,\r\n getCurrentDateText: getCurrentDateText,\r\n getCurrentDate: getCurrentDate,\r\n\r\n convertMomentToTimestamp: convertMomentToTimestamp,\r\n convertMomentToDateText: convertMomentToDateText,\r\n convertMomentToDateTimeText: convertMomentToDateTimeText,\r\n convertMomentToYearText: convertMomentToYearText,\r\n convertMomentToYearMonthText: convertMomentToYearMonthText,\r\n convertMomentToDayOfMonthText: convertMomentToDayOfMonthText,\r\n convertMomentToTimeText: convertMomentToTimeText,\r\n\r\n convertTimestampToMoment: convertTimestampToMoment,\r\n convertTimestampToDateText: convertTimestampToDateText,\r\n convertTimestampToDateTimeText: convertTimestampToDateTimeText,\r\n convertTimestampToTimeText: convertTimestampToTimeText,\r\n\r\n convertDateToMoment: convertDateToMoment,\r\n convertDateToDateText: convertDateToDateText,\r\n convertDateToDateTimeText: convertDateToDateTimeText,\r\n\r\n convertYearMonthTextToMoment: convertYearMonthTextToMoment,\r\n convertDateTextToMoment: convertDateTextToMoment,\r\n convertDateTimeTextToMoment: convertDateTimeTextToMoment,\r\n convertTimeTextToMoment: convertTimeTextToMoment,\r\n\r\n convertDateTextToDate: convertDateTextToDate,\r\n convertDateTimeTextToDate: convertDateTimeTextToDate,\r\n\r\n buildDateRange:buildDateRange,\r\n\r\n getFormatTextOfMMM: getFormatTextOfMMM,\r\n};\r\n","import _ from \"lodash\";\r\n\r\nfunction resetBodyScroll() {\r\n document.querySelector(\"body\").style.position = \"initial\";\r\n}\r\n\r\nfunction forbidBodyScroll() {\r\n document.querySelector(\"body\").style.position = \"fixed\";\r\n}\r\n\r\nfunction syncDomAnimation() {\r\n setTimeout(() => {\r\n //sync all animation be the same\r\n _.each(document.getAnimations(), (item) => {\r\n item.startTime = 0;\r\n });\r\n }, 200);\r\n}\r\n\r\n/**\r\n * find the closet parent element by className\r\n *\r\n * @param elem\r\n * @param className\r\n */\r\nfunction closetByClassName(elem, classNameList) {\r\n let classList = elem.classList;\r\n if (classList) {\r\n if (_.intersection(classList, classNameList).length > 0) {\r\n return elem;\r\n }\r\n }\r\n\r\n let parentElement = elem.parentElement;\r\n if (parentElement) {\r\n return closetByClassName(parentElement, classNameList);\r\n } else {\r\n return null;\r\n }\r\n}\r\n\r\n/**\r\n * calc current dom node offset to the left-top of the window\r\n */\r\nfunction offset(domNode) {\r\n var offest = {\r\n top: 0,\r\n left: 0\r\n };\r\n if (!domNode.getClientRects().length) {\r\n return offest;\r\n }\r\n if (window.getComputedStyle(domNode)['display'] === 'none') {\r\n return offest;\r\n }\r\n\r\n offest = domNode.getBoundingClientRect();\r\n var docElement = domNode.ownerDocument.documentElement;\r\n return {\r\n top: offest.top + (window.scrollY || window.pageYOffset) - docElement.clientTop,\r\n left: offest.left + (window.scrollX || window.pageXOffset) - docElement.clientLeft\r\n };\r\n}\r\n\r\nexport default {\r\n resetBodyScroll: resetBodyScroll,\r\n forbidBodyScroll: forbidBodyScroll,\r\n\r\n syncDomAnimation: syncDomAnimation,\r\n closetByClassName: closetByClassName,\r\n\r\n offset: offset,\r\n};\r\n","function isIOS() {\r\n return [\r\n 'iPad Simulator',\r\n 'iPhone Simulator',\r\n 'iPod Simulator',\r\n 'iPad',\r\n 'iPhone',\r\n 'iPod'\r\n ].includes(navigator.platform) || (navigator.userAgent.includes(\"Mac\") && \"ontouchend\" in document)\r\n}\r\n\r\nfunction isDesktopChrome() {\r\n let result = /Chrome/.test(navigator.userAgent) && /Google Inc/.test(navigator.vendor);\r\n if (!result) {\r\n return false;\r\n }\r\n\r\n if (isMobileChrome()) {\r\n return false;\r\n }\r\n\r\n return true;\r\n}\r\n\r\nfunction isMobileChrome() {\r\n return /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent) && /Chrome/.test(navigator.userAgent) && /Google Inc/.test(navigator.vendor);\r\n}\r\n\r\nfunction isMobileDevice() {\r\n return isIOS() || isMobileChrome();\r\n}\r\n\r\nfunction updateViewPort(pOptions = {}) {\r\n let viewport = document.getElementsByName(\"viewport\");\r\n if (!viewport || viewport.length != 1) {\r\n return;\r\n }\r\n\r\n let options = {};\r\n _.merge(options, defaultOptions, pOptions);\r\n\r\n let content = [];\r\n _.each(options, (value, key) => {\r\n content.push(key + \"=\" + value);\r\n });\r\n\r\n viewport[0].content = _.join(content, \",\");\r\n\r\n console.debug(\"curr viewport is: \" + viewport[0].content);\r\n}\r\n\r\nexport default {\r\n isIOS: isIOS,\r\n isDesktopChrome: isDesktopChrome,\r\n isMobileChrome: isMobileChrome,\r\n\r\n isMobileDevice: isMobileDevice,\r\n\r\n updateViewPort: updateViewPort,\r\n};\r\n","import _ from \"lodash\";\r\n\r\nlet globalDialogUtils;\r\n\r\nfunction init(pDialogInstanceUtils) {\r\n globalDialogUtils = pDialogInstanceUtils;\r\n}\r\n\r\nfunction toFormData(keyPrefix, model, ignoreKeys = [], formData = {}) {\r\n if(model == null){\r\n return {\r\n keyPrefix: null\r\n }\r\n }\r\n\r\n _.each(_.keys(model), (attr) => {\r\n let value = model[attr];\r\n let formKeyPath = keyPrefix ? keyPrefix + \"#\" + attr : attr;\r\n\r\n if(_.includes(ignoreKeys, formKeyPath)){\r\n formData[formKeyPath] = value;\r\n return;\r\n }\r\n\r\n if (_.isPlainObject(value)) {\r\n toFormData(formKeyPath, value, ignoreKeys, formData);\r\n } else {\r\n formData[formKeyPath] = value;\r\n }\r\n })\r\n\r\n return formData;\r\n}\r\n\r\nfunction toModel(formData, ignoreKeys = []) {\r\n if(formData == null){\r\n return null;\r\n }\r\n\r\n let model = {};\r\n _.each(_.keys(formData), (formKeyPath) => {\r\n let value = formData[formKeyPath];\r\n let path = formKeyPath.replaceAll(\"#\", \".\");\r\n _.set(model, path, value);\r\n });\r\n\r\n return model;\r\n}\r\n\r\nfunction scrollToFirstError(ex){\r\n const isError = document.getElementsByClassName('ant-form-item-has-error');\r\n isError[0] && isError[0].scrollIntoView();\r\n console.error(ex);\r\n}\r\n\r\n/**\r\n * show leave message when exit from a modified form page\r\n * @param formOrCheckFormDirtyFunc AntDesignForm or checkFormDirtyFunction\r\n * @returns {Promise<boolean>} true: can exit, or: abort exit\r\n */\r\nasync function confirmOfLeavingForm(formOrCheckFormDirtyFunc) {\r\n if(formOrCheckFormDirtyFunc == null){\r\n return true;\r\n }\r\n\r\n let formDirty;\r\n if (typeof formOrCheckFormDirtyFunc === 'function') {\r\n formDirty = await formOrCheckFormDirtyFunc();\r\n }else{\r\n formDirty = formOrCheckFormDirtyFunc.isFieldsTouched();\r\n }\r\n\r\n if (formDirty) {\r\n let result = await globalDialogUtils.showConfirmDialog(leaveMessage);\r\n if (result !== true) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n}\r\n\r\nconst leaveMessage = \"Do you want to give up your modification?\";\r\nexport default {\r\n init: init,\r\n\r\n toFormData: toFormData,\r\n toModel: toModel,\r\n scrollToFirstError: scrollToFirstError,\r\n\r\n confirmOfLeavingForm: confirmOfLeavingForm,\r\n leaveMessage: leaveMessage\r\n};","import _ from \"lodash\";\r\n\r\nfunction isJsonText(value) {\r\n value = _.trim(value);\r\n\r\n return (_.startsWith(value, \"{\") || _.startsWith(value, \"[\"));\r\n}\r\n\r\nfunction formatJsonText(value) {\r\n if (!isJsonText(value)) {\r\n return value;\r\n }\r\n\r\n return JSON.stringify(JSON.parse(value), null, 4);\r\n}\r\n\r\n\r\nexport default {\r\n isJsonText: isJsonText,\r\n formatJsonText: formatJsonText,\r\n};\r\n","import _ from \"lodash\";\r\n\r\nfunction formatNumberTextWithUnit(numberText, unitText) {\r\n if (!unitText) {\r\n return numberText;\r\n }\r\n return numberText + \" \" + unitText;\r\n}\r\n\r\nfunction formatPctWith2Digital(valuePct) {\r\n let valuePctText = formatNumberWithDigital(valuePct, 2, false);\r\n return valuePctText + \"%\";\r\n}\r\n\r\nfunction formatNumberWith2Digital(value) {\r\n return formatNumberWithDigital(value, 2);\r\n}\r\n\r\nfunction formatNumberWith4Digital(value) {\r\n return formatNumberWithDigital(value, 4);\r\n}\r\n\r\nfunction formatNumberWithDigital(value, digital) {\r\n if (value === null) {\r\n return \"\";\r\n }\r\n\r\n let dblValue = (_.toNumber(value));\r\n if (isNaN(dblValue)) {\r\n //the string value could not be convert to number, just return it;\r\n return value;\r\n }\r\n\r\n let valueText = value;\r\n if (digital != null) {\r\n let text = _.round(dblValue, digital) + \"\";\r\n if (text.indexOf(\".\") === -1) {\r\n text += '.';\r\n }\r\n\r\n let part1 = text.substring(0, text.indexOf(\".\"));\r\n let part2 = \"\";\r\n\r\n if (digital > 0) {\r\n part2 = text.substring(text.indexOf(\".\") + 1); //取到小数部分搜索\r\n part2 = \".\" + _.padEnd(part2, digital, '0');\r\n }\r\n valueText = part1 + part2;\r\n }\r\n\r\n return valueText;\r\n}\r\n\r\nexport default {\r\n formatPctWith2Digital: formatPctWith2Digital,\r\n formatNumberWith2Digital: formatNumberWith2Digital,\r\n formatNumberWith4Digital: formatNumberWith4Digital,\r\n formatNumberWithDigital: formatNumberWithDigital,\r\n formatNumberTextWithUnit: formatNumberTextWithUnit,\r\n};\r\n","import _ from \"lodash\";\r\nimport AxiosUtils from \"./AxiosUtils\";\r\n\r\nconst constants = {\r\n CANVAS_WIDTH: 480,\r\n CANVAS_HEIGHT: 270,\r\n}\r\n\r\n/**\r\n * create an empty 2 dimension array\r\n */\r\nfunction new2dArray(width, height, initValue) {\r\n let array = [];\r\n for (let rowIdx = 0; rowIdx < height; rowIdx++) {\r\n let newRow = [];\r\n for (let colIdx = 0; colIdx < width; colIdx++) {\r\n newRow.push(initValue);\r\n }\r\n array.push(newRow);\r\n }\r\n return array;\r\n}\r\n\r\n/**\r\n * render grey level ImageDataArray to Canvas\r\n */\r\nfunction renderImageDataArrayToCtx(ctx, imageDataArray) {\r\n let height = imageDataArray.length;\r\n let width = imageDataArray[0].length;\r\n let imageData = new ImageData(width, height);\r\n let idx = 0;\r\n for (let rowIdx = 0; rowIdx < height; rowIdx++) {\r\n for (let colIdx = 0; colIdx < width; colIdx++) {\r\n let grayData = imageDataArray[rowIdx][colIdx];\r\n\r\n imageData.data[idx + 0] = grayData;\r\n imageData.data[idx + 1] = grayData;\r\n imageData.data[idx + 2] = grayData;\r\n imageData.data[idx + 3] = 255;\r\n idx = idx + 4;\r\n }\r\n }\r\n ctx.putImageData(imageData, 0, 0, 0, 0, width, height);\r\n}\r\n\r\nfunction getImageDataArrayFromCtx(ctx, canvasWidth, canvasHeight) {\r\n let imageData = ctx.getImageData(0, 0, canvasWidth, canvasHeight);\r\n\r\n let isEmpty = true;\r\n let imageDataArray = [];\r\n for (let i = 0; i < imageData.data.length; i = i + 4) {\r\n let red = imageData.data[i];\r\n imageDataArray[i / 4] = red;\r\n if (red !== 255) {\r\n isEmpty = false;\r\n }\r\n }\r\n\r\n if (isEmpty) {\r\n return null;\r\n }\r\n\r\n imageDataArray = _.chunk(imageDataArray, canvasWidth);\r\n return imageDataArray;\r\n}\r\n\r\nfunction initCanvas(ctx, canvasWidth, canvasHeight) {\r\n ctx.fillStyle = \"white\";\r\n ctx.lineWidth = 1;\r\n ctx.lineCap = 'round';\r\n ctx.lineJoin = 'round';\r\n\r\n ctx.fillRect(0, 0, canvasWidth, canvasHeight);\r\n ctx.fill();\r\n}\r\n\r\nasync function convertCanvasToBlobFile(canvas, fileName, fileType = 'image/jpeg') {\r\n return new Promise((resolve, reject) => {\r\n canvas.toBlob(async function (blob) {\r\n const file = new File([blob], fileName);\r\n resolve(file);\r\n }, fileType, 0.9);\r\n });\r\n}\r\n\r\n/**\r\n * Build grey level ImageDataArray from text\r\n */\r\nfunction calcImageDataArrayFromText(valueText) {\r\n if (valueText == null) {\r\n return;\r\n }\r\n\r\n let imageDataArray = [];\r\n _.each(valueText.split(\";\"), (rowData, rowIdx) => {\r\n let row = [];\r\n _.each(rowData.split(\",\"), (item, colIdx) => {\r\n row.push(item);\r\n });\r\n imageDataArray.push(row);\r\n });\r\n return imageDataArray;\r\n}\r\n\r\nfunction calcTextFromImageDataArray(imageDataArray) {\r\n if (imageDataArray == null) {\r\n return;\r\n }\r\n\r\n let valueText = \"\";\r\n for (let rowIdx = 0; rowIdx < imageDataArray.length; rowIdx++) {\r\n if (rowIdx > 0) {\r\n valueText += \";\";\r\n }\r\n valueText += imageDataArray[rowIdx].join(\",\");\r\n }\r\n return valueText;\r\n}\r\n\r\nexport default {\r\n constants: constants,\r\n new2dArray: new2dArray,\r\n initCanvas: initCanvas,\r\n //common\r\n convertCanvasToBlobFile: convertCanvasToBlobFile,\r\n\r\n //for signature\r\n renderImageDataArrayToCtx: renderImageDataArrayToCtx,\r\n getImageDataArrayFromCtx: getImageDataArrayFromCtx,\r\n calcImageDataArrayFromText: calcImageDataArrayFromText,\r\n calcTextFromImageDataArray: calcTextFromImageDataArray,\r\n};\r\n","import _ from \"lodash\";\r\n\r\nlet pattern=/[`~!@#$^\\-&*()=|{}':;,\\\\\\[\\].<>\\/?\\s]/g;\r\n\r\nfunction buildKeyword(text) {\r\n if(!text){\r\n return '';\r\n }\r\n\r\n let keyword = text.replace(pattern, '').toUpperCase();\r\n return keyword;\r\n}\r\n\r\n\r\nexport default {\r\n buildKeyword: buildKeyword,\r\n};\r\n"],"names":["Base64","init","isMobileDevice","_","param","module","this","e","n","t","r","i","s","o","a","f","h","u","c","d","l","m","M"],"mappings":"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","x_google_ignoreList":[4,5,6]}
|
|
1
|
+
{"version":3,"file":"sirius-common-utils.umd.cjs","sources":["../src/packages/utils/CfgUtils.js","../src/packages/utils/AppUtils.js","../src/packages/utils/LoginUserUtils.js","../src/packages/utils/AxiosUtils.js","../node_modules/dayjs/plugin/updateLocale.js","../node_modules/dayjs/plugin/customParseFormat.js","../node_modules/dayjs/plugin/utc.js","../src/packages/utils/DateUtils.js","../src/packages/utils/DomUtils.js","../src/packages/utils/ExplorerTypeUtils.js","../src/packages/utils/FormUtils.js","../src/packages/utils/JsonUtils.js","../src/packages/utils/NumberUtils.js","../src/packages/utils/SignatureUtils.js","../src/packages/utils/StringUtils.js"],"sourcesContent":["export default {\r\n //Application Configuration\r\n appInfo: {\r\n appName: 'XMS', //application name\r\n frontEndValueEncodeFlag: false, //need to encode for LocalStorage values\r\n needFrontEndExceptionStatisticsFlag: true, //need trace front-end logs\r\n },\r\n //Ajax Configuration\r\n ajax:{\r\n timeOut: 60000, //Timeout\r\n },\r\n sysCfg: {\r\n ibmsEnabled: true,\r\n }\r\n};\r\n","import _ from 'lodash';\r\n\r\nimport {Base64} from 'js-base64';\r\nimport CfgUtils from \"./CfgUtils\";\r\n\r\n//appVersion\r\nfunction setAppVersion(version) {\r\n setLocalStorageStringItem(\"APP_VERSION\", version);\r\n}\r\n\r\nfunction getAppVersion() {\r\n return getLocalStorageStringItem(\"APP_VERSION\");\r\n}\r\n\r\n//app build version\r\nfunction setBuildVersion(version) {\r\n setLocalStorageStringItem(\"BUILD_VERSION\", version);\r\n}\r\n\r\nfunction getBuildVersion() {\r\n return getLocalStorageStringItem(\"BUILD_VERSION\");\r\n}\r\n\r\n//app cache version\r\nfunction setAppCacheVersion(version) {\r\n setLocalStorageStringItem(\"APP_CACHE_VERSION\", version);\r\n}\r\n\r\nfunction getAppCacheVersion() {\r\n return getLocalStorageStringItem(\"APP_CACHE_VERSION\");\r\n}\r\n\r\n\r\n/**\r\n * 检查LocalStorage中是否存在该键\r\n */\r\nfunction isLocalStorageItemExisted(key){\r\n let realKey = CfgUtils.appInfo.appName + '_' + key;\r\n let obj = localStorage.getItem(realKey);\r\n return obj !=null;\r\n}\r\n\r\nfunction removeLocalStorageItem(key, obj) {\r\n let realKey = CfgUtils.appInfo.appName + '_' + key;\r\n localStorage.removeItem(realKey);\r\n}\r\n\r\n/**\r\n * String类型的数据存储\r\n */\r\nfunction setLocalStorageStringItem(key, obj) {\r\n let realKey = CfgUtils.appInfo.appName + '_' + key;\r\n let realValue = obj;\r\n localStorage.setItem(realKey, encode(realValue));\r\n}\r\n\r\nfunction getLocalStorageStringItem(key) {\r\n let realKey = CfgUtils.appInfo.appName + '_' + key;\r\n let obj = decode(localStorage.getItem(realKey));\r\n return obj;\r\n}\r\n\r\n/**\r\n * Object类型的数据存储\r\n */\r\n\r\nfunction setLocalStorageObjItem(key, obj) {\r\n let realKey = CfgUtils.appInfo.appName + '_' + key;\r\n localStorage.setItem(realKey, encode(JSON.stringify(obj)));\r\n}\r\n\r\nfunction getLocalStorageObjItem(key) {\r\n let realKey = CfgUtils.appInfo.appName + '_' + key;\r\n let obj = null;\r\n try {\r\n let jsonVal = localStorage.getItem(realKey);\r\n obj = JSON.parse(decode(jsonVal));\r\n } catch (e) {\r\n }\r\n return obj;\r\n}\r\n\r\nfunction atomSetLocalStorageObjItem(key, obj){\r\n setLocalStorageObjItem(key, obj);\r\n}\r\n\r\nfunction atomGetLocalStorageObjItem(key){\r\n let result = getLocalStorageObjItem(key);\r\n setLocalStorageObjItem(key, null);\r\n return result;\r\n}\r\n\r\nfunction pushLocalStorageStringItem(key, obj){\r\n setLocalStorageStringItem(key, obj);\r\n}\r\n\r\nfunction popLocalStorageStringItem(key){\r\n let result = getLocalStorageStringItem(key);\r\n removeLocalStorageItem(key);\r\n return result;\r\n}\r\n\r\nfunction atomSetSessionStorageObjItem(key, obj){\r\n setSessionStorageObjItem(key, obj);\r\n}\r\n\r\nfunction atomGetSessionStorageObjItem(key){\r\n let result = getSessionStorageObjItem(key);\r\n setSessionStorageObjItem(key, null);\r\n return result;\r\n}\r\n\r\nfunction setSessionStorageObjItem(key, obj) {\r\n let realKey = CfgUtils.appInfo.appName + '_' + key;\r\n sessionStorage.setItem(realKey, encode(JSON.stringify(obj)));\r\n}\r\n\r\nfunction getSessionStorageObjItem(key) {\r\n let realKey = CfgUtils.appInfo.appName + '_' + key;\r\n let obj = null;\r\n try {\r\n let jsonVal = sessionStorage.getItem(realKey);\r\n obj = JSON.parse(decode(jsonVal));\r\n } catch (e) {\r\n }\r\n return obj;\r\n}\r\n\r\nfunction encode(originalValue){\r\n if(!originalValue){\r\n return originalValue;\r\n }\r\n if(!CfgUtils.appInfo.frontEndValueEncodeFlag){\r\n return originalValue;\r\n }\r\n return Base64.encode(originalValue);\r\n}\r\n\r\nfunction decode(encodeValue){\r\n if(!encodeValue){\r\n return encodeValue;\r\n }\r\n if(!CfgUtils.appInfo.frontEndValueEncodeFlag){\r\n return encodeValue;\r\n }\r\n return Base64.decode(encodeValue);\r\n}\r\n\r\nexport default {\r\n setAppVersion: setAppVersion,\r\n getAppVersion: getAppVersion,\r\n setBuildVersion: setBuildVersion,\r\n getBuildVersion: getBuildVersion,\r\n setAppCacheVersion: setAppCacheVersion,\r\n getAppCacheVersion: getAppCacheVersion,\r\n\r\n atomSetLocalStorageObjItem: atomSetLocalStorageObjItem,\r\n atomGetLocalStorageObjItem: atomGetLocalStorageObjItem,\r\n pushLocalStorageStringItem: pushLocalStorageStringItem,\r\n popLocalStorageStringItem: popLocalStorageStringItem,\r\n\r\n isLocalStorageItemExisted: isLocalStorageItemExisted,\r\n setLocalStorageObjItem: setLocalStorageObjItem,\r\n getLocalStorageObjItem: getLocalStorageObjItem,\r\n setLocalStorageStringItem: setLocalStorageStringItem,\r\n getLocalStorageStringItem: getLocalStorageStringItem,\r\n\r\n atomSetSessionStorageObjItem: atomSetSessionStorageObjItem,\r\n atomGetSessionStorageObjItem: atomGetSessionStorageObjItem,\r\n\r\n setSessionStorageObjItem: setSessionStorageObjItem,\r\n getSessionStorageObjItem: getSessionStorageObjItem,\r\n};\r\n","/**\r\n * getCurrUserInfo\r\n */\r\nimport AxiosUtils from \"./AxiosUtils\";\r\nimport _ from \"lodash\";\r\nimport AppUtils from \"./AppUtils\";\r\n\r\n\r\nasync function init(\r\n deviceType,\r\n pCurrUserInfoCache,\r\n pCustomizedUserUtils,\r\n pUriGetCurrUserInfo,\r\n) {\r\n if (pCurrUserInfoCache) {\r\n currUserInfoCache = pCurrUserInfoCache;\r\n AppUtils.setLocalStorageObjItem(\"CURRENT_USER\", currUserInfoCache);\r\n }\r\n\r\n customizedUserUtils = pCustomizedUserUtils;\r\n uriGetCurrUserInfo = pUriGetCurrUserInfo || `/api/user/getCurrUserInfo`;\r\n\r\n setDeviceType(deviceType);\r\n}\r\n\r\nasync function clear() {\r\n currUserInfoCache = null;\r\n AppUtils.setLocalStorageObjItem(\"CURRENT_USER\", null);\r\n}\r\n\r\nfunction setDeviceType(deviceType) {\r\n if (deviceType === 'MOBILE') {\r\n AppUtils.setLocalStorageStringItem(\"DEVICE_TYPE\", \"MOBILE\");\r\n } else {\r\n AppUtils.setLocalStorageStringItem(\"DEVICE_TYPE\", \"WEB\");\r\n }\r\n}\r\n\r\nfunction isMobileDevice() {\r\n let deviceType = AppUtils.getLocalStorageStringItem(\"DEVICE_TYPE\");\r\n return deviceType === 'MOBILE';\r\n}\r\n\r\nlet customizedUserUtils = null;\r\nlet currUserInfoCache = null;\r\n\r\nasync function getCurrUserInfo() {\r\n if (customizedUserUtils && customizedUserUtils.getUserInfo) {\r\n let currUser = await customizedUserUtils.getUserInfo();\r\n currUserInfoCache = currUser;\r\n AppUtils.setLocalStorageObjItem(\"CURRENT_USER\", currUser);\r\n\r\n return currUser;\r\n } else {\r\n let currUser = await AxiosUtils.getJsonData(uriGetCurrUserInfo);\r\n currUserInfoCache = currUser;\r\n AppUtils.setLocalStorageObjItem(\"CURRENT_USER\", currUser);\r\n return currUser;\r\n }\r\n}\r\n\r\nfunction getCurrUserInfoCache() {\r\n if (currUserInfoCache != null) {\r\n return currUserInfoCache;\r\n }\r\n\r\n currUserInfoCache = AppUtils.getLocalStorageObjItem(\"CURRENT_USER\");\r\n if (currUserInfoCache != null) {\r\n return currUserInfoCache;\r\n }\r\n\r\n\r\n // console.debug(\"Please invoke getCurrUserInfo first\");\r\n return null;\r\n}\r\n\r\nfunction getCurrUserId() {\r\n return getCurrUserInfoCache()?.id;\r\n}\r\n\r\n\r\nlet uriGetCurrUserInfo = null;\r\n\r\n\r\n/**\r\n * check user role\r\n */\r\nfunction userHasRole(roleCodeOrArray) {\r\n if (currUserInfoCache == null) {\r\n return false;\r\n }\r\n\r\n if (_.isArray(roleCodeOrArray)) {\r\n return !_.isEmpty(_.intersection(currUserInfoCache.roleList, roleCodeOrArray));\r\n } else {\r\n return _.includes(currUserInfoCache.roleList, roleCodeOrArray);\r\n }\r\n}\r\n\r\nexport default {\r\n init: init,\r\n clear: clear,\r\n getCurrUserInfo: getCurrUserInfo,\r\n getCurrUserInfoCache: getCurrUserInfoCache,\r\n getCurrUserId: getCurrUserId,\r\n userHasRole: userHasRole,\r\n\r\n isMobileDevice: isMobileDevice,\r\n\r\n};\r\n","import _ from 'lodash';\r\n\r\nimport CfgUtils from \"./CfgUtils\";\r\nimport LoginUserUtils from \"./LoginUserUtils\";\r\nimport AppUtils from \"./AppUtils.js\";\r\n\r\nlet axios = null;\r\nlet urlContext = null; //URL路径前缀\r\n\r\nlet RESULT = {\r\n SUCCESS: 200,\r\n};\r\n\r\n\r\nlet EXCEPTION_CODE = {\r\n AUTHENTICATION_FAILED_COMMON: 901,\r\n AUTHENTICATION_SESSION_EXPIRED: 905,\r\n NETWORK_ISSUE_CLIENT: 911,\r\n SYS_UNKNOWN_ISSUE: 999,\r\n}\r\n\r\n\r\nlet globalDialogUtilsInstance;\r\nlet globalSpinHandlerInstance;\r\nlet loginServiceInstance;\r\n\r\nfunction init(pAxios, pContext, pSpinHandlerInstance, pDialogUtilsInstance, pLoginServiceInstance) {\r\n axios = pAxios;\r\n\r\n // axios.defaults.baseURL = getPath(\"/xms-test\");\r\n axios.defaults.baseURL = getPath(pContext);\r\n axios.defaults.timeout = CfgUtils.ajax.timeout;\r\n\r\n globalDialogUtilsInstance = pDialogUtilsInstance;\r\n globalSpinHandlerInstance = pSpinHandlerInstance;\r\n loginServiceInstance = pLoginServiceInstance;\r\n}\r\n\r\n\r\nlet AUTHENTICATION = AppUtils.getLocalStorageObjItem(\"CURRENT_AUTHENTICATION\") || {\r\n \"header\": {\r\n \"authorization\": null\r\n }\r\n};\r\n\r\nfunction updateAuthentication(authentication){\r\n AUTHENTICATION = authentication;\r\n AppUtils.setLocalStorageObjItem(\"CURRENT_AUTHENTICATION\", authentication);\r\n}\r\n\r\nfunction getHostName() {\r\n return window.location.hostname;\r\n}\r\n\r\n/**\r\n *\r\n */\r\nfunction loadParamFromLocationSearch(paramKey) {\r\n var paramsStr = window.location.search;\r\n if (paramsStr.indexOf('?') === 0) {\r\n paramsStr = paramsStr.substring(1);\r\n }\r\n var entryParams = paramsStr.split('&');\r\n var entryParamStr = _.find(entryParams, function (param) {\r\n return param.indexOf(paramKey) === 0;\r\n });\r\n if (!entryParamStr) {\r\n return null;\r\n }\r\n var param = entryParamStr.split('=');\r\n if (!param[1]) {\r\n return null;\r\n }\r\n return param[1];\r\n}\r\n\r\n/**\r\n * get the entire url path\r\n * @param path start with '/'\r\n * @returns {string|*}\r\n */\r\nfunction getPath(path) {\r\n if (_.startsWith(path, \"http\")) {\r\n return path;\r\n }\r\n\r\n if (urlContext == null) {\r\n urlContext = window.document.location.href;\r\n let lastIdx = urlContext.indexOf('.htm');\r\n if (lastIdx > -1) {\r\n urlContext = urlContext.substring(0, urlContext.lastIndexOf('/', lastIdx));\r\n } else {\r\n lastIdx = urlContext.indexOf('/#');\r\n if (lastIdx > -1) {\r\n urlContext = urlContext.substring(0, lastIdx);\r\n } else {\r\n lastIdx = urlContext.indexOf('#');\r\n if (lastIdx > -1) {\r\n urlContext = urlContext.substring(0, lastIdx);\r\n } else {\r\n console.log(`Could not identify URL path ${urlContext}`);\r\n }\r\n }\r\n }\r\n //http://localhost:3000/index.html/#/index/highTriggerWiggleRoomValue -> http://localhost:3000\r\n }\r\n\r\n if (urlContext.endsWith(\"/\")) { //remove the last '/'\r\n urlContext = urlContext.substring(0, urlContext.length - 1);\r\n }\r\n return urlContext + path;\r\n}\r\n\r\n/**\r\n * Download excel from server\r\n */\r\nfunction downloadExcelData(url, data, headers, options = {}) {\r\n return new Promise(async function (resolve, reject) {\r\n headers = headers || {};\r\n if (headers['Content-Type'] == null) {\r\n headers['Content-Type'] = 'application/json';\r\n }\r\n\r\n await buildUserAccessToken(headers);\r\n\r\n try {\r\n let response = await axios({\r\n method: 'post',\r\n url: url,\r\n data: data,\r\n headers: headers,\r\n responseType: 'blob'\r\n });\r\n if (response.data) {\r\n if (response.data.errorCode && response.data.errorCode !== RESULT.SUCCESS) {\r\n let errorResult = await handlerError(url, data, response);\r\n resolve(errorResult);\r\n return;\r\n }\r\n }\r\n\r\n const link = document.createElement('a')\r\n let blob = new Blob([response.data], {type: 'application/vnd.ms-excel'});\r\n let contentDisposition = response.headers[\"content-disposition\"];\r\n\r\n if (contentDisposition == null) {\r\n let errorResult = await handlerError(url, data, {\r\n data: {\r\n errorCode: EXCEPTION_CODE.SYS_UNKNOWN_ISSUE,\r\n error: \"System Error\",\r\n }\r\n });\r\n resolve(errorResult);\r\n return;\r\n }\r\n\r\n let temp = contentDisposition.split(\";\")[1].split(\"ilename=\")[1];\r\n var fileName = decodeURIComponent(temp);\r\n console.log(fileName)\r\n link.style.display = 'none'\r\n link.href = URL.createObjectURL(blob);\r\n link.setAttribute('download', fileName);\r\n document.body.appendChild(link);\r\n link.click();\r\n document.body.removeChild(link);\r\n\r\n resolve(true);\r\n } catch (e) {\r\n let errorResult = await handlerError(url, {}, e);\r\n resolve(errorResult);\r\n }\r\n });\r\n}\r\n\r\n\r\n/**\r\n * Download image from server, and return ImageData blob\r\n */\r\nfunction downloadImageData(url, data, headers, options = {}) {\r\n return new Promise(async function (resolve, reject) {\r\n headers = headers || {};\r\n if (headers['Content-Type'] == null) {\r\n headers['Content-Type'] = 'application/json';\r\n }\r\n\r\n await buildUserAccessToken(headers);\r\n\r\n try {\r\n let response = await axios({\r\n method: 'post',\r\n url: url,\r\n data: data,\r\n headers: headers,\r\n responseType: 'blob'\r\n });\r\n let imageData = response.data;\r\n if (imageData != null) {\r\n if (response.data.errorCode && response.data.errorCode !== RESULT.SUCCESS) {\r\n let errorResult = await handlerError(url, data, response);\r\n resolve(null);\r\n return;\r\n }\r\n }\r\n resolve(imageData);\r\n } catch (e) {\r\n let errorResult = await handlerError(url, {}, e);\r\n resolve(null);\r\n }\r\n });\r\n}\r\n\r\n/**\r\n *\r\n */\r\nfunction downloadServerData(url) {\r\n return new Promise(function (resolve, reject) {\r\n\r\n const hyperlink = document.createElement('a');\r\n hyperlink.style.display = 'none';//隐藏,没必要展示出来\r\n hyperlink.href = url;\r\n hyperlink.target = \"_blank\";\r\n document.body.appendChild(hyperlink);\r\n hyperlink.click();\r\n URL.revokeObjectURL(hyperlink.href); // 释放URL 对象\r\n document.body.removeChild(hyperlink);//下载\r\n\r\n resolve(true);\r\n });\r\n}\r\n\r\n/**\r\n *\r\n */\r\nfunction downloadServerBlobData(url) {\r\n return new Promise(function (resolve, reject) {\r\n axios.get(url, {\r\n responseType: 'blob',\r\n }).then((res) => {\r\n resolve(res.data);\r\n }, (error) => {\r\n resolve(null);\r\n });\r\n });\r\n}\r\n\r\n/**\r\n * upload file to server\r\n * TODO Joey need check with FormData scenario\r\n */\r\nfunction uploadFile(url, file, headers, onUploadProgress, customizedOptions) {\r\n headers = headers || {};\r\n\r\n let formdata = new FormData();\r\n if (_.isArray(file)) {\r\n formdata.append(\"files\", file);\r\n } else {\r\n formdata.append(\"file\", file)\r\n }\r\n\r\n customizedOptions = customizedOptions || {};\r\n return execute(\"POST\", url, formdata, headers, onUploadProgress, customizedOptions)\r\n}\r\n\r\n/**\r\n * getStaticTextFile\r\n */\r\nfunction getStaticTextFile(url) {\r\n return new Promise(async function (resolve, reject) {\r\n axios.get(url).then((res) => {\r\n resolve(res);\r\n }, (error) => {\r\n resolve(null);\r\n });\r\n });\r\n}\r\n\r\n/**\r\n * build form-data from param object\r\n */\r\nfunction getUrlParam(params) {\r\n if (params) {\r\n var param = '';\r\n _.each(params, function (i, val) {\r\n if (i != null) {\r\n param += val + '=' + encodeURIComponent(i) + '&';\r\n } else {\r\n param += val + '=&';\r\n }\r\n });\r\n param = param.substring(0, param.length - 1);\r\n return param;\r\n } else {\r\n return '';\r\n }\r\n}\r\n\r\nfunction getFormData(url, headers, customizedOptions) {\r\n headers = headers || {};\r\n if (headers['Content-Type'] == null) {\r\n headers['Content-Type'] = 'application/x-www-form-urlencoded';\r\n }\r\n\r\n customizedOptions = customizedOptions || {};\r\n\r\n return execute(\"GET\", url, null, headers, null, customizedOptions)\r\n}\r\n\r\nfunction postFormData(url, dataObject, headers, customizedOptions) {\r\n let formdata = null;\r\n if (dataObject) {\r\n formdata = getUrlParam(dataObject);\r\n }\r\n\r\n headers = headers || {};\r\n if (headers['Content-Type'] == null) {\r\n headers['Content-Type'] = 'application/x-www-form-urlencoded';\r\n }\r\n\r\n customizedOptions = customizedOptions || {};\r\n\r\n return execute(\"POST\", url, formdata, headers, null, customizedOptions)\r\n}\r\n\r\nfunction getJsonData(url, headers, customizedOptions) {\r\n headers = headers || {};\r\n if (headers['Content-Type'] == null) {\r\n headers['Content-Type'] = 'application/json';\r\n }\r\n\r\n return execute(\"GET\", url, null, headers, null, customizedOptions)\r\n}\r\n\r\nfunction postJsonData(url, dataObject, headers, customizedOptions) {\r\n headers = headers || {};\r\n if (headers['Content-Type'] == null) {\r\n headers['Content-Type'] = 'application/json';\r\n }\r\n\r\n return execute(\"POST\", url, dataObject, headers, null, customizedOptions)\r\n}\r\n\r\n/**\r\n * General Axios Data request\r\n *\r\n * @param method\r\n * @param url\r\n * @param data\r\n * @param headers\r\n * @param customizedOptions: { }customizedErrorHandlerFlag: false }\r\n */\r\nfunction execute(method, url, data, headers, onUploadProgress, customizedOptions = {}) {\r\n return new Promise(function (resolve, reject) {\r\n //check and set User AccessToken in the request header\r\n buildUserAccessToken(headers).then(\r\n function () {\r\n //AccessToken is valid\r\n axios({\r\n method: method,\r\n url: url,\r\n data: data,\r\n headers: headers,\r\n onUploadProgress: onUploadProgress,\r\n })\r\n .then((response) => {\r\n if (response.data) {\r\n if (response.data.errorCode && response.data.errorCode !== RESULT.SUCCESS) {\r\n if (customizedOptions.customizedErrorHandlerFlag) {\r\n resolve(response.data);\r\n } else {\r\n handlerError(url, data, response).then((result) => {\r\n resolve(result);\r\n });\r\n }\r\n } else {\r\n resolve(response.data);\r\n }\r\n } else {\r\n resolve(response.data);\r\n }\r\n }, (error) => {\r\n if (customizedOptions.customizedErrorHandlerFlag) {\r\n resolve(error);\r\n } else {\r\n handlerError(url, data, error).then((result) => {\r\n resolve(result);\r\n });\r\n }\r\n });\r\n },\r\n (error) => {\r\n //AccessToken is invalid\r\n handlerError(url, data, error).then((result) => {\r\n resolve(result);\r\n });\r\n });\r\n\r\n });\r\n}\r\n\r\nasync function buildUserAccessToken(headers) {\r\n _.each(AUTHENTICATION?.header, function(value, key){\r\n headers[key] = value;\r\n });\r\n}\r\n\r\n\r\n/**\r\n * build error message base on errorCode\r\n */\r\nfunction getErrorMsgByCode(errorCode, errorMsg) {\r\n return errorMsg;\r\n}\r\n\r\n/**\r\n * request error handler\r\n * if multiple ajax error happened. just process the first one.\r\n */\r\nvar reqErrorInProcessing = false;\r\n\r\nasync function handlerError(url, reqData, responseOrAxiosError) {\r\n if (reqErrorInProcessing === true) {\r\n return;\r\n }\r\n\r\n reqErrorInProcessing = true;\r\n await handlerErrorLogic(url, reqData, responseOrAxiosError);\r\n reqErrorInProcessing = false;\r\n}\r\n\r\nasync function showErrorMessage(errorCode, heading = \"System Error\", message) {\r\n globalSpinHandlerInstance.complete();\r\n await globalDialogUtilsInstance.showAppErrorDialog(heading, message);\r\n}\r\n\r\nasync function handlerErrorLogic(url, reqData, responseOrAxiosError) {\r\n let errorCode = _.get(responseOrAxiosError, 'data.errorCode');\r\n let error = _.get(responseOrAxiosError, 'data.error');\r\n\r\n if (!errorCode && _.get(responseOrAxiosError, 'code')) {\r\n let axiosErrorStatus = _.get(responseOrAxiosError, 'response.status');\r\n let axiosErrorStatusText = _.get(responseOrAxiosError, 'response.statusText');\r\n\r\n if (_.includes([502, 504], axiosErrorStatus)) {\r\n errorCode = EXCEPTION_CODE.NETWORK_ISSUE_CLIENT;\r\n error = axiosErrorStatusText;\r\n } else if (_.includes([400], axiosErrorStatus)) {\r\n errorCode = EXCEPTION_CODE.SYS_UNKNOWN_ISSUE;\r\n error = axiosErrorStatusText;\r\n } else if (_.includes([404], axiosErrorStatus)) {\r\n errorCode = EXCEPTION_CODE.SYS_UNKNOWN_ISSUE;\r\n error = axiosErrorStatusText;\r\n }\r\n }\r\n\r\n //session timeout\r\n var sessionTimeoutErrorCodes = [\r\n EXCEPTION_CODE.AUTHENTICATION_FAILED_COMMON,\r\n EXCEPTION_CODE.AUTHENTICATION_SESSION_EXPIRED,\r\n ]\r\n\r\n if (_.includes(sessionTimeoutErrorCodes, errorCode)) {\r\n await appSessionExit(errorCode, true);\r\n return;\r\n }\r\n\r\n if (EXCEPTION_CODE.NETWORK_ISSUE_CLIENT === errorCode) {\r\n await showErrorMessage(errorCode, \"Network issue\", error);\r\n return;\r\n }\r\n\r\n await showErrorMessage(errorCode, null, getErrorMsgByCode(errorCode, error));\r\n}\r\n\r\n/**\r\n * application exit handler\r\n */\r\nasync function appSessionExit(resultCode, forceCloseFlag) {\r\n if (loginServiceInstance && loginServiceInstance.logout) {\r\n await loginServiceInstance.logout();\r\n } else {\r\n await globalDialogUtilsInstance.showAppErrorDialog(\"Session Timeout\", \"Please login again\");\r\n }\r\n}\r\n\r\nconst AxiosUtils = {\r\n init: init,\r\n getHostName: getHostName,\r\n loadParamFromLocationSearch: loadParamFromLocationSearch,\r\n getPath: getPath,\r\n getUrlParam: getUrlParam,\r\n getFormData: getFormData,\r\n postFormData: postFormData,\r\n getJsonData: getJsonData,\r\n postJsonData: postJsonData,\r\n downloadExcelData: downloadExcelData,\r\n downloadImageData: downloadImageData,\r\n downloadServerData: downloadServerData,\r\n downloadServerBlobData: downloadServerBlobData,\r\n uploadFile: uploadFile,\r\n getStaticTextFile: getStaticTextFile,\r\n appSessionExit: appSessionExit,\r\n handlerError: handlerError,\r\n getErrorMsgByCode: getErrorMsgByCode,\r\n\r\n RESULT: RESULT,\r\n EXCEPTION_CODE: EXCEPTION_CODE,\r\n\r\n AUTHENTICATION: AUTHENTICATION,\r\n updateAuthentication: updateAuthentication,\r\n};\r\n\r\nexport default AxiosUtils;\r\n","!function(e,n){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=n():\"function\"==typeof define&&define.amd?define(n):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).dayjs_plugin_updateLocale=n()}(this,(function(){\"use strict\";return function(e,n,t){t.updateLocale=function(e,n){var o=t.Ls[e];if(o)return(n?Object.keys(n):[]).forEach((function(e){o[e]=n[e]})),o}}}));","!function(e,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define(t):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).dayjs_plugin_customParseFormat=t()}(this,(function(){\"use strict\";var e={LTS:\"h:mm:ss A\",LT:\"h:mm A\",L:\"MM/DD/YYYY\",LL:\"MMMM D, YYYY\",LLL:\"MMMM D, YYYY h:mm A\",LLLL:\"dddd, MMMM D, YYYY h:mm A\"},t=/(\\[[^[]*\\])|([-_:/.,()\\s]+)|(A|a|YYYY|YY?|MM?M?M?|Do|DD?|hh?|HH?|mm?|ss?|S{1,3}|z|ZZ?)/g,n=/\\d\\d/,r=/\\d\\d?/,i=/\\d*[^-_:/,()\\s\\d]+/,o={},s=function(e){return(e=+e)+(e>68?1900:2e3)};var a=function(e){return function(t){this[e]=+t}},f=[/[+-]\\d\\d:?(\\d\\d)?|Z/,function(e){(this.zone||(this.zone={})).offset=function(e){if(!e)return 0;if(\"Z\"===e)return 0;var t=e.match(/([+-]|\\d\\d)/g),n=60*t[1]+(+t[2]||0);return 0===n?0:\"+\"===t[0]?-n:n}(e)}],h=function(e){var t=o[e];return t&&(t.indexOf?t:t.s.concat(t.f))},u=function(e,t){var n,r=o.meridiem;if(r){for(var i=1;i<=24;i+=1)if(e.indexOf(r(i,0,t))>-1){n=i>12;break}}else n=e===(t?\"pm\":\"PM\");return n},d={A:[i,function(e){this.afternoon=u(e,!1)}],a:[i,function(e){this.afternoon=u(e,!0)}],S:[/\\d/,function(e){this.milliseconds=100*+e}],SS:[n,function(e){this.milliseconds=10*+e}],SSS:[/\\d{3}/,function(e){this.milliseconds=+e}],s:[r,a(\"seconds\")],ss:[r,a(\"seconds\")],m:[r,a(\"minutes\")],mm:[r,a(\"minutes\")],H:[r,a(\"hours\")],h:[r,a(\"hours\")],HH:[r,a(\"hours\")],hh:[r,a(\"hours\")],D:[r,a(\"day\")],DD:[n,a(\"day\")],Do:[i,function(e){var t=o.ordinal,n=e.match(/\\d+/);if(this.day=n[0],t)for(var r=1;r<=31;r+=1)t(r).replace(/\\[|\\]/g,\"\")===e&&(this.day=r)}],M:[r,a(\"month\")],MM:[n,a(\"month\")],MMM:[i,function(e){var t=h(\"months\"),n=(h(\"monthsShort\")||t.map((function(e){return e.slice(0,3)}))).indexOf(e)+1;if(n<1)throw new Error;this.month=n%12||n}],MMMM:[i,function(e){var t=h(\"months\").indexOf(e)+1;if(t<1)throw new Error;this.month=t%12||t}],Y:[/[+-]?\\d+/,a(\"year\")],YY:[n,function(e){this.year=s(e)}],YYYY:[/\\d{4}/,a(\"year\")],Z:f,ZZ:f};function c(n){var r,i;r=n,i=o&&o.formats;for(var s=(n=r.replace(/(\\[[^\\]]+])|(LTS?|l{1,4}|L{1,4})/g,(function(t,n,r){var o=r&&r.toUpperCase();return n||i[r]||e[r]||i[o].replace(/(\\[[^\\]]+])|(MMMM|MM|DD|dddd)/g,(function(e,t,n){return t||n.slice(1)}))}))).match(t),a=s.length,f=0;f<a;f+=1){var h=s[f],u=d[h],c=u&&u[0],l=u&&u[1];s[f]=l?{regex:c,parser:l}:h.replace(/^\\[|\\]$/g,\"\")}return function(e){for(var t={},n=0,r=0;n<a;n+=1){var i=s[n];if(\"string\"==typeof i)r+=i.length;else{var o=i.regex,f=i.parser,h=e.slice(r),u=o.exec(h)[0];f.call(t,u),e=e.replace(u,\"\")}}return function(e){var t=e.afternoon;if(void 0!==t){var n=e.hours;t?n<12&&(e.hours+=12):12===n&&(e.hours=0),delete e.afternoon}}(t),t}}return function(e,t,n){n.p.customParseFormat=!0,e&&e.parseTwoDigitYear&&(s=e.parseTwoDigitYear);var r=t.prototype,i=r.parse;r.parse=function(e){var t=e.date,r=e.utc,s=e.args;this.$u=r;var a=s[1];if(\"string\"==typeof a){var f=!0===s[2],h=!0===s[3],u=f||h,d=s[2];h&&(d=s[2]),o=this.$locale(),!f&&d&&(o=n.Ls[d]),this.$d=function(e,t,n){try{if([\"x\",\"X\"].indexOf(t)>-1)return new Date((\"X\"===t?1e3:1)*e);var r=c(t)(e),i=r.year,o=r.month,s=r.day,a=r.hours,f=r.minutes,h=r.seconds,u=r.milliseconds,d=r.zone,l=new Date,m=s||(i||o?1:l.getDate()),M=i||l.getFullYear(),Y=0;i&&!o||(Y=o>0?o-1:l.getMonth());var p=a||0,v=f||0,D=h||0,g=u||0;return d?new Date(Date.UTC(M,Y,m,p,v,D,g+60*d.offset*1e3)):n?new Date(Date.UTC(M,Y,m,p,v,D,g)):new Date(M,Y,m,p,v,D,g)}catch(e){return new Date(\"\")}}(t,a,r),this.init(),d&&!0!==d&&(this.$L=this.locale(d).$L),u&&t!=this.format(a)&&(this.$d=new Date(\"\")),o={}}else if(a instanceof Array)for(var l=a.length,m=1;m<=l;m+=1){s[1]=a[m-1];var M=n.apply(this,s);if(M.isValid()){this.$d=M.$d,this.$L=M.$L,this.init();break}m===l&&(this.$d=new Date(\"\"))}else i.call(this,e)}}}));","!function(t,i){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=i():\"function\"==typeof define&&define.amd?define(i):(t=\"undefined\"!=typeof globalThis?globalThis:t||self).dayjs_plugin_utc=i()}(this,(function(){\"use strict\";var t=\"minute\",i=/[+-]\\d\\d(?::?\\d\\d)?/g,e=/([+-]|\\d\\d)/g;return function(s,f,n){var u=f.prototype;n.utc=function(t){var i={date:t,utc:!0,args:arguments};return new f(i)},u.utc=function(i){var e=n(this.toDate(),{locale:this.$L,utc:!0});return i?e.add(this.utcOffset(),t):e},u.local=function(){return n(this.toDate(),{locale:this.$L,utc:!1})};var o=u.parse;u.parse=function(t){t.utc&&(this.$u=!0),this.$utils().u(t.$offset)||(this.$offset=t.$offset),o.call(this,t)};var r=u.init;u.init=function(){if(this.$u){var t=this.$d;this.$y=t.getUTCFullYear(),this.$M=t.getUTCMonth(),this.$D=t.getUTCDate(),this.$W=t.getUTCDay(),this.$H=t.getUTCHours(),this.$m=t.getUTCMinutes(),this.$s=t.getUTCSeconds(),this.$ms=t.getUTCMilliseconds()}else r.call(this)};var a=u.utcOffset;u.utcOffset=function(s,f){var n=this.$utils().u;if(n(s))return this.$u?0:n(this.$offset)?a.call(this):this.$offset;if(\"string\"==typeof s&&(s=function(t){void 0===t&&(t=\"\");var s=t.match(i);if(!s)return null;var f=(\"\"+s[0]).match(e)||[\"-\",0,0],n=f[0],u=60*+f[1]+ +f[2];return 0===u?0:\"+\"===n?u:-u}(s),null===s))return this;var u=Math.abs(s)<=16?60*s:s,o=this;if(f)return o.$offset=u,o.$u=0===s,o;if(0!==s){var r=this.$u?this.toDate().getTimezoneOffset():-1*this.utcOffset();(o=this.local().add(u+r,t)).$offset=u,o.$x.$localOffset=r}else o=this.utc();return o};var h=u.format;u.format=function(t){var i=t||(this.$u?\"YYYY-MM-DDTHH:mm:ss[Z]\":\"\");return h.call(this,i)},u.valueOf=function(){var t=this.$utils().u(this.$offset)?0:this.$offset+(this.$x.$localOffset||this.$d.getTimezoneOffset());return this.$d.valueOf()-6e4*t},u.isUTC=function(){return!!this.$u},u.toISOString=function(){return this.toDate().toISOString()},u.toString=function(){return this.toDate().toUTCString()};var l=u.toDate;u.toDate=function(t){return\"s\"===t&&this.$offset?n(this.format(\"YYYY-MM-DD HH:mm:ss:SSS\")).toDate():l.call(this)};var c=u.diff;u.diff=function(t,i,e){if(t&&this.$u===t.$u)return c.call(this,t,i,e);var s=this.local(),f=n(t).local();return c.call(s,f,i,e)}}}));","import dayjs from \"dayjs\";\r\n\r\n\r\nimport updateLocale from 'dayjs/plugin/updateLocale';\r\nimport customParseFormat from 'dayjs/plugin/customParseFormat';\r\nimport utc from 'dayjs/plugin/utc';\r\n\r\ndayjs.extend(utc);\r\ndayjs.extend(updateLocale);\r\ndayjs.extend(customParseFormat);\r\n\r\nconst FORMAT_DATE = \"DD-MM-YYYY\";\r\nconst FORMAT_DATETIME = \"DD-MM-YYYY HH:mm:ss\";\r\nconst FORMAT_YEARMONTH = \"YYYY-MMMM\";\r\nconst FORMAT_YEARWEEK = \"YYYY-WW\";\r\nconst FORMAT_DAYOFMONTH = \"DD\";\r\nconst FORMAT_YEAR = \"YYYY\";\r\nconst FORMAT_TIME = \"HH:mm:ss\";\r\n\r\nfunction getCurrentMoment(){\r\n return dayjs();\r\n}\r\n\r\nfunction getCurrentDateText(){\r\n return convertMomentToDateText(getCurrentMoment());\r\n}\r\n\r\nfunction getCurrentDateTimeText(){\r\n return convertMomentToDateTimeText(getCurrentMoment());\r\n}\r\n\r\nfunction getCurrentDate(){\r\n return getCurrentMoment().toDate();\r\n}\r\n\r\nfunction convertMomentToTimestamp(moment) {\r\n if (moment) {\r\n return moment.toDate().getTime();\r\n } else {\r\n return null;\r\n }\r\n}\r\n\r\nfunction convertMomentToDateText(moment) {\r\n if (moment) {\r\n return moment.format(FORMAT_DATE);\r\n } else {\r\n return '';\r\n }\r\n}\r\n\r\nfunction convertTimestampToMoment(timestamp) {\r\n if (timestamp && timestamp > 0) {\r\n return dayjs(timestamp);\r\n } else {\r\n return null;\r\n }\r\n}\r\n\r\nfunction convertMomentToDateTimeText(moment) {\r\n if (moment) {\r\n return moment.format(FORMAT_DATETIME);\r\n } else {\r\n return \"\";\r\n }\r\n}\r\n\r\nfunction convertMomentToYearText(moment) {\r\n if (moment) {\r\n return moment.format(FORMAT_YEAR);\r\n } else {\r\n return \"\";\r\n }\r\n}\r\n\r\nfunction convertMomentToYearMonthText(moment) {\r\n if (moment) {\r\n return moment.format(FORMAT_YEARMONTH);\r\n } else {\r\n return \"\";\r\n }\r\n}\r\n\r\nfunction convertMomentToDayOfMonthText(moment) {\r\n if (moment) {\r\n return moment.format(FORMAT_DAYOFMONTH);\r\n } else {\r\n return \"\";\r\n }\r\n}\r\n\r\n\r\n\r\nfunction convertMomentToTimeText(moment) {\r\n if (moment) {\r\n return moment.format(FORMAT_TIME);\r\n } else {\r\n return \"\";\r\n }\r\n}\r\n\r\nfunction convertDateTimeTextToMoment(dateTimeText) {\r\n if (dateTimeText) {\r\n return dayjs(dateTimeText, FORMAT_DATETIME);\r\n } else {\r\n return null;\r\n }\r\n}\r\n\r\nfunction convertYearMonthTextToMoment(yearMonthText) {\r\n if (yearMonthText) {\r\n return dayjs(yearMonthText, FORMAT_YEARMONTH);\r\n } else {\r\n return null;\r\n }\r\n}\r\n\r\nfunction convertDateTextToMoment(dateText) {\r\n if (dateText) {\r\n return dayjs(dateText, FORMAT_DATE);\r\n } else {\r\n return null;\r\n }\r\n}\r\n\r\nfunction convertTimeTextToMoment(dateTimeText) {\r\n if (dateTimeText) {\r\n return dayjs(dateTimeText, FORMAT_TIME);\r\n } else {\r\n return null;\r\n }\r\n}\r\n\r\nfunction convertDateTextToDate(dateText) {\r\n if (dateText) {\r\n return dayjs(dateText, FORMAT_DATE).toDate();\r\n } else {\r\n return null;\r\n }\r\n}\r\n\r\nfunction convertDateTimeTextToDate(dateTimeText) {\r\n if (dateTimeText) {\r\n let moment = dayjs(dateTimeText, FORMAT_DATETIME);\r\n return dayjs(dateTimeText, FORMAT_DATETIME).toDate();\r\n } else {\r\n return null;\r\n }\r\n}\r\n\r\nfunction convertTimestampToDateText(timestamp) {\r\n let moments = convertTimestampToMoment(timestamp);\r\n let text = convertMomentToDateText(moments);\r\n return text;\r\n}\r\n\r\nfunction convertTimestampToDateTimeText(timestamp) {\r\n let moments = convertTimestampToMoment(timestamp);\r\n let text = convertMomentToDateTimeText(moments);\r\n return text;\r\n}\r\n\r\nfunction convertTimestampToTimeText(timestamp) {\r\n let moments = convertTimestampToMoment(timestamp);\r\n let text = convertMomentToTimeText(moments);\r\n return text;\r\n}\r\n\r\nfunction convertDateToMoment(date) {\r\n if(!date){\r\n return null;\r\n }\r\n return dayjs(date);\r\n}\r\n\r\nfunction convertDateToDateText(date) {\r\n let moments = convertDateToMoment(date);\r\n let text = convertMomentToDateText(moments);\r\n return text;\r\n}\r\n\r\nfunction convertDateToDateTimeText(date) {\r\n let moments = convertDateToMoment(date);\r\n let text = convertMomentToDateTimeText(moments);\r\n return text;\r\n}\r\n\r\n\r\nfunction buildDateRange(from, to){\r\n return from+\" ~ \"+to;\r\n}\r\n\r\nfunction getFormatTextOfMMM(mthNumber){\r\n let moment = getCurrentMoment();\r\n moment = moment.month(mthNumber-1);\r\n return moment.format('MMM');\r\n}\r\n\r\nexport default {\r\n FORMAT_DATE: FORMAT_DATE,\r\n FORMAT_DATETIME: FORMAT_DATETIME,\r\n FORMAT_YEARMONTH: FORMAT_YEARMONTH,\r\n FORMAT_YEARWEEK: FORMAT_YEARWEEK,\r\n FORMAT_TIME: FORMAT_TIME,\r\n\r\n getCurrentMoment: getCurrentMoment,\r\n getCurrentDateTimeText: getCurrentDateTimeText,\r\n getCurrentDateText: getCurrentDateText,\r\n getCurrentDate: getCurrentDate,\r\n\r\n convertMomentToTimestamp: convertMomentToTimestamp,\r\n convertMomentToDateText: convertMomentToDateText,\r\n convertMomentToDateTimeText: convertMomentToDateTimeText,\r\n convertMomentToYearText: convertMomentToYearText,\r\n convertMomentToYearMonthText: convertMomentToYearMonthText,\r\n convertMomentToDayOfMonthText: convertMomentToDayOfMonthText,\r\n convertMomentToTimeText: convertMomentToTimeText,\r\n\r\n convertTimestampToMoment: convertTimestampToMoment,\r\n convertTimestampToDateText: convertTimestampToDateText,\r\n convertTimestampToDateTimeText: convertTimestampToDateTimeText,\r\n convertTimestampToTimeText: convertTimestampToTimeText,\r\n\r\n convertDateToMoment: convertDateToMoment,\r\n convertDateToDateText: convertDateToDateText,\r\n convertDateToDateTimeText: convertDateToDateTimeText,\r\n\r\n convertYearMonthTextToMoment: convertYearMonthTextToMoment,\r\n convertDateTextToMoment: convertDateTextToMoment,\r\n convertDateTimeTextToMoment: convertDateTimeTextToMoment,\r\n convertTimeTextToMoment: convertTimeTextToMoment,\r\n\r\n convertDateTextToDate: convertDateTextToDate,\r\n convertDateTimeTextToDate: convertDateTimeTextToDate,\r\n\r\n buildDateRange:buildDateRange,\r\n\r\n getFormatTextOfMMM: getFormatTextOfMMM,\r\n};\r\n","import _ from \"lodash\";\r\n\r\nfunction resetBodyScroll() {\r\n document.querySelector(\"body\").style.position = \"initial\";\r\n}\r\n\r\nfunction forbidBodyScroll() {\r\n document.querySelector(\"body\").style.position = \"fixed\";\r\n}\r\n\r\nfunction syncDomAnimation() {\r\n setTimeout(() => {\r\n //sync all animation be the same\r\n _.each(document.getAnimations(), (item) => {\r\n item.startTime = 0;\r\n });\r\n }, 200);\r\n}\r\n\r\n/**\r\n * find the closet parent element by className\r\n *\r\n * @param elem\r\n * @param className\r\n */\r\nfunction closetByClassName(elem, classNameList) {\r\n let classList = elem.classList;\r\n if (classList) {\r\n if (_.intersection(classList, classNameList).length > 0) {\r\n return elem;\r\n }\r\n }\r\n\r\n let parentElement = elem.parentElement;\r\n if (parentElement) {\r\n return closetByClassName(parentElement, classNameList);\r\n } else {\r\n return null;\r\n }\r\n}\r\n\r\n/**\r\n * calc current dom node offset to the left-top of the window\r\n */\r\nfunction offset(domNode) {\r\n var offest = {\r\n top: 0,\r\n left: 0\r\n };\r\n if (!domNode.getClientRects().length) {\r\n return offest;\r\n }\r\n if (window.getComputedStyle(domNode)['display'] === 'none') {\r\n return offest;\r\n }\r\n\r\n offest = domNode.getBoundingClientRect();\r\n var docElement = domNode.ownerDocument.documentElement;\r\n return {\r\n top: offest.top + (window.scrollY || window.pageYOffset) - docElement.clientTop,\r\n left: offest.left + (window.scrollX || window.pageXOffset) - docElement.clientLeft\r\n };\r\n}\r\n\r\nexport default {\r\n resetBodyScroll: resetBodyScroll,\r\n forbidBodyScroll: forbidBodyScroll,\r\n\r\n syncDomAnimation: syncDomAnimation,\r\n closetByClassName: closetByClassName,\r\n\r\n offset: offset,\r\n};\r\n","function isIOS() {\r\n return [\r\n 'iPad Simulator',\r\n 'iPhone Simulator',\r\n 'iPod Simulator',\r\n 'iPad',\r\n 'iPhone',\r\n 'iPod'\r\n ].includes(navigator.platform) || (navigator.userAgent.includes(\"Mac\") && \"ontouchend\" in document)\r\n}\r\n\r\nfunction isDesktopChrome() {\r\n let result = /Chrome/.test(navigator.userAgent) && /Google Inc/.test(navigator.vendor);\r\n if (!result) {\r\n return false;\r\n }\r\n\r\n if (isMobileChrome()) {\r\n return false;\r\n }\r\n\r\n return true;\r\n}\r\n\r\nfunction isMobileChrome() {\r\n return /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent) && /Chrome/.test(navigator.userAgent) && /Google Inc/.test(navigator.vendor);\r\n}\r\n\r\nfunction isMobileDevice() {\r\n return isIOS() || isMobileChrome();\r\n}\r\n\r\nfunction updateViewPort(pOptions = {}) {\r\n let viewport = document.getElementsByName(\"viewport\");\r\n if (!viewport || viewport.length != 1) {\r\n return;\r\n }\r\n\r\n let options = {};\r\n _.merge(options, defaultOptions, pOptions);\r\n\r\n let content = [];\r\n _.each(options, (value, key) => {\r\n content.push(key + \"=\" + value);\r\n });\r\n\r\n viewport[0].content = _.join(content, \",\");\r\n\r\n console.debug(\"curr viewport is: \" + viewport[0].content);\r\n}\r\n\r\nexport default {\r\n isIOS: isIOS,\r\n isDesktopChrome: isDesktopChrome,\r\n isMobileChrome: isMobileChrome,\r\n\r\n isMobileDevice: isMobileDevice,\r\n\r\n updateViewPort: updateViewPort,\r\n};\r\n","import _ from \"lodash\";\r\n\r\nlet globalDialogUtils;\r\n\r\nfunction init(pDialogInstanceUtils) {\r\n globalDialogUtils = pDialogInstanceUtils;\r\n}\r\n\r\nfunction toFormData(keyPrefix, model, ignoreKeys = [], formData = {}) {\r\n if(model == null){\r\n return {\r\n keyPrefix: null\r\n }\r\n }\r\n\r\n _.each(_.keys(model), (attr) => {\r\n let value = model[attr];\r\n let formKeyPath = keyPrefix ? keyPrefix + \"#\" + attr : attr;\r\n\r\n if(_.includes(ignoreKeys, formKeyPath)){\r\n formData[formKeyPath] = value;\r\n return;\r\n }\r\n\r\n if (_.isPlainObject(value)) {\r\n toFormData(formKeyPath, value, ignoreKeys, formData);\r\n } else {\r\n formData[formKeyPath] = value;\r\n }\r\n })\r\n\r\n return formData;\r\n}\r\n\r\nfunction toModel(formData, ignoreKeys = []) {\r\n if(formData == null){\r\n return null;\r\n }\r\n\r\n let model = {};\r\n _.each(_.keys(formData), (formKeyPath) => {\r\n let value = formData[formKeyPath];\r\n let path = formKeyPath.replaceAll(\"#\", \".\");\r\n _.set(model, path, value);\r\n });\r\n\r\n return model;\r\n}\r\n\r\nfunction scrollToFirstError(ex){\r\n const isError = document.getElementsByClassName('ant-form-item-has-error');\r\n isError[0] && isError[0].scrollIntoView();\r\n console.error(ex);\r\n}\r\n\r\n/**\r\n * show leave message when exit from a modified form page\r\n * @param formOrCheckFormDirtyFunc AntDesignForm or checkFormDirtyFunction\r\n * @returns {Promise<boolean>} true: can exit, or: abort exit\r\n */\r\nasync function confirmOfLeavingForm(formOrCheckFormDirtyFunc) {\r\n if(formOrCheckFormDirtyFunc == null){\r\n return true;\r\n }\r\n\r\n let formDirty;\r\n if (typeof formOrCheckFormDirtyFunc === 'function') {\r\n formDirty = await formOrCheckFormDirtyFunc();\r\n }else{\r\n formDirty = formOrCheckFormDirtyFunc.isFieldsTouched();\r\n }\r\n\r\n if (formDirty) {\r\n let result = await globalDialogUtils.showConfirmDialog(leaveMessage);\r\n if (result !== true) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n}\r\n\r\nconst leaveMessage = \"Do you want to give up your modification?\";\r\nexport default {\r\n init: init,\r\n\r\n toFormData: toFormData,\r\n toModel: toModel,\r\n scrollToFirstError: scrollToFirstError,\r\n\r\n confirmOfLeavingForm: confirmOfLeavingForm,\r\n leaveMessage: leaveMessage\r\n};","import _ from \"lodash\";\r\n\r\nfunction isJsonText(value) {\r\n value = _.trim(value);\r\n\r\n return (_.startsWith(value, \"{\") || _.startsWith(value, \"[\"));\r\n}\r\n\r\nfunction formatJsonText(value) {\r\n if (!isJsonText(value)) {\r\n return value;\r\n }\r\n\r\n return JSON.stringify(JSON.parse(value), null, 4);\r\n}\r\n\r\n\r\nexport default {\r\n isJsonText: isJsonText,\r\n formatJsonText: formatJsonText,\r\n};\r\n","import _ from \"lodash\";\r\n\r\nfunction formatNumberTextWithUnit(numberText, unitText) {\r\n if (!unitText) {\r\n return numberText;\r\n }\r\n return numberText + \" \" + unitText;\r\n}\r\n\r\nfunction formatPctWith2Digital(valuePct) {\r\n let valuePctText = formatNumberWithDigital(valuePct, 2, false);\r\n return valuePctText + \"%\";\r\n}\r\n\r\nfunction formatNumberWith2Digital(value) {\r\n return formatNumberWithDigital(value, 2);\r\n}\r\n\r\nfunction formatNumberWith4Digital(value) {\r\n return formatNumberWithDigital(value, 4);\r\n}\r\n\r\nfunction formatNumberWithDigital(value, digital) {\r\n if (value === null) {\r\n return \"\";\r\n }\r\n\r\n let dblValue = (_.toNumber(value));\r\n if (isNaN(dblValue)) {\r\n //the string value could not be convert to number, just return it;\r\n return value;\r\n }\r\n\r\n let valueText = value;\r\n if (digital != null) {\r\n let text = _.round(dblValue, digital) + \"\";\r\n if (text.indexOf(\".\") === -1) {\r\n text += '.';\r\n }\r\n\r\n let part1 = text.substring(0, text.indexOf(\".\"));\r\n let part2 = \"\";\r\n\r\n if (digital > 0) {\r\n part2 = text.substring(text.indexOf(\".\") + 1); //取到小数部分搜索\r\n part2 = \".\" + _.padEnd(part2, digital, '0');\r\n }\r\n valueText = part1 + part2;\r\n }\r\n\r\n return valueText;\r\n}\r\n\r\nexport default {\r\n formatPctWith2Digital: formatPctWith2Digital,\r\n formatNumberWith2Digital: formatNumberWith2Digital,\r\n formatNumberWith4Digital: formatNumberWith4Digital,\r\n formatNumberWithDigital: formatNumberWithDigital,\r\n formatNumberTextWithUnit: formatNumberTextWithUnit,\r\n};\r\n","import _ from \"lodash\";\r\nimport AxiosUtils from \"./AxiosUtils\";\r\n\r\nconst constants = {\r\n CANVAS_WIDTH: 480,\r\n CANVAS_HEIGHT: 270,\r\n}\r\n\r\n/**\r\n * create an empty 2 dimension array\r\n */\r\nfunction new2dArray(width, height, initValue) {\r\n let array = [];\r\n for (let rowIdx = 0; rowIdx < height; rowIdx++) {\r\n let newRow = [];\r\n for (let colIdx = 0; colIdx < width; colIdx++) {\r\n newRow.push(initValue);\r\n }\r\n array.push(newRow);\r\n }\r\n return array;\r\n}\r\n\r\n/**\r\n * render grey level ImageDataArray to Canvas\r\n */\r\nfunction renderImageDataArrayToCtx(ctx, imageDataArray) {\r\n let height = imageDataArray.length;\r\n let width = imageDataArray[0].length;\r\n let imageData = new ImageData(width, height);\r\n let idx = 0;\r\n for (let rowIdx = 0; rowIdx < height; rowIdx++) {\r\n for (let colIdx = 0; colIdx < width; colIdx++) {\r\n let grayData = imageDataArray[rowIdx][colIdx];\r\n\r\n imageData.data[idx + 0] = grayData;\r\n imageData.data[idx + 1] = grayData;\r\n imageData.data[idx + 2] = grayData;\r\n imageData.data[idx + 3] = 255;\r\n idx = idx + 4;\r\n }\r\n }\r\n ctx.putImageData(imageData, 0, 0, 0, 0, width, height);\r\n}\r\n\r\nfunction getImageDataArrayFromCtx(ctx, canvasWidth, canvasHeight) {\r\n let imageData = ctx.getImageData(0, 0, canvasWidth, canvasHeight);\r\n\r\n let isEmpty = true;\r\n let imageDataArray = [];\r\n for (let i = 0; i < imageData.data.length; i = i + 4) {\r\n let red = imageData.data[i];\r\n imageDataArray[i / 4] = red;\r\n if (red !== 255) {\r\n isEmpty = false;\r\n }\r\n }\r\n\r\n if (isEmpty) {\r\n return null;\r\n }\r\n\r\n imageDataArray = _.chunk(imageDataArray, canvasWidth);\r\n return imageDataArray;\r\n}\r\n\r\nfunction initCanvas(ctx, canvasWidth, canvasHeight) {\r\n ctx.fillStyle = \"white\";\r\n ctx.lineWidth = 1;\r\n ctx.lineCap = 'round';\r\n ctx.lineJoin = 'round';\r\n\r\n ctx.fillRect(0, 0, canvasWidth, canvasHeight);\r\n ctx.fill();\r\n}\r\n\r\nasync function convertCanvasToBlobFile(canvas, fileName, fileType = 'image/jpeg') {\r\n return new Promise((resolve, reject) => {\r\n canvas.toBlob(async function (blob) {\r\n const file = new File([blob], fileName);\r\n resolve(file);\r\n }, fileType, 0.9);\r\n });\r\n}\r\n\r\n/**\r\n * Build grey level ImageDataArray from text\r\n */\r\nfunction calcImageDataArrayFromText(valueText) {\r\n if (valueText == null) {\r\n return;\r\n }\r\n\r\n let imageDataArray = [];\r\n _.each(valueText.split(\";\"), (rowData, rowIdx) => {\r\n let row = [];\r\n _.each(rowData.split(\",\"), (item, colIdx) => {\r\n row.push(item);\r\n });\r\n imageDataArray.push(row);\r\n });\r\n return imageDataArray;\r\n}\r\n\r\nfunction calcTextFromImageDataArray(imageDataArray) {\r\n if (imageDataArray == null) {\r\n return;\r\n }\r\n\r\n let valueText = \"\";\r\n for (let rowIdx = 0; rowIdx < imageDataArray.length; rowIdx++) {\r\n if (rowIdx > 0) {\r\n valueText += \";\";\r\n }\r\n valueText += imageDataArray[rowIdx].join(\",\");\r\n }\r\n return valueText;\r\n}\r\n\r\nexport default {\r\n constants: constants,\r\n new2dArray: new2dArray,\r\n initCanvas: initCanvas,\r\n //common\r\n convertCanvasToBlobFile: convertCanvasToBlobFile,\r\n\r\n //for signature\r\n renderImageDataArrayToCtx: renderImageDataArrayToCtx,\r\n getImageDataArrayFromCtx: getImageDataArrayFromCtx,\r\n calcImageDataArrayFromText: calcImageDataArrayFromText,\r\n calcTextFromImageDataArray: calcTextFromImageDataArray,\r\n};\r\n","import _ from \"lodash\";\r\n\r\nlet pattern=/[`~!@#$^\\-&*()=|{}':;,\\\\\\[\\].<>\\/?\\s]/g;\r\n\r\nfunction buildKeyword(text) {\r\n if(!text){\r\n return '';\r\n }\r\n\r\n let keyword = text.replace(pattern, '').toUpperCase();\r\n return keyword;\r\n}\r\n\r\n\r\nexport default {\r\n buildKeyword: buildKeyword,\r\n};\r\n"],"names":["Base64","init","isMobileDevice","_","param","module","this","e","n","t","r","i","s","o","a","f","h","u","c","d","l","m","M"],"mappings":"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","x_google_ignoreList":[4,5,6]}
|