sirius-common-utils 1.0.34 → 1.0.36
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.
|
@@ -389,7 +389,7 @@ function uploadFile(url, file, headers, onUploadProgress, customizedOptions) {
|
|
|
389
389
|
headers = headers || {};
|
|
390
390
|
let formdata = new FormData();
|
|
391
391
|
if (_$1.isArray(file)) {
|
|
392
|
-
formdata.append("files",
|
|
392
|
+
file.forEach((f) => formdata.append("files", f));
|
|
393
393
|
} else {
|
|
394
394
|
formdata.append("file", file);
|
|
395
395
|
}
|
|
@@ -830,8 +830,6 @@ const FORMAT_DATETIME = "DD-MM-YYYY HH:mm:ss";
|
|
|
830
830
|
const FORMAT_DATETIME_HHMM = "DD-MM-YYYY HH:mm";
|
|
831
831
|
const FORMAT_YEARMONTH = "YYYY-MMMM";
|
|
832
832
|
const FORMAT_YEARWEEK = "YYYY-WW";
|
|
833
|
-
const FORMAT_DAYOFMONTH = "DD";
|
|
834
|
-
const FORMAT_YEAR = "YYYY";
|
|
835
833
|
const FORMAT_TIME = "HH:mm:ss";
|
|
836
834
|
function getCurrentMoment() {
|
|
837
835
|
return dayjs();
|
|
@@ -852,9 +850,9 @@ function convertMomentToTimestamp(moment) {
|
|
|
852
850
|
return null;
|
|
853
851
|
}
|
|
854
852
|
}
|
|
855
|
-
function convertMomentToDateText(moment) {
|
|
853
|
+
function convertMomentToDateText(moment, format = FORMAT_DATE) {
|
|
856
854
|
if (moment) {
|
|
857
|
-
return moment.format(
|
|
855
|
+
return moment.format(format);
|
|
858
856
|
} else {
|
|
859
857
|
return "";
|
|
860
858
|
}
|
|
@@ -873,34 +871,6 @@ function convertMomentToDateTimeText(moment, format = FORMAT_DATETIME) {
|
|
|
873
871
|
return "";
|
|
874
872
|
}
|
|
875
873
|
}
|
|
876
|
-
function convertMomentToYearText(moment, format = FORMAT_YEAR) {
|
|
877
|
-
if (moment) {
|
|
878
|
-
return moment.format(format);
|
|
879
|
-
} else {
|
|
880
|
-
return "";
|
|
881
|
-
}
|
|
882
|
-
}
|
|
883
|
-
function convertMomentToYearMonthText(moment, format = FORMAT_YEARMONTH) {
|
|
884
|
-
if (moment) {
|
|
885
|
-
return moment.format(format);
|
|
886
|
-
} else {
|
|
887
|
-
return "";
|
|
888
|
-
}
|
|
889
|
-
}
|
|
890
|
-
function convertMomentToDayOfMonthText(moment, format = FORMAT_DAYOFMONTH) {
|
|
891
|
-
if (moment) {
|
|
892
|
-
return moment.format(format);
|
|
893
|
-
} else {
|
|
894
|
-
return "";
|
|
895
|
-
}
|
|
896
|
-
}
|
|
897
|
-
function convertMomentToTimeText(moment, format = FORMAT_TIME) {
|
|
898
|
-
if (moment) {
|
|
899
|
-
return moment.format(format);
|
|
900
|
-
} else {
|
|
901
|
-
return "";
|
|
902
|
-
}
|
|
903
|
-
}
|
|
904
874
|
function convertDateTimeTextToMoment(dateTimeText, format = FORMAT_DATETIME) {
|
|
905
875
|
if (dateTimeText) {
|
|
906
876
|
return dayjs(dateTimeText, format);
|
|
@@ -908,13 +878,6 @@ function convertDateTimeTextToMoment(dateTimeText, format = FORMAT_DATETIME) {
|
|
|
908
878
|
return null;
|
|
909
879
|
}
|
|
910
880
|
}
|
|
911
|
-
function convertYearMonthTextToMoment(yearMonthText, format = FORMAT_YEARMONTH) {
|
|
912
|
-
if (yearMonthText) {
|
|
913
|
-
return dayjs(yearMonthText, format);
|
|
914
|
-
} else {
|
|
915
|
-
return null;
|
|
916
|
-
}
|
|
917
|
-
}
|
|
918
881
|
function convertDateTextToMoment(dateText, format = FORMAT_DATE) {
|
|
919
882
|
if (dateText) {
|
|
920
883
|
return dayjs(dateText, format);
|
|
@@ -922,13 +885,6 @@ function convertDateTextToMoment(dateText, format = FORMAT_DATE) {
|
|
|
922
885
|
return null;
|
|
923
886
|
}
|
|
924
887
|
}
|
|
925
|
-
function convertTimeTextToMoment(dateTimeText, format = FORMAT_TIME) {
|
|
926
|
-
if (dateTimeText) {
|
|
927
|
-
return dayjs(dateTimeText, format);
|
|
928
|
-
} else {
|
|
929
|
-
return null;
|
|
930
|
-
}
|
|
931
|
-
}
|
|
932
888
|
function convertDateTextToDate(dateText, format = FORMAT_DATE) {
|
|
933
889
|
if (dateText) {
|
|
934
890
|
return dayjs(dateText, format).toDate();
|
|
@@ -938,25 +894,19 @@ function convertDateTextToDate(dateText, format = FORMAT_DATE) {
|
|
|
938
894
|
}
|
|
939
895
|
function convertDateTimeTextToDate(dateTimeText, format = FORMAT_DATETIME) {
|
|
940
896
|
if (dateTimeText) {
|
|
941
|
-
dayjs(dateTimeText, format);
|
|
942
897
|
return dayjs(dateTimeText, format).toDate();
|
|
943
898
|
} else {
|
|
944
899
|
return null;
|
|
945
900
|
}
|
|
946
901
|
}
|
|
947
|
-
function convertTimestampToDateText(timestamp) {
|
|
902
|
+
function convertTimestampToDateText(timestamp, format = FORMAT_DATE) {
|
|
948
903
|
let moments = convertTimestampToMoment(timestamp);
|
|
949
904
|
let text = convertMomentToDateText(moments);
|
|
950
905
|
return text;
|
|
951
906
|
}
|
|
952
|
-
function convertTimestampToDateTimeText(timestamp) {
|
|
907
|
+
function convertTimestampToDateTimeText(timestamp, format = FORMAT_DATETIME) {
|
|
953
908
|
let moments = convertTimestampToMoment(timestamp);
|
|
954
|
-
let text = convertMomentToDateTimeText(moments);
|
|
955
|
-
return text;
|
|
956
|
-
}
|
|
957
|
-
function convertTimestampToTimeText(timestamp) {
|
|
958
|
-
let moments = convertTimestampToMoment(timestamp);
|
|
959
|
-
let text = convertMomentToTimeText(moments);
|
|
909
|
+
let text = convertMomentToDateTimeText(moments, format);
|
|
960
910
|
return text;
|
|
961
911
|
}
|
|
962
912
|
function convertDateToMoment(date) {
|
|
@@ -965,14 +915,14 @@ function convertDateToMoment(date) {
|
|
|
965
915
|
}
|
|
966
916
|
return dayjs(date);
|
|
967
917
|
}
|
|
968
|
-
function convertDateToDateText(date) {
|
|
918
|
+
function convertDateToDateText(date, format = FORMAT_DATE) {
|
|
969
919
|
let moments = convertDateToMoment(date);
|
|
970
|
-
let text = convertMomentToDateText(moments);
|
|
920
|
+
let text = convertMomentToDateText(moments, format);
|
|
971
921
|
return text;
|
|
972
922
|
}
|
|
973
|
-
function convertDateToDateTimeText(date) {
|
|
923
|
+
function convertDateToDateTimeText(date, format = FORMAT_DATETIME) {
|
|
974
924
|
let moments = convertDateToMoment(date);
|
|
975
|
-
let text = convertMomentToDateTimeText(moments);
|
|
925
|
+
let text = convertMomentToDateTimeText(moments, format);
|
|
976
926
|
return text;
|
|
977
927
|
}
|
|
978
928
|
function buildDateRange(from, to) {
|
|
@@ -997,21 +947,14 @@ const DateUtils = {
|
|
|
997
947
|
convertMomentToTimestamp,
|
|
998
948
|
convertMomentToDateText,
|
|
999
949
|
convertMomentToDateTimeText,
|
|
1000
|
-
convertMomentToYearText,
|
|
1001
|
-
convertMomentToYearMonthText,
|
|
1002
|
-
convertMomentToDayOfMonthText,
|
|
1003
|
-
convertMomentToTimeText,
|
|
1004
950
|
convertTimestampToMoment,
|
|
1005
951
|
convertTimestampToDateText,
|
|
1006
952
|
convertTimestampToDateTimeText,
|
|
1007
|
-
convertTimestampToTimeText,
|
|
1008
953
|
convertDateToMoment,
|
|
1009
954
|
convertDateToDateText,
|
|
1010
955
|
convertDateToDateTimeText,
|
|
1011
|
-
convertYearMonthTextToMoment,
|
|
1012
956
|
convertDateTextToMoment,
|
|
1013
957
|
convertDateTimeTextToMoment,
|
|
1014
|
-
convertTimeTextToMoment,
|
|
1015
958
|
convertDateTextToDate,
|
|
1016
959
|
convertDateTimeTextToDate,
|
|
1017
960
|
buildDateRange,
|
|
@@ -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\nlet uriGetCurrUserInfo = null;\r\nlet customizedUserUtils = null;\r\n\r\nlet currUserInfoCache = null;\r\n\r\nasync function init(\r\n pCustomizedUserUtils,\r\n pUriGetCurrUserInfo,\r\n) {\r\n customizedUserUtils = pCustomizedUserUtils;\r\n uriGetCurrUserInfo = pUriGetCurrUserInfo || `/api/user/getCurrUserInfo`;\r\n}\r\n\r\nasync function clear() {\r\n currUserInfoCache = null;\r\n}\r\n\r\n\r\nasync function getCurrUserInfo(forceReloadFlag=false) {\r\n if(currUserInfoCache!=null && forceReloadFlag===false){\r\n return currUserInfoCache;\r\n }\r\n\r\n if (customizedUserUtils && customizedUserUtils.getUserInfo) {\r\n let currUser = await customizedUserUtils.getUserInfo();\r\n currUserInfoCache = currUser;\r\n return currUser;\r\n } else {\r\n let currUser = await AxiosUtils.getJsonData(uriGetCurrUserInfo);\r\n currUserInfoCache = 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 return null;\r\n}\r\n\r\nfunction getCurrUserId() {\r\n return getCurrUserInfoCache()?.id;\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","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_DATETIME_HHMM = \"DD-MM-YYYY HH:mm\";\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, format=FORMAT_DATETIME) {\r\n if (moment) {\r\n return moment.format(format);\r\n } else {\r\n return \"\";\r\n }\r\n}\r\n\r\nfunction convertMomentToYearText(moment, format=FORMAT_YEAR) {\r\n if (moment) {\r\n return moment.format(format);\r\n } else {\r\n return \"\";\r\n }\r\n}\r\n\r\nfunction convertMomentToYearMonthText(moment, format=FORMAT_YEARMONTH) {\r\n if (moment) {\r\n return moment.format(format);\r\n } else {\r\n return \"\";\r\n }\r\n}\r\n\r\nfunction convertMomentToDayOfMonthText(moment, format=FORMAT_DAYOFMONTH) {\r\n if (moment) {\r\n return moment.format(format);\r\n } else {\r\n return \"\";\r\n }\r\n}\r\n\r\n\r\n\r\nfunction convertMomentToTimeText(moment, format=FORMAT_TIME) {\r\n if (moment) {\r\n return moment.format(format);\r\n } else {\r\n return \"\";\r\n }\r\n}\r\n\r\nfunction convertDateTimeTextToMoment(dateTimeText, format=FORMAT_DATETIME) {\r\n if (dateTimeText) {\r\n return dayjs(dateTimeText, format);\r\n } else {\r\n return null;\r\n }\r\n}\r\n\r\nfunction convertYearMonthTextToMoment(yearMonthText, format=FORMAT_YEARMONTH) {\r\n if (yearMonthText) {\r\n return dayjs(yearMonthText, format);\r\n } else {\r\n return null;\r\n }\r\n}\r\n\r\nfunction convertDateTextToMoment(dateText, format=FORMAT_DATE) {\r\n if (dateText) {\r\n return dayjs(dateText, format);\r\n } else {\r\n return null;\r\n }\r\n}\r\n\r\nfunction convertTimeTextToMoment(dateTimeText, format=FORMAT_TIME) {\r\n if (dateTimeText) {\r\n return dayjs(dateTimeText, format);\r\n } else {\r\n return null;\r\n }\r\n}\r\n\r\nfunction convertDateTextToDate(dateText, format=FORMAT_DATE) {\r\n if (dateText) {\r\n return dayjs(dateText, format).toDate();\r\n } else {\r\n return null;\r\n }\r\n}\r\n\r\nfunction convertDateTimeTextToDate(dateTimeText, format=FORMAT_DATETIME) {\r\n if (dateTimeText) {\r\n let moment = dayjs(dateTimeText, format);\r\n return dayjs(dateTimeText, format).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_DATETIME_HHMM: FORMAT_DATETIME_HHMM,\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","_","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\nlet uriGetCurrUserInfo = null;\r\nlet customizedUserUtils = null;\r\n\r\nlet currUserInfoCache = null;\r\n\r\nasync function init(\r\n pCustomizedUserUtils,\r\n pUriGetCurrUserInfo,\r\n) {\r\n customizedUserUtils = pCustomizedUserUtils;\r\n uriGetCurrUserInfo = pUriGetCurrUserInfo || `/api/user/getCurrUserInfo`;\r\n}\r\n\r\nasync function clear() {\r\n currUserInfoCache = null;\r\n}\r\n\r\n\r\nasync function getCurrUserInfo(forceReloadFlag=false) {\r\n if(currUserInfoCache!=null && forceReloadFlag===false){\r\n return currUserInfoCache;\r\n }\r\n\r\n if (customizedUserUtils && customizedUserUtils.getUserInfo) {\r\n let currUser = await customizedUserUtils.getUserInfo();\r\n currUserInfoCache = currUser;\r\n return currUser;\r\n } else {\r\n let currUser = await AxiosUtils.getJsonData(uriGetCurrUserInfo);\r\n currUserInfoCache = 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 return null;\r\n}\r\n\r\nfunction getCurrUserId() {\r\n return getCurrUserInfoCache()?.id;\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","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 file.forEach(f => formdata.append(\"files\", f));\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_DATETIME_HHMM = \"DD-MM-YYYY HH:mm\";\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, format=FORMAT_DATE) {\r\n if (moment) {\r\n return moment.format(format);\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, format = FORMAT_DATETIME) {\r\n if (moment) {\r\n return moment.format(format);\r\n } else {\r\n return \"\";\r\n }\r\n}\r\n\r\nfunction convertDateTimeTextToMoment(dateTimeText, format = FORMAT_DATETIME) {\r\n if (dateTimeText) {\r\n return dayjs(dateTimeText, format);\r\n } else {\r\n return null;\r\n }\r\n}\r\n\r\nfunction convertDateTextToMoment(dateText, format = FORMAT_DATE) {\r\n if (dateText) {\r\n return dayjs(dateText, format);\r\n } else {\r\n return null;\r\n }\r\n}\r\n\r\nfunction convertDateTextToDate(dateText, format = FORMAT_DATE) {\r\n if (dateText) {\r\n return dayjs(dateText, format).toDate();\r\n } else {\r\n return null;\r\n }\r\n}\r\n\r\nfunction convertDateTimeTextToDate(dateTimeText, format = FORMAT_DATETIME) {\r\n if (dateTimeText) {\r\n return dayjs(dateTimeText, format).toDate();\r\n } else {\r\n return null;\r\n }\r\n}\r\n\r\nfunction convertTimestampToDateText(timestamp, format = FORMAT_DATE) {\r\n let moments = convertTimestampToMoment(timestamp);\r\n let text = convertMomentToDateText(moments);\r\n return text;\r\n}\r\n\r\nfunction convertTimestampToDateTimeText(timestamp, format = FORMAT_DATETIME) {\r\n let moments = convertTimestampToMoment(timestamp);\r\n let text = convertMomentToDateTimeText(moments, format);\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, format = FORMAT_DATE) {\r\n let moments = convertDateToMoment(date);\r\n let text = convertMomentToDateText(moments, format);\r\n return text;\r\n}\r\n\r\nfunction convertDateToDateTimeText(date, format = FORMAT_DATETIME) {\r\n let moments = convertDateToMoment(date);\r\n let text = convertMomentToDateTimeText(moments, format);\r\n return text;\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_DATETIME_HHMM: FORMAT_DATETIME_HHMM,\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\r\n convertTimestampToMoment: convertTimestampToMoment,\r\n convertTimestampToDateText: convertTimestampToDateText,\r\n convertTimestampToDateTimeText: convertTimestampToDateTimeText,\r\n\r\n convertDateToMoment: convertDateToMoment,\r\n convertDateToDateText: convertDateToDateText,\r\n convertDateToDateTimeText: convertDateToDateTimeText,\r\n\r\n convertDateTextToMoment: convertDateTextToMoment,\r\n convertDateTimeTextToMoment: convertDateTimeTextToMoment,\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","_","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]}
|
|
@@ -390,7 +390,7 @@
|
|
|
390
390
|
headers = headers || {};
|
|
391
391
|
let formdata = new FormData();
|
|
392
392
|
if (_$1.isArray(file)) {
|
|
393
|
-
formdata.append("files",
|
|
393
|
+
file.forEach((f) => formdata.append("files", f));
|
|
394
394
|
} else {
|
|
395
395
|
formdata.append("file", file);
|
|
396
396
|
}
|
|
@@ -831,8 +831,6 @@
|
|
|
831
831
|
const FORMAT_DATETIME_HHMM = "DD-MM-YYYY HH:mm";
|
|
832
832
|
const FORMAT_YEARMONTH = "YYYY-MMMM";
|
|
833
833
|
const FORMAT_YEARWEEK = "YYYY-WW";
|
|
834
|
-
const FORMAT_DAYOFMONTH = "DD";
|
|
835
|
-
const FORMAT_YEAR = "YYYY";
|
|
836
834
|
const FORMAT_TIME = "HH:mm:ss";
|
|
837
835
|
function getCurrentMoment() {
|
|
838
836
|
return dayjs();
|
|
@@ -853,9 +851,9 @@
|
|
|
853
851
|
return null;
|
|
854
852
|
}
|
|
855
853
|
}
|
|
856
|
-
function convertMomentToDateText(moment) {
|
|
854
|
+
function convertMomentToDateText(moment, format = FORMAT_DATE) {
|
|
857
855
|
if (moment) {
|
|
858
|
-
return moment.format(
|
|
856
|
+
return moment.format(format);
|
|
859
857
|
} else {
|
|
860
858
|
return "";
|
|
861
859
|
}
|
|
@@ -874,34 +872,6 @@
|
|
|
874
872
|
return "";
|
|
875
873
|
}
|
|
876
874
|
}
|
|
877
|
-
function convertMomentToYearText(moment, format = FORMAT_YEAR) {
|
|
878
|
-
if (moment) {
|
|
879
|
-
return moment.format(format);
|
|
880
|
-
} else {
|
|
881
|
-
return "";
|
|
882
|
-
}
|
|
883
|
-
}
|
|
884
|
-
function convertMomentToYearMonthText(moment, format = FORMAT_YEARMONTH) {
|
|
885
|
-
if (moment) {
|
|
886
|
-
return moment.format(format);
|
|
887
|
-
} else {
|
|
888
|
-
return "";
|
|
889
|
-
}
|
|
890
|
-
}
|
|
891
|
-
function convertMomentToDayOfMonthText(moment, format = FORMAT_DAYOFMONTH) {
|
|
892
|
-
if (moment) {
|
|
893
|
-
return moment.format(format);
|
|
894
|
-
} else {
|
|
895
|
-
return "";
|
|
896
|
-
}
|
|
897
|
-
}
|
|
898
|
-
function convertMomentToTimeText(moment, format = FORMAT_TIME) {
|
|
899
|
-
if (moment) {
|
|
900
|
-
return moment.format(format);
|
|
901
|
-
} else {
|
|
902
|
-
return "";
|
|
903
|
-
}
|
|
904
|
-
}
|
|
905
875
|
function convertDateTimeTextToMoment(dateTimeText, format = FORMAT_DATETIME) {
|
|
906
876
|
if (dateTimeText) {
|
|
907
877
|
return dayjs(dateTimeText, format);
|
|
@@ -909,13 +879,6 @@
|
|
|
909
879
|
return null;
|
|
910
880
|
}
|
|
911
881
|
}
|
|
912
|
-
function convertYearMonthTextToMoment(yearMonthText, format = FORMAT_YEARMONTH) {
|
|
913
|
-
if (yearMonthText) {
|
|
914
|
-
return dayjs(yearMonthText, format);
|
|
915
|
-
} else {
|
|
916
|
-
return null;
|
|
917
|
-
}
|
|
918
|
-
}
|
|
919
882
|
function convertDateTextToMoment(dateText, format = FORMAT_DATE) {
|
|
920
883
|
if (dateText) {
|
|
921
884
|
return dayjs(dateText, format);
|
|
@@ -923,13 +886,6 @@
|
|
|
923
886
|
return null;
|
|
924
887
|
}
|
|
925
888
|
}
|
|
926
|
-
function convertTimeTextToMoment(dateTimeText, format = FORMAT_TIME) {
|
|
927
|
-
if (dateTimeText) {
|
|
928
|
-
return dayjs(dateTimeText, format);
|
|
929
|
-
} else {
|
|
930
|
-
return null;
|
|
931
|
-
}
|
|
932
|
-
}
|
|
933
889
|
function convertDateTextToDate(dateText, format = FORMAT_DATE) {
|
|
934
890
|
if (dateText) {
|
|
935
891
|
return dayjs(dateText, format).toDate();
|
|
@@ -939,25 +895,19 @@
|
|
|
939
895
|
}
|
|
940
896
|
function convertDateTimeTextToDate(dateTimeText, format = FORMAT_DATETIME) {
|
|
941
897
|
if (dateTimeText) {
|
|
942
|
-
dayjs(dateTimeText, format);
|
|
943
898
|
return dayjs(dateTimeText, format).toDate();
|
|
944
899
|
} else {
|
|
945
900
|
return null;
|
|
946
901
|
}
|
|
947
902
|
}
|
|
948
|
-
function convertTimestampToDateText(timestamp) {
|
|
903
|
+
function convertTimestampToDateText(timestamp, format = FORMAT_DATE) {
|
|
949
904
|
let moments = convertTimestampToMoment(timestamp);
|
|
950
905
|
let text = convertMomentToDateText(moments);
|
|
951
906
|
return text;
|
|
952
907
|
}
|
|
953
|
-
function convertTimestampToDateTimeText(timestamp) {
|
|
908
|
+
function convertTimestampToDateTimeText(timestamp, format = FORMAT_DATETIME) {
|
|
954
909
|
let moments = convertTimestampToMoment(timestamp);
|
|
955
|
-
let text = convertMomentToDateTimeText(moments);
|
|
956
|
-
return text;
|
|
957
|
-
}
|
|
958
|
-
function convertTimestampToTimeText(timestamp) {
|
|
959
|
-
let moments = convertTimestampToMoment(timestamp);
|
|
960
|
-
let text = convertMomentToTimeText(moments);
|
|
910
|
+
let text = convertMomentToDateTimeText(moments, format);
|
|
961
911
|
return text;
|
|
962
912
|
}
|
|
963
913
|
function convertDateToMoment(date) {
|
|
@@ -966,14 +916,14 @@
|
|
|
966
916
|
}
|
|
967
917
|
return dayjs(date);
|
|
968
918
|
}
|
|
969
|
-
function convertDateToDateText(date) {
|
|
919
|
+
function convertDateToDateText(date, format = FORMAT_DATE) {
|
|
970
920
|
let moments = convertDateToMoment(date);
|
|
971
|
-
let text = convertMomentToDateText(moments);
|
|
921
|
+
let text = convertMomentToDateText(moments, format);
|
|
972
922
|
return text;
|
|
973
923
|
}
|
|
974
|
-
function convertDateToDateTimeText(date) {
|
|
924
|
+
function convertDateToDateTimeText(date, format = FORMAT_DATETIME) {
|
|
975
925
|
let moments = convertDateToMoment(date);
|
|
976
|
-
let text = convertMomentToDateTimeText(moments);
|
|
926
|
+
let text = convertMomentToDateTimeText(moments, format);
|
|
977
927
|
return text;
|
|
978
928
|
}
|
|
979
929
|
function buildDateRange(from, to) {
|
|
@@ -998,21 +948,14 @@
|
|
|
998
948
|
convertMomentToTimestamp,
|
|
999
949
|
convertMomentToDateText,
|
|
1000
950
|
convertMomentToDateTimeText,
|
|
1001
|
-
convertMomentToYearText,
|
|
1002
|
-
convertMomentToYearMonthText,
|
|
1003
|
-
convertMomentToDayOfMonthText,
|
|
1004
|
-
convertMomentToTimeText,
|
|
1005
951
|
convertTimestampToMoment,
|
|
1006
952
|
convertTimestampToDateText,
|
|
1007
953
|
convertTimestampToDateTimeText,
|
|
1008
|
-
convertTimestampToTimeText,
|
|
1009
954
|
convertDateToMoment,
|
|
1010
955
|
convertDateToDateText,
|
|
1011
956
|
convertDateToDateTimeText,
|
|
1012
|
-
convertYearMonthTextToMoment,
|
|
1013
957
|
convertDateTextToMoment,
|
|
1014
958
|
convertDateTimeTextToMoment,
|
|
1015
|
-
convertTimeTextToMoment,
|
|
1016
959
|
convertDateTextToDate,
|
|
1017
960
|
convertDateTimeTextToDate,
|
|
1018
961
|
buildDateRange,
|
|
@@ -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\nlet uriGetCurrUserInfo = null;\r\nlet customizedUserUtils = null;\r\n\r\nlet currUserInfoCache = null;\r\n\r\nasync function init(\r\n pCustomizedUserUtils,\r\n pUriGetCurrUserInfo,\r\n) {\r\n customizedUserUtils = pCustomizedUserUtils;\r\n uriGetCurrUserInfo = pUriGetCurrUserInfo || `/api/user/getCurrUserInfo`;\r\n}\r\n\r\nasync function clear() {\r\n currUserInfoCache = null;\r\n}\r\n\r\n\r\nasync function getCurrUserInfo(forceReloadFlag=false) {\r\n if(currUserInfoCache!=null && forceReloadFlag===false){\r\n return currUserInfoCache;\r\n }\r\n\r\n if (customizedUserUtils && customizedUserUtils.getUserInfo) {\r\n let currUser = await customizedUserUtils.getUserInfo();\r\n currUserInfoCache = currUser;\r\n return currUser;\r\n } else {\r\n let currUser = await AxiosUtils.getJsonData(uriGetCurrUserInfo);\r\n currUserInfoCache = 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 return null;\r\n}\r\n\r\nfunction getCurrUserId() {\r\n return getCurrUserInfoCache()?.id;\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","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_DATETIME_HHMM = \"DD-MM-YYYY HH:mm\";\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, format=FORMAT_DATETIME) {\r\n if (moment) {\r\n return moment.format(format);\r\n } else {\r\n return \"\";\r\n }\r\n}\r\n\r\nfunction convertMomentToYearText(moment, format=FORMAT_YEAR) {\r\n if (moment) {\r\n return moment.format(format);\r\n } else {\r\n return \"\";\r\n }\r\n}\r\n\r\nfunction convertMomentToYearMonthText(moment, format=FORMAT_YEARMONTH) {\r\n if (moment) {\r\n return moment.format(format);\r\n } else {\r\n return \"\";\r\n }\r\n}\r\n\r\nfunction convertMomentToDayOfMonthText(moment, format=FORMAT_DAYOFMONTH) {\r\n if (moment) {\r\n return moment.format(format);\r\n } else {\r\n return \"\";\r\n }\r\n}\r\n\r\n\r\n\r\nfunction convertMomentToTimeText(moment, format=FORMAT_TIME) {\r\n if (moment) {\r\n return moment.format(format);\r\n } else {\r\n return \"\";\r\n }\r\n}\r\n\r\nfunction convertDateTimeTextToMoment(dateTimeText, format=FORMAT_DATETIME) {\r\n if (dateTimeText) {\r\n return dayjs(dateTimeText, format);\r\n } else {\r\n return null;\r\n }\r\n}\r\n\r\nfunction convertYearMonthTextToMoment(yearMonthText, format=FORMAT_YEARMONTH) {\r\n if (yearMonthText) {\r\n return dayjs(yearMonthText, format);\r\n } else {\r\n return null;\r\n }\r\n}\r\n\r\nfunction convertDateTextToMoment(dateText, format=FORMAT_DATE) {\r\n if (dateText) {\r\n return dayjs(dateText, format);\r\n } else {\r\n return null;\r\n }\r\n}\r\n\r\nfunction convertTimeTextToMoment(dateTimeText, format=FORMAT_TIME) {\r\n if (dateTimeText) {\r\n return dayjs(dateTimeText, format);\r\n } else {\r\n return null;\r\n }\r\n}\r\n\r\nfunction convertDateTextToDate(dateText, format=FORMAT_DATE) {\r\n if (dateText) {\r\n return dayjs(dateText, format).toDate();\r\n } else {\r\n return null;\r\n }\r\n}\r\n\r\nfunction convertDateTimeTextToDate(dateTimeText, format=FORMAT_DATETIME) {\r\n if (dateTimeText) {\r\n let moment = dayjs(dateTimeText, format);\r\n return dayjs(dateTimeText, format).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_DATETIME_HHMM: FORMAT_DATETIME_HHMM,\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","_","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\nlet uriGetCurrUserInfo = null;\r\nlet customizedUserUtils = null;\r\n\r\nlet currUserInfoCache = null;\r\n\r\nasync function init(\r\n pCustomizedUserUtils,\r\n pUriGetCurrUserInfo,\r\n) {\r\n customizedUserUtils = pCustomizedUserUtils;\r\n uriGetCurrUserInfo = pUriGetCurrUserInfo || `/api/user/getCurrUserInfo`;\r\n}\r\n\r\nasync function clear() {\r\n currUserInfoCache = null;\r\n}\r\n\r\n\r\nasync function getCurrUserInfo(forceReloadFlag=false) {\r\n if(currUserInfoCache!=null && forceReloadFlag===false){\r\n return currUserInfoCache;\r\n }\r\n\r\n if (customizedUserUtils && customizedUserUtils.getUserInfo) {\r\n let currUser = await customizedUserUtils.getUserInfo();\r\n currUserInfoCache = currUser;\r\n return currUser;\r\n } else {\r\n let currUser = await AxiosUtils.getJsonData(uriGetCurrUserInfo);\r\n currUserInfoCache = 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 return null;\r\n}\r\n\r\nfunction getCurrUserId() {\r\n return getCurrUserInfoCache()?.id;\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","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 file.forEach(f => formdata.append(\"files\", f));\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_DATETIME_HHMM = \"DD-MM-YYYY HH:mm\";\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, format=FORMAT_DATE) {\r\n if (moment) {\r\n return moment.format(format);\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, format = FORMAT_DATETIME) {\r\n if (moment) {\r\n return moment.format(format);\r\n } else {\r\n return \"\";\r\n }\r\n}\r\n\r\nfunction convertDateTimeTextToMoment(dateTimeText, format = FORMAT_DATETIME) {\r\n if (dateTimeText) {\r\n return dayjs(dateTimeText, format);\r\n } else {\r\n return null;\r\n }\r\n}\r\n\r\nfunction convertDateTextToMoment(dateText, format = FORMAT_DATE) {\r\n if (dateText) {\r\n return dayjs(dateText, format);\r\n } else {\r\n return null;\r\n }\r\n}\r\n\r\nfunction convertDateTextToDate(dateText, format = FORMAT_DATE) {\r\n if (dateText) {\r\n return dayjs(dateText, format).toDate();\r\n } else {\r\n return null;\r\n }\r\n}\r\n\r\nfunction convertDateTimeTextToDate(dateTimeText, format = FORMAT_DATETIME) {\r\n if (dateTimeText) {\r\n return dayjs(dateTimeText, format).toDate();\r\n } else {\r\n return null;\r\n }\r\n}\r\n\r\nfunction convertTimestampToDateText(timestamp, format = FORMAT_DATE) {\r\n let moments = convertTimestampToMoment(timestamp);\r\n let text = convertMomentToDateText(moments);\r\n return text;\r\n}\r\n\r\nfunction convertTimestampToDateTimeText(timestamp, format = FORMAT_DATETIME) {\r\n let moments = convertTimestampToMoment(timestamp);\r\n let text = convertMomentToDateTimeText(moments, format);\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, format = FORMAT_DATE) {\r\n let moments = convertDateToMoment(date);\r\n let text = convertMomentToDateText(moments, format);\r\n return text;\r\n}\r\n\r\nfunction convertDateToDateTimeText(date, format = FORMAT_DATETIME) {\r\n let moments = convertDateToMoment(date);\r\n let text = convertMomentToDateTimeText(moments, format);\r\n return text;\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_DATETIME_HHMM: FORMAT_DATETIME_HHMM,\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\r\n convertTimestampToMoment: convertTimestampToMoment,\r\n convertTimestampToDateText: convertTimestampToDateText,\r\n convertTimestampToDateTimeText: convertTimestampToDateTimeText,\r\n\r\n convertDateToMoment: convertDateToMoment,\r\n convertDateToDateText: convertDateToDateText,\r\n convertDateToDateTimeText: convertDateToDateTimeText,\r\n\r\n convertDateTextToMoment: convertDateTextToMoment,\r\n convertDateTimeTextToMoment: convertDateTimeTextToMoment,\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","_","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]}
|