sirius-common-utils 1.0.29 → 1.0.31

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