sirius-common-utils 1.0.33 → 1.0.35

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.
@@ -827,10 +827,9 @@ dayjs.extend(updateLocale);
827
827
  dayjs.extend(customParseFormat);
828
828
  const FORMAT_DATE = "DD-MM-YYYY";
829
829
  const FORMAT_DATETIME = "DD-MM-YYYY HH:mm:ss";
830
+ const FORMAT_DATETIME_HHMM = "DD-MM-YYYY HH:mm";
830
831
  const FORMAT_YEARMONTH = "YYYY-MMMM";
831
832
  const FORMAT_YEARWEEK = "YYYY-WW";
832
- const FORMAT_DAYOFMONTH = "DD";
833
- const FORMAT_YEAR = "YYYY";
834
833
  const FORMAT_TIME = "HH:mm:ss";
835
834
  function getCurrentMoment() {
836
835
  return dayjs();
@@ -851,9 +850,9 @@ function convertMomentToTimestamp(moment) {
851
850
  return null;
852
851
  }
853
852
  }
854
- function convertMomentToDateText(moment) {
853
+ function convertMomentToDateText(moment, format = FORMAT_DATE) {
855
854
  if (moment) {
856
- return moment.format(FORMAT_DATE);
855
+ return moment.format(format);
857
856
  } else {
858
857
  return "";
859
858
  }
@@ -865,97 +864,49 @@ function convertTimestampToMoment(timestamp) {
865
864
  return null;
866
865
  }
867
866
  }
868
- function convertMomentToDateTimeText(moment) {
867
+ function convertMomentToDateTimeText(moment, format = FORMAT_DATETIME) {
869
868
  if (moment) {
870
- return moment.format(FORMAT_DATETIME);
869
+ return moment.format(format);
871
870
  } else {
872
871
  return "";
873
872
  }
874
873
  }
875
- function convertMomentToYearText(moment) {
876
- if (moment) {
877
- return moment.format(FORMAT_YEAR);
878
- } else {
879
- return "";
880
- }
881
- }
882
- function convertMomentToYearMonthText(moment) {
883
- if (moment) {
884
- return moment.format(FORMAT_YEARMONTH);
885
- } else {
886
- return "";
887
- }
888
- }
889
- function convertMomentToDayOfMonthText(moment) {
890
- if (moment) {
891
- return moment.format(FORMAT_DAYOFMONTH);
892
- } else {
893
- return "";
894
- }
895
- }
896
- function convertMomentToTimeText(moment) {
897
- if (moment) {
898
- return moment.format(FORMAT_TIME);
899
- } else {
900
- return "";
901
- }
902
- }
903
- function convertDateTimeTextToMoment(dateTimeText) {
874
+ function convertDateTimeTextToMoment(dateTimeText, format = FORMAT_DATETIME) {
904
875
  if (dateTimeText) {
905
- return dayjs(dateTimeText, FORMAT_DATETIME);
906
- } else {
907
- return null;
908
- }
909
- }
910
- function convertYearMonthTextToMoment(yearMonthText) {
911
- if (yearMonthText) {
912
- return dayjs(yearMonthText, FORMAT_YEARMONTH);
876
+ return dayjs(dateTimeText, format);
913
877
  } else {
914
878
  return null;
915
879
  }
916
880
  }
917
- function convertDateTextToMoment(dateText) {
881
+ function convertDateTextToMoment(dateText, format = FORMAT_DATE) {
918
882
  if (dateText) {
919
- return dayjs(dateText, FORMAT_DATE);
920
- } else {
921
- return null;
922
- }
923
- }
924
- function convertTimeTextToMoment(dateTimeText) {
925
- if (dateTimeText) {
926
- return dayjs(dateTimeText, FORMAT_TIME);
883
+ return dayjs(dateText, format);
927
884
  } else {
928
885
  return null;
929
886
  }
930
887
  }
931
- function convertDateTextToDate(dateText) {
888
+ function convertDateTextToDate(dateText, format = FORMAT_DATE) {
932
889
  if (dateText) {
933
- return dayjs(dateText, FORMAT_DATE).toDate();
890
+ return dayjs(dateText, format).toDate();
934
891
  } else {
935
892
  return null;
936
893
  }
937
894
  }
938
- function convertDateTimeTextToDate(dateTimeText) {
895
+ function convertDateTimeTextToDate(dateTimeText, format = FORMAT_DATETIME) {
939
896
  if (dateTimeText) {
940
- dayjs(dateTimeText, FORMAT_DATETIME);
941
- return dayjs(dateTimeText, FORMAT_DATETIME).toDate();
897
+ return dayjs(dateTimeText, format).toDate();
942
898
  } else {
943
899
  return null;
944
900
  }
945
901
  }
946
- function convertTimestampToDateText(timestamp) {
902
+ function convertTimestampToDateText(timestamp, format = FORMAT_DATE) {
947
903
  let moments = convertTimestampToMoment(timestamp);
948
904
  let text = convertMomentToDateText(moments);
949
905
  return text;
950
906
  }
951
- function convertTimestampToDateTimeText(timestamp) {
907
+ function convertTimestampToDateTimeText(timestamp, format = FORMAT_DATETIME) {
952
908
  let moments = convertTimestampToMoment(timestamp);
953
- let text = convertMomentToDateTimeText(moments);
954
- return text;
955
- }
956
- function convertTimestampToTimeText(timestamp) {
957
- let moments = convertTimestampToMoment(timestamp);
958
- let text = convertMomentToTimeText(moments);
909
+ let text = convertMomentToDateTimeText(moments, format);
959
910
  return text;
960
911
  }
961
912
  function convertDateToMoment(date) {
@@ -964,14 +915,14 @@ function convertDateToMoment(date) {
964
915
  }
965
916
  return dayjs(date);
966
917
  }
967
- function convertDateToDateText(date) {
918
+ function convertDateToDateText(date, format = FORMAT_DATE) {
968
919
  let moments = convertDateToMoment(date);
969
- let text = convertMomentToDateText(moments);
920
+ let text = convertMomentToDateText(moments, format);
970
921
  return text;
971
922
  }
972
- function convertDateToDateTimeText(date) {
923
+ function convertDateToDateTimeText(date, format = FORMAT_DATETIME) {
973
924
  let moments = convertDateToMoment(date);
974
- let text = convertMomentToDateTimeText(moments);
925
+ let text = convertMomentToDateTimeText(moments, format);
975
926
  return text;
976
927
  }
977
928
  function buildDateRange(from, to) {
@@ -985,6 +936,7 @@ function getFormatTextOfMMM(mthNumber) {
985
936
  const DateUtils = {
986
937
  FORMAT_DATE,
987
938
  FORMAT_DATETIME,
939
+ FORMAT_DATETIME_HHMM,
988
940
  FORMAT_YEARMONTH,
989
941
  FORMAT_YEARWEEK,
990
942
  FORMAT_TIME,
@@ -995,21 +947,14 @@ const DateUtils = {
995
947
  convertMomentToTimestamp,
996
948
  convertMomentToDateText,
997
949
  convertMomentToDateTimeText,
998
- convertMomentToYearText,
999
- convertMomentToYearMonthText,
1000
- convertMomentToDayOfMonthText,
1001
- convertMomentToTimeText,
1002
950
  convertTimestampToMoment,
1003
951
  convertTimestampToDateText,
1004
952
  convertTimestampToDateTimeText,
1005
- convertTimestampToTimeText,
1006
953
  convertDateToMoment,
1007
954
  convertDateToDateText,
1008
955
  convertDateToDateTimeText,
1009
- convertYearMonthTextToMoment,
1010
956
  convertDateTextToMoment,
1011
957
  convertDateTimeTextToMoment,
1012
- convertTimeTextToMoment,
1013
958
  convertDateTextToDate,
1014
959
  convertDateTimeTextToDate,
1015
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_YEARMONTH = \"YYYY-MMMM\";\r\nconst FORMAT_YEARWEEK = \"YYYY-WW\";\r\nconst FORMAT_DAYOFMONTH = \"DD\";\r\nconst FORMAT_YEAR = \"YYYY\";\r\nconst FORMAT_TIME = \"HH:mm:ss\";\r\n\r\nfunction getCurrentMoment(){\r\n return dayjs();\r\n}\r\n\r\nfunction getCurrentDateText(){\r\n return convertMomentToDateText(getCurrentMoment());\r\n}\r\n\r\nfunction getCurrentDateTimeText(){\r\n return convertMomentToDateTimeText(getCurrentMoment());\r\n}\r\n\r\nfunction getCurrentDate(){\r\n return getCurrentMoment().toDate();\r\n}\r\n\r\nfunction convertMomentToTimestamp(moment) {\r\n if (moment) {\r\n return moment.toDate().getTime();\r\n } else {\r\n return null;\r\n }\r\n}\r\n\r\nfunction convertMomentToDateText(moment) {\r\n if (moment) {\r\n return moment.format(FORMAT_DATE);\r\n } else {\r\n return '';\r\n }\r\n}\r\n\r\nfunction convertTimestampToMoment(timestamp) {\r\n if (timestamp && timestamp > 0) {\r\n return dayjs(timestamp);\r\n } else {\r\n return null;\r\n }\r\n}\r\n\r\nfunction convertMomentToDateTimeText(moment) {\r\n if (moment) {\r\n return moment.format(FORMAT_DATETIME);\r\n } else {\r\n return \"\";\r\n }\r\n}\r\n\r\nfunction convertMomentToYearText(moment) {\r\n if (moment) {\r\n return moment.format(FORMAT_YEAR);\r\n } else {\r\n return \"\";\r\n }\r\n}\r\n\r\nfunction convertMomentToYearMonthText(moment) {\r\n if (moment) {\r\n return moment.format(FORMAT_YEARMONTH);\r\n } else {\r\n return \"\";\r\n }\r\n}\r\n\r\nfunction convertMomentToDayOfMonthText(moment) {\r\n if (moment) {\r\n return moment.format(FORMAT_DAYOFMONTH);\r\n } else {\r\n return \"\";\r\n }\r\n}\r\n\r\n\r\n\r\nfunction convertMomentToTimeText(moment) {\r\n if (moment) {\r\n return moment.format(FORMAT_TIME);\r\n } else {\r\n return \"\";\r\n }\r\n}\r\n\r\nfunction convertDateTimeTextToMoment(dateTimeText) {\r\n if (dateTimeText) {\r\n return dayjs(dateTimeText, FORMAT_DATETIME);\r\n } else {\r\n return null;\r\n }\r\n}\r\n\r\nfunction convertYearMonthTextToMoment(yearMonthText) {\r\n if (yearMonthText) {\r\n return dayjs(yearMonthText, FORMAT_YEARMONTH);\r\n } else {\r\n return null;\r\n }\r\n}\r\n\r\nfunction convertDateTextToMoment(dateText) {\r\n if (dateText) {\r\n return dayjs(dateText, FORMAT_DATE);\r\n } else {\r\n return null;\r\n }\r\n}\r\n\r\nfunction convertTimeTextToMoment(dateTimeText) {\r\n if (dateTimeText) {\r\n return dayjs(dateTimeText, FORMAT_TIME);\r\n } else {\r\n return null;\r\n }\r\n}\r\n\r\nfunction convertDateTextToDate(dateText) {\r\n if (dateText) {\r\n return dayjs(dateText, FORMAT_DATE).toDate();\r\n } else {\r\n return null;\r\n }\r\n}\r\n\r\nfunction convertDateTimeTextToDate(dateTimeText) {\r\n if (dateTimeText) {\r\n let moment = dayjs(dateTimeText, FORMAT_DATETIME);\r\n return dayjs(dateTimeText, FORMAT_DATETIME).toDate();\r\n } else {\r\n return null;\r\n }\r\n}\r\n\r\nfunction convertTimestampToDateText(timestamp) {\r\n let moments = convertTimestampToMoment(timestamp);\r\n let text = convertMomentToDateText(moments);\r\n return text;\r\n}\r\n\r\nfunction convertTimestampToDateTimeText(timestamp) {\r\n let moments = convertTimestampToMoment(timestamp);\r\n let text = convertMomentToDateTimeText(moments);\r\n return text;\r\n}\r\n\r\nfunction convertTimestampToTimeText(timestamp) {\r\n let moments = convertTimestampToMoment(timestamp);\r\n let text = convertMomentToTimeText(moments);\r\n return text;\r\n}\r\n\r\nfunction convertDateToMoment(date) {\r\n if(!date){\r\n return null;\r\n }\r\n return dayjs(date);\r\n}\r\n\r\nfunction convertDateToDateText(date) {\r\n let moments = convertDateToMoment(date);\r\n let text = convertMomentToDateText(moments);\r\n return text;\r\n}\r\n\r\nfunction convertDateToDateTimeText(date) {\r\n let moments = convertDateToMoment(date);\r\n let text = convertMomentToDateTimeText(moments);\r\n return text;\r\n}\r\n\r\n\r\nfunction buildDateRange(from, to){\r\n return from+\" ~ \"+to;\r\n}\r\n\r\nfunction getFormatTextOfMMM(mthNumber){\r\n let moment = getCurrentMoment();\r\n moment = moment.month(mthNumber-1);\r\n return moment.format('MMM');\r\n}\r\n\r\nexport default {\r\n FORMAT_DATE: FORMAT_DATE,\r\n FORMAT_DATETIME: FORMAT_DATETIME,\r\n FORMAT_YEARMONTH: FORMAT_YEARMONTH,\r\n FORMAT_YEARWEEK: FORMAT_YEARWEEK,\r\n FORMAT_TIME: FORMAT_TIME,\r\n\r\n getCurrentMoment: getCurrentMoment,\r\n getCurrentDateTimeText: getCurrentDateTimeText,\r\n getCurrentDateText: getCurrentDateText,\r\n getCurrentDate: getCurrentDate,\r\n\r\n convertMomentToTimestamp: convertMomentToTimestamp,\r\n convertMomentToDateText: convertMomentToDateText,\r\n convertMomentToDateTimeText: convertMomentToDateTimeText,\r\n convertMomentToYearText: convertMomentToYearText,\r\n convertMomentToYearMonthText: convertMomentToYearMonthText,\r\n convertMomentToDayOfMonthText: convertMomentToDayOfMonthText,\r\n convertMomentToTimeText: convertMomentToTimeText,\r\n\r\n convertTimestampToMoment: convertTimestampToMoment,\r\n convertTimestampToDateText: convertTimestampToDateText,\r\n convertTimestampToDateTimeText: convertTimestampToDateTimeText,\r\n convertTimestampToTimeText: convertTimestampToTimeText,\r\n\r\n convertDateToMoment: convertDateToMoment,\r\n convertDateToDateText: convertDateToDateText,\r\n convertDateToDateTimeText: convertDateToDateTimeText,\r\n\r\n convertYearMonthTextToMoment: convertYearMonthTextToMoment,\r\n convertDateTextToMoment: convertDateTextToMoment,\r\n convertDateTimeTextToMoment: convertDateTimeTextToMoment,\r\n convertTimeTextToMoment: convertTimeTextToMoment,\r\n\r\n convertDateTextToDate: convertDateTextToDate,\r\n convertDateTimeTextToDate: convertDateTimeTextToDate,\r\n\r\n buildDateRange:buildDateRange,\r\n\r\n getFormatTextOfMMM: getFormatTextOfMMM,\r\n};\r\n","import _ from \"lodash\";\r\n\r\nfunction resetBodyScroll() {\r\n document.querySelector(\"body\").style.position = \"initial\";\r\n}\r\n\r\nfunction forbidBodyScroll() {\r\n document.querySelector(\"body\").style.position = \"fixed\";\r\n}\r\n\r\nfunction syncDomAnimation() {\r\n setTimeout(() => {\r\n //sync all animation be the same\r\n _.each(document.getAnimations(), (item) => {\r\n item.startTime = 0;\r\n });\r\n }, 200);\r\n}\r\n\r\n/**\r\n * find the closet parent element by className\r\n *\r\n * @param elem\r\n * @param className\r\n */\r\nfunction closetByClassName(elem, classNameList) {\r\n let classList = elem.classList;\r\n if (classList) {\r\n if (_.intersection(classList, classNameList).length > 0) {\r\n return elem;\r\n }\r\n }\r\n\r\n let parentElement = elem.parentElement;\r\n if (parentElement) {\r\n return closetByClassName(parentElement, classNameList);\r\n } else {\r\n return null;\r\n }\r\n}\r\n\r\n/**\r\n * calc current dom node offset to the left-top of the window\r\n */\r\nfunction offset(domNode) {\r\n var offest = {\r\n top: 0,\r\n left: 0\r\n };\r\n if (!domNode.getClientRects().length) {\r\n return offest;\r\n }\r\n if (window.getComputedStyle(domNode)['display'] === 'none') {\r\n return offest;\r\n }\r\n\r\n offest = domNode.getBoundingClientRect();\r\n var docElement = domNode.ownerDocument.documentElement;\r\n return {\r\n top: offest.top + (window.scrollY || window.pageYOffset) - docElement.clientTop,\r\n left: offest.left + (window.scrollX || window.pageXOffset) - docElement.clientLeft\r\n };\r\n}\r\n\r\nexport default {\r\n resetBodyScroll: resetBodyScroll,\r\n forbidBodyScroll: forbidBodyScroll,\r\n\r\n syncDomAnimation: syncDomAnimation,\r\n closetByClassName: closetByClassName,\r\n\r\n offset: offset,\r\n};\r\n","function isIOS() {\r\n return [\r\n 'iPad Simulator',\r\n 'iPhone Simulator',\r\n 'iPod Simulator',\r\n 'iPad',\r\n 'iPhone',\r\n 'iPod'\r\n ].includes(navigator.platform) || (navigator.userAgent.includes(\"Mac\") && \"ontouchend\" in document)\r\n}\r\n\r\nfunction isDesktopChrome() {\r\n let result = /Chrome/.test(navigator.userAgent) && /Google Inc/.test(navigator.vendor);\r\n if (!result) {\r\n return false;\r\n }\r\n\r\n if (isMobileChrome()) {\r\n return false;\r\n }\r\n\r\n return true;\r\n}\r\n\r\nfunction isMobileChrome() {\r\n return /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent) && /Chrome/.test(navigator.userAgent) && /Google Inc/.test(navigator.vendor);\r\n}\r\n\r\nfunction isMobileDevice() {\r\n return isIOS() || isMobileChrome();\r\n}\r\n\r\nfunction updateViewPort(pOptions = {}) {\r\n let viewport = document.getElementsByName(\"viewport\");\r\n if (!viewport || viewport.length != 1) {\r\n return;\r\n }\r\n\r\n let options = {};\r\n _.merge(options, defaultOptions, pOptions);\r\n\r\n let content = [];\r\n _.each(options, (value, key) => {\r\n content.push(key + \"=\" + value);\r\n });\r\n\r\n viewport[0].content = _.join(content, \",\");\r\n\r\n console.debug(\"curr viewport is: \" + viewport[0].content);\r\n}\r\n\r\nexport default {\r\n isIOS: isIOS,\r\n isDesktopChrome: isDesktopChrome,\r\n isMobileChrome: isMobileChrome,\r\n\r\n isMobileDevice: isMobileDevice,\r\n\r\n updateViewPort: updateViewPort,\r\n};\r\n","import _ from \"lodash\";\r\n\r\nlet globalDialogUtils;\r\n\r\nfunction init(pDialogInstanceUtils) {\r\n globalDialogUtils = pDialogInstanceUtils;\r\n}\r\n\r\nfunction toFormData(keyPrefix, model, ignoreKeys = [], formData = {}) {\r\n if(model == null){\r\n return {\r\n keyPrefix: null\r\n }\r\n }\r\n\r\n _.each(_.keys(model), (attr) => {\r\n let value = model[attr];\r\n let formKeyPath = keyPrefix ? keyPrefix + \"#\" + attr : attr;\r\n\r\n if(_.includes(ignoreKeys, formKeyPath)){\r\n formData[formKeyPath] = value;\r\n return;\r\n }\r\n\r\n if (_.isPlainObject(value)) {\r\n toFormData(formKeyPath, value, ignoreKeys, formData);\r\n } else {\r\n formData[formKeyPath] = value;\r\n }\r\n })\r\n\r\n return formData;\r\n}\r\n\r\nfunction toModel(formData, ignoreKeys = []) {\r\n if(formData == null){\r\n return null;\r\n }\r\n\r\n let model = {};\r\n _.each(_.keys(formData), (formKeyPath) => {\r\n let value = formData[formKeyPath];\r\n let path = formKeyPath.replaceAll(\"#\", \".\");\r\n _.set(model, path, value);\r\n });\r\n\r\n return model;\r\n}\r\n\r\nfunction scrollToFirstError(ex){\r\n const isError = document.getElementsByClassName('ant-form-item-has-error');\r\n isError[0] && isError[0].scrollIntoView();\r\n console.error(ex);\r\n}\r\n\r\n/**\r\n * show leave message when exit from a modified form page\r\n * @param formOrCheckFormDirtyFunc AntDesignForm or checkFormDirtyFunction\r\n * @returns {Promise<boolean>} true: can exit, or: abort exit\r\n */\r\nasync function confirmOfLeavingForm(formOrCheckFormDirtyFunc) {\r\n if(formOrCheckFormDirtyFunc == null){\r\n return true;\r\n }\r\n\r\n let formDirty;\r\n if (typeof formOrCheckFormDirtyFunc === 'function') {\r\n formDirty = await formOrCheckFormDirtyFunc();\r\n }else{\r\n formDirty = formOrCheckFormDirtyFunc.isFieldsTouched();\r\n }\r\n\r\n if (formDirty) {\r\n let result = await globalDialogUtils.showConfirmDialog(leaveMessage);\r\n if (result !== true) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n}\r\n\r\nconst leaveMessage = \"Do you want to give up your modification?\";\r\nexport default {\r\n init: init,\r\n\r\n toFormData: toFormData,\r\n toModel: toModel,\r\n scrollToFirstError: scrollToFirstError,\r\n\r\n confirmOfLeavingForm: confirmOfLeavingForm,\r\n leaveMessage: leaveMessage\r\n};","import _ from \"lodash\";\r\n\r\nfunction isJsonText(value) {\r\n value = _.trim(value);\r\n\r\n return (_.startsWith(value, \"{\") || _.startsWith(value, \"[\"));\r\n}\r\n\r\nfunction formatJsonText(value) {\r\n if (!isJsonText(value)) {\r\n return value;\r\n }\r\n\r\n return JSON.stringify(JSON.parse(value), null, 4);\r\n}\r\n\r\n\r\nexport default {\r\n isJsonText: isJsonText,\r\n formatJsonText: formatJsonText,\r\n};\r\n","import _ from \"lodash\";\r\n\r\nfunction formatNumberTextWithUnit(numberText, unitText) {\r\n if (!unitText) {\r\n return numberText;\r\n }\r\n return numberText + \" \" + unitText;\r\n}\r\n\r\nfunction formatPctWith2Digital(valuePct) {\r\n let valuePctText = formatNumberWithDigital(valuePct, 2, false);\r\n return valuePctText + \"%\";\r\n}\r\n\r\nfunction formatNumberWith2Digital(value) {\r\n return formatNumberWithDigital(value, 2);\r\n}\r\n\r\nfunction formatNumberWith4Digital(value) {\r\n return formatNumberWithDigital(value, 4);\r\n}\r\n\r\nfunction formatNumberWithDigital(value, digital) {\r\n if (value === null) {\r\n return \"\";\r\n }\r\n\r\n let dblValue = (_.toNumber(value));\r\n if (isNaN(dblValue)) {\r\n //the string value could not be convert to number, just return it;\r\n return value;\r\n }\r\n\r\n let valueText = value;\r\n if (digital != null) {\r\n let text = _.round(dblValue, digital) + \"\";\r\n if (text.indexOf(\".\") === -1) {\r\n text += '.';\r\n }\r\n\r\n let part1 = text.substring(0, text.indexOf(\".\"));\r\n let part2 = \"\";\r\n\r\n if (digital > 0) {\r\n part2 = text.substring(text.indexOf(\".\") + 1); //取到小数部分搜索\r\n part2 = \".\" + _.padEnd(part2, digital, '0');\r\n }\r\n valueText = part1 + part2;\r\n }\r\n\r\n return valueText;\r\n}\r\n\r\nexport default {\r\n formatPctWith2Digital: formatPctWith2Digital,\r\n formatNumberWith2Digital: formatNumberWith2Digital,\r\n formatNumberWith4Digital: formatNumberWith4Digital,\r\n formatNumberWithDigital: formatNumberWithDigital,\r\n formatNumberTextWithUnit: formatNumberTextWithUnit,\r\n};\r\n","import _ from \"lodash\";\r\nimport AxiosUtils from \"./AxiosUtils\";\r\n\r\nconst constants = {\r\n CANVAS_WIDTH: 480,\r\n CANVAS_HEIGHT: 270,\r\n}\r\n\r\n/**\r\n * create an empty 2 dimension array\r\n */\r\nfunction new2dArray(width, height, initValue) {\r\n let array = [];\r\n for (let rowIdx = 0; rowIdx < height; rowIdx++) {\r\n let newRow = [];\r\n for (let colIdx = 0; colIdx < width; colIdx++) {\r\n newRow.push(initValue);\r\n }\r\n array.push(newRow);\r\n }\r\n return array;\r\n}\r\n\r\n/**\r\n * render grey level ImageDataArray to Canvas\r\n */\r\nfunction renderImageDataArrayToCtx(ctx, imageDataArray) {\r\n let height = imageDataArray.length;\r\n let width = imageDataArray[0].length;\r\n let imageData = new ImageData(width, height);\r\n let idx = 0;\r\n for (let rowIdx = 0; rowIdx < height; rowIdx++) {\r\n for (let colIdx = 0; colIdx < width; colIdx++) {\r\n let grayData = imageDataArray[rowIdx][colIdx];\r\n\r\n imageData.data[idx + 0] = grayData;\r\n imageData.data[idx + 1] = grayData;\r\n imageData.data[idx + 2] = grayData;\r\n imageData.data[idx + 3] = 255;\r\n idx = idx + 4;\r\n }\r\n }\r\n ctx.putImageData(imageData, 0, 0, 0, 0, width, height);\r\n}\r\n\r\nfunction getImageDataArrayFromCtx(ctx, canvasWidth, canvasHeight) {\r\n let imageData = ctx.getImageData(0, 0, canvasWidth, canvasHeight);\r\n\r\n let isEmpty = true;\r\n let imageDataArray = [];\r\n for (let i = 0; i < imageData.data.length; i = i + 4) {\r\n let red = imageData.data[i];\r\n imageDataArray[i / 4] = red;\r\n if (red !== 255) {\r\n isEmpty = false;\r\n }\r\n }\r\n\r\n if (isEmpty) {\r\n return null;\r\n }\r\n\r\n imageDataArray = _.chunk(imageDataArray, canvasWidth);\r\n return imageDataArray;\r\n}\r\n\r\nfunction initCanvas(ctx, canvasWidth, canvasHeight) {\r\n ctx.fillStyle = \"white\";\r\n ctx.lineWidth = 1;\r\n ctx.lineCap = 'round';\r\n ctx.lineJoin = 'round';\r\n\r\n ctx.fillRect(0, 0, canvasWidth, canvasHeight);\r\n ctx.fill();\r\n}\r\n\r\nasync function convertCanvasToBlobFile(canvas, fileName, fileType = 'image/jpeg') {\r\n return new Promise((resolve, reject) => {\r\n canvas.toBlob(async function (blob) {\r\n const file = new File([blob], fileName);\r\n resolve(file);\r\n }, fileType, 0.9);\r\n });\r\n}\r\n\r\n/**\r\n * Build grey level ImageDataArray from text\r\n */\r\nfunction calcImageDataArrayFromText(valueText) {\r\n if (valueText == null) {\r\n return;\r\n }\r\n\r\n let imageDataArray = [];\r\n _.each(valueText.split(\";\"), (rowData, rowIdx) => {\r\n let row = [];\r\n _.each(rowData.split(\",\"), (item, colIdx) => {\r\n row.push(item);\r\n });\r\n imageDataArray.push(row);\r\n });\r\n return imageDataArray;\r\n}\r\n\r\nfunction calcTextFromImageDataArray(imageDataArray) {\r\n if (imageDataArray == null) {\r\n return;\r\n }\r\n\r\n let valueText = \"\";\r\n for (let rowIdx = 0; rowIdx < imageDataArray.length; rowIdx++) {\r\n if (rowIdx > 0) {\r\n valueText += \";\";\r\n }\r\n valueText += imageDataArray[rowIdx].join(\",\");\r\n }\r\n return valueText;\r\n}\r\n\r\nexport default {\r\n constants: constants,\r\n new2dArray: new2dArray,\r\n initCanvas: initCanvas,\r\n //common\r\n convertCanvasToBlobFile: convertCanvasToBlobFile,\r\n\r\n //for signature\r\n renderImageDataArrayToCtx: renderImageDataArrayToCtx,\r\n getImageDataArrayFromCtx: getImageDataArrayFromCtx,\r\n calcImageDataArrayFromText: calcImageDataArrayFromText,\r\n calcTextFromImageDataArray: calcTextFromImageDataArray,\r\n};\r\n","import _ from \"lodash\";\r\n\r\nlet pattern=/[`~!@#$^\\-&*()=|{}':;,\\\\\\[\\].<>\\/?\\s]/g;\r\n\r\nfunction buildKeyword(text) {\r\n if(!text){\r\n return '';\r\n }\r\n\r\n let keyword = text.replace(pattern, '').toUpperCase();\r\n return keyword;\r\n}\r\n\r\n\r\nexport default {\r\n buildKeyword: buildKeyword,\r\n};\r\n"],"names":["init","_","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 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, 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]}
@@ -828,10 +828,9 @@
828
828
  dayjs.extend(customParseFormat);
829
829
  const FORMAT_DATE = "DD-MM-YYYY";
830
830
  const FORMAT_DATETIME = "DD-MM-YYYY HH:mm:ss";
831
+ const FORMAT_DATETIME_HHMM = "DD-MM-YYYY HH:mm";
831
832
  const FORMAT_YEARMONTH = "YYYY-MMMM";
832
833
  const FORMAT_YEARWEEK = "YYYY-WW";
833
- const FORMAT_DAYOFMONTH = "DD";
834
- const FORMAT_YEAR = "YYYY";
835
834
  const FORMAT_TIME = "HH:mm:ss";
836
835
  function getCurrentMoment() {
837
836
  return dayjs();
@@ -852,9 +851,9 @@
852
851
  return null;
853
852
  }
854
853
  }
855
- function convertMomentToDateText(moment) {
854
+ function convertMomentToDateText(moment, format = FORMAT_DATE) {
856
855
  if (moment) {
857
- return moment.format(FORMAT_DATE);
856
+ return moment.format(format);
858
857
  } else {
859
858
  return "";
860
859
  }
@@ -866,97 +865,49 @@
866
865
  return null;
867
866
  }
868
867
  }
869
- function convertMomentToDateTimeText(moment) {
868
+ function convertMomentToDateTimeText(moment, format = FORMAT_DATETIME) {
870
869
  if (moment) {
871
- return moment.format(FORMAT_DATETIME);
870
+ return moment.format(format);
872
871
  } else {
873
872
  return "";
874
873
  }
875
874
  }
876
- function convertMomentToYearText(moment) {
877
- if (moment) {
878
- return moment.format(FORMAT_YEAR);
879
- } else {
880
- return "";
881
- }
882
- }
883
- function convertMomentToYearMonthText(moment) {
884
- if (moment) {
885
- return moment.format(FORMAT_YEARMONTH);
886
- } else {
887
- return "";
888
- }
889
- }
890
- function convertMomentToDayOfMonthText(moment) {
891
- if (moment) {
892
- return moment.format(FORMAT_DAYOFMONTH);
893
- } else {
894
- return "";
895
- }
896
- }
897
- function convertMomentToTimeText(moment) {
898
- if (moment) {
899
- return moment.format(FORMAT_TIME);
900
- } else {
901
- return "";
902
- }
903
- }
904
- function convertDateTimeTextToMoment(dateTimeText) {
875
+ function convertDateTimeTextToMoment(dateTimeText, format = FORMAT_DATETIME) {
905
876
  if (dateTimeText) {
906
- return dayjs(dateTimeText, FORMAT_DATETIME);
907
- } else {
908
- return null;
909
- }
910
- }
911
- function convertYearMonthTextToMoment(yearMonthText) {
912
- if (yearMonthText) {
913
- return dayjs(yearMonthText, FORMAT_YEARMONTH);
877
+ return dayjs(dateTimeText, format);
914
878
  } else {
915
879
  return null;
916
880
  }
917
881
  }
918
- function convertDateTextToMoment(dateText) {
882
+ function convertDateTextToMoment(dateText, format = FORMAT_DATE) {
919
883
  if (dateText) {
920
- return dayjs(dateText, FORMAT_DATE);
921
- } else {
922
- return null;
923
- }
924
- }
925
- function convertTimeTextToMoment(dateTimeText) {
926
- if (dateTimeText) {
927
- return dayjs(dateTimeText, FORMAT_TIME);
884
+ return dayjs(dateText, format);
928
885
  } else {
929
886
  return null;
930
887
  }
931
888
  }
932
- function convertDateTextToDate(dateText) {
889
+ function convertDateTextToDate(dateText, format = FORMAT_DATE) {
933
890
  if (dateText) {
934
- return dayjs(dateText, FORMAT_DATE).toDate();
891
+ return dayjs(dateText, format).toDate();
935
892
  } else {
936
893
  return null;
937
894
  }
938
895
  }
939
- function convertDateTimeTextToDate(dateTimeText) {
896
+ function convertDateTimeTextToDate(dateTimeText, format = FORMAT_DATETIME) {
940
897
  if (dateTimeText) {
941
- dayjs(dateTimeText, FORMAT_DATETIME);
942
- return dayjs(dateTimeText, FORMAT_DATETIME).toDate();
898
+ return dayjs(dateTimeText, format).toDate();
943
899
  } else {
944
900
  return null;
945
901
  }
946
902
  }
947
- function convertTimestampToDateText(timestamp) {
903
+ function convertTimestampToDateText(timestamp, format = FORMAT_DATE) {
948
904
  let moments = convertTimestampToMoment(timestamp);
949
905
  let text = convertMomentToDateText(moments);
950
906
  return text;
951
907
  }
952
- function convertTimestampToDateTimeText(timestamp) {
908
+ function convertTimestampToDateTimeText(timestamp, format = FORMAT_DATETIME) {
953
909
  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);
910
+ let text = convertMomentToDateTimeText(moments, format);
960
911
  return text;
961
912
  }
962
913
  function convertDateToMoment(date) {
@@ -965,14 +916,14 @@
965
916
  }
966
917
  return dayjs(date);
967
918
  }
968
- function convertDateToDateText(date) {
919
+ function convertDateToDateText(date, format = FORMAT_DATE) {
969
920
  let moments = convertDateToMoment(date);
970
- let text = convertMomentToDateText(moments);
921
+ let text = convertMomentToDateText(moments, format);
971
922
  return text;
972
923
  }
973
- function convertDateToDateTimeText(date) {
924
+ function convertDateToDateTimeText(date, format = FORMAT_DATETIME) {
974
925
  let moments = convertDateToMoment(date);
975
- let text = convertMomentToDateTimeText(moments);
926
+ let text = convertMomentToDateTimeText(moments, format);
976
927
  return text;
977
928
  }
978
929
  function buildDateRange(from, to) {
@@ -986,6 +937,7 @@
986
937
  const DateUtils = {
987
938
  FORMAT_DATE,
988
939
  FORMAT_DATETIME,
940
+ FORMAT_DATETIME_HHMM,
989
941
  FORMAT_YEARMONTH,
990
942
  FORMAT_YEARWEEK,
991
943
  FORMAT_TIME,
@@ -996,21 +948,14 @@
996
948
  convertMomentToTimestamp,
997
949
  convertMomentToDateText,
998
950
  convertMomentToDateTimeText,
999
- convertMomentToYearText,
1000
- convertMomentToYearMonthText,
1001
- convertMomentToDayOfMonthText,
1002
- convertMomentToTimeText,
1003
951
  convertTimestampToMoment,
1004
952
  convertTimestampToDateText,
1005
953
  convertTimestampToDateTimeText,
1006
- convertTimestampToTimeText,
1007
954
  convertDateToMoment,
1008
955
  convertDateToDateText,
1009
956
  convertDateToDateTimeText,
1010
- convertYearMonthTextToMoment,
1011
957
  convertDateTextToMoment,
1012
958
  convertDateTimeTextToMoment,
1013
- convertTimeTextToMoment,
1014
959
  convertDateTextToDate,
1015
960
  convertDateTimeTextToDate,
1016
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_YEARMONTH = \"YYYY-MMMM\";\r\nconst FORMAT_YEARWEEK = \"YYYY-WW\";\r\nconst FORMAT_DAYOFMONTH = \"DD\";\r\nconst FORMAT_YEAR = \"YYYY\";\r\nconst FORMAT_TIME = \"HH:mm:ss\";\r\n\r\nfunction getCurrentMoment(){\r\n return dayjs();\r\n}\r\n\r\nfunction getCurrentDateText(){\r\n return convertMomentToDateText(getCurrentMoment());\r\n}\r\n\r\nfunction getCurrentDateTimeText(){\r\n return convertMomentToDateTimeText(getCurrentMoment());\r\n}\r\n\r\nfunction getCurrentDate(){\r\n return getCurrentMoment().toDate();\r\n}\r\n\r\nfunction convertMomentToTimestamp(moment) {\r\n if (moment) {\r\n return moment.toDate().getTime();\r\n } else {\r\n return null;\r\n }\r\n}\r\n\r\nfunction convertMomentToDateText(moment) {\r\n if (moment) {\r\n return moment.format(FORMAT_DATE);\r\n } else {\r\n return '';\r\n }\r\n}\r\n\r\nfunction convertTimestampToMoment(timestamp) {\r\n if (timestamp && timestamp > 0) {\r\n return dayjs(timestamp);\r\n } else {\r\n return null;\r\n }\r\n}\r\n\r\nfunction convertMomentToDateTimeText(moment) {\r\n if (moment) {\r\n return moment.format(FORMAT_DATETIME);\r\n } else {\r\n return \"\";\r\n }\r\n}\r\n\r\nfunction convertMomentToYearText(moment) {\r\n if (moment) {\r\n return moment.format(FORMAT_YEAR);\r\n } else {\r\n return \"\";\r\n }\r\n}\r\n\r\nfunction convertMomentToYearMonthText(moment) {\r\n if (moment) {\r\n return moment.format(FORMAT_YEARMONTH);\r\n } else {\r\n return \"\";\r\n }\r\n}\r\n\r\nfunction convertMomentToDayOfMonthText(moment) {\r\n if (moment) {\r\n return moment.format(FORMAT_DAYOFMONTH);\r\n } else {\r\n return \"\";\r\n }\r\n}\r\n\r\n\r\n\r\nfunction convertMomentToTimeText(moment) {\r\n if (moment) {\r\n return moment.format(FORMAT_TIME);\r\n } else {\r\n return \"\";\r\n }\r\n}\r\n\r\nfunction convertDateTimeTextToMoment(dateTimeText) {\r\n if (dateTimeText) {\r\n return dayjs(dateTimeText, FORMAT_DATETIME);\r\n } else {\r\n return null;\r\n }\r\n}\r\n\r\nfunction convertYearMonthTextToMoment(yearMonthText) {\r\n if (yearMonthText) {\r\n return dayjs(yearMonthText, FORMAT_YEARMONTH);\r\n } else {\r\n return null;\r\n }\r\n}\r\n\r\nfunction convertDateTextToMoment(dateText) {\r\n if (dateText) {\r\n return dayjs(dateText, FORMAT_DATE);\r\n } else {\r\n return null;\r\n }\r\n}\r\n\r\nfunction convertTimeTextToMoment(dateTimeText) {\r\n if (dateTimeText) {\r\n return dayjs(dateTimeText, FORMAT_TIME);\r\n } else {\r\n return null;\r\n }\r\n}\r\n\r\nfunction convertDateTextToDate(dateText) {\r\n if (dateText) {\r\n return dayjs(dateText, FORMAT_DATE).toDate();\r\n } else {\r\n return null;\r\n }\r\n}\r\n\r\nfunction convertDateTimeTextToDate(dateTimeText) {\r\n if (dateTimeText) {\r\n let moment = dayjs(dateTimeText, FORMAT_DATETIME);\r\n return dayjs(dateTimeText, FORMAT_DATETIME).toDate();\r\n } else {\r\n return null;\r\n }\r\n}\r\n\r\nfunction convertTimestampToDateText(timestamp) {\r\n let moments = convertTimestampToMoment(timestamp);\r\n let text = convertMomentToDateText(moments);\r\n return text;\r\n}\r\n\r\nfunction convertTimestampToDateTimeText(timestamp) {\r\n let moments = convertTimestampToMoment(timestamp);\r\n let text = convertMomentToDateTimeText(moments);\r\n return text;\r\n}\r\n\r\nfunction convertTimestampToTimeText(timestamp) {\r\n let moments = convertTimestampToMoment(timestamp);\r\n let text = convertMomentToTimeText(moments);\r\n return text;\r\n}\r\n\r\nfunction convertDateToMoment(date) {\r\n if(!date){\r\n return null;\r\n }\r\n return dayjs(date);\r\n}\r\n\r\nfunction convertDateToDateText(date) {\r\n let moments = convertDateToMoment(date);\r\n let text = convertMomentToDateText(moments);\r\n return text;\r\n}\r\n\r\nfunction convertDateToDateTimeText(date) {\r\n let moments = convertDateToMoment(date);\r\n let text = convertMomentToDateTimeText(moments);\r\n return text;\r\n}\r\n\r\n\r\nfunction buildDateRange(from, to){\r\n return from+\" ~ \"+to;\r\n}\r\n\r\nfunction getFormatTextOfMMM(mthNumber){\r\n let moment = getCurrentMoment();\r\n moment = moment.month(mthNumber-1);\r\n return moment.format('MMM');\r\n}\r\n\r\nexport default {\r\n FORMAT_DATE: FORMAT_DATE,\r\n FORMAT_DATETIME: FORMAT_DATETIME,\r\n FORMAT_YEARMONTH: FORMAT_YEARMONTH,\r\n FORMAT_YEARWEEK: FORMAT_YEARWEEK,\r\n FORMAT_TIME: FORMAT_TIME,\r\n\r\n getCurrentMoment: getCurrentMoment,\r\n getCurrentDateTimeText: getCurrentDateTimeText,\r\n getCurrentDateText: getCurrentDateText,\r\n getCurrentDate: getCurrentDate,\r\n\r\n convertMomentToTimestamp: convertMomentToTimestamp,\r\n convertMomentToDateText: convertMomentToDateText,\r\n convertMomentToDateTimeText: convertMomentToDateTimeText,\r\n convertMomentToYearText: convertMomentToYearText,\r\n convertMomentToYearMonthText: convertMomentToYearMonthText,\r\n convertMomentToDayOfMonthText: convertMomentToDayOfMonthText,\r\n convertMomentToTimeText: convertMomentToTimeText,\r\n\r\n convertTimestampToMoment: convertTimestampToMoment,\r\n convertTimestampToDateText: convertTimestampToDateText,\r\n convertTimestampToDateTimeText: convertTimestampToDateTimeText,\r\n convertTimestampToTimeText: convertTimestampToTimeText,\r\n\r\n convertDateToMoment: convertDateToMoment,\r\n convertDateToDateText: convertDateToDateText,\r\n convertDateToDateTimeText: convertDateToDateTimeText,\r\n\r\n convertYearMonthTextToMoment: convertYearMonthTextToMoment,\r\n convertDateTextToMoment: convertDateTextToMoment,\r\n convertDateTimeTextToMoment: convertDateTimeTextToMoment,\r\n convertTimeTextToMoment: convertTimeTextToMoment,\r\n\r\n convertDateTextToDate: convertDateTextToDate,\r\n convertDateTimeTextToDate: convertDateTimeTextToDate,\r\n\r\n buildDateRange:buildDateRange,\r\n\r\n getFormatTextOfMMM: getFormatTextOfMMM,\r\n};\r\n","import _ from \"lodash\";\r\n\r\nfunction resetBodyScroll() {\r\n document.querySelector(\"body\").style.position = \"initial\";\r\n}\r\n\r\nfunction forbidBodyScroll() {\r\n document.querySelector(\"body\").style.position = \"fixed\";\r\n}\r\n\r\nfunction syncDomAnimation() {\r\n setTimeout(() => {\r\n //sync all animation be the same\r\n _.each(document.getAnimations(), (item) => {\r\n item.startTime = 0;\r\n });\r\n }, 200);\r\n}\r\n\r\n/**\r\n * find the closet parent element by className\r\n *\r\n * @param elem\r\n * @param className\r\n */\r\nfunction closetByClassName(elem, classNameList) {\r\n let classList = elem.classList;\r\n if (classList) {\r\n if (_.intersection(classList, classNameList).length > 0) {\r\n return elem;\r\n }\r\n }\r\n\r\n let parentElement = elem.parentElement;\r\n if (parentElement) {\r\n return closetByClassName(parentElement, classNameList);\r\n } else {\r\n return null;\r\n }\r\n}\r\n\r\n/**\r\n * calc current dom node offset to the left-top of the window\r\n */\r\nfunction offset(domNode) {\r\n var offest = {\r\n top: 0,\r\n left: 0\r\n };\r\n if (!domNode.getClientRects().length) {\r\n return offest;\r\n }\r\n if (window.getComputedStyle(domNode)['display'] === 'none') {\r\n return offest;\r\n }\r\n\r\n offest = domNode.getBoundingClientRect();\r\n var docElement = domNode.ownerDocument.documentElement;\r\n return {\r\n top: offest.top + (window.scrollY || window.pageYOffset) - docElement.clientTop,\r\n left: offest.left + (window.scrollX || window.pageXOffset) - docElement.clientLeft\r\n };\r\n}\r\n\r\nexport default {\r\n resetBodyScroll: resetBodyScroll,\r\n forbidBodyScroll: forbidBodyScroll,\r\n\r\n syncDomAnimation: syncDomAnimation,\r\n closetByClassName: closetByClassName,\r\n\r\n offset: offset,\r\n};\r\n","function isIOS() {\r\n return [\r\n 'iPad Simulator',\r\n 'iPhone Simulator',\r\n 'iPod Simulator',\r\n 'iPad',\r\n 'iPhone',\r\n 'iPod'\r\n ].includes(navigator.platform) || (navigator.userAgent.includes(\"Mac\") && \"ontouchend\" in document)\r\n}\r\n\r\nfunction isDesktopChrome() {\r\n let result = /Chrome/.test(navigator.userAgent) && /Google Inc/.test(navigator.vendor);\r\n if (!result) {\r\n return false;\r\n }\r\n\r\n if (isMobileChrome()) {\r\n return false;\r\n }\r\n\r\n return true;\r\n}\r\n\r\nfunction isMobileChrome() {\r\n return /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent) && /Chrome/.test(navigator.userAgent) && /Google Inc/.test(navigator.vendor);\r\n}\r\n\r\nfunction isMobileDevice() {\r\n return isIOS() || isMobileChrome();\r\n}\r\n\r\nfunction updateViewPort(pOptions = {}) {\r\n let viewport = document.getElementsByName(\"viewport\");\r\n if (!viewport || viewport.length != 1) {\r\n return;\r\n }\r\n\r\n let options = {};\r\n _.merge(options, defaultOptions, pOptions);\r\n\r\n let content = [];\r\n _.each(options, (value, key) => {\r\n content.push(key + \"=\" + value);\r\n });\r\n\r\n viewport[0].content = _.join(content, \",\");\r\n\r\n console.debug(\"curr viewport is: \" + viewport[0].content);\r\n}\r\n\r\nexport default {\r\n isIOS: isIOS,\r\n isDesktopChrome: isDesktopChrome,\r\n isMobileChrome: isMobileChrome,\r\n\r\n isMobileDevice: isMobileDevice,\r\n\r\n updateViewPort: updateViewPort,\r\n};\r\n","import _ from \"lodash\";\r\n\r\nlet globalDialogUtils;\r\n\r\nfunction init(pDialogInstanceUtils) {\r\n globalDialogUtils = pDialogInstanceUtils;\r\n}\r\n\r\nfunction toFormData(keyPrefix, model, ignoreKeys = [], formData = {}) {\r\n if(model == null){\r\n return {\r\n keyPrefix: null\r\n }\r\n }\r\n\r\n _.each(_.keys(model), (attr) => {\r\n let value = model[attr];\r\n let formKeyPath = keyPrefix ? keyPrefix + \"#\" + attr : attr;\r\n\r\n if(_.includes(ignoreKeys, formKeyPath)){\r\n formData[formKeyPath] = value;\r\n return;\r\n }\r\n\r\n if (_.isPlainObject(value)) {\r\n toFormData(formKeyPath, value, ignoreKeys, formData);\r\n } else {\r\n formData[formKeyPath] = value;\r\n }\r\n })\r\n\r\n return formData;\r\n}\r\n\r\nfunction toModel(formData, ignoreKeys = []) {\r\n if(formData == null){\r\n return null;\r\n }\r\n\r\n let model = {};\r\n _.each(_.keys(formData), (formKeyPath) => {\r\n let value = formData[formKeyPath];\r\n let path = formKeyPath.replaceAll(\"#\", \".\");\r\n _.set(model, path, value);\r\n });\r\n\r\n return model;\r\n}\r\n\r\nfunction scrollToFirstError(ex){\r\n const isError = document.getElementsByClassName('ant-form-item-has-error');\r\n isError[0] && isError[0].scrollIntoView();\r\n console.error(ex);\r\n}\r\n\r\n/**\r\n * show leave message when exit from a modified form page\r\n * @param formOrCheckFormDirtyFunc AntDesignForm or checkFormDirtyFunction\r\n * @returns {Promise<boolean>} true: can exit, or: abort exit\r\n */\r\nasync function confirmOfLeavingForm(formOrCheckFormDirtyFunc) {\r\n if(formOrCheckFormDirtyFunc == null){\r\n return true;\r\n }\r\n\r\n let formDirty;\r\n if (typeof formOrCheckFormDirtyFunc === 'function') {\r\n formDirty = await formOrCheckFormDirtyFunc();\r\n }else{\r\n formDirty = formOrCheckFormDirtyFunc.isFieldsTouched();\r\n }\r\n\r\n if (formDirty) {\r\n let result = await globalDialogUtils.showConfirmDialog(leaveMessage);\r\n if (result !== true) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n}\r\n\r\nconst leaveMessage = \"Do you want to give up your modification?\";\r\nexport default {\r\n init: init,\r\n\r\n toFormData: toFormData,\r\n toModel: toModel,\r\n scrollToFirstError: scrollToFirstError,\r\n\r\n confirmOfLeavingForm: confirmOfLeavingForm,\r\n leaveMessage: leaveMessage\r\n};","import _ from \"lodash\";\r\n\r\nfunction isJsonText(value) {\r\n value = _.trim(value);\r\n\r\n return (_.startsWith(value, \"{\") || _.startsWith(value, \"[\"));\r\n}\r\n\r\nfunction formatJsonText(value) {\r\n if (!isJsonText(value)) {\r\n return value;\r\n }\r\n\r\n return JSON.stringify(JSON.parse(value), null, 4);\r\n}\r\n\r\n\r\nexport default {\r\n isJsonText: isJsonText,\r\n formatJsonText: formatJsonText,\r\n};\r\n","import _ from \"lodash\";\r\n\r\nfunction formatNumberTextWithUnit(numberText, unitText) {\r\n if (!unitText) {\r\n return numberText;\r\n }\r\n return numberText + \" \" + unitText;\r\n}\r\n\r\nfunction formatPctWith2Digital(valuePct) {\r\n let valuePctText = formatNumberWithDigital(valuePct, 2, false);\r\n return valuePctText + \"%\";\r\n}\r\n\r\nfunction formatNumberWith2Digital(value) {\r\n return formatNumberWithDigital(value, 2);\r\n}\r\n\r\nfunction formatNumberWith4Digital(value) {\r\n return formatNumberWithDigital(value, 4);\r\n}\r\n\r\nfunction formatNumberWithDigital(value, digital) {\r\n if (value === null) {\r\n return \"\";\r\n }\r\n\r\n let dblValue = (_.toNumber(value));\r\n if (isNaN(dblValue)) {\r\n //the string value could not be convert to number, just return it;\r\n return value;\r\n }\r\n\r\n let valueText = value;\r\n if (digital != null) {\r\n let text = _.round(dblValue, digital) + \"\";\r\n if (text.indexOf(\".\") === -1) {\r\n text += '.';\r\n }\r\n\r\n let part1 = text.substring(0, text.indexOf(\".\"));\r\n let part2 = \"\";\r\n\r\n if (digital > 0) {\r\n part2 = text.substring(text.indexOf(\".\") + 1); //取到小数部分搜索\r\n part2 = \".\" + _.padEnd(part2, digital, '0');\r\n }\r\n valueText = part1 + part2;\r\n }\r\n\r\n return valueText;\r\n}\r\n\r\nexport default {\r\n formatPctWith2Digital: formatPctWith2Digital,\r\n formatNumberWith2Digital: formatNumberWith2Digital,\r\n formatNumberWith4Digital: formatNumberWith4Digital,\r\n formatNumberWithDigital: formatNumberWithDigital,\r\n formatNumberTextWithUnit: formatNumberTextWithUnit,\r\n};\r\n","import _ from \"lodash\";\r\nimport AxiosUtils from \"./AxiosUtils\";\r\n\r\nconst constants = {\r\n CANVAS_WIDTH: 480,\r\n CANVAS_HEIGHT: 270,\r\n}\r\n\r\n/**\r\n * create an empty 2 dimension array\r\n */\r\nfunction new2dArray(width, height, initValue) {\r\n let array = [];\r\n for (let rowIdx = 0; rowIdx < height; rowIdx++) {\r\n let newRow = [];\r\n for (let colIdx = 0; colIdx < width; colIdx++) {\r\n newRow.push(initValue);\r\n }\r\n array.push(newRow);\r\n }\r\n return array;\r\n}\r\n\r\n/**\r\n * render grey level ImageDataArray to Canvas\r\n */\r\nfunction renderImageDataArrayToCtx(ctx, imageDataArray) {\r\n let height = imageDataArray.length;\r\n let width = imageDataArray[0].length;\r\n let imageData = new ImageData(width, height);\r\n let idx = 0;\r\n for (let rowIdx = 0; rowIdx < height; rowIdx++) {\r\n for (let colIdx = 0; colIdx < width; colIdx++) {\r\n let grayData = imageDataArray[rowIdx][colIdx];\r\n\r\n imageData.data[idx + 0] = grayData;\r\n imageData.data[idx + 1] = grayData;\r\n imageData.data[idx + 2] = grayData;\r\n imageData.data[idx + 3] = 255;\r\n idx = idx + 4;\r\n }\r\n }\r\n ctx.putImageData(imageData, 0, 0, 0, 0, width, height);\r\n}\r\n\r\nfunction getImageDataArrayFromCtx(ctx, canvasWidth, canvasHeight) {\r\n let imageData = ctx.getImageData(0, 0, canvasWidth, canvasHeight);\r\n\r\n let isEmpty = true;\r\n let imageDataArray = [];\r\n for (let i = 0; i < imageData.data.length; i = i + 4) {\r\n let red = imageData.data[i];\r\n imageDataArray[i / 4] = red;\r\n if (red !== 255) {\r\n isEmpty = false;\r\n }\r\n }\r\n\r\n if (isEmpty) {\r\n return null;\r\n }\r\n\r\n imageDataArray = _.chunk(imageDataArray, canvasWidth);\r\n return imageDataArray;\r\n}\r\n\r\nfunction initCanvas(ctx, canvasWidth, canvasHeight) {\r\n ctx.fillStyle = \"white\";\r\n ctx.lineWidth = 1;\r\n ctx.lineCap = 'round';\r\n ctx.lineJoin = 'round';\r\n\r\n ctx.fillRect(0, 0, canvasWidth, canvasHeight);\r\n ctx.fill();\r\n}\r\n\r\nasync function convertCanvasToBlobFile(canvas, fileName, fileType = 'image/jpeg') {\r\n return new Promise((resolve, reject) => {\r\n canvas.toBlob(async function (blob) {\r\n const file = new File([blob], fileName);\r\n resolve(file);\r\n }, fileType, 0.9);\r\n });\r\n}\r\n\r\n/**\r\n * Build grey level ImageDataArray from text\r\n */\r\nfunction calcImageDataArrayFromText(valueText) {\r\n if (valueText == null) {\r\n return;\r\n }\r\n\r\n let imageDataArray = [];\r\n _.each(valueText.split(\";\"), (rowData, rowIdx) => {\r\n let row = [];\r\n _.each(rowData.split(\",\"), (item, colIdx) => {\r\n row.push(item);\r\n });\r\n imageDataArray.push(row);\r\n });\r\n return imageDataArray;\r\n}\r\n\r\nfunction calcTextFromImageDataArray(imageDataArray) {\r\n if (imageDataArray == null) {\r\n return;\r\n }\r\n\r\n let valueText = \"\";\r\n for (let rowIdx = 0; rowIdx < imageDataArray.length; rowIdx++) {\r\n if (rowIdx > 0) {\r\n valueText += \";\";\r\n }\r\n valueText += imageDataArray[rowIdx].join(\",\");\r\n }\r\n return valueText;\r\n}\r\n\r\nexport default {\r\n constants: constants,\r\n new2dArray: new2dArray,\r\n initCanvas: initCanvas,\r\n //common\r\n convertCanvasToBlobFile: convertCanvasToBlobFile,\r\n\r\n //for signature\r\n renderImageDataArrayToCtx: renderImageDataArrayToCtx,\r\n getImageDataArrayFromCtx: getImageDataArrayFromCtx,\r\n calcImageDataArrayFromText: calcImageDataArrayFromText,\r\n calcTextFromImageDataArray: calcTextFromImageDataArray,\r\n};\r\n","import _ from \"lodash\";\r\n\r\nlet pattern=/[`~!@#$^\\-&*()=|{}':;,\\\\\\[\\].<>\\/?\\s]/g;\r\n\r\nfunction buildKeyword(text) {\r\n if(!text){\r\n return '';\r\n }\r\n\r\n let keyword = text.replace(pattern, '').toUpperCase();\r\n return keyword;\r\n}\r\n\r\n\r\nexport default {\r\n buildKeyword: buildKeyword,\r\n};\r\n"],"names":["Base64","init","_","param","module","this","e","n","t","r","i","s","o","a","f","h","u","c","d","l","m","M"],"mappings":";;;;AAAe,QAAA,WAAA;AAAA;AAAA,IAEX,SAAS;AAAA,MACL,SAAS;AAAA;AAAA,MACT,yBAAyB;AAAA;AAAA,MACzB,qCAAqC;AAAA;AAAA,IACxC;AAAA;AAAA,IAED,MAAK;AAAA,MACD,SAAS;AAAA;AAAA,IACZ;AAAA,IACD,QAAQ;AAAA,MACJ,aAAa;AAAA,IAChB;AAAA,EACL;ACRA,WAAS,cAAc,SAAS;AAC5B,8BAA0B,eAAe,OAAO;AAAA,EACpD;AAEA,WAAS,gBAAgB;AACrB,WAAO,0BAA0B,aAAa;AAAA,EAClD;AAGA,WAAS,gBAAgB,SAAS;AAC9B,8BAA0B,iBAAiB,OAAO;AAAA,EACtD;AAEA,WAAS,kBAAkB;AACvB,WAAO,0BAA0B,eAAe;AAAA,EACpD;AAGA,WAAS,mBAAmB,SAAS;AACjC,8BAA0B,qBAAqB,OAAO;AAAA,EAC1D;AAEA,WAAS,qBAAqB;AAC1B,WAAO,0BAA0B,mBAAmB;AAAA,EACxD;AAMA,WAAS,0BAA0B,KAAI;AACnC,QAAI,UAAU,SAAS,QAAQ,UAAU,MAAM;AAC/C,QAAI,MAAM,aAAa,QAAQ,OAAO;AACtC,WAAO,OAAM;AAAA,EACjB;AAEA,WAAS,uBAAuB,KAAK,KAAK;AACtC,QAAI,UAAU,SAAS,QAAQ,UAAU,MAAM;AAC/C,iBAAa,WAAW,OAAO;AAAA,EACnC;AAKA,WAAS,0BAA0B,KAAK,KAAK;AACzC,QAAI,UAAU,SAAS,QAAQ,UAAU,MAAM;AAC/C,QAAI,YAAY;AAChB,iBAAa,QAAQ,SAAS,OAAO,SAAS,CAAC;AAAA,EACnD;AAEA,WAAS,0BAA0B,KAAK;AACpC,QAAI,UAAU,SAAS,QAAQ,UAAU,MAAM;AAC/C,QAAI,MAAM,OAAO,aAAa,QAAQ,OAAO,CAAC;AAC9C,WAAO;AAAA,EACX;AAMA,WAAS,uBAAuB,KAAK,KAAK;AACtC,QAAI,UAAU,SAAS,QAAQ,UAAU,MAAM;AAC/C,iBAAa,QAAQ,SAAS,OAAO,KAAK,UAAU,GAAG,CAAC,CAAC;AAAA,EAC7D;AAEA,WAAS,uBAAuB,KAAK;AACjC,QAAI,UAAU,SAAS,QAAQ,UAAU,MAAM;AAC/C,QAAI,MAAM;AACV,QAAI;AACA,UAAI,UAAU,aAAa,QAAQ,OAAO;AAC1C,YAAM,KAAK,MAAM,OAAO,OAAO,CAAC;AAAA,IACnC,SAAQ,GAAG;AAAA,IACX;AACD,WAAO;AAAA,EACX;AAEA,WAAS,2BAA2B,KAAK,KAAI;AACzC,2BAAuB,KAAK,GAAG;AAAA,EACnC;AAEA,WAAS,2BAA2B,KAAI;AACpC,QAAI,SAAS,uBAAuB,GAAG;AACvC,2BAAuB,KAAK,IAAI;AAChC,WAAO;AAAA,EACX;AAEA,WAAS,2BAA2B,KAAK,KAAI;AACzC,8BAA0B,KAAK,GAAG;AAAA,EACtC;AAEA,WAAS,0BAA0B,KAAI;AACnC,QAAI,SAAS,0BAA0B,GAAG;AAC1C,2BAAuB,GAAG;AAC1B,WAAO;AAAA,EACX;AAEA,WAAS,6BAA6B,KAAK,KAAI;AAC3C,6BAAyB,KAAK,GAAG;AAAA,EACrC;AAEA,WAAS,6BAA6B,KAAI;AACtC,QAAI,SAAS,yBAAyB,GAAG;AACzC,6BAAyB,KAAK,IAAI;AAClC,WAAO;AAAA,EACX;AAEA,WAAS,yBAAyB,KAAK,KAAK;AACxC,QAAI,UAAU,SAAS,QAAQ,UAAU,MAAM;AAC/C,mBAAe,QAAQ,SAAS,OAAO,KAAK,UAAU,GAAG,CAAC,CAAC;AAAA,EAC/D;AAEA,WAAS,yBAAyB,KAAK;AACnC,QAAI,UAAU,SAAS,QAAQ,UAAU,MAAM;AAC/C,QAAI,MAAM;AACV,QAAI;AACA,UAAI,UAAU,eAAe,QAAQ,OAAO;AAC5C,YAAM,KAAK,MAAM,OAAO,OAAO,CAAC;AAAA,IACnC,SAAQ,GAAG;AAAA,IACX;AACD,WAAO;AAAA,EACX;AAEA,WAAS,OAAO,eAAc;AAC1B,QAAG,CAAC,eAAc;AACd,aAAO;AAAA,IACV;AACD,QAAG,CAAC,SAAS,QAAQ,yBAAwB;AACzC,aAAO;AAAA,IACV;AACD,WAAOA,SAAM,OAAC,OAAO,aAAa;AAAA,EACtC;AAEA,WAAS,OAAO,aAAY;AACxB,QAAG,CAAC,aAAY;AACZ,aAAO;AAAA,IACV;AACD,QAAG,CAAC,SAAS,QAAQ,yBAAwB;AACzC,aAAO;AAAA,IACV;AACD,WAAOA,SAAM,OAAC,OAAO,WAAW;AAAA,EACpC;AAEe,QAAA,WAAA;AAAA,IACX;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IAEA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IAEA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IAEA;AAAA,IACA;AAAA,IAEA;AAAA,IACA;AAAA,EACJ;ACrKA,MAAI,qBAAqB;AACzB,MAAI,sBAAsB;AAE1B,MAAI,oBAAoB;AAExB,iBAAeC,OACX,sBACA,qBACF;AACE,0BAAsB;AACtB,yBAAqB,uBAAuB;AAAA,EAChD;AAEA,iBAAe,QAAQ;AACnB,wBAAoB;AAAA,EACxB;AAGA,iBAAe,gBAAgB,kBAAgB,OAAO;AAClD,QAAG,qBAAmB,QAAQ,oBAAkB,OAAM;AAClD,aAAO;AAAA,IACV;AAED,QAAI,uBAAuB,oBAAoB,aAAa;AACxD,UAAI,WAAW,MAAM,oBAAoB;AACzC,0BAAoB;AACpB,aAAO;AAAA,IACf,OAAW;AACH,UAAI,WAAW,MAAM,WAAW,YAAY,kBAAkB;AAC9D,0BAAoB;AACpB,aAAO;AAAA,IACV;AAAA,EACL;AAEA,WAAS,uBAAuB;AAC5B,QAAI,qBAAqB,MAAM;AAC3B,aAAO;AAAA,IACV;AAED,WAAO;AAAA,EACX;AAEA,WAAS,gBAAgB;;AACrB,YAAO,0BAAsB,MAAtB,mBAAwB;AAAA,EACnC;AAKA,WAAS,YAAY,iBAAiB;AAClC,QAAI,qBAAqB,MAAM;AAC3B,aAAO;AAAA,IACV;AAED,QAAIC,IAAE,QAAQ,eAAe,GAAG;AAC5B,aAAO,CAACA,IAAE,QAAQA,IAAE,aAAa,kBAAkB,UAAU,eAAe,CAAC;AAAA,IACrF,OAAW;AACH,aAAOA,IAAE,SAAS,kBAAkB,UAAU,eAAe;AAAA,IAChE;AAAA,EACL;AAEe,QAAA,iBAAA;AAAA,IACX,MAAMD;AAAAA,IACN;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ;ACrEA,MAAI,QAAQ;AACZ,MAAI,aAAa;AAEjB,MAAI,SAAS;AAAA,IACT,SAAS;AAAA,EACb;AAGA,MAAI,iBAAiB;AAAA,IACjB,8BAA8B;AAAA,IAC9B,gCAAgC;AAAA,IAChC,sBAAsB;AAAA,IACtB,mBAAmB;AAAA,EACvB;AAGA,MAAI;AACJ,MAAI;AACJ,MAAI;AAEJ,WAASA,OAAK,QAAQ,UAAU,sBAAsB,sBAAsB,uBAAuB;AAC/F,YAAQ;AAGR,UAAM,SAAS,UAAU,QAAQ,QAAQ;AACzC,UAAM,SAAS,UAAU,SAAS,KAAK;AAEvC,gCAA4B;AAC5B,gCAA4B;AAC5B,2BAAuB;AAAA,EAC3B;AAGA,MAAI,iBAAiB,SAAS,uBAAuB,wBAAwB,KAAK;AAAA,IAC9E,UAAU;AAAA,MACN,iBAAiB;AAAA,IACpB;AAAA,EACL;AAEA,WAAS,qBAAqB,gBAAe;AACzC,qBAAiB;AACjB,aAAS,uBAAuB,0BAA0B,cAAc;AAAA,EAC5E;AAEA,WAAS,cAAc;AACnB,WAAO,OAAO,SAAS;AAAA,EAC3B;AAKA,WAAS,4BAA4B,UAAU;AAC3C,QAAI,YAAY,OAAO,SAAS;AAChC,QAAI,UAAU,QAAQ,GAAG,MAAM,GAAG;AAC9B,kBAAY,UAAU,UAAU,CAAC;AAAA,IACpC;AACD,QAAI,cAAc,UAAU,MAAM,GAAG;AACrC,QAAI,gBAAgBC,IAAE,KAAK,aAAa,SAAUC,QAAO;AACrD,aAAOA,OAAM,QAAQ,QAAQ,MAAM;AAAA,IAC3C,CAAK;AACD,QAAI,CAAC,eAAe;AAChB,aAAO;AAAA,IACV;AACD,QAAI,QAAQ,cAAc,MAAM,GAAG;AACnC,QAAI,CAAC,MAAM,CAAC,GAAG;AACX,aAAO;AAAA,IACV;AACD,WAAO,MAAM,CAAC;AAAA,EAClB;AAOA,WAAS,QAAQ,MAAM;AACnB,QAAID,IAAE,WAAW,MAAM,MAAM,GAAG;AAC5B,aAAO;AAAA,IACV;AAED,QAAI,cAAc,MAAM;AACpB,mBAAa,OAAO,SAAS,SAAS;AACtC,UAAI,UAAU,WAAW,QAAQ,MAAM;AACvC,UAAI,UAAU,IAAI;AACd,qBAAa,WAAW,UAAU,GAAG,WAAW,YAAY,KAAK,OAAO,CAAC;AAAA,MACrF,OAAe;AACH,kBAAU,WAAW,QAAQ,IAAI;AACjC,YAAI,UAAU,IAAI;AACd,uBAAa,WAAW,UAAU,GAAG,OAAO;AAAA,QAC5D,OAAmB;AACH,oBAAU,WAAW,QAAQ,GAAG;AAChC,cAAI,UAAU,IAAI;AACd,yBAAa,WAAW,UAAU,GAAG,OAAO;AAAA,UAChE,OAAuB;AACH,oBAAQ,IAAI,+BAA+B,UAAU,EAAE;AAAA,UAC1D;AAAA,QACJ;AAAA,MACJ;AAAA,IAEJ;AAED,QAAI,WAAW,SAAS,GAAG,GAAG;AAC1B,mBAAa,WAAW,UAAU,GAAG,WAAW,SAAS,CAAC;AAAA,IAC7D;AACD,WAAO,aAAa;AAAA,EACxB;AAKA,WAAS,kBAAkB,KAAK,MAAM,SAAS,UAAU,CAAA,GAAI;AACzD,WAAO,IAAI,QAAQ,eAAgB,SAAS,QAAQ;AAChD,gBAAU,WAAW;AACrB,UAAI,QAAQ,cAAc,KAAK,MAAM;AACjC,gBAAQ,cAAc,IAAI;AAAA,MAC7B;AAED,YAAM,qBAAqB,OAAO;AAElC,UAAI;AACA,YAAI,WAAW,MAAM,MAAM;AAAA,UACvB,QAAQ;AAAA,UACR;AAAA,UACA;AAAA,UACA;AAAA,UACA,cAAc;AAAA,QAC9B,CAAa;AACD,YAAI,SAAS,MAAM;AACf,cAAI,SAAS,KAAK,aAAa,SAAS,KAAK,cAAc,OAAO,SAAS;AACvE,gBAAI,cAAc,MAAM,aAAa,KAAK,MAAM,QAAQ;AACxD,oBAAQ,WAAW;AACnB;AAAA,UACH;AAAA,QACJ;AAED,cAAM,OAAO,SAAS,cAAc,GAAG;AACvC,YAAI,OAAO,IAAI,KAAK,CAAC,SAAS,IAAI,GAAG,EAAC,MAAM,2BAA0B,CAAC;AACvE,YAAI,qBAAqB,SAAS,QAAQ,qBAAqB;AAE/D,YAAI,sBAAsB,MAAM;AAC5B,cAAI,cAAc,MAAM,aAAa,KAAK,MAAM;AAAA,YAC5C,MAAM;AAAA,cACF,WAAW,eAAe;AAAA,cAC1B,OAAO;AAAA,YACV;AAAA,UACrB,CAAiB;AACD,kBAAQ,WAAW;AACnB;AAAA,QACH;AAED,YAAI,OAAO,mBAAmB,MAAM,GAAG,EAAE,CAAC,EAAE,MAAM,UAAU,EAAE,CAAC;AAC/D,YAAI,WAAW,mBAAmB,IAAI;AACtC,gBAAQ,IAAI,QAAQ;AACpB,aAAK,MAAM,UAAU;AACrB,aAAK,OAAO,IAAI,gBAAgB,IAAI;AACpC,aAAK,aAAa,YAAY,QAAQ;AACtC,iBAAS,KAAK,YAAY,IAAI;AAC9B,aAAK,MAAK;AACV,iBAAS,KAAK,YAAY,IAAI;AAE9B,gBAAQ,IAAI;AAAA,MACf,SAAQ,GAAG;AACR,YAAI,cAAc,MAAM,aAAa,KAAK,CAAE,GAAE,CAAC;AAC/C,gBAAQ,WAAW;AAAA,MACtB;AAAA,IACT,CAAK;AAAA,EACL;AAMA,WAAS,kBAAkB,KAAK,MAAM,SAAS,UAAU,CAAA,GAAI;AACzD,WAAO,IAAI,QAAQ,eAAgB,SAAS,QAAQ;AAChD,gBAAU,WAAW;AACrB,UAAI,QAAQ,cAAc,KAAK,MAAM;AACjC,gBAAQ,cAAc,IAAI;AAAA,MAC7B;AAED,YAAM,qBAAqB,OAAO;AAElC,UAAI;AACA,YAAI,WAAW,MAAM,MAAM;AAAA,UACvB,QAAQ;AAAA,UACR;AAAA,UACA;AAAA,UACA;AAAA,UACA,cAAc;AAAA,QAC9B,CAAa;AACD,YAAI,YAAY,SAAS;AACzB,YAAI,aAAa,MAAM;AACnB,cAAI,SAAS,KAAK,aAAa,SAAS,KAAK,cAAc,OAAO,SAAS;AACvE,gBAAI,cAAc,MAAM,aAAa,KAAK,MAAM,QAAQ;AACxD,oBAAQ,IAAI;AACZ;AAAA,UACH;AAAA,QACJ;AACD,gBAAQ,SAAS;AAAA,MACpB,SAAQ,GAAG;AACU,cAAM,aAAa,KAAK,CAAE,GAAE,CAAC;AAC/C,gBAAQ,IAAI;AAAA,MACf;AAAA,IACT,CAAK;AAAA,EACL;AAKA,WAAS,mBAAmB,KAAK;AAC7B,WAAO,IAAI,QAAQ,SAAU,SAAS,QAAQ;AAE1C,YAAM,YAAY,SAAS,cAAc,GAAG;AAC5C,gBAAU,MAAM,UAAU;AAC1B,gBAAU,OAAO;AACjB,gBAAU,SAAS;AACnB,eAAS,KAAK,YAAY,SAAS;AACnC,gBAAU,MAAK;AACf,UAAI,gBAAgB,UAAU,IAAI;AAClC,eAAS,KAAK,YAAY,SAAS;AAEnC,cAAQ,IAAI;AAAA,IACpB,CAAK;AAAA,EACL;AAKA,WAAS,uBAAuB,KAAK;AACjC,WAAO,IAAI,QAAQ,SAAU,SAAS,QAAQ;AAC1C,YAAM,IAAI,KAAK;AAAA,QACX,cAAc;AAAA,MAC1B,CAAS,EAAE,KAAK,CAAC,QAAQ;AACb,gBAAQ,IAAI,IAAI;AAAA,MACnB,GAAE,CAAC,UAAU;AACV,gBAAQ,IAAI;AAAA,MACxB,CAAS;AAAA,IACT,CAAK;AAAA,EACL;AAMA,WAAS,WAAW,KAAK,MAAM,SAAS,kBAAkB,mBAAmB;AACzE,cAAU,WAAW;AAErB,QAAI,WAAW,IAAI;AACnB,QAAIA,IAAE,QAAQ,IAAI,GAAG;AACjB,eAAS,OAAO,SAAS,IAAI;AAAA,IACrC,OAAW;AACH,eAAS,OAAO,QAAQ,IAAI;AAAA,IAC/B;AAED,wBAAoB,qBAAqB;AACzC,WAAO,QAAQ,QAAQ,KAAK,UAAU,SAAS,kBAAkB,iBAAiB;AAAA,EACtF;AAKA,WAAS,kBAAkB,KAAK;AAC5B,WAAO,IAAI,QAAQ,eAAgB,SAAS,QAAQ;AAChD,YAAM,IAAI,GAAG,EAAE,KAAK,CAAC,QAAQ;AACzB,gBAAQ,GAAG;AAAA,MACd,GAAE,CAAC,UAAU;AACV,gBAAQ,IAAI;AAAA,MACxB,CAAS;AAAA,IACT,CAAK;AAAA,EACL;AAKA,WAAS,YAAY,QAAQ;AACzB,QAAI,QAAQ;AACR,UAAI,QAAQ;AACZA,UAAE,KAAK,QAAQ,SAAU,GAAG,KAAK;AAC7B,YAAI,KAAK,MAAM;AACX,mBAAS,MAAM,MAAM,mBAAmB,CAAC,IAAI;AAAA,QAC7D,OAAmB;AACH,mBAAS,MAAM;AAAA,QAClB;AAAA,MACb,CAAS;AACD,cAAQ,MAAM,UAAU,GAAG,MAAM,SAAS,CAAC;AAC3C,aAAO;AAAA,IACf,OAAW;AACH,aAAO;AAAA,IACV;AAAA,EACL;AAEA,WAAS,YAAY,KAAK,SAAS,mBAAmB;AAClD,cAAU,WAAW;AACrB,QAAI,QAAQ,cAAc,KAAK,MAAM;AACjC,cAAQ,cAAc,IAAI;AAAA,IAC7B;AAED,wBAAoB,qBAAqB;AAEzC,WAAO,QAAQ,OAAO,KAAK,MAAM,SAAS,MAAM,iBAAiB;AAAA,EACrE;AAEA,WAAS,aAAa,KAAK,YAAY,SAAS,mBAAmB;AAC/D,QAAI,WAAW;AACf,QAAI,YAAY;AACZ,iBAAW,YAAY,UAAU;AAAA,IACpC;AAED,cAAU,WAAW;AACrB,QAAI,QAAQ,cAAc,KAAK,MAAM;AACjC,cAAQ,cAAc,IAAI;AAAA,IAC7B;AAED,wBAAoB,qBAAqB;AAEzC,WAAO,QAAQ,QAAQ,KAAK,UAAU,SAAS,MAAM,iBAAiB;AAAA,EAC1E;AAEA,WAAS,YAAY,KAAK,SAAS,mBAAmB;AAClD,cAAU,WAAW;AACrB,QAAI,QAAQ,cAAc,KAAK,MAAM;AACjC,cAAQ,cAAc,IAAI;AAAA,IAC7B;AAED,WAAO,QAAQ,OAAO,KAAK,MAAM,SAAS,MAAM,iBAAiB;AAAA,EACrE;AAEA,WAAS,aAAa,KAAK,YAAY,SAAS,mBAAmB;AAC/D,cAAU,WAAW;AACrB,QAAI,QAAQ,cAAc,KAAK,MAAM;AACjC,cAAQ,cAAc,IAAI;AAAA,IAC7B;AAED,WAAO,QAAQ,QAAQ,KAAK,YAAY,SAAS,MAAM,iBAAiB;AAAA,EAC5E;AAWA,WAAS,QAAQ,QAAQ,KAAK,MAAM,SAAS,kBAAkB,oBAAoB,IAAI;AACnF,WAAO,IAAI,QAAQ,SAAU,SAAS,QAAQ;AAE1C,2BAAqB,OAAO,EAAE;AAAA,QAC1B,WAAY;AAER,gBAAM;AAAA,YACF;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,UACpB,CAAiB,EACI,KAAK,CAAC,aAAa;AAChB,gBAAI,SAAS,MAAM;AACf,kBAAI,SAAS,KAAK,aAAa,SAAS,KAAK,cAAc,OAAO,SAAS;AACvE,oBAAI,kBAAkB,4BAA4B;AAC9C,0BAAQ,SAAS,IAAI;AAAA,gBACzD,OAAuC;AACH,+BAAa,KAAK,MAAM,QAAQ,EAAE,KAAK,CAAC,WAAW;AAC/C,4BAAQ,MAAM;AAAA,kBACtD,CAAqC;AAAA,gBACJ;AAAA,cACjC,OAAmC;AACH,wBAAQ,SAAS,IAAI;AAAA,cACxB;AAAA,YAC7B,OAA+B;AACH,sBAAQ,SAAS,IAAI;AAAA,YACxB;AAAA,UACJ,GAAE,CAAC,UAAU;AACV,gBAAI,kBAAkB,4BAA4B;AAC9C,sBAAQ,KAAK;AAAA,YACzC,OAA+B;AACH,2BAAa,KAAK,MAAM,KAAK,EAAE,KAAK,CAAC,WAAW;AAC5C,wBAAQ,MAAM;AAAA,cAC9C,CAA6B;AAAA,YACJ;AAAA,UACzB,CAAqB;AAAA,QACR;AAAA,QACD,CAAC,UAAU;AAEP,uBAAa,KAAK,MAAM,KAAK,EAAE,KAAK,CAAC,WAAW;AAC5C,oBAAQ,MAAM;AAAA,UAClC,CAAiB;AAAA,QACjB;AAAA,MAAa;AAAA,IAEb,CAAK;AAAA,EACL;AAEA,iBAAe,qBAAqB,SAAS;AACzCA,QAAE,KAAK,iDAAgB,QAAQ,SAAS,OAAO,KAAI;AAC/C,cAAQ,GAAG,IAAI;AAAA,IACvB,CAAK;AAAA,EACL;AAMA,WAAS,kBAAkB,WAAW,UAAU;AAC5C,WAAO;AAAA,EACX;AAMA,MAAI,uBAAuB;AAE3B,iBAAe,aAAa,KAAK,SAAS,sBAAsB;AAC5D,QAAI,yBAAyB,MAAM;AAC/B;AAAA,IACH;AAED,2BAAuB;AACvB,UAAM,kBAAkB,KAAK,SAAS,oBAAoB;AAC1D,2BAAuB;AAAA,EAC3B;AAEA,iBAAe,iBAAiB,WAAW,UAAU,gBAAgB,SAAS;AAC1E,8BAA0B,SAAQ;AAClC,UAAM,0BAA0B,mBAAmB,SAAS,OAAO;AAAA,EACvE;AAEA,iBAAe,kBAAkB,KAAK,SAAS,sBAAsB;AACjE,QAAI,YAAYA,IAAE,IAAI,sBAAsB,gBAAgB;AAC5D,QAAI,QAAQA,IAAE,IAAI,sBAAsB,YAAY;AAEpD,QAAI,CAAC,aAAaA,IAAE,IAAI,sBAAsB,MAAM,GAAG;AACnD,UAAI,mBAAmBA,IAAE,IAAI,sBAAsB,iBAAiB;AACpE,UAAI,uBAAuBA,IAAE,IAAI,sBAAsB,qBAAqB;AAE5E,UAAIA,IAAE,SAAS,CAAC,KAAK,GAAG,GAAG,gBAAgB,GAAG;AAC1C,oBAAY,eAAe;AAC3B,gBAAQ;AAAA,MACpB,WAAmBA,IAAE,SAAS,CAAC,GAAG,GAAG,gBAAgB,GAAG;AAC5C,oBAAY,eAAe;AAC3B,gBAAQ;AAAA,MACpB,WAAmBA,IAAE,SAAS,CAAC,GAAG,GAAG,gBAAgB,GAAG;AAC5C,oBAAY,eAAe;AAC3B,gBAAQ;AAAA,MACX;AAAA,IACJ;AAGD,QAAI,2BAA2B;AAAA,MAC3B,eAAe;AAAA,MACf,eAAe;AAAA,IAClB;AAED,QAAIA,IAAE,SAAS,0BAA0B,SAAS,GAAG;AACjD,YAAM,eAA8B;AACpC;AAAA,IACH;AAED,QAAI,eAAe,yBAAyB,WAAW;AACnD,YAAM,iBAAiB,WAAW,iBAAiB,KAAK;AACxD;AAAA,IACH;AAED,UAAM,iBAAiB,WAAW,MAAM,kBAAkB,WAAW,KAAK,CAAC;AAAA,EAC/E;AAKA,iBAAe,eAAe,YAAY,gBAAgB;AACtD,QAAI,wBAAwB,qBAAqB,QAAQ;AACrD,YAAM,qBAAqB;IACnC,OAAW;AACH,YAAM,0BAA0B,mBAAmB,mBAAmB,oBAAoB;AAAA,IAC7F;AAAA,EACL;AAEK,QAAC,aAAa;AAAA,IACf,MAAMD;AAAAA,IACN;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IAEA;AAAA,IACA;AAAA,IAEA;AAAA,IACA;AAAA,EACJ;;;;;;;AC7fA,KAAC,SAAS,GAAE,GAAE;AAAsD,MAAAG,QAAe,UAAA,EAAuI;AAAA,IAAA,EAAEC,gBAAM,WAAU;AAAc,aAAO,SAAS,GAAE,GAAE,GAAE;AAAC,UAAE,eAAa,SAASC,IAAEC,IAAE;AAAC,cAAI,IAAE,EAAE,GAAGD,EAAC;AAAE,cAAG;AAAE,oBAAOC,KAAE,OAAO,KAAKA,EAAC,IAAE,CAAA,GAAI,QAAS,SAASD,IAAE;AAAC,gBAAEA,EAAC,IAAEC,GAAED,EAAC;AAAA,YAAC,IAAI;AAAA,QAAC;AAAA,MAAC;AAAA,IAAC;;;;;;ACAlY,KAAC,SAAS,GAAE,GAAE;AAAsD,MAAAF,QAAA,UAAe,EAA4I;AAAA,IAAA,EAAEC,gBAAM,WAAU;AAAc,UAAI,IAAE,EAAC,KAAI,aAAY,IAAG,UAAS,GAAE,cAAa,IAAG,gBAAe,KAAI,uBAAsB,MAAK,4BAA2B,GAAE,IAAE,2FAA0F,IAAE,QAAO,IAAE,SAAQ,IAAE,sBAAqB,IAAE,CAAE,GAAC,IAAE,SAASC,IAAE;AAAC,gBAAOA,KAAE,CAACA,OAAIA,KAAE,KAAG,OAAK;AAAA,MAAI;AAAE,UAAI,IAAE,SAASA,IAAE;AAAC,eAAO,SAASE,IAAE;AAAC,eAAKF,EAAC,IAAE,CAACE;AAAA,QAAC;AAAA,MAAC,GAAE,IAAE,CAAC,uBAAsB,SAASF,IAAE;AAAC,SAAC,KAAK,SAAO,KAAK,OAAK,CAAA,IAAK,SAAO,SAASA,IAAE;AAAC,cAAG,CAACA;AAAE,mBAAO;AAAE,cAAG,QAAMA;AAAE,mBAAO;AAAE,cAAIE,KAAEF,GAAE,MAAM,cAAc,GAAEC,KAAE,KAAGC,GAAE,CAAC,KAAG,CAACA,GAAE,CAAC,KAAG;AAAG,iBAAO,MAAID,KAAE,IAAE,QAAMC,GAAE,CAAC,IAAE,CAACD,KAAEA;AAAA,QAAC,EAAED,EAAC;AAAA,MAAC,CAAC,GAAE,IAAE,SAASA,IAAE;AAAC,YAAIE,KAAE,EAAEF,EAAC;AAAE,eAAOE,OAAIA,GAAE,UAAQA,KAAEA,GAAE,EAAE,OAAOA,GAAE,CAAC;AAAA,MAAE,GAAE,IAAE,SAASF,IAAEE,IAAE;AAAC,YAAID,IAAEE,KAAE,EAAE;AAAS,YAAGA,IAAE;AAAC,mBAAQC,KAAE,GAAEA,MAAG,IAAGA,MAAG;AAAE,gBAAGJ,GAAE,QAAQG,GAAEC,IAAE,GAAEF,EAAC,CAAC,IAAE,IAAG;AAAC,cAAAD,KAAEG,KAAE;AAAG;AAAA,YAAK;AAAA,QAAC;AAAM,UAAAH,KAAED,QAAKE,KAAE,OAAK;AAAM,eAAOD;AAAA,MAAC,GAAE,IAAE,EAAC,GAAE,CAAC,GAAE,SAASD,IAAE;AAAC,aAAK,YAAU,EAAEA,IAAE,KAAE;AAAA,MAAC,CAAC,GAAE,GAAE,CAAC,GAAE,SAASA,IAAE;AAAC,aAAK,YAAU,EAAEA,IAAE,IAAE;AAAA,MAAC,CAAC,GAAE,GAAE,CAAC,MAAK,SAASA,IAAE;AAAC,aAAK,eAAa,MAAI,CAACA;AAAA,MAAC,CAAC,GAAE,IAAG,CAAC,GAAE,SAASA,IAAE;AAAC,aAAK,eAAa,KAAG,CAACA;AAAA,MAAC,CAAC,GAAE,KAAI,CAAC,SAAQ,SAASA,IAAE;AAAC,aAAK,eAAa,CAACA;AAAA,MAAC,CAAC,GAAE,GAAE,CAAC,GAAE,EAAE,SAAS,CAAC,GAAE,IAAG,CAAC,GAAE,EAAE,SAAS,CAAC,GAAE,GAAE,CAAC,GAAE,EAAE,SAAS,CAAC,GAAE,IAAG,CAAC,GAAE,EAAE,SAAS,CAAC,GAAE,GAAE,CAAC,GAAE,EAAE,OAAO,CAAC,GAAE,GAAE,CAAC,GAAE,EAAE,OAAO,CAAC,GAAE,IAAG,CAAC,GAAE,EAAE,OAAO,CAAC,GAAE,IAAG,CAAC,GAAE,EAAE,OAAO,CAAC,GAAE,GAAE,CAAC,GAAE,EAAE,KAAK,CAAC,GAAE,IAAG,CAAC,GAAE,EAAE,KAAK,CAAC,GAAE,IAAG,CAAC,GAAE,SAASA,IAAE;AAAC,YAAIE,KAAE,EAAE,SAAQD,KAAED,GAAE,MAAM,KAAK;AAAE,YAAG,KAAK,MAAIC,GAAE,CAAC,GAAEC;AAAE,mBAAQC,KAAE,GAAEA,MAAG,IAAGA,MAAG;AAAE,YAAAD,GAAEC,EAAC,EAAE,QAAQ,UAAS,EAAE,MAAIH,OAAI,KAAK,MAAIG;AAAA,MAAE,CAAC,GAAE,GAAE,CAAC,GAAE,EAAE,OAAO,CAAC,GAAE,IAAG,CAAC,GAAE,EAAE,OAAO,CAAC,GAAE,KAAI,CAAC,GAAE,SAASH,IAAE;AAAC,YAAIE,KAAE,EAAE,QAAQ,GAAED,MAAG,EAAE,aAAa,KAAGC,GAAE,IAAK,SAASF,IAAE;AAAC,iBAAOA,GAAE,MAAM,GAAE,CAAC;AAAA,QAAC,CAAC,GAAI,QAAQA,EAAC,IAAE;AAAE,YAAGC,KAAE;AAAE,gBAAM,IAAI;AAAM,aAAK,QAAMA,KAAE,MAAIA;AAAA,MAAC,CAAC,GAAE,MAAK,CAAC,GAAE,SAASD,IAAE;AAAC,YAAIE,KAAE,EAAE,QAAQ,EAAE,QAAQF,EAAC,IAAE;AAAE,YAAGE,KAAE;AAAE,gBAAM,IAAI;AAAM,aAAK,QAAMA,KAAE,MAAIA;AAAA,MAAC,CAAC,GAAE,GAAE,CAAC,YAAW,EAAE,MAAM,CAAC,GAAE,IAAG,CAAC,GAAE,SAASF,IAAE;AAAC,aAAK,OAAK,EAAEA,EAAC;AAAA,MAAC,CAAC,GAAE,MAAK,CAAC,SAAQ,EAAE,MAAM,CAAC,GAAE,GAAE,GAAE,IAAG,EAAC;AAAE,eAAS,EAAEC,IAAE;AAAC,YAAIE,IAAEC;AAAE,QAAAD,KAAEF,IAAEG,KAAE,KAAG,EAAE;AAAQ,iBAAQC,MAAGJ,KAAEE,GAAE,QAAQ,qCAAqC,SAASD,IAAED,IAAEE,IAAE;AAAC,cAAIG,KAAEH,MAAGA,GAAE,YAAa;AAAC,iBAAOF,MAAGG,GAAED,EAAC,KAAG,EAAEA,EAAC,KAAGC,GAAEE,EAAC,EAAE,QAAQ,kCAAkC,SAASN,IAAEE,IAAED,IAAE;AAAC,mBAAOC,MAAGD,GAAE,MAAM,CAAC;AAAA,UAAC,CAAC;AAAA,QAAE,CAAC,GAAI,MAAM,CAAC,GAAEM,KAAEF,GAAE,QAAOG,KAAE,GAAEA,KAAED,IAAEC,MAAG,GAAE;AAAC,cAAIC,KAAEJ,GAAEG,EAAC,GAAEE,KAAE,EAAED,EAAC,GAAEE,KAAED,MAAGA,GAAE,CAAC,GAAE,IAAEA,MAAGA,GAAE,CAAC;AAAE,UAAAL,GAAEG,EAAC,IAAE,IAAE,EAAC,OAAMG,IAAE,QAAO,EAAC,IAAEF,GAAE,QAAQ,YAAW,EAAE;AAAA,QAAC;AAAC,eAAO,SAAST,IAAE;AAAC,mBAAQE,KAAE,CAAE,GAACD,KAAE,GAAEE,KAAE,GAAEF,KAAEM,IAAEN,MAAG,GAAE;AAAC,gBAAIG,KAAEC,GAAEJ,EAAC;AAAE,gBAAG,YAAU,OAAOG;AAAE,cAAAD,MAAGC,GAAE;AAAA,iBAAW;AAAC,kBAAIE,KAAEF,GAAE,OAAMI,KAAEJ,GAAE,QAAOK,KAAET,GAAE,MAAMG,EAAC,GAAEO,KAAEJ,GAAE,KAAKG,EAAC,EAAE,CAAC;AAAE,cAAAD,GAAE,KAAKN,IAAEQ,EAAC,GAAEV,KAAEA,GAAE,QAAQU,IAAE,EAAE;AAAA,YAAC;AAAA,UAAC;AAAC,iBAAO,SAASV,IAAE;AAAC,gBAAIE,KAAEF,GAAE;AAAU,gBAAG,WAASE,IAAE;AAAC,kBAAID,KAAED,GAAE;AAAM,cAAAE,KAAED,KAAE,OAAKD,GAAE,SAAO,MAAI,OAAKC,OAAID,GAAE,QAAM,IAAG,OAAOA,GAAE;AAAA,YAAS;AAAA,UAAC,EAAEE,EAAC,GAAEA;AAAA,QAAC;AAAA,MAAC;AAAC,aAAO,SAASF,IAAEE,IAAED,IAAE;AAAC,QAAAA,GAAE,EAAE,oBAAkB,MAAGD,MAAGA,GAAE,sBAAoB,IAAEA,GAAE;AAAmB,YAAIG,KAAED,GAAE,WAAUE,KAAED,GAAE;AAAM,QAAAA,GAAE,QAAM,SAASH,IAAE;AAAC,cAAIE,KAAEF,GAAE,MAAKG,KAAEH,GAAE,KAAIK,KAAEL,GAAE;AAAK,eAAK,KAAGG;AAAE,cAAII,KAAEF,GAAE,CAAC;AAAE,cAAG,YAAU,OAAOE,IAAE;AAAC,gBAAIC,KAAE,SAAKH,GAAE,CAAC,GAAEI,KAAE,SAAKJ,GAAE,CAAC,GAAEK,KAAEF,MAAGC,IAAEG,KAAEP,GAAE,CAAC;AAAE,YAAAI,OAAIG,KAAEP,GAAE,CAAC,IAAG,IAAE,KAAK,WAAU,CAACG,MAAGI,OAAI,IAAEX,GAAE,GAAGW,EAAC,IAAG,KAAK,KAAG,SAASZ,IAAEE,IAAED,IAAE;AAAC,kBAAG;AAAC,oBAAG,CAAC,KAAI,GAAG,EAAE,QAAQC,EAAC,IAAE;AAAG,yBAAO,IAAI,MAAM,QAAMA,KAAE,MAAI,KAAGF,EAAC;AAAE,oBAAIG,KAAE,EAAED,EAAC,EAAEF,EAAC,GAAEI,KAAED,GAAE,MAAKG,KAAEH,GAAE,OAAME,KAAEF,GAAE,KAAII,KAAEJ,GAAE,OAAMK,KAAEL,GAAE,SAAQM,KAAEN,GAAE,SAAQO,KAAEP,GAAE,cAAaS,KAAET,GAAE,MAAKU,KAAE,oBAAI,QAAKC,KAAET,OAAID,MAAGE,KAAE,IAAEO,GAAE,QAAO,IAAIE,KAAEX,MAAGS,GAAE,YAAa,GAAC,IAAE;AAAE,gBAAAT,MAAG,CAACE,OAAI,IAAEA,KAAE,IAAEA,KAAE,IAAEO,GAAE,SAAU;AAAE,oBAAI,IAAEN,MAAG,GAAE,IAAEC,MAAG,GAAE,IAAEC,MAAG,GAAE,IAAEC,MAAG;AAAE,uBAAOE,KAAE,IAAI,KAAK,KAAK,IAAIG,IAAE,GAAED,IAAE,GAAE,GAAE,GAAE,IAAE,KAAGF,GAAE,SAAO,GAAG,CAAC,IAAEX,KAAE,IAAI,KAAK,KAAK,IAAIc,IAAE,GAAED,IAAE,GAAE,GAAE,GAAE,CAAC,CAAC,IAAE,IAAI,KAAKC,IAAE,GAAED,IAAE,GAAE,GAAE,GAAE,CAAC;AAAA,cAAC,SAAOd,IAAE;AAAC,uBAAO,oBAAI,KAAK,EAAE;AAAA,cAAC;AAAA,YAAC,EAAEE,IAAEK,IAAEJ,EAAC,GAAE,KAAK,KAAI,GAAGS,MAAG,SAAKA,OAAI,KAAK,KAAG,KAAK,OAAOA,EAAC,EAAE,KAAIF,MAAGR,MAAG,KAAK,OAAOK,EAAC,MAAI,KAAK,KAAG,oBAAI,KAAK,EAAE,IAAG,IAAE,CAAA;AAAA,UAAE,WAASA,cAAa;AAAM,qBAAQ,IAAEA,GAAE,QAAO,IAAE,GAAE,KAAG,GAAE,KAAG,GAAE;AAAC,cAAAF,GAAE,CAAC,IAAEE,GAAE,IAAE,CAAC;AAAE,kBAAI,IAAEN,GAAE,MAAM,MAAKI,EAAC;AAAE,kBAAG,EAAE,QAAO,GAAG;AAAC,qBAAK,KAAG,EAAE,IAAG,KAAK,KAAG,EAAE,IAAG,KAAK,KAAM;AAAC;AAAA,cAAK;AAAC,oBAAI,MAAI,KAAK,KAAG,oBAAI,KAAK,EAAE;AAAA,YAAE;AAAA;AAAM,YAAAD,GAAE,KAAK,MAAKJ,EAAC;AAAA,QAAC;AAAA,MAAC;AAAA,IAAC,CAAC;AAAA;;;;;ACA/pH,KAAC,SAAS,GAAE,GAAE;AAAsD,MAAAF,QAAA,UAAe,EAA8H;AAAA,IAAA,EAAEC,gBAAM,WAAU;AAAc,UAAI,IAAE,UAAS,IAAE,wBAAuB,IAAE;AAAe,aAAO,SAAS,GAAE,GAAE,GAAE;AAAC,YAAI,IAAE,EAAE;AAAU,UAAE,MAAI,SAASG,IAAE;AAAC,cAAIE,KAAE,EAAC,MAAKF,IAAE,KAAI,MAAG,MAAK,UAAS;AAAE,iBAAO,IAAI,EAAEE,EAAC;AAAA,QAAC,GAAE,EAAE,MAAI,SAASA,IAAE;AAAC,cAAIJ,KAAE,EAAE,KAAK,OAAQ,GAAC,EAAC,QAAO,KAAK,IAAG,KAAI,KAAE,CAAC;AAAE,iBAAOI,KAAEJ,GAAE,IAAI,KAAK,UAAS,GAAG,CAAC,IAAEA;AAAA,QAAC,GAAE,EAAE,QAAM,WAAU;AAAC,iBAAO,EAAE,KAAK,OAAQ,GAAC,EAAC,QAAO,KAAK,IAAG,KAAI,MAAE,CAAC;AAAA,QAAC;AAAE,YAAI,IAAE,EAAE;AAAM,UAAE,QAAM,SAASE,IAAE;AAAC,UAAAA,GAAE,QAAM,KAAK,KAAG,OAAI,KAAK,OAAM,EAAG,EAAEA,GAAE,OAAO,MAAI,KAAK,UAAQA,GAAE,UAAS,EAAE,KAAK,MAAKA,EAAC;AAAA,QAAC;AAAE,YAAI,IAAE,EAAE;AAAK,UAAE,OAAK,WAAU;AAAC,cAAG,KAAK,IAAG;AAAC,gBAAIA,KAAE,KAAK;AAAG,iBAAK,KAAGA,GAAE,eAAgB,GAAC,KAAK,KAAGA,GAAE,YAAa,GAAC,KAAK,KAAGA,GAAE,WAAY,GAAC,KAAK,KAAGA,GAAE,UAAW,GAAC,KAAK,KAAGA,GAAE,YAAa,GAAC,KAAK,KAAGA,GAAE,cAAe,GAAC,KAAK,KAAGA,GAAE,iBAAgB,KAAK,MAAIA,GAAE,mBAAkB;AAAA,UAAE;AAAM,cAAE,KAAK,IAAI;AAAA,QAAC;AAAE,YAAI,IAAE,EAAE;AAAU,UAAE,YAAU,SAASG,IAAEG,IAAE;AAAC,cAAIP,KAAE,KAAK,OAAM,EAAG;AAAE,cAAGA,GAAEI,EAAC;AAAE,mBAAO,KAAK,KAAG,IAAEJ,GAAE,KAAK,OAAO,IAAE,EAAE,KAAK,IAAI,IAAE,KAAK;AAAQ,cAAG,YAAU,OAAOI,OAAIA,KAAE,SAASH,IAAE;AAAC,uBAASA,OAAIA,KAAE;AAAI,gBAAIG,KAAEH,GAAE,MAAM,CAAC;AAAE,gBAAG,CAACG;AAAE,qBAAO;AAAK,gBAAIG,MAAG,KAAGH,GAAE,CAAC,GAAG,MAAM,CAAC,KAAG,CAAC,KAAI,GAAE,CAAC,GAAEJ,KAAEO,GAAE,CAAC,GAAEE,KAAE,KAAG,CAACF,GAAE,CAAC,IAAG,CAACA,GAAE,CAAC;AAAE,mBAAO,MAAIE,KAAE,IAAE,QAAMT,KAAES,KAAE,CAACA;AAAA,UAAC,EAAEL,EAAC,GAAE,SAAOA;AAAG,mBAAO;AAAK,cAAIK,KAAE,KAAK,IAAIL,EAAC,KAAG,KAAG,KAAGA,KAAEA,IAAEC,KAAE;AAAK,cAAGE;AAAE,mBAAOF,GAAE,UAAQI,IAAEJ,GAAE,KAAG,MAAID,IAAEC;AAAE,cAAG,MAAID,IAAE;AAAC,gBAAIF,KAAE,KAAK,KAAG,KAAK,OAAM,EAAG,sBAAoB,KAAG,KAAK,UAAW;AAAC,aAACG,KAAE,KAAK,MAAK,EAAG,IAAII,KAAEP,IAAE,CAAC,GAAG,UAAQO,IAAEJ,GAAE,GAAG,eAAaH;AAAA,UAAC;AAAM,YAAAG,KAAE,KAAK;AAAM,iBAAOA;AAAA,QAAC;AAAE,YAAI,IAAE,EAAE;AAAO,UAAE,SAAO,SAASJ,IAAE;AAAC,cAAIE,KAAEF,OAAI,KAAK,KAAG,2BAAyB;AAAI,iBAAO,EAAE,KAAK,MAAKE,EAAC;AAAA,QAAC,GAAE,EAAE,UAAQ,WAAU;AAAC,cAAIF,KAAE,KAAK,SAAS,EAAE,KAAK,OAAO,IAAE,IAAE,KAAK,WAAS,KAAK,GAAG,gBAAc,KAAK,GAAG,kBAAmB;AAAE,iBAAO,KAAK,GAAG,YAAU,MAAIA;AAAA,QAAC,GAAE,EAAE,QAAM,WAAU;AAAC,iBAAM,CAAC,CAAC,KAAK;AAAA,QAAE,GAAE,EAAE,cAAY,WAAU;AAAC,iBAAO,KAAK,OAAM,EAAG;QAAa,GAAE,EAAE,WAAS,WAAU;AAAC,iBAAO,KAAK,OAAM,EAAG,YAAW;AAAA,QAAE;AAAE,YAAI,IAAE,EAAE;AAAO,UAAE,SAAO,SAASA,IAAE;AAAC,iBAAM,QAAMA,MAAG,KAAK,UAAQ,EAAE,KAAK,OAAO,yBAAyB,CAAC,EAAE,OAAM,IAAG,EAAE,KAAK,IAAI;AAAA,QAAC;AAAE,YAAI,IAAE,EAAE;AAAK,UAAE,OAAK,SAASA,IAAEE,IAAEJ,IAAE;AAAC,cAAGE,MAAG,KAAK,OAAKA,GAAE;AAAG,mBAAO,EAAE,KAAK,MAAKA,IAAEE,IAAEJ,EAAC;AAAE,cAAIK,KAAE,KAAK,MAAK,GAAGG,KAAE,EAAEN,EAAC,EAAE;AAAQ,iBAAO,EAAE,KAAKG,IAAEG,IAAEJ,IAAEJ,EAAC;AAAA,QAAC;AAAA,MAAC;AAAA,IAAC,CAAC;AAAA;;;ACO1sE,QAAM,OAAO,GAAG;AAChB,QAAM,OAAO,YAAY;AACzB,QAAM,OAAO,iBAAiB;AAE9B,QAAM,cAAc;AACpB,QAAM,kBAAkB;AACxB,QAAM,mBAAmB;AACzB,QAAM,kBAAkB;AACxB,QAAM,oBAAoB;AAC1B,QAAM,cAAc;AACpB,QAAM,cAAc;AAEpB,WAAS,mBAAkB;AACvB,WAAO,MAAK;AAAA,EAChB;AAEA,WAAS,qBAAoB;AACzB,WAAO,wBAAwB,iBAAgB,CAAE;AAAA,EACrD;AAEA,WAAS,yBAAwB;AAC7B,WAAO,4BAA4B,iBAAgB,CAAE;AAAA,EACzD;AAEA,WAAS,iBAAgB;AACrB,WAAO,iBAAgB,EAAG;EAC9B;AAEA,WAAS,yBAAyB,QAAQ;AACtC,QAAI,QAAQ;AACR,aAAO,OAAO,SAAS;IAC/B,OAAW;AACH,aAAO;AAAA,IACV;AAAA,EACL;AAEA,WAAS,wBAAwB,QAAQ;AACrC,QAAI,QAAQ;AACR,aAAO,OAAO,OAAO,WAAW;AAAA,IACxC,OAAW;AACH,aAAO;AAAA,IACV;AAAA,EACL;AAEA,WAAS,yBAAyB,WAAW;AACzC,QAAI,aAAa,YAAY,GAAG;AAC5B,aAAO,MAAM,SAAS;AAAA,IAC9B,OAAW;AACH,aAAO;AAAA,IACV;AAAA,EACL;AAEA,WAAS,4BAA4B,QAAQ;AACzC,QAAI,QAAQ;AACR,aAAO,OAAO,OAAO,eAAe;AAAA,IAC5C,OAAW;AACH,aAAO;AAAA,IACV;AAAA,EACL;AAEA,WAAS,wBAAwB,QAAQ;AACrC,QAAI,QAAQ;AACR,aAAO,OAAO,OAAO,WAAW;AAAA,IACxC,OAAW;AACH,aAAO;AAAA,IACV;AAAA,EACL;AAEA,WAAS,6BAA6B,QAAQ;AAC1C,QAAI,QAAQ;AACR,aAAO,OAAO,OAAO,gBAAgB;AAAA,IAC7C,OAAW;AACH,aAAO;AAAA,IACV;AAAA,EACL;AAEA,WAAS,8BAA8B,QAAQ;AAC3C,QAAI,QAAQ;AACR,aAAO,OAAO,OAAO,iBAAiB;AAAA,IAC9C,OAAW;AACH,aAAO;AAAA,IACV;AAAA,EACL;AAIA,WAAS,wBAAwB,QAAQ;AACrC,QAAI,QAAQ;AACR,aAAO,OAAO,OAAO,WAAW;AAAA,IACxC,OAAW;AACH,aAAO;AAAA,IACV;AAAA,EACL;AAEA,WAAS,4BAA4B,cAAc;AAC/C,QAAI,cAAc;AACd,aAAO,MAAM,cAAc,eAAe;AAAA,IAClD,OAAW;AACH,aAAO;AAAA,IACV;AAAA,EACL;AAEA,WAAS,6BAA6B,eAAe;AACjD,QAAI,eAAe;AACf,aAAO,MAAM,eAAe,gBAAgB;AAAA,IACpD,OAAW;AACH,aAAO;AAAA,IACV;AAAA,EACL;AAEA,WAAS,wBAAwB,UAAU;AACvC,QAAI,UAAU;AACV,aAAO,MAAM,UAAU,WAAW;AAAA,IAC1C,OAAW;AACH,aAAO;AAAA,IACV;AAAA,EACL;AAEA,WAAS,wBAAwB,cAAc;AAC3C,QAAI,cAAc;AACd,aAAO,MAAM,cAAc,WAAW;AAAA,IAC9C,OAAW;AACH,aAAO;AAAA,IACV;AAAA,EACL;AAEA,WAAS,sBAAsB,UAAU;AACrC,QAAI,UAAU;AACV,aAAO,MAAM,UAAU,WAAW,EAAE,OAAM;AAAA,IAClD,OAAW;AACH,aAAO;AAAA,IACV;AAAA,EACL;AAEA,WAAS,0BAA0B,cAAc;AAC7C,QAAI,cAAc;AACD,YAAM,cAAc,eAAe;AAChD,aAAO,MAAM,cAAc,eAAe,EAAE,OAAM;AAAA,IAC1D,OAAW;AACH,aAAO;AAAA,IACV;AAAA,EACL;AAEA,WAAS,2BAA2B,WAAW;AAC3C,QAAI,UAAU,yBAAyB,SAAS;AAChD,QAAI,OAAO,wBAAwB,OAAO;AAC1C,WAAO;AAAA,EACX;AAEA,WAAS,+BAA+B,WAAW;AAC/C,QAAI,UAAU,yBAAyB,SAAS;AAChD,QAAI,OAAO,4BAA4B,OAAO;AAC9C,WAAO;AAAA,EACX;AAEA,WAAS,2BAA2B,WAAW;AAC3C,QAAI,UAAU,yBAAyB,SAAS;AAChD,QAAI,OAAO,wBAAwB,OAAO;AAC1C,WAAO;AAAA,EACX;AAEA,WAAS,oBAAoB,MAAM;AAC/B,QAAG,CAAC,MAAK;AACL,aAAO;AAAA,IACV;AACD,WAAO,MAAM,IAAI;AAAA,EACrB;AAEA,WAAS,sBAAsB,MAAM;AACjC,QAAI,UAAU,oBAAoB,IAAI;AACtC,QAAI,OAAO,wBAAwB,OAAO;AAC1C,WAAO;AAAA,EACX;AAEA,WAAS,0BAA0B,MAAM;AACrC,QAAI,UAAU,oBAAoB,IAAI;AACtC,QAAI,OAAO,4BAA4B,OAAO;AAC9C,WAAO;AAAA,EACX;AAGA,WAAS,eAAe,MAAM,IAAG;AAC7B,WAAO,OAAK,QAAM;AAAA,EACtB;AAEA,WAAS,mBAAmB,WAAU;AAClC,QAAI,SAAS;AACb,aAAS,OAAO,MAAM,YAAU,CAAC;AACjC,WAAO,OAAO,OAAO,KAAK;AAAA,EAC9B;AAEe,QAAA,YAAA;AAAA,IACX;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IAEA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IAEA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IAEA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IAEA;AAAA,IACA;AAAA,IACA;AAAA,IAEA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IAEA;AAAA,IACA;AAAA,IAEA;AAAA,IAEA;AAAA,EACJ;AC5OA,WAAS,kBAAkB;AACvB,aAAS,cAAc,MAAM,EAAE,MAAM,WAAW;AAAA,EACpD;AAEA,WAAS,mBAAmB;AACxB,aAAS,cAAc,MAAM,EAAE,MAAM,WAAW;AAAA,EACpD;AAEA,WAAS,mBAAmB;AACxB,eAAW,MAAM;AAEbJ,UAAE,KAAK,SAAS,cAAe,GAAE,CAAC,SAAS;AACvC,aAAK,YAAY;AAAA,MAC7B,CAAS;AAAA,IACJ,GAAE,GAAG;AAAA,EACV;AAQA,WAAS,kBAAkB,MAAM,eAAe;AAC5C,QAAI,YAAY,KAAK;AACrB,QAAI,WAAW;AACX,UAAIA,IAAE,aAAa,WAAW,aAAa,EAAE,SAAS,GAAG;AACrD,eAAO;AAAA,MACV;AAAA,IACJ;AAED,QAAI,gBAAgB,KAAK;AACzB,QAAI,eAAe;AACf,aAAO,kBAAkB,eAAe,aAAa;AAAA,IAC7D,OAAW;AACH,aAAO;AAAA,IACV;AAAA,EACL;AAKA,WAAS,OAAO,SAAS;AACrB,QAAI,SAAS;AAAA,MACT,KAAK;AAAA,MACL,MAAM;AAAA,IACd;AACI,QAAI,CAAC,QAAQ,eAAgB,EAAC,QAAQ;AAClC,aAAO;AAAA,IACV;AACD,QAAI,OAAO,iBAAiB,OAAO,EAAE,SAAS,MAAM,QAAQ;AACxD,aAAO;AAAA,IACV;AAED,aAAS,QAAQ;AACjB,QAAI,aAAa,QAAQ,cAAc;AACvC,WAAO;AAAA,MACH,KAAK,OAAO,OAAO,OAAO,WAAW,OAAO,eAAe,WAAW;AAAA,MACtE,MAAM,OAAO,QAAQ,OAAO,WAAW,OAAO,eAAe,WAAW;AAAA,IAChF;AAAA,EACA;AAEe,QAAA,WAAA;AAAA,IACX;AAAA,IACA;AAAA,IAEA;AAAA,IACA;AAAA,IAEA;AAAA,EACJ;ACxEA,WAAS,QAAQ;AACb,WAAO;AAAA,MACH;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACH,EAAC,SAAS,UAAU,QAAQ,KAAM,UAAU,UAAU,SAAS,KAAK,KAAK,gBAAgB;AAAA,EAC9F;AAEA,WAAS,kBAAkB;AACvB,QAAI,SAAS,SAAS,KAAK,UAAU,SAAS,KAAK,aAAa,KAAK,UAAU,MAAM;AACrF,QAAI,CAAC,QAAQ;AACT,aAAO;AAAA,IACV;AAED,QAAI,eAAc,GAAI;AAClB,aAAO;AAAA,IACV;AAED,WAAO;AAAA,EACX;AAEA,WAAS,iBAAiB;AACtB,WAAO,iEAAiE,KAAK,UAAU,SAAS,KAAK,SAAS,KAAK,UAAU,SAAS,KAAK,aAAa,KAAK,UAAU,MAAM;AAAA,EACjL;AAEA,WAAS,iBAAiB;AACtB,WAAO,MAAK,KAAM;EACtB;AAEA,WAAS,eAAe,WAAW,IAAI;AACnC,QAAI,WAAW,SAAS,kBAAkB,UAAU;AACpD,QAAI,CAAC,YAAY,SAAS,UAAU,GAAG;AACnC;AAAA,IACH;AAED,QAAI,UAAU,CAAA;AACd,MAAE,MAAM,SAAS,gBAAgB,QAAQ;AAEzC,QAAI,UAAU,CAAA;AACd,MAAE,KAAK,SAAS,CAAC,OAAO,QAAQ;AAC5B,cAAQ,KAAK,MAAM,MAAM,KAAK;AAAA,IACtC,CAAK;AAED,aAAS,CAAC,EAAE,UAAU,EAAE,KAAK,SAAS,GAAG;AAEzC,YAAQ,MAAM,uBAAuB,SAAS,CAAC,EAAE,OAAO;AAAA,EAC5D;AAEe,QAAA,oBAAA;AAAA,IACX;AAAA,IACA;AAAA,IACA;AAAA,IAEA;AAAA,IAEA;AAAA,EACJ;ACzDA,MAAI;AAEJ,WAAS,KAAK,sBAAsB;AAChC,wBAAoB;AAAA,EACxB;AAEA,WAAS,WAAW,WAAW,OAAO,aAAa,CAAE,GAAE,WAAW,IAAI;AAClE,QAAG,SAAS,MAAK;AACb,aAAO;AAAA,QACH,WAAW;AAAA,MACd;AAAA,IACJ;AAEDA,QAAE,KAAKA,IAAE,KAAK,KAAK,GAAG,CAAC,SAAS;AAC5B,UAAI,QAAQ,MAAM,IAAI;AACtB,UAAI,cAAc,YAAY,YAAY,MAAM,OAAO;AAEvD,UAAGA,IAAE,SAAS,YAAY,WAAW,GAAE;AACnC,iBAAS,WAAW,IAAI;AACxB;AAAA,MACH;AAED,UAAIA,IAAE,cAAc,KAAK,GAAG;AACxB,mBAAW,aAAa,OAAO,YAAY,QAAQ;AAAA,MAC/D,OAAe;AACH,iBAAS,WAAW,IAAI;AAAA,MAC3B;AAAA,IACT,CAAK;AAED,WAAO;AAAA,EACX;AAEA,WAAS,QAAQ,UAAU,aAAa,IAAI;AACxC,QAAG,YAAY,MAAK;AAChB,aAAO;AAAA,IACV;AAED,QAAI,QAAQ,CAAA;AACZA,QAAE,KAAKA,IAAE,KAAK,QAAQ,GAAG,CAAC,gBAAgB;AACtC,UAAI,QAAQ,SAAS,WAAW;AAChC,UAAI,OAAO,YAAY,WAAW,KAAK,GAAG;AAC1CA,UAAE,IAAI,OAAO,MAAM,KAAK;AAAA,IAChC,CAAK;AAED,WAAO;AAAA,EACX;AAEA,WAAS,mBAAmB,IAAG;AAC3B,UAAM,UAAU,SAAS,uBAAuB,yBAAyB;AACzE,YAAQ,CAAC,KAAK,QAAQ,CAAC,EAAE,eAAc;AACvC,YAAQ,MAAM,EAAE;AAAA,EACpB;AAOA,iBAAe,qBAAqB,0BAA0B;AAC1D,QAAG,4BAA4B,MAAK;AAChC,aAAO;AAAA,IACV;AAED,QAAI;AACJ,QAAI,OAAO,6BAA6B,YAAY;AAChD,kBAAY,MAAM;IAC1B,OAAS;AACD,kBAAY,yBAAyB;IACxC;AAED,QAAI,WAAW;AACX,UAAI,SAAS,MAAM,kBAAkB,kBAAkB,YAAY;AACnE,UAAI,WAAW,MAAM;AACjB,eAAO;AAAA,MACV;AAAA,IACJ;AACD,WAAO;AAAA,EACX;AAEA,QAAM,eAAe;AACN,QAAA,YAAA;AAAA,IACX;AAAA,IAEA;AAAA,IACA;AAAA,IACA;AAAA,IAEA;AAAA,IACA;AAAA,EACJ;ACzFA,WAAS,WAAW,OAAO;AACvB,YAAQA,IAAE,KAAK,KAAK;AAEpB,WAAQA,IAAE,WAAW,OAAO,GAAG,KAAKA,IAAE,WAAW,OAAO,GAAG;AAAA,EAC/D;AAEA,WAAS,eAAe,OAAO;AAC3B,QAAI,CAAC,WAAW,KAAK,GAAG;AACpB,aAAO;AAAA,IACV;AAED,WAAO,KAAK,UAAU,KAAK,MAAM,KAAK,GAAG,MAAM,CAAC;AAAA,EACpD;AAGe,QAAA,YAAA;AAAA,IACX;AAAA,IACA;AAAA,EACJ;AClBA,WAAS,yBAAyB,YAAY,UAAU;AACpD,QAAI,CAAC,UAAU;AACX,aAAO;AAAA,IACV;AACD,WAAO,aAAa,MAAM;AAAA,EAC9B;AAEA,WAAS,sBAAsB,UAAU;AACrC,QAAI,eAAe,wBAAwB,UAAU,CAAQ;AAC7D,WAAO,eAAe;AAAA,EAC1B;AAEA,WAAS,yBAAyB,OAAO;AACrC,WAAO,wBAAwB,OAAO,CAAC;AAAA,EAC3C;AAEA,WAAS,yBAAyB,OAAO;AACrC,WAAO,wBAAwB,OAAO,CAAC;AAAA,EAC3C;AAEA,WAAS,wBAAwB,OAAO,SAAS;AAC7C,QAAI,UAAU,MAAM;AAChB,aAAO;AAAA,IACV;AAED,QAAI,WAAYA,IAAE,SAAS,KAAK;AAChC,QAAI,MAAM,QAAQ,GAAG;AAEjB,aAAO;AAAA,IACV;AAED,QAAI,YAAY;AAChB,QAAI,WAAW,MAAM;AACjB,UAAI,OAAOA,IAAE,MAAM,UAAU,OAAO,IAAI;AACxC,UAAI,KAAK,QAAQ,GAAG,MAAM,IAAI;AAC1B,gBAAQ;AAAA,MACX;AAED,UAAI,QAAQ,KAAK,UAAU,GAAG,KAAK,QAAQ,GAAG,CAAC;AAC/C,UAAI,QAAQ;AAEZ,UAAI,UAAU,GAAG;AACb,gBAAQ,KAAK,UAAU,KAAK,QAAQ,GAAG,IAAI,CAAC;AAC5C,gBAAQ,MAAMA,IAAE,OAAO,OAAO,SAAS,GAAG;AAAA,MAC7C;AACD,kBAAY,QAAQ;AAAA,IACvB;AAED,WAAO;AAAA,EACX;AAEe,QAAA,cAAA;AAAA,IACX;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ;ACxDA,QAAM,YAAY;AAAA,IACd,cAAc;AAAA,IACd,eAAe;AAAA,EACnB;AAKA,WAAS,WAAW,OAAO,QAAQ,WAAW;AAC1C,QAAI,QAAQ,CAAA;AACZ,aAAS,SAAS,GAAG,SAAS,QAAQ,UAAU;AAC5C,UAAI,SAAS,CAAA;AACb,eAAS,SAAS,GAAG,SAAS,OAAO,UAAU;AAC3C,eAAO,KAAK,SAAS;AAAA,MACxB;AACD,YAAM,KAAK,MAAM;AAAA,IACpB;AACD,WAAO;AAAA,EACX;AAKA,WAAS,0BAA0B,KAAK,gBAAgB;AACpD,QAAI,SAAS,eAAe;AAC5B,QAAI,QAAQ,eAAe,CAAC,EAAE;AAC9B,QAAI,YAAY,IAAI,UAAU,OAAO,MAAM;AAC3C,QAAI,MAAM;AACV,aAAS,SAAS,GAAG,SAAS,QAAQ,UAAU;AAC5C,eAAS,SAAS,GAAG,SAAS,OAAO,UAAU;AAC3C,YAAI,WAAW,eAAe,MAAM,EAAE,MAAM;AAE5C,kBAAU,KAAK,MAAM,CAAC,IAAI;AAC1B,kBAAU,KAAK,MAAM,CAAC,IAAI;AAC1B,kBAAU,KAAK,MAAM,CAAC,IAAI;AAC1B,kBAAU,KAAK,MAAM,CAAC,IAAI;AAC1B,cAAM,MAAM;AAAA,MACf;AAAA,IACJ;AACD,QAAI,aAAa,WAAW,GAAG,GAAG,GAAG,GAAG,OAAO,MAAM;AAAA,EACzD;AAEA,WAAS,yBAAyB,KAAK,aAAa,cAAc;AAC9D,QAAI,YAAY,IAAI,aAAa,GAAG,GAAG,aAAa,YAAY;AAEhE,QAAI,UAAU;AACd,QAAI,iBAAiB,CAAA;AACrB,aAAS,IAAI,GAAG,IAAI,UAAU,KAAK,QAAQ,IAAI,IAAI,GAAG;AAClD,UAAI,MAAM,UAAU,KAAK,CAAC;AAC1B,qBAAe,IAAI,CAAC,IAAI;AACxB,UAAI,QAAQ,KAAK;AACb,kBAAU;AAAA,MACb;AAAA,IACJ;AAED,QAAI,SAAS;AACT,aAAO;AAAA,IACV;AAED,qBAAiBA,IAAE,MAAM,gBAAgB,WAAW;AACpD,WAAO;AAAA,EACX;AAEA,WAAS,WAAW,KAAK,aAAa,cAAc;AAChD,QAAI,YAAY;AAChB,QAAI,YAAY;AAChB,QAAI,UAAU;AACd,QAAI,WAAW;AAEf,QAAI,SAAS,GAAG,GAAG,aAAa,YAAY;AAC5C,QAAI,KAAI;AAAA,EACZ;AAEA,iBAAe,wBAAwB,QAAQ,UAAU,WAAW,cAAc;AAC9E,WAAO,IAAI,QAAQ,CAAC,SAAS,WAAW;AACpC,aAAO,OAAO,eAAgB,MAAM;AAChC,cAAM,OAAO,IAAI,KAAK,CAAC,IAAI,GAAG,QAAQ;AACtC,gBAAQ,IAAI;AAAA,MACxB,GAAW,UAAU,GAAG;AAAA,IACxB,CAAK;AAAA,EACL;AAKA,WAAS,2BAA2B,WAAW;AAC3C,QAAI,aAAa,MAAM;AACnB;AAAA,IACH;AAED,QAAI,iBAAiB,CAAA;AACrBA,QAAE,KAAK,UAAU,MAAM,GAAG,GAAG,CAAC,SAAS,WAAW;AAC9C,UAAI,MAAM,CAAA;AACVA,UAAE,KAAK,QAAQ,MAAM,GAAG,GAAG,CAAC,MAAM,WAAW;AACzC,YAAI,KAAK,IAAI;AAAA,MACzB,CAAS;AACD,qBAAe,KAAK,GAAG;AAAA,IAC/B,CAAK;AACD,WAAO;AAAA,EACX;AAEA,WAAS,2BAA2B,gBAAgB;AAChD,QAAI,kBAAkB,MAAM;AACxB;AAAA,IACH;AAED,QAAI,YAAY;AAChB,aAAS,SAAS,GAAG,SAAS,eAAe,QAAQ,UAAU;AAC3D,UAAI,SAAS,GAAG;AACZ,qBAAa;AAAA,MAChB;AACD,mBAAa,eAAe,MAAM,EAAE,KAAK,GAAG;AAAA,IAC/C;AACD,WAAO;AAAA,EACX;AAEe,QAAA,iBAAA;AAAA,IACX;AAAA,IACA;AAAA,IACA;AAAA;AAAA,IAEA;AAAA;AAAA,IAGA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ;ACjIA,MAAI,UAAQ;AAEZ,WAAS,aAAa,MAAM;AACxB,QAAG,CAAC,MAAK;AACL,aAAO;AAAA,IACV;AAED,QAAI,UAAU,KAAK,QAAQ,SAAS,EAAE,EAAE;AACxC,WAAO;AAAA,EACX;AAGe,QAAA,cAAA;AAAA,IACX;AAAA,EACJ;;;;;;;;;;;;;;;","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 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, 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]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "sirius-common-utils",
3
- "version": "1.0.33",
3
+ "version": "1.0.35",
4
4
  "description": "",
5
5
  "main": "./dist/sirius-common-utils.umd.cjs",
6
6
  "module": "./dist/sirius-common-utils.js",