sirius-common-utils 1.0.25 → 1.0.27
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.
|
@@ -155,12 +155,10 @@ async function init$2(deviceType, pCurrUserInfoCache, pCustomizedUserUtils, pUri
|
|
|
155
155
|
}
|
|
156
156
|
customizedUserUtils = pCustomizedUserUtils;
|
|
157
157
|
uriGetCurrUserInfo = pUriGetCurrUserInfo || `/api/user/getCurrUserInfo`;
|
|
158
|
-
await getCurrUserModel();
|
|
159
158
|
setDeviceType(deviceType);
|
|
160
159
|
}
|
|
161
160
|
async function clear() {
|
|
162
161
|
currUserInfoCache = null;
|
|
163
|
-
appUserModel = null;
|
|
164
162
|
AppUtils.setLocalStorageObjItem("CURRENT_USER", null);
|
|
165
163
|
}
|
|
166
164
|
function setDeviceType(deviceType) {
|
|
@@ -180,9 +178,13 @@ async function getCurrUserInfo() {
|
|
|
180
178
|
if (customizedUserUtils && customizedUserUtils.getUserInfo) {
|
|
181
179
|
let currUser = await customizedUserUtils.getUserInfo();
|
|
182
180
|
currUserInfoCache = currUser;
|
|
181
|
+
AppUtils.setLocalStorageObjItem("CURRENT_USER", currUser);
|
|
183
182
|
return currUser;
|
|
184
183
|
} else {
|
|
185
|
-
|
|
184
|
+
let currUser = await AxiosUtils.getJsonData(uriGetCurrUserInfo);
|
|
185
|
+
currUserInfoCache = currUser;
|
|
186
|
+
AppUtils.setLocalStorageObjItem("CURRENT_USER", currUser);
|
|
187
|
+
return currUser;
|
|
186
188
|
}
|
|
187
189
|
}
|
|
188
190
|
function getCurrUserInfoCache() {
|
|
@@ -200,21 +202,14 @@ function getCurrUserId() {
|
|
|
200
202
|
return (_a = getCurrUserInfoCache()) == null ? void 0 : _a.id;
|
|
201
203
|
}
|
|
202
204
|
let uriGetCurrUserInfo = null;
|
|
203
|
-
let appUserModel = null;
|
|
204
|
-
async function getCurrUserModel() {
|
|
205
|
-
if (appUserModel == null) {
|
|
206
|
-
appUserModel = await AxiosUtils.getJsonData(uriGetCurrUserInfo);
|
|
207
|
-
}
|
|
208
|
-
return appUserModel;
|
|
209
|
-
}
|
|
210
205
|
function userHasRole(roleCodeOrArray) {
|
|
211
|
-
if (
|
|
206
|
+
if (currUserInfoCache == null) {
|
|
212
207
|
return false;
|
|
213
208
|
}
|
|
214
209
|
if (_$1.isArray(roleCodeOrArray)) {
|
|
215
|
-
return !_$1.isEmpty(_$1.intersection(
|
|
210
|
+
return !_$1.isEmpty(_$1.intersection(currUserInfoCache.roleList, roleCodeOrArray));
|
|
216
211
|
} else {
|
|
217
|
-
return _$1.includes(
|
|
212
|
+
return _$1.includes(currUserInfoCache.roleList, roleCodeOrArray);
|
|
218
213
|
}
|
|
219
214
|
}
|
|
220
215
|
const LoginUserUtils = {
|
|
@@ -223,7 +218,6 @@ const LoginUserUtils = {
|
|
|
223
218
|
getCurrUserInfo,
|
|
224
219
|
getCurrUserInfoCache,
|
|
225
220
|
getCurrUserId,
|
|
226
|
-
getCurrUserModel,
|
|
227
221
|
userHasRole,
|
|
228
222
|
isMobileDevice: isMobileDevice$1
|
|
229
223
|
};
|
|
@@ -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 await getCurrUserModel();\r\n\r\n setDeviceType(deviceType);\r\n}\r\n\r\nasync function clear() {\r\n currUserInfoCache = null;\r\n appUserModel = 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 return currUser;\r\n } else {\r\n return getCurrUserInfoCache();\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 // 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\nlet appUserModel = null;\r\n\r\nasync function getCurrUserModel() {\r\n if (appUserModel == null) {\r\n appUserModel = await AxiosUtils.getJsonData(uriGetCurrUserInfo);\r\n }\r\n return appUserModel;\r\n}\r\n\r\n/**\r\n * check user role\r\n */\r\nfunction userHasRole(roleCodeOrArray) {\r\n if (appUserModel == null) {\r\n return false;\r\n }\r\n\r\n if (_.isArray(roleCodeOrArray)) {\r\n return !_.isEmpty(_.intersection(appUserModel.roleList, roleCodeOrArray));\r\n } else {\r\n return _.includes(appUserModel.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 getCurrUserModel: getCurrUserModel,\r\n userHasRole: userHasRole,\r\n\r\n isMobileDevice: isMobileDevice,\r\n\r\n};\r\n","import _ from 'lodash';\r\n\r\nimport CfgUtils from \"./CfgUtils\";\r\nimport LoginUserUtils from \"./LoginUserUtils\";\r\n\r\nlet axios = null;\r\nlet urlContext = null; //URL路径前缀\r\n\r\nlet RESULT = {\r\n SUCCESS: 200,\r\n};\r\n\r\n\r\nlet EXCEPTION_CODE = {\r\n AUTHENTICATION_FAILED_COMMON: 901,\r\n AUTHENTICATION_SESSION_EXPIRED: 905,\r\n NETWORK_ISSUE_CLIENT: 911,\r\n SYS_UNKNOWN_ISSUE: 999,\r\n}\r\n\r\nlet globalDialogUtilsInstance;\r\nlet globalSpinHandlerInstance;\r\nlet loginServiceInstance;\r\n\r\nfunction init(pAxios, pContext, pSpinHandlerInstance, pDialogUtilsInstance, pLoginServiceInstance) {\r\n axios = pAxios;\r\n\r\n // axios.defaults.baseURL = getPath(\"/xms-test\");\r\n axios.defaults.baseURL = getPath(pContext);\r\n axios.defaults.timeout = CfgUtils.ajax.timeout;\r\n\r\n globalDialogUtilsInstance = pDialogUtilsInstance;\r\n globalSpinHandlerInstance = pSpinHandlerInstance;\r\n loginServiceInstance = pLoginServiceInstance;\r\n}\r\n\r\nfunction getHostName(){\r\n return window.location.hostname;\r\n}\r\n\r\n/**\r\n *\r\n */\r\nfunction loadParamFromLocationSearch(paramKey) {\r\n var paramsStr = window.location.search;\r\n if (paramsStr.indexOf('?') === 0) {\r\n paramsStr = paramsStr.substring(1);\r\n }\r\n var entryParams = paramsStr.split('&');\r\n var entryParamStr = _.find(entryParams, function (param) {\r\n return param.indexOf(paramKey) === 0;\r\n });\r\n if (!entryParamStr) {\r\n return null;\r\n }\r\n var param = entryParamStr.split('=');\r\n if (!param[1]) {\r\n return null;\r\n }\r\n return param[1];\r\n}\r\n\r\n/**\r\n * get the entire url path\r\n * @param path start with '/'\r\n * @returns {string|*}\r\n */\r\nfunction getPath(path) {\r\n if (_.startsWith(path, \"http\")) {\r\n return path;\r\n }\r\n\r\n if (urlContext == null) {\r\n urlContext = window.document.location.href;\r\n let lastIdx = urlContext.indexOf('.htm');\r\n if (lastIdx > -1) {\r\n urlContext = urlContext.substring(0, urlContext.lastIndexOf('/', lastIdx));\r\n } else {\r\n lastIdx = urlContext.indexOf('/#');\r\n if (lastIdx > -1) {\r\n urlContext = urlContext.substring(0, lastIdx);\r\n } else {\r\n lastIdx = urlContext.indexOf('#');\r\n if (lastIdx > -1) {\r\n urlContext = urlContext.substring(0, lastIdx);\r\n } else {\r\n console.log(`Could not identify URL path ${urlContext}`);\r\n }\r\n }\r\n }\r\n //http://localhost:3000/index.html/#/index/highTriggerWiggleRoomValue -> http://localhost:3000\r\n }\r\n\r\n if(urlContext.endsWith(\"/\")){ //remove the last '/'\r\n urlContext = urlContext.substring(0, urlContext.length-1);\r\n }\r\n return urlContext + path;\r\n}\r\n\r\n/**\r\n * Download excel from server\r\n */\r\nfunction downloadExcelData(url, data, headers, options = {}) {\r\n return new Promise(async function (resolve, reject) {\r\n headers = headers || {};\r\n if (headers['Content-Type'] == null) {\r\n headers['Content-Type'] = 'application/json';\r\n }\r\n\r\n await buildUserAccessToken(headers);\r\n\r\n try {\r\n let response = await axios({\r\n method: 'post',\r\n url: url,\r\n data: data,\r\n headers: headers,\r\n responseType: 'blob'\r\n });\r\n if (response.data) {\r\n if (response.data.errorCode && response.data.errorCode !== RESULT.SUCCESS) {\r\n let errorResult = await handlerError(url, data, response);\r\n resolve(errorResult);\r\n return;\r\n }\r\n }\r\n\r\n const link = document.createElement('a')\r\n let blob = new Blob([response.data], {type: 'application/vnd.ms-excel'});\r\n let contentDisposition = response.headers[\"content-disposition\"];\r\n\r\n if (contentDisposition == null) {\r\n let errorResult = await handlerError(url, data, {\r\n data: {\r\n errorCode: EXCEPTION_CODE.SYS_UNKNOWN_ISSUE,\r\n error: \"System Error\",\r\n }\r\n });\r\n resolve(errorResult);\r\n return;\r\n }\r\n\r\n let temp = contentDisposition.split(\";\")[1].split(\"ilename=\")[1];\r\n var fileName = decodeURIComponent(temp);\r\n console.log(fileName)\r\n link.style.display = 'none'\r\n link.href = URL.createObjectURL(blob);\r\n link.setAttribute('download', fileName);\r\n document.body.appendChild(link);\r\n link.click();\r\n document.body.removeChild(link);\r\n\r\n resolve(true);\r\n } catch (e) {\r\n let errorResult = await handlerError(url, {}, e);\r\n resolve(errorResult);\r\n }\r\n });\r\n}\r\n\r\n\r\n/**\r\n * Download image from server, and return ImageData blob\r\n */\r\nfunction downloadImageData(url, data, headers, options = {}) {\r\n return new Promise(async function (resolve, reject) {\r\n headers = headers || {};\r\n if (headers['Content-Type'] == null) {\r\n headers['Content-Type'] = 'application/json';\r\n }\r\n\r\n await buildUserAccessToken(headers);\r\n\r\n try {\r\n let response = await axios({\r\n method: 'post',\r\n url: url,\r\n data: data,\r\n headers: headers,\r\n responseType: 'blob'\r\n });\r\n let imageData = response.data;\r\n if (imageData!=null) {\r\n if (response.data.errorCode && response.data.errorCode !== RESULT.SUCCESS) {\r\n let errorResult = await handlerError(url, data, response);\r\n resolve(null);\r\n return;\r\n }\r\n }\r\n resolve(imageData);\r\n } catch (e) {\r\n let errorResult = await handlerError(url, {}, e);\r\n resolve(null);\r\n }\r\n });\r\n}\r\n\r\n/**\r\n *\r\n */\r\nfunction downloadServerData(url) {\r\n return new Promise(function (resolve, reject) {\r\n\r\n const hyperlink = document.createElement('a');\r\n hyperlink.style.display = 'none';//隐藏,没必要展示出来\r\n hyperlink.href = url;\r\n hyperlink.target = \"_blank\";\r\n document.body.appendChild(hyperlink);\r\n hyperlink.click();\r\n URL.revokeObjectURL(hyperlink.href); // 释放URL 对象\r\n document.body.removeChild(hyperlink);//下载\r\n\r\n resolve(true);\r\n });\r\n}\r\n\r\n/**\r\n *\r\n */\r\nfunction downloadServerBlobData(url) {\r\n return new Promise(function (resolve, reject) {\r\n axios.get(url, {\r\n responseType: 'blob',\r\n }).then((res) => {\r\n resolve(res.data);\r\n }, (error) => {\r\n resolve(null);\r\n });\r\n });\r\n}\r\n\r\n/**\r\n * upload file to server\r\n * TODO Joey need check with FormData scenario\r\n */\r\nfunction uploadFile(url, file, headers, onUploadProgress, customizedOptions) {\r\n headers = headers || {};\r\n\r\n let formdata = new FormData();\r\n if (_.isArray(file)) {\r\n formdata.append(\"files\", file);\r\n } else {\r\n formdata.append(\"file\", file)\r\n }\r\n\r\n customizedOptions = customizedOptions || {};\r\n return execute(\"POST\", url, formdata, headers, onUploadProgress, customizedOptions)\r\n}\r\n\r\n/**\r\n * getStaticTextFile\r\n */\r\nfunction getStaticTextFile(url) {\r\n return new Promise(async function (resolve, reject) {\r\n axios.get(url).then((res) => {\r\n resolve(res);\r\n }, (error) => {\r\n resolve(null);\r\n });\r\n });\r\n}\r\n\r\n/**\r\n * build form-data from param object\r\n */\r\nfunction getUrlParam(params) {\r\n if (params) {\r\n var param = '';\r\n _.each(params, function (i, val) {\r\n if (i != null) {\r\n param += val + '=' + encodeURIComponent(i) + '&';\r\n } else {\r\n param += val + '=&';\r\n }\r\n });\r\n param = param.substring(0, param.length - 1);\r\n return param;\r\n } else {\r\n return '';\r\n }\r\n}\r\n\r\nfunction getFormData(url, headers, customizedOptions) {\r\n headers = headers || {};\r\n if (headers['Content-Type'] == null) {\r\n headers['Content-Type'] = 'application/x-www-form-urlencoded';\r\n }\r\n\r\n customizedOptions = customizedOptions || {};\r\n\r\n return execute(\"GET\", url, null, headers, null, customizedOptions)\r\n}\r\n\r\nfunction postFormData(url, dataObject, headers, customizedOptions) {\r\n let formdata = null;\r\n if (dataObject) {\r\n formdata = getUrlParam(dataObject);\r\n }\r\n\r\n headers = headers || {};\r\n if (headers['Content-Type'] == null) {\r\n headers['Content-Type'] = 'application/x-www-form-urlencoded';\r\n }\r\n\r\n customizedOptions = customizedOptions || {};\r\n\r\n return execute(\"POST\", url, formdata, headers, null, customizedOptions)\r\n}\r\n\r\nfunction getJsonData(url, headers, customizedOptions) {\r\n headers = headers || {};\r\n if (headers['Content-Type'] == null) {\r\n headers['Content-Type'] = 'application/json';\r\n }\r\n\r\n return execute(\"GET\", url, null, headers, null, customizedOptions)\r\n}\r\n\r\nfunction postJsonData(url, dataObject, headers, customizedOptions) {\r\n headers = headers || {};\r\n if (headers['Content-Type'] == null) {\r\n headers['Content-Type'] = 'application/json';\r\n }\r\n\r\n return execute(\"POST\", url, dataObject, headers, null, customizedOptions)\r\n}\r\n\r\n/**\r\n * General Axios Data request\r\n *\r\n * @param method\r\n * @param url\r\n * @param data\r\n * @param headers\r\n * @param customizedOptions: { }customizedErrorHandlerFlag: false }\r\n */\r\nfunction execute(method, url, data, headers, onUploadProgress, customizedOptions = {}) {\r\n return new Promise(function (resolve, reject) {\r\n //check and set User AccessToken in the request header\r\n buildUserAccessToken(headers).then(\r\n function () {\r\n //AccessToken is valid\r\n axios({\r\n method: method,\r\n url: url,\r\n data: data,\r\n headers: headers,\r\n onUploadProgress: onUploadProgress,\r\n })\r\n .then((response) => {\r\n if (response.data) {\r\n if (response.data.errorCode && response.data.errorCode !== RESULT.SUCCESS) {\r\n if (customizedOptions.customizedErrorHandlerFlag) {\r\n resolve(response.data);\r\n } else {\r\n handlerError(url, data, response).then((result) => {\r\n resolve(result);\r\n });\r\n }\r\n } else {\r\n resolve(response.data);\r\n }\r\n } else {\r\n resolve(response.data);\r\n }\r\n }, (error) => {\r\n if (customizedOptions.customizedErrorHandlerFlag) {\r\n resolve(error);\r\n } else {\r\n handlerError(url, data, error).then((result) => {\r\n resolve(result);\r\n });\r\n }\r\n });\r\n },\r\n (error) => {\r\n //AccessToken is invalid\r\n handlerError(url, data, error).then((result) => {\r\n resolve(result);\r\n });\r\n });\r\n\r\n });\r\n}\r\n\r\nasync function buildUserAccessToken(headers) {\r\n let currUserInfo = await LoginUserUtils.getCurrUserInfo();\r\n if (currUserInfo && currUserInfo.accessToken) {\r\n if (headers['ENOS_ACCESS_TOKEN'] == null) {\r\n headers['ENOS_ACCESS_TOKEN'] = currUserInfo.accessToken;\r\n }\r\n }\r\n}\r\n\r\n\r\n/**\r\n * build error message base on errorCode\r\n */\r\nfunction getErrorMsgByCode(errorCode, errorMsg) {\r\n return errorMsg;\r\n}\r\n\r\n/**\r\n * request error handler\r\n * if multiple ajax error happened. just process the first one.\r\n */\r\nvar reqErrorInProcessing = false;\r\n\r\nasync function handlerError(url, reqData, responseOrAxiosError) {\r\n if (reqErrorInProcessing === true) {\r\n return;\r\n }\r\n\r\n reqErrorInProcessing = true;\r\n await handlerErrorLogic(url, reqData, responseOrAxiosError);\r\n reqErrorInProcessing = false;\r\n}\r\n\r\nasync function showErrorMessage(errorCode, heading = \"System Error\", message) {\r\n globalSpinHandlerInstance.complete();\r\n await globalDialogUtilsInstance.showAppErrorDialog(heading, message);\r\n}\r\n\r\nasync function handlerErrorLogic(url, reqData, responseOrAxiosError) {\r\n let errorCode = _.get(responseOrAxiosError, 'data.errorCode');\r\n let error = _.get(responseOrAxiosError, 'data.error');\r\n\r\n if (!errorCode && _.get(responseOrAxiosError, 'code')) {\r\n let axiosErrorStatus = _.get(responseOrAxiosError, 'response.status');\r\n let axiosErrorStatusText = _.get(responseOrAxiosError, 'response.statusText');\r\n\r\n if (_.includes([502, 504], axiosErrorStatus)) {\r\n errorCode = EXCEPTION_CODE.NETWORK_ISSUE_CLIENT;\r\n error = axiosErrorStatusText;\r\n } else if (_.includes([400], axiosErrorStatus)) {\r\n errorCode = EXCEPTION_CODE.SYS_UNKNOWN_ISSUE;\r\n error = axiosErrorStatusText;\r\n } else if (_.includes([404], axiosErrorStatus)) {\r\n errorCode = EXCEPTION_CODE.SYS_UNKNOWN_ISSUE;\r\n error = axiosErrorStatusText;\r\n }\r\n }\r\n\r\n //session timeout\r\n var sessionTimeoutErrorCodes = [\r\n EXCEPTION_CODE.AUTHENTICATION_FAILED_COMMON,\r\n EXCEPTION_CODE.AUTHENTICATION_SESSION_EXPIRED,\r\n ]\r\n\r\n if (_.includes(sessionTimeoutErrorCodes, errorCode)) {\r\n await appSessionExit(errorCode, true);\r\n return;\r\n }\r\n\r\n if (EXCEPTION_CODE.NETWORK_ISSUE_CLIENT === errorCode) {\r\n await showErrorMessage(errorCode, \"Network issue\", error);\r\n return;\r\n }\r\n\r\n await showErrorMessage(errorCode, null, getErrorMsgByCode(errorCode, error));\r\n}\r\n\r\n/**\r\n * application exit handler\r\n */\r\nasync function appSessionExit(resultCode, forceCloseFlag) {\r\n if(loginServiceInstance && loginServiceInstance.logout){\r\n await loginServiceInstance.logout();\r\n }else {\r\n await globalDialogUtilsInstance.showAppErrorDialog(\"Session Timeout\", \"Please login again\");\r\n }\r\n}\r\n\r\nconst AxiosUtils = {\r\n init: init,\r\n getHostName: getHostName,\r\n loadParamFromLocationSearch: loadParamFromLocationSearch,\r\n getPath: getPath,\r\n getUrlParam: getUrlParam,\r\n getFormData: getFormData,\r\n postFormData: postFormData,\r\n getJsonData: getJsonData,\r\n postJsonData: postJsonData,\r\n downloadExcelData: downloadExcelData,\r\n downloadImageData: downloadImageData,\r\n downloadServerData: downloadServerData,\r\n downloadServerBlobData: downloadServerBlobData,\r\n uploadFile: uploadFile,\r\n getStaticTextFile: getStaticTextFile,\r\n appSessionExit: appSessionExit,\r\n handlerError: handlerError,\r\n getErrorMsgByCode: getErrorMsgByCode,\r\n\r\n RESULT: RESULT,\r\n EXCEPTION_CODE: EXCEPTION_CODE,\r\n};\r\n\r\nexport default AxiosUtils;\r\n","!function(e,n){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=n():\"function\"==typeof define&&define.amd?define(n):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).dayjs_plugin_updateLocale=n()}(this,(function(){\"use strict\";return function(e,n,t){t.updateLocale=function(e,n){var o=t.Ls[e];if(o)return(n?Object.keys(n):[]).forEach((function(e){o[e]=n[e]})),o}}}));","!function(e,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define(t):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).dayjs_plugin_customParseFormat=t()}(this,(function(){\"use strict\";var e={LTS:\"h:mm:ss A\",LT:\"h:mm A\",L:\"MM/DD/YYYY\",LL:\"MMMM D, YYYY\",LLL:\"MMMM D, YYYY h:mm A\",LLLL:\"dddd, MMMM D, YYYY h:mm A\"},t=/(\\[[^[]*\\])|([-_:/.,()\\s]+)|(A|a|YYYY|YY?|MM?M?M?|Do|DD?|hh?|HH?|mm?|ss?|S{1,3}|z|ZZ?)/g,n=/\\d\\d/,r=/\\d\\d?/,i=/\\d*[^-_:/,()\\s\\d]+/,o={},s=function(e){return(e=+e)+(e>68?1900:2e3)};var a=function(e){return function(t){this[e]=+t}},f=[/[+-]\\d\\d:?(\\d\\d)?|Z/,function(e){(this.zone||(this.zone={})).offset=function(e){if(!e)return 0;if(\"Z\"===e)return 0;var t=e.match(/([+-]|\\d\\d)/g),n=60*t[1]+(+t[2]||0);return 0===n?0:\"+\"===t[0]?-n:n}(e)}],h=function(e){var t=o[e];return t&&(t.indexOf?t:t.s.concat(t.f))},u=function(e,t){var n,r=o.meridiem;if(r){for(var i=1;i<=24;i+=1)if(e.indexOf(r(i,0,t))>-1){n=i>12;break}}else n=e===(t?\"pm\":\"PM\");return n},d={A:[i,function(e){this.afternoon=u(e,!1)}],a:[i,function(e){this.afternoon=u(e,!0)}],S:[/\\d/,function(e){this.milliseconds=100*+e}],SS:[n,function(e){this.milliseconds=10*+e}],SSS:[/\\d{3}/,function(e){this.milliseconds=+e}],s:[r,a(\"seconds\")],ss:[r,a(\"seconds\")],m:[r,a(\"minutes\")],mm:[r,a(\"minutes\")],H:[r,a(\"hours\")],h:[r,a(\"hours\")],HH:[r,a(\"hours\")],hh:[r,a(\"hours\")],D:[r,a(\"day\")],DD:[n,a(\"day\")],Do:[i,function(e){var t=o.ordinal,n=e.match(/\\d+/);if(this.day=n[0],t)for(var r=1;r<=31;r+=1)t(r).replace(/\\[|\\]/g,\"\")===e&&(this.day=r)}],M:[r,a(\"month\")],MM:[n,a(\"month\")],MMM:[i,function(e){var t=h(\"months\"),n=(h(\"monthsShort\")||t.map((function(e){return e.slice(0,3)}))).indexOf(e)+1;if(n<1)throw new Error;this.month=n%12||n}],MMMM:[i,function(e){var t=h(\"months\").indexOf(e)+1;if(t<1)throw new Error;this.month=t%12||t}],Y:[/[+-]?\\d+/,a(\"year\")],YY:[n,function(e){this.year=s(e)}],YYYY:[/\\d{4}/,a(\"year\")],Z:f,ZZ:f};function c(n){var r,i;r=n,i=o&&o.formats;for(var s=(n=r.replace(/(\\[[^\\]]+])|(LTS?|l{1,4}|L{1,4})/g,(function(t,n,r){var o=r&&r.toUpperCase();return n||i[r]||e[r]||i[o].replace(/(\\[[^\\]]+])|(MMMM|MM|DD|dddd)/g,(function(e,t,n){return t||n.slice(1)}))}))).match(t),a=s.length,f=0;f<a;f+=1){var h=s[f],u=d[h],c=u&&u[0],l=u&&u[1];s[f]=l?{regex:c,parser:l}:h.replace(/^\\[|\\]$/g,\"\")}return function(e){for(var t={},n=0,r=0;n<a;n+=1){var i=s[n];if(\"string\"==typeof i)r+=i.length;else{var o=i.regex,f=i.parser,h=e.slice(r),u=o.exec(h)[0];f.call(t,u),e=e.replace(u,\"\")}}return function(e){var t=e.afternoon;if(void 0!==t){var n=e.hours;t?n<12&&(e.hours+=12):12===n&&(e.hours=0),delete e.afternoon}}(t),t}}return function(e,t,n){n.p.customParseFormat=!0,e&&e.parseTwoDigitYear&&(s=e.parseTwoDigitYear);var r=t.prototype,i=r.parse;r.parse=function(e){var t=e.date,r=e.utc,s=e.args;this.$u=r;var a=s[1];if(\"string\"==typeof a){var f=!0===s[2],h=!0===s[3],u=f||h,d=s[2];h&&(d=s[2]),o=this.$locale(),!f&&d&&(o=n.Ls[d]),this.$d=function(e,t,n){try{if([\"x\",\"X\"].indexOf(t)>-1)return new Date((\"X\"===t?1e3:1)*e);var r=c(t)(e),i=r.year,o=r.month,s=r.day,a=r.hours,f=r.minutes,h=r.seconds,u=r.milliseconds,d=r.zone,l=new Date,m=s||(i||o?1:l.getDate()),M=i||l.getFullYear(),Y=0;i&&!o||(Y=o>0?o-1:l.getMonth());var p=a||0,v=f||0,D=h||0,g=u||0;return d?new Date(Date.UTC(M,Y,m,p,v,D,g+60*d.offset*1e3)):n?new Date(Date.UTC(M,Y,m,p,v,D,g)):new Date(M,Y,m,p,v,D,g)}catch(e){return new Date(\"\")}}(t,a,r),this.init(),d&&!0!==d&&(this.$L=this.locale(d).$L),u&&t!=this.format(a)&&(this.$d=new Date(\"\")),o={}}else if(a instanceof Array)for(var l=a.length,m=1;m<=l;m+=1){s[1]=a[m-1];var M=n.apply(this,s);if(M.isValid()){this.$d=M.$d,this.$L=M.$L,this.init();break}m===l&&(this.$d=new Date(\"\"))}else i.call(this,e)}}}));","!function(t,i){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=i():\"function\"==typeof define&&define.amd?define(i):(t=\"undefined\"!=typeof globalThis?globalThis:t||self).dayjs_plugin_utc=i()}(this,(function(){\"use strict\";var t=\"minute\",i=/[+-]\\d\\d(?::?\\d\\d)?/g,e=/([+-]|\\d\\d)/g;return function(s,f,n){var u=f.prototype;n.utc=function(t){var i={date:t,utc:!0,args:arguments};return new f(i)},u.utc=function(i){var e=n(this.toDate(),{locale:this.$L,utc:!0});return i?e.add(this.utcOffset(),t):e},u.local=function(){return n(this.toDate(),{locale:this.$L,utc:!1})};var o=u.parse;u.parse=function(t){t.utc&&(this.$u=!0),this.$utils().u(t.$offset)||(this.$offset=t.$offset),o.call(this,t)};var r=u.init;u.init=function(){if(this.$u){var t=this.$d;this.$y=t.getUTCFullYear(),this.$M=t.getUTCMonth(),this.$D=t.getUTCDate(),this.$W=t.getUTCDay(),this.$H=t.getUTCHours(),this.$m=t.getUTCMinutes(),this.$s=t.getUTCSeconds(),this.$ms=t.getUTCMilliseconds()}else r.call(this)};var a=u.utcOffset;u.utcOffset=function(s,f){var n=this.$utils().u;if(n(s))return this.$u?0:n(this.$offset)?a.call(this):this.$offset;if(\"string\"==typeof s&&(s=function(t){void 0===t&&(t=\"\");var s=t.match(i);if(!s)return null;var f=(\"\"+s[0]).match(e)||[\"-\",0,0],n=f[0],u=60*+f[1]+ +f[2];return 0===u?0:\"+\"===n?u:-u}(s),null===s))return this;var u=Math.abs(s)<=16?60*s:s,o=this;if(f)return o.$offset=u,o.$u=0===s,o;if(0!==s){var r=this.$u?this.toDate().getTimezoneOffset():-1*this.utcOffset();(o=this.local().add(u+r,t)).$offset=u,o.$x.$localOffset=r}else o=this.utc();return o};var h=u.format;u.format=function(t){var i=t||(this.$u?\"YYYY-MM-DDTHH:mm:ss[Z]\":\"\");return h.call(this,i)},u.valueOf=function(){var t=this.$utils().u(this.$offset)?0:this.$offset+(this.$x.$localOffset||this.$d.getTimezoneOffset());return this.$d.valueOf()-6e4*t},u.isUTC=function(){return!!this.$u},u.toISOString=function(){return this.toDate().toISOString()},u.toString=function(){return this.toDate().toUTCString()};var l=u.toDate;u.toDate=function(t){return\"s\"===t&&this.$offset?n(this.format(\"YYYY-MM-DD HH:mm:ss:SSS\")).toDate():l.call(this)};var c=u.diff;u.diff=function(t,i,e){if(t&&this.$u===t.$u)return c.call(this,t,i,e);var s=this.local(),f=n(t).local();return c.call(s,f,i,e)}}}));","import dayjs from \"dayjs\";\r\n\r\n\r\nimport updateLocale from 'dayjs/plugin/updateLocale';\r\nimport customParseFormat from 'dayjs/plugin/customParseFormat';\r\nimport utc from 'dayjs/plugin/utc';\r\n\r\ndayjs.extend(utc);\r\ndayjs.extend(updateLocale);\r\ndayjs.extend(customParseFormat);\r\n\r\nconst FORMAT_DATE = \"DD-MM-YYYY\";\r\nconst FORMAT_DATETIME = \"DD-MM-YYYY HH:mm:ss\";\r\nconst FORMAT_YEARMONTH = \"YYYY-MMMM\";\r\nconst FORMAT_YEARWEEK = \"YYYY-WW\";\r\nconst FORMAT_DAYOFMONTH = \"DD\";\r\nconst FORMAT_YEAR = \"YYYY\";\r\nconst FORMAT_TIME = \"HH:mm:ss\";\r\n\r\nfunction getCurrentMoment(){\r\n return dayjs();\r\n}\r\n\r\nfunction getCurrentDateText(){\r\n return convertMomentToDateText(getCurrentMoment());\r\n}\r\n\r\nfunction getCurrentDateTimeText(){\r\n return convertMomentToDateTimeText(getCurrentMoment());\r\n}\r\n\r\nfunction getCurrentDate(){\r\n return getCurrentMoment().toDate();\r\n}\r\n\r\nfunction convertMomentToTimestamp(moment) {\r\n if (moment) {\r\n return moment.toDate().getTime();\r\n } else {\r\n return null;\r\n }\r\n}\r\n\r\nfunction convertMomentToDateText(moment) {\r\n if (moment) {\r\n return moment.format(FORMAT_DATE);\r\n } else {\r\n return '';\r\n }\r\n}\r\n\r\nfunction convertTimestampToMoment(timestamp) {\r\n if (timestamp && timestamp > 0) {\r\n return dayjs(timestamp);\r\n } else {\r\n return null;\r\n }\r\n}\r\n\r\nfunction convertMomentToDateTimeText(moment) {\r\n if (moment) {\r\n return moment.format(FORMAT_DATETIME);\r\n } else {\r\n return \"\";\r\n }\r\n}\r\n\r\nfunction convertMomentToYearText(moment) {\r\n if (moment) {\r\n return moment.format(FORMAT_YEAR);\r\n } else {\r\n return \"\";\r\n }\r\n}\r\n\r\nfunction convertMomentToYearMonthText(moment) {\r\n if (moment) {\r\n return moment.format(FORMAT_YEARMONTH);\r\n } else {\r\n return \"\";\r\n }\r\n}\r\n\r\nfunction convertMomentToDayOfMonthText(moment) {\r\n if (moment) {\r\n return moment.format(FORMAT_DAYOFMONTH);\r\n } else {\r\n return \"\";\r\n }\r\n}\r\n\r\n\r\n\r\nfunction convertMomentToTimeText(moment) {\r\n if (moment) {\r\n return moment.format(FORMAT_TIME);\r\n } else {\r\n return \"\";\r\n }\r\n}\r\n\r\nfunction convertDateTimeTextToMoment(dateTimeText) {\r\n if (dateTimeText) {\r\n return dayjs(dateTimeText, FORMAT_DATETIME);\r\n } else {\r\n return null;\r\n }\r\n}\r\n\r\nfunction convertYearMonthTextToMoment(yearMonthText) {\r\n if (yearMonthText) {\r\n return dayjs(yearMonthText, FORMAT_YEARMONTH);\r\n } else {\r\n return null;\r\n }\r\n}\r\n\r\nfunction convertDateTextToMoment(dateText) {\r\n if (dateText) {\r\n return dayjs(dateText, FORMAT_DATE);\r\n } else {\r\n return null;\r\n }\r\n}\r\n\r\nfunction convertTimeTextToMoment(dateTimeText) {\r\n if (dateTimeText) {\r\n return dayjs(dateTimeText, FORMAT_TIME);\r\n } else {\r\n return null;\r\n }\r\n}\r\n\r\nfunction convertDateTextToDate(dateText) {\r\n if (dateText) {\r\n return dayjs(dateText, FORMAT_DATE).toDate();\r\n } else {\r\n return null;\r\n }\r\n}\r\n\r\nfunction convertDateTimeTextToDate(dateTimeText) {\r\n if (dateTimeText) {\r\n let moment = dayjs(dateTimeText, FORMAT_DATETIME);\r\n return dayjs(dateTimeText, FORMAT_DATETIME).toDate();\r\n } else {\r\n return null;\r\n }\r\n}\r\n\r\nfunction convertTimestampToDateText(timestamp) {\r\n let moments = convertTimestampToMoment(timestamp);\r\n let text = convertMomentToDateText(moments);\r\n return text;\r\n}\r\n\r\nfunction convertTimestampToDateTimeText(timestamp) {\r\n let moments = convertTimestampToMoment(timestamp);\r\n let text = convertMomentToDateTimeText(moments);\r\n return text;\r\n}\r\n\r\nfunction convertTimestampToTimeText(timestamp) {\r\n let moments = convertTimestampToMoment(timestamp);\r\n let text = convertMomentToTimeText(moments);\r\n return text;\r\n}\r\n\r\nfunction convertDateToMoment(date) {\r\n if(!date){\r\n return null;\r\n }\r\n return dayjs(date);\r\n}\r\n\r\nfunction convertDateToDateText(date) {\r\n let moments = convertDateToMoment(date);\r\n let text = convertMomentToDateText(moments);\r\n return text;\r\n}\r\n\r\nfunction convertDateToDateTimeText(date) {\r\n let moments = convertDateToMoment(date);\r\n let text = convertMomentToDateTimeText(moments);\r\n return text;\r\n}\r\n\r\n\r\nfunction buildDateRange(from, to){\r\n return from+\" ~ \"+to;\r\n}\r\n\r\nfunction getFormatTextOfMMM(mthNumber){\r\n let moment = getCurrentMoment();\r\n moment = moment.month(mthNumber-1);\r\n return moment.format('MMM');\r\n}\r\n\r\nexport default {\r\n FORMAT_DATE: FORMAT_DATE,\r\n FORMAT_DATETIME: FORMAT_DATETIME,\r\n FORMAT_YEARMONTH: FORMAT_YEARMONTH,\r\n FORMAT_YEARWEEK: FORMAT_YEARWEEK,\r\n FORMAT_TIME: FORMAT_TIME,\r\n\r\n getCurrentMoment: getCurrentMoment,\r\n getCurrentDateTimeText: getCurrentDateTimeText,\r\n getCurrentDateText: getCurrentDateText,\r\n getCurrentDate: getCurrentDate,\r\n\r\n convertMomentToTimestamp: convertMomentToTimestamp,\r\n convertMomentToDateText: convertMomentToDateText,\r\n convertMomentToDateTimeText: convertMomentToDateTimeText,\r\n convertMomentToYearText: convertMomentToYearText,\r\n convertMomentToYearMonthText: convertMomentToYearMonthText,\r\n convertMomentToDayOfMonthText: convertMomentToDayOfMonthText,\r\n convertMomentToTimeText: convertMomentToTimeText,\r\n\r\n convertTimestampToMoment: convertTimestampToMoment,\r\n convertTimestampToDateText: convertTimestampToDateText,\r\n convertTimestampToDateTimeText: convertTimestampToDateTimeText,\r\n convertTimestampToTimeText: convertTimestampToTimeText,\r\n\r\n convertDateToMoment: convertDateToMoment,\r\n convertDateToDateText: convertDateToDateText,\r\n convertDateToDateTimeText: convertDateToDateTimeText,\r\n\r\n convertYearMonthTextToMoment: convertYearMonthTextToMoment,\r\n convertDateTextToMoment: convertDateTextToMoment,\r\n convertDateTimeTextToMoment: convertDateTimeTextToMoment,\r\n convertTimeTextToMoment: convertTimeTextToMoment,\r\n\r\n convertDateTextToDate: convertDateTextToDate,\r\n convertDateTimeTextToDate: convertDateTimeTextToDate,\r\n\r\n buildDateRange:buildDateRange,\r\n\r\n getFormatTextOfMMM: getFormatTextOfMMM,\r\n};\r\n","import _ from \"lodash\";\r\n\r\nfunction resetBodyScroll() {\r\n document.querySelector(\"body\").style.position = \"initial\";\r\n}\r\n\r\nfunction forbidBodyScroll() {\r\n document.querySelector(\"body\").style.position = \"fixed\";\r\n}\r\n\r\nfunction syncDomAnimation() {\r\n setTimeout(() => {\r\n //sync all animation be the same\r\n _.each(document.getAnimations(), (item) => {\r\n item.startTime = 0;\r\n });\r\n }, 200);\r\n}\r\n\r\n/**\r\n * find the closet parent element by className\r\n *\r\n * @param elem\r\n * @param className\r\n */\r\nfunction closetByClassName(elem, classNameList) {\r\n let classList = elem.classList;\r\n if (classList) {\r\n if (_.intersection(classList, classNameList).length > 0) {\r\n return elem;\r\n }\r\n }\r\n\r\n let parentElement = elem.parentElement;\r\n if (parentElement) {\r\n return closetByClassName(parentElement, classNameList);\r\n } else {\r\n return null;\r\n }\r\n}\r\n\r\n/**\r\n * calc current dom node offset to the left-top of the window\r\n */\r\nfunction offset(domNode) {\r\n var offest = {\r\n top: 0,\r\n left: 0\r\n };\r\n if (!domNode.getClientRects().length) {\r\n return offest;\r\n }\r\n if (window.getComputedStyle(domNode)['display'] === 'none') {\r\n return offest;\r\n }\r\n\r\n offest = domNode.getBoundingClientRect();\r\n var docElement = domNode.ownerDocument.documentElement;\r\n return {\r\n top: offest.top + (window.scrollY || window.pageYOffset) - docElement.clientTop,\r\n left: offest.left + (window.scrollX || window.pageXOffset) - docElement.clientLeft\r\n };\r\n}\r\n\r\nexport default {\r\n resetBodyScroll: resetBodyScroll,\r\n forbidBodyScroll: forbidBodyScroll,\r\n\r\n syncDomAnimation: syncDomAnimation,\r\n closetByClassName: closetByClassName,\r\n\r\n offset: offset,\r\n};\r\n","function isIOS() {\r\n return [\r\n 'iPad Simulator',\r\n 'iPhone Simulator',\r\n 'iPod Simulator',\r\n 'iPad',\r\n 'iPhone',\r\n 'iPod'\r\n ].includes(navigator.platform) || (navigator.userAgent.includes(\"Mac\") && \"ontouchend\" in document)\r\n}\r\n\r\nfunction isDesktopChrome() {\r\n let result = /Chrome/.test(navigator.userAgent) && /Google Inc/.test(navigator.vendor);\r\n if (!result) {\r\n return false;\r\n }\r\n\r\n if (isMobileChrome()) {\r\n return false;\r\n }\r\n\r\n return true;\r\n}\r\n\r\nfunction isMobileChrome() {\r\n return /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent) && /Chrome/.test(navigator.userAgent) && /Google Inc/.test(navigator.vendor);\r\n}\r\n\r\nfunction isMobileDevice() {\r\n return isIOS() || isMobileChrome();\r\n}\r\n\r\nfunction updateViewPort(pOptions = {}) {\r\n let viewport = document.getElementsByName(\"viewport\");\r\n if (!viewport || viewport.length != 1) {\r\n return;\r\n }\r\n\r\n let options = {};\r\n _.merge(options, defaultOptions, pOptions);\r\n\r\n let content = [];\r\n _.each(options, (value, key) => {\r\n content.push(key + \"=\" + value);\r\n });\r\n\r\n viewport[0].content = _.join(content, \",\");\r\n\r\n console.debug(\"curr viewport is: \" + viewport[0].content);\r\n}\r\n\r\nexport default {\r\n isIOS: isIOS,\r\n isDesktopChrome: isDesktopChrome,\r\n isMobileChrome: isMobileChrome,\r\n\r\n isMobileDevice: isMobileDevice,\r\n\r\n updateViewPort: updateViewPort,\r\n};\r\n","import _ from \"lodash\";\r\n\r\nlet globalDialogUtils;\r\n\r\nfunction init(pDialogInstanceUtils) {\r\n globalDialogUtils = pDialogInstanceUtils;\r\n}\r\n\r\nfunction toFormData(keyPrefix, model, ignoreKeys = [], formData = {}) {\r\n if(model == null){\r\n return {\r\n keyPrefix: null\r\n }\r\n }\r\n\r\n _.each(_.keys(model), (attr) => {\r\n let value = model[attr];\r\n let formKeyPath = keyPrefix ? keyPrefix + \"#\" + attr : attr;\r\n\r\n if(_.includes(ignoreKeys, formKeyPath)){\r\n formData[formKeyPath] = value;\r\n return;\r\n }\r\n\r\n if (_.isPlainObject(value)) {\r\n toFormData(formKeyPath, value, ignoreKeys, formData);\r\n } else {\r\n formData[formKeyPath] = value;\r\n }\r\n })\r\n\r\n return formData;\r\n}\r\n\r\nfunction toModel(formData, ignoreKeys = []) {\r\n if(formData == null){\r\n return null;\r\n }\r\n\r\n let model = {};\r\n _.each(_.keys(formData), (formKeyPath) => {\r\n let value = formData[formKeyPath];\r\n let path = formKeyPath.replaceAll(\"#\", \".\");\r\n _.set(model, path, value);\r\n });\r\n\r\n return model;\r\n}\r\n\r\nfunction scrollToFirstError(ex){\r\n const isError = document.getElementsByClassName('ant-form-item-has-error');\r\n isError[0] && isError[0].scrollIntoView();\r\n console.error(ex);\r\n}\r\n\r\n/**\r\n * show leave message when exit from a modified form page\r\n * @param formOrCheckFormDirtyFunc AntDesignForm or checkFormDirtyFunction\r\n * @returns {Promise<boolean>} true: can exit, or: abort exit\r\n */\r\nasync function confirmOfLeavingForm(formOrCheckFormDirtyFunc) {\r\n if(formOrCheckFormDirtyFunc == null){\r\n return true;\r\n }\r\n\r\n let formDirty;\r\n if (typeof formOrCheckFormDirtyFunc === 'function') {\r\n formDirty = await formOrCheckFormDirtyFunc();\r\n }else{\r\n formDirty = formOrCheckFormDirtyFunc.isFieldsTouched();\r\n }\r\n\r\n if (formDirty) {\r\n let result = await globalDialogUtils.showConfirmDialog(leaveMessage);\r\n if (result !== true) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n}\r\n\r\nconst leaveMessage = \"Do you want to give up your modification?\";\r\nexport default {\r\n init: init,\r\n\r\n toFormData: toFormData,\r\n toModel: toModel,\r\n scrollToFirstError: scrollToFirstError,\r\n\r\n confirmOfLeavingForm: confirmOfLeavingForm,\r\n leaveMessage: leaveMessage\r\n};","import _ from \"lodash\";\r\n\r\nfunction isJsonText(value) {\r\n value = _.trim(value);\r\n\r\n return (_.startsWith(value, \"{\") || _.startsWith(value, \"[\"));\r\n}\r\n\r\nfunction formatJsonText(value) {\r\n if (!isJsonText(value)) {\r\n return value;\r\n }\r\n\r\n return JSON.stringify(JSON.parse(value), null, 4);\r\n}\r\n\r\n\r\nexport default {\r\n isJsonText: isJsonText,\r\n formatJsonText: formatJsonText,\r\n};\r\n","import _ from \"lodash\";\r\n\r\nfunction formatNumberTextWithUnit(numberText, unitText) {\r\n if (!unitText) {\r\n return numberText;\r\n }\r\n return numberText + \" \" + unitText;\r\n}\r\n\r\nfunction formatPctWith2Digital(valuePct) {\r\n let valuePctText = formatNumberWithDigital(valuePct, 2, false);\r\n return valuePctText + \"%\";\r\n}\r\n\r\nfunction formatNumberWith2Digital(value) {\r\n return formatNumberWithDigital(value, 2);\r\n}\r\n\r\nfunction formatNumberWith4Digital(value) {\r\n return formatNumberWithDigital(value, 4);\r\n}\r\n\r\nfunction formatNumberWithDigital(value, digital) {\r\n if (value === null) {\r\n return \"\";\r\n }\r\n\r\n let dblValue = (_.toNumber(value));\r\n if (isNaN(dblValue)) {\r\n //the string value could not be convert to number, just return it;\r\n return value;\r\n }\r\n\r\n let valueText = value;\r\n if (digital != null) {\r\n let text = _.round(dblValue, digital) + \"\";\r\n if (text.indexOf(\".\") === -1) {\r\n text += '.';\r\n }\r\n\r\n let part1 = text.substring(0, text.indexOf(\".\"));\r\n let part2 = \"\";\r\n\r\n if (digital > 0) {\r\n part2 = text.substring(text.indexOf(\".\") + 1); //取到小数部分搜索\r\n part2 = \".\" + _.padEnd(part2, digital, '0');\r\n }\r\n valueText = part1 + part2;\r\n }\r\n\r\n return valueText;\r\n}\r\n\r\nexport default {\r\n formatPctWith2Digital: formatPctWith2Digital,\r\n formatNumberWith2Digital: formatNumberWith2Digital,\r\n formatNumberWith4Digital: formatNumberWith4Digital,\r\n formatNumberWithDigital: formatNumberWithDigital,\r\n formatNumberTextWithUnit: formatNumberTextWithUnit,\r\n};\r\n","import _ from \"lodash\";\r\nimport AxiosUtils from \"./AxiosUtils\";\r\n\r\nconst constants = {\r\n CANVAS_WIDTH: 480,\r\n CANVAS_HEIGHT: 270,\r\n}\r\n\r\n/**\r\n * create an empty 2 dimension array\r\n */\r\nfunction new2dArray(width, height, initValue) {\r\n let array = [];\r\n for (let rowIdx = 0; rowIdx < height; rowIdx++) {\r\n let newRow = [];\r\n for (let colIdx = 0; colIdx < width; colIdx++) {\r\n newRow.push(initValue);\r\n }\r\n array.push(newRow);\r\n }\r\n return array;\r\n}\r\n\r\n/**\r\n * render grey level ImageDataArray to Canvas\r\n */\r\nfunction renderImageDataArrayToCtx(ctx, imageDataArray) {\r\n let height = imageDataArray.length;\r\n let width = imageDataArray[0].length;\r\n let imageData = new ImageData(width, height);\r\n let idx = 0;\r\n for (let rowIdx = 0; rowIdx < height; rowIdx++) {\r\n for (let colIdx = 0; colIdx < width; colIdx++) {\r\n let grayData = imageDataArray[rowIdx][colIdx];\r\n\r\n imageData.data[idx + 0] = grayData;\r\n imageData.data[idx + 1] = grayData;\r\n imageData.data[idx + 2] = grayData;\r\n imageData.data[idx + 3] = 255;\r\n idx = idx + 4;\r\n }\r\n }\r\n ctx.putImageData(imageData, 0, 0, 0, 0, width, height);\r\n}\r\n\r\nfunction getImageDataArrayFromCtx(ctx, canvasWidth, canvasHeight) {\r\n let imageData = ctx.getImageData(0, 0, canvasWidth, canvasHeight);\r\n\r\n let isEmpty = true;\r\n let imageDataArray = [];\r\n for (let i = 0; i < imageData.data.length; i = i + 4) {\r\n let red = imageData.data[i];\r\n imageDataArray[i / 4] = red;\r\n if (red !== 255) {\r\n isEmpty = false;\r\n }\r\n }\r\n\r\n if (isEmpty) {\r\n return null;\r\n }\r\n\r\n imageDataArray = _.chunk(imageDataArray, canvasWidth);\r\n return imageDataArray;\r\n}\r\n\r\nfunction initCanvas(ctx, canvasWidth, canvasHeight) {\r\n ctx.fillStyle = \"white\";\r\n ctx.lineWidth = 1;\r\n ctx.lineCap = 'round';\r\n ctx.lineJoin = 'round';\r\n\r\n ctx.fillRect(0, 0, canvasWidth, canvasHeight);\r\n ctx.fill();\r\n}\r\n\r\nasync function convertCanvasToBlobFile(canvas, fileName, fileType = 'image/jpeg') {\r\n return new Promise((resolve, reject) => {\r\n canvas.toBlob(async function (blob) {\r\n const file = new File([blob], fileName);\r\n resolve(file);\r\n }, fileType, 0.9);\r\n });\r\n}\r\n\r\n/**\r\n * Build grey level ImageDataArray from text\r\n */\r\nfunction calcImageDataArrayFromText(valueText) {\r\n if (valueText == null) {\r\n return;\r\n }\r\n\r\n let imageDataArray = [];\r\n _.each(valueText.split(\";\"), (rowData, rowIdx) => {\r\n let row = [];\r\n _.each(rowData.split(\",\"), (item, colIdx) => {\r\n row.push(item);\r\n });\r\n imageDataArray.push(row);\r\n });\r\n return imageDataArray;\r\n}\r\n\r\nfunction calcTextFromImageDataArray(imageDataArray) {\r\n if (imageDataArray == null) {\r\n return;\r\n }\r\n\r\n let valueText = \"\";\r\n for (let rowIdx = 0; rowIdx < imageDataArray.length; rowIdx++) {\r\n if (rowIdx > 0) {\r\n valueText += \";\";\r\n }\r\n valueText += imageDataArray[rowIdx].join(\",\");\r\n }\r\n return valueText;\r\n}\r\n\r\nexport default {\r\n constants: constants,\r\n new2dArray: new2dArray,\r\n initCanvas: initCanvas,\r\n //common\r\n convertCanvasToBlobFile: convertCanvasToBlobFile,\r\n\r\n //for signature\r\n renderImageDataArrayToCtx: renderImageDataArrayToCtx,\r\n getImageDataArrayFromCtx: getImageDataArrayFromCtx,\r\n calcImageDataArrayFromText: calcImageDataArrayFromText,\r\n calcTextFromImageDataArray: calcTextFromImageDataArray,\r\n};\r\n","import _ from \"lodash\";\r\n\r\nlet pattern=/[`~!@#$^\\-&*()=|{}':;,\\\\\\[\\].<>\\/?\\s]/g;\r\n\r\nfunction buildKeyword(text) {\r\n if(!text){\r\n return '';\r\n }\r\n\r\n let keyword = text.replace(pattern, '').toUpperCase();\r\n return keyword;\r\n}\r\n\r\n\r\nexport default {\r\n buildKeyword: buildKeyword,\r\n};\r\n"],"names":["init","isMobileDevice","_","param","this","e","n","t","r","i","s","o","a","f","h","u","c","d","l","m","M"],"mappings":"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","x_google_ignoreList":[4,5,6]}
|
|
1
|
+
{"version":3,"file":"sirius-common-utils.js","sources":["../src/packages/utils/CfgUtils.js","../src/packages/utils/AppUtils.js","../src/packages/utils/LoginUserUtils.js","../src/packages/utils/AxiosUtils.js","../node_modules/dayjs/plugin/updateLocale.js","../node_modules/dayjs/plugin/customParseFormat.js","../node_modules/dayjs/plugin/utc.js","../src/packages/utils/DateUtils.js","../src/packages/utils/DomUtils.js","../src/packages/utils/ExplorerTypeUtils.js","../src/packages/utils/FormUtils.js","../src/packages/utils/JsonUtils.js","../src/packages/utils/NumberUtils.js","../src/packages/utils/SignatureUtils.js","../src/packages/utils/StringUtils.js"],"sourcesContent":["export default {\r\n //Application Configuration\r\n appInfo: {\r\n appName: 'XMS', //application name\r\n frontEndValueEncodeFlag: false, //need to encode for LocalStorage values\r\n needFrontEndExceptionStatisticsFlag: true, //need trace front-end logs\r\n },\r\n //Ajax Configuration\r\n ajax:{\r\n timeOut: 60000, //Timeout\r\n },\r\n sysCfg: {\r\n ibmsEnabled: true,\r\n }\r\n};\r\n","import _ from 'lodash';\r\n\r\nimport {Base64} from 'js-base64';\r\nimport CfgUtils from \"./CfgUtils\";\r\n\r\n//appVersion\r\nfunction setAppVersion(version) {\r\n setLocalStorageStringItem(\"APP_VERSION\", version);\r\n}\r\n\r\nfunction getAppVersion() {\r\n return getLocalStorageStringItem(\"APP_VERSION\");\r\n}\r\n\r\n//app build version\r\nfunction setBuildVersion(version) {\r\n setLocalStorageStringItem(\"BUILD_VERSION\", version);\r\n}\r\n\r\nfunction getBuildVersion() {\r\n return getLocalStorageStringItem(\"BUILD_VERSION\");\r\n}\r\n\r\n//app cache version\r\nfunction setAppCacheVersion(version) {\r\n setLocalStorageStringItem(\"APP_CACHE_VERSION\", version);\r\n}\r\n\r\nfunction getAppCacheVersion() {\r\n return getLocalStorageStringItem(\"APP_CACHE_VERSION\");\r\n}\r\n\r\n\r\n/**\r\n * 检查LocalStorage中是否存在该键\r\n */\r\nfunction isLocalStorageItemExisted(key){\r\n let realKey = CfgUtils.appInfo.appName + '_' + key;\r\n let obj = localStorage.getItem(realKey);\r\n return obj !=null;\r\n}\r\n\r\nfunction removeLocalStorageItem(key, obj) {\r\n let realKey = CfgUtils.appInfo.appName + '_' + key;\r\n localStorage.removeItem(realKey);\r\n}\r\n\r\n/**\r\n * String类型的数据存储\r\n */\r\nfunction setLocalStorageStringItem(key, obj) {\r\n let realKey = CfgUtils.appInfo.appName + '_' + key;\r\n let realValue = obj;\r\n localStorage.setItem(realKey, encode(realValue));\r\n}\r\n\r\nfunction getLocalStorageStringItem(key) {\r\n let realKey = CfgUtils.appInfo.appName + '_' + key;\r\n let obj = decode(localStorage.getItem(realKey));\r\n return obj;\r\n}\r\n\r\n/**\r\n * Object类型的数据存储\r\n */\r\n\r\nfunction setLocalStorageObjItem(key, obj) {\r\n let realKey = CfgUtils.appInfo.appName + '_' + key;\r\n localStorage.setItem(realKey, encode(JSON.stringify(obj)));\r\n}\r\n\r\nfunction getLocalStorageObjItem(key) {\r\n let realKey = CfgUtils.appInfo.appName + '_' + key;\r\n let obj = null;\r\n try {\r\n let jsonVal = localStorage.getItem(realKey);\r\n obj = JSON.parse(decode(jsonVal));\r\n } catch (e) {\r\n }\r\n return obj;\r\n}\r\n\r\nfunction atomSetLocalStorageObjItem(key, obj){\r\n setLocalStorageObjItem(key, obj);\r\n}\r\n\r\nfunction atomGetLocalStorageObjItem(key){\r\n let result = getLocalStorageObjItem(key);\r\n setLocalStorageObjItem(key, null);\r\n return result;\r\n}\r\n\r\nfunction pushLocalStorageStringItem(key, obj){\r\n setLocalStorageStringItem(key, obj);\r\n}\r\n\r\nfunction popLocalStorageStringItem(key){\r\n let result = getLocalStorageStringItem(key);\r\n removeLocalStorageItem(key);\r\n return result;\r\n}\r\n\r\nfunction atomSetSessionStorageObjItem(key, obj){\r\n setSessionStorageObjItem(key, obj);\r\n}\r\n\r\nfunction atomGetSessionStorageObjItem(key){\r\n let result = getSessionStorageObjItem(key);\r\n setSessionStorageObjItem(key, null);\r\n return result;\r\n}\r\n\r\nfunction setSessionStorageObjItem(key, obj) {\r\n let realKey = CfgUtils.appInfo.appName + '_' + key;\r\n sessionStorage.setItem(realKey, encode(JSON.stringify(obj)));\r\n}\r\n\r\nfunction getSessionStorageObjItem(key) {\r\n let realKey = CfgUtils.appInfo.appName + '_' + key;\r\n let obj = null;\r\n try {\r\n let jsonVal = sessionStorage.getItem(realKey);\r\n obj = JSON.parse(decode(jsonVal));\r\n } catch (e) {\r\n }\r\n return obj;\r\n}\r\n\r\nfunction encode(originalValue){\r\n if(!originalValue){\r\n return originalValue;\r\n }\r\n if(!CfgUtils.appInfo.frontEndValueEncodeFlag){\r\n return originalValue;\r\n }\r\n return Base64.encode(originalValue);\r\n}\r\n\r\nfunction decode(encodeValue){\r\n if(!encodeValue){\r\n return encodeValue;\r\n }\r\n if(!CfgUtils.appInfo.frontEndValueEncodeFlag){\r\n return encodeValue;\r\n }\r\n return Base64.decode(encodeValue);\r\n}\r\n\r\nexport default {\r\n setAppVersion: setAppVersion,\r\n getAppVersion: getAppVersion,\r\n setBuildVersion: setBuildVersion,\r\n getBuildVersion: getBuildVersion,\r\n setAppCacheVersion: setAppCacheVersion,\r\n getAppCacheVersion: getAppCacheVersion,\r\n\r\n atomSetLocalStorageObjItem: atomSetLocalStorageObjItem,\r\n atomGetLocalStorageObjItem: atomGetLocalStorageObjItem,\r\n pushLocalStorageStringItem: pushLocalStorageStringItem,\r\n popLocalStorageStringItem: popLocalStorageStringItem,\r\n\r\n isLocalStorageItemExisted: isLocalStorageItemExisted,\r\n setLocalStorageObjItem: setLocalStorageObjItem,\r\n getLocalStorageObjItem: getLocalStorageObjItem,\r\n setLocalStorageStringItem: setLocalStorageStringItem,\r\n getLocalStorageStringItem: getLocalStorageStringItem,\r\n\r\n atomSetSessionStorageObjItem: atomSetSessionStorageObjItem,\r\n atomGetSessionStorageObjItem: atomGetSessionStorageObjItem,\r\n\r\n setSessionStorageObjItem: setSessionStorageObjItem,\r\n getSessionStorageObjItem: getSessionStorageObjItem,\r\n};\r\n","/**\r\n * getCurrUserInfo\r\n */\r\nimport AxiosUtils from \"./AxiosUtils\";\r\nimport _ from \"lodash\";\r\nimport AppUtils from \"./AppUtils\";\r\n\r\n\r\nasync function init(\r\n deviceType,\r\n pCurrUserInfoCache,\r\n pCustomizedUserUtils,\r\n pUriGetCurrUserInfo,\r\n) {\r\n if (pCurrUserInfoCache) {\r\n currUserInfoCache = pCurrUserInfoCache;\r\n AppUtils.setLocalStorageObjItem(\"CURRENT_USER\", currUserInfoCache);\r\n }\r\n\r\n customizedUserUtils = pCustomizedUserUtils;\r\n uriGetCurrUserInfo = pUriGetCurrUserInfo || `/api/user/getCurrUserInfo`;\r\n\r\n setDeviceType(deviceType);\r\n}\r\n\r\nasync function clear() {\r\n currUserInfoCache = null;\r\n AppUtils.setLocalStorageObjItem(\"CURRENT_USER\", null);\r\n}\r\n\r\nfunction setDeviceType(deviceType) {\r\n if (deviceType === 'MOBILE') {\r\n AppUtils.setLocalStorageStringItem(\"DEVICE_TYPE\", \"MOBILE\");\r\n } else {\r\n AppUtils.setLocalStorageStringItem(\"DEVICE_TYPE\", \"WEB\");\r\n }\r\n}\r\n\r\nfunction isMobileDevice() {\r\n let deviceType = AppUtils.getLocalStorageStringItem(\"DEVICE_TYPE\");\r\n return deviceType === 'MOBILE';\r\n}\r\n\r\nlet customizedUserUtils = null;\r\nlet currUserInfoCache = null;\r\n\r\nasync function getCurrUserInfo() {\r\n if (customizedUserUtils && customizedUserUtils.getUserInfo) {\r\n let currUser = await customizedUserUtils.getUserInfo();\r\n currUserInfoCache = currUser;\r\n AppUtils.setLocalStorageObjItem(\"CURRENT_USER\", currUser);\r\n\r\n return currUser;\r\n } else {\r\n let currUser = await AxiosUtils.getJsonData(uriGetCurrUserInfo);\r\n currUserInfoCache = currUser;\r\n AppUtils.setLocalStorageObjItem(\"CURRENT_USER\", currUser);\r\n return currUser;\r\n }\r\n}\r\n\r\nfunction getCurrUserInfoCache() {\r\n if (currUserInfoCache != null) {\r\n return currUserInfoCache;\r\n }\r\n\r\n currUserInfoCache = AppUtils.getLocalStorageObjItem(\"CURRENT_USER\");\r\n if (currUserInfoCache != null) {\r\n return currUserInfoCache;\r\n }\r\n\r\n\r\n // console.debug(\"Please invoke getCurrUserInfo first\");\r\n return null;\r\n}\r\n\r\nfunction getCurrUserId() {\r\n return getCurrUserInfoCache()?.id;\r\n}\r\n\r\n\r\nlet uriGetCurrUserInfo = null;\r\n\r\n\r\n/**\r\n * check user role\r\n */\r\nfunction userHasRole(roleCodeOrArray) {\r\n if (currUserInfoCache == null) {\r\n return false;\r\n }\r\n\r\n if (_.isArray(roleCodeOrArray)) {\r\n return !_.isEmpty(_.intersection(currUserInfoCache.roleList, roleCodeOrArray));\r\n } else {\r\n return _.includes(currUserInfoCache.roleList, roleCodeOrArray);\r\n }\r\n}\r\n\r\nexport default {\r\n init: init,\r\n clear: clear,\r\n getCurrUserInfo: getCurrUserInfo,\r\n getCurrUserInfoCache: getCurrUserInfoCache,\r\n getCurrUserId: getCurrUserId,\r\n userHasRole: userHasRole,\r\n\r\n isMobileDevice: isMobileDevice,\r\n\r\n};\r\n","import _ from 'lodash';\r\n\r\nimport CfgUtils from \"./CfgUtils\";\r\nimport LoginUserUtils from \"./LoginUserUtils\";\r\n\r\nlet axios = null;\r\nlet urlContext = null; //URL路径前缀\r\n\r\nlet RESULT = {\r\n SUCCESS: 200,\r\n};\r\n\r\n\r\nlet EXCEPTION_CODE = {\r\n AUTHENTICATION_FAILED_COMMON: 901,\r\n AUTHENTICATION_SESSION_EXPIRED: 905,\r\n NETWORK_ISSUE_CLIENT: 911,\r\n SYS_UNKNOWN_ISSUE: 999,\r\n}\r\n\r\nlet globalDialogUtilsInstance;\r\nlet globalSpinHandlerInstance;\r\nlet loginServiceInstance;\r\n\r\nfunction init(pAxios, pContext, pSpinHandlerInstance, pDialogUtilsInstance, pLoginServiceInstance) {\r\n axios = pAxios;\r\n\r\n // axios.defaults.baseURL = getPath(\"/xms-test\");\r\n axios.defaults.baseURL = getPath(pContext);\r\n axios.defaults.timeout = CfgUtils.ajax.timeout;\r\n\r\n globalDialogUtilsInstance = pDialogUtilsInstance;\r\n globalSpinHandlerInstance = pSpinHandlerInstance;\r\n loginServiceInstance = pLoginServiceInstance;\r\n}\r\n\r\nfunction getHostName(){\r\n return window.location.hostname;\r\n}\r\n\r\n/**\r\n *\r\n */\r\nfunction loadParamFromLocationSearch(paramKey) {\r\n var paramsStr = window.location.search;\r\n if (paramsStr.indexOf('?') === 0) {\r\n paramsStr = paramsStr.substring(1);\r\n }\r\n var entryParams = paramsStr.split('&');\r\n var entryParamStr = _.find(entryParams, function (param) {\r\n return param.indexOf(paramKey) === 0;\r\n });\r\n if (!entryParamStr) {\r\n return null;\r\n }\r\n var param = entryParamStr.split('=');\r\n if (!param[1]) {\r\n return null;\r\n }\r\n return param[1];\r\n}\r\n\r\n/**\r\n * get the entire url path\r\n * @param path start with '/'\r\n * @returns {string|*}\r\n */\r\nfunction getPath(path) {\r\n if (_.startsWith(path, \"http\")) {\r\n return path;\r\n }\r\n\r\n if (urlContext == null) {\r\n urlContext = window.document.location.href;\r\n let lastIdx = urlContext.indexOf('.htm');\r\n if (lastIdx > -1) {\r\n urlContext = urlContext.substring(0, urlContext.lastIndexOf('/', lastIdx));\r\n } else {\r\n lastIdx = urlContext.indexOf('/#');\r\n if (lastIdx > -1) {\r\n urlContext = urlContext.substring(0, lastIdx);\r\n } else {\r\n lastIdx = urlContext.indexOf('#');\r\n if (lastIdx > -1) {\r\n urlContext = urlContext.substring(0, lastIdx);\r\n } else {\r\n console.log(`Could not identify URL path ${urlContext}`);\r\n }\r\n }\r\n }\r\n //http://localhost:3000/index.html/#/index/highTriggerWiggleRoomValue -> http://localhost:3000\r\n }\r\n\r\n if(urlContext.endsWith(\"/\")){ //remove the last '/'\r\n urlContext = urlContext.substring(0, urlContext.length-1);\r\n }\r\n return urlContext + path;\r\n}\r\n\r\n/**\r\n * Download excel from server\r\n */\r\nfunction downloadExcelData(url, data, headers, options = {}) {\r\n return new Promise(async function (resolve, reject) {\r\n headers = headers || {};\r\n if (headers['Content-Type'] == null) {\r\n headers['Content-Type'] = 'application/json';\r\n }\r\n\r\n await buildUserAccessToken(headers);\r\n\r\n try {\r\n let response = await axios({\r\n method: 'post',\r\n url: url,\r\n data: data,\r\n headers: headers,\r\n responseType: 'blob'\r\n });\r\n if (response.data) {\r\n if (response.data.errorCode && response.data.errorCode !== RESULT.SUCCESS) {\r\n let errorResult = await handlerError(url, data, response);\r\n resolve(errorResult);\r\n return;\r\n }\r\n }\r\n\r\n const link = document.createElement('a')\r\n let blob = new Blob([response.data], {type: 'application/vnd.ms-excel'});\r\n let contentDisposition = response.headers[\"content-disposition\"];\r\n\r\n if (contentDisposition == null) {\r\n let errorResult = await handlerError(url, data, {\r\n data: {\r\n errorCode: EXCEPTION_CODE.SYS_UNKNOWN_ISSUE,\r\n error: \"System Error\",\r\n }\r\n });\r\n resolve(errorResult);\r\n return;\r\n }\r\n\r\n let temp = contentDisposition.split(\";\")[1].split(\"ilename=\")[1];\r\n var fileName = decodeURIComponent(temp);\r\n console.log(fileName)\r\n link.style.display = 'none'\r\n link.href = URL.createObjectURL(blob);\r\n link.setAttribute('download', fileName);\r\n document.body.appendChild(link);\r\n link.click();\r\n document.body.removeChild(link);\r\n\r\n resolve(true);\r\n } catch (e) {\r\n let errorResult = await handlerError(url, {}, e);\r\n resolve(errorResult);\r\n }\r\n });\r\n}\r\n\r\n\r\n/**\r\n * Download image from server, and return ImageData blob\r\n */\r\nfunction downloadImageData(url, data, headers, options = {}) {\r\n return new Promise(async function (resolve, reject) {\r\n headers = headers || {};\r\n if (headers['Content-Type'] == null) {\r\n headers['Content-Type'] = 'application/json';\r\n }\r\n\r\n await buildUserAccessToken(headers);\r\n\r\n try {\r\n let response = await axios({\r\n method: 'post',\r\n url: url,\r\n data: data,\r\n headers: headers,\r\n responseType: 'blob'\r\n });\r\n let imageData = response.data;\r\n if (imageData!=null) {\r\n if (response.data.errorCode && response.data.errorCode !== RESULT.SUCCESS) {\r\n let errorResult = await handlerError(url, data, response);\r\n resolve(null);\r\n return;\r\n }\r\n }\r\n resolve(imageData);\r\n } catch (e) {\r\n let errorResult = await handlerError(url, {}, e);\r\n resolve(null);\r\n }\r\n });\r\n}\r\n\r\n/**\r\n *\r\n */\r\nfunction downloadServerData(url) {\r\n return new Promise(function (resolve, reject) {\r\n\r\n const hyperlink = document.createElement('a');\r\n hyperlink.style.display = 'none';//隐藏,没必要展示出来\r\n hyperlink.href = url;\r\n hyperlink.target = \"_blank\";\r\n document.body.appendChild(hyperlink);\r\n hyperlink.click();\r\n URL.revokeObjectURL(hyperlink.href); // 释放URL 对象\r\n document.body.removeChild(hyperlink);//下载\r\n\r\n resolve(true);\r\n });\r\n}\r\n\r\n/**\r\n *\r\n */\r\nfunction downloadServerBlobData(url) {\r\n return new Promise(function (resolve, reject) {\r\n axios.get(url, {\r\n responseType: 'blob',\r\n }).then((res) => {\r\n resolve(res.data);\r\n }, (error) => {\r\n resolve(null);\r\n });\r\n });\r\n}\r\n\r\n/**\r\n * upload file to server\r\n * TODO Joey need check with FormData scenario\r\n */\r\nfunction uploadFile(url, file, headers, onUploadProgress, customizedOptions) {\r\n headers = headers || {};\r\n\r\n let formdata = new FormData();\r\n if (_.isArray(file)) {\r\n formdata.append(\"files\", file);\r\n } else {\r\n formdata.append(\"file\", file)\r\n }\r\n\r\n customizedOptions = customizedOptions || {};\r\n return execute(\"POST\", url, formdata, headers, onUploadProgress, customizedOptions)\r\n}\r\n\r\n/**\r\n * getStaticTextFile\r\n */\r\nfunction getStaticTextFile(url) {\r\n return new Promise(async function (resolve, reject) {\r\n axios.get(url).then((res) => {\r\n resolve(res);\r\n }, (error) => {\r\n resolve(null);\r\n });\r\n });\r\n}\r\n\r\n/**\r\n * build form-data from param object\r\n */\r\nfunction getUrlParam(params) {\r\n if (params) {\r\n var param = '';\r\n _.each(params, function (i, val) {\r\n if (i != null) {\r\n param += val + '=' + encodeURIComponent(i) + '&';\r\n } else {\r\n param += val + '=&';\r\n }\r\n });\r\n param = param.substring(0, param.length - 1);\r\n return param;\r\n } else {\r\n return '';\r\n }\r\n}\r\n\r\nfunction getFormData(url, headers, customizedOptions) {\r\n headers = headers || {};\r\n if (headers['Content-Type'] == null) {\r\n headers['Content-Type'] = 'application/x-www-form-urlencoded';\r\n }\r\n\r\n customizedOptions = customizedOptions || {};\r\n\r\n return execute(\"GET\", url, null, headers, null, customizedOptions)\r\n}\r\n\r\nfunction postFormData(url, dataObject, headers, customizedOptions) {\r\n let formdata = null;\r\n if (dataObject) {\r\n formdata = getUrlParam(dataObject);\r\n }\r\n\r\n headers = headers || {};\r\n if (headers['Content-Type'] == null) {\r\n headers['Content-Type'] = 'application/x-www-form-urlencoded';\r\n }\r\n\r\n customizedOptions = customizedOptions || {};\r\n\r\n return execute(\"POST\", url, formdata, headers, null, customizedOptions)\r\n}\r\n\r\nfunction getJsonData(url, headers, customizedOptions) {\r\n headers = headers || {};\r\n if (headers['Content-Type'] == null) {\r\n headers['Content-Type'] = 'application/json';\r\n }\r\n\r\n return execute(\"GET\", url, null, headers, null, customizedOptions)\r\n}\r\n\r\nfunction postJsonData(url, dataObject, headers, customizedOptions) {\r\n headers = headers || {};\r\n if (headers['Content-Type'] == null) {\r\n headers['Content-Type'] = 'application/json';\r\n }\r\n\r\n return execute(\"POST\", url, dataObject, headers, null, customizedOptions)\r\n}\r\n\r\n/**\r\n * General Axios Data request\r\n *\r\n * @param method\r\n * @param url\r\n * @param data\r\n * @param headers\r\n * @param customizedOptions: { }customizedErrorHandlerFlag: false }\r\n */\r\nfunction execute(method, url, data, headers, onUploadProgress, customizedOptions = {}) {\r\n return new Promise(function (resolve, reject) {\r\n //check and set User AccessToken in the request header\r\n buildUserAccessToken(headers).then(\r\n function () {\r\n //AccessToken is valid\r\n axios({\r\n method: method,\r\n url: url,\r\n data: data,\r\n headers: headers,\r\n onUploadProgress: onUploadProgress,\r\n })\r\n .then((response) => {\r\n if (response.data) {\r\n if (response.data.errorCode && response.data.errorCode !== RESULT.SUCCESS) {\r\n if (customizedOptions.customizedErrorHandlerFlag) {\r\n resolve(response.data);\r\n } else {\r\n handlerError(url, data, response).then((result) => {\r\n resolve(result);\r\n });\r\n }\r\n } else {\r\n resolve(response.data);\r\n }\r\n } else {\r\n resolve(response.data);\r\n }\r\n }, (error) => {\r\n if (customizedOptions.customizedErrorHandlerFlag) {\r\n resolve(error);\r\n } else {\r\n handlerError(url, data, error).then((result) => {\r\n resolve(result);\r\n });\r\n }\r\n });\r\n },\r\n (error) => {\r\n //AccessToken is invalid\r\n handlerError(url, data, error).then((result) => {\r\n resolve(result);\r\n });\r\n });\r\n\r\n });\r\n}\r\n\r\nasync function buildUserAccessToken(headers) {\r\n let currUserInfo = await LoginUserUtils.getCurrUserInfo();\r\n if (currUserInfo && currUserInfo.accessToken) {\r\n if (headers['ENOS_ACCESS_TOKEN'] == null) {\r\n headers['ENOS_ACCESS_TOKEN'] = currUserInfo.accessToken;\r\n }\r\n }\r\n}\r\n\r\n\r\n/**\r\n * build error message base on errorCode\r\n */\r\nfunction getErrorMsgByCode(errorCode, errorMsg) {\r\n return errorMsg;\r\n}\r\n\r\n/**\r\n * request error handler\r\n * if multiple ajax error happened. just process the first one.\r\n */\r\nvar reqErrorInProcessing = false;\r\n\r\nasync function handlerError(url, reqData, responseOrAxiosError) {\r\n if (reqErrorInProcessing === true) {\r\n return;\r\n }\r\n\r\n reqErrorInProcessing = true;\r\n await handlerErrorLogic(url, reqData, responseOrAxiosError);\r\n reqErrorInProcessing = false;\r\n}\r\n\r\nasync function showErrorMessage(errorCode, heading = \"System Error\", message) {\r\n globalSpinHandlerInstance.complete();\r\n await globalDialogUtilsInstance.showAppErrorDialog(heading, message);\r\n}\r\n\r\nasync function handlerErrorLogic(url, reqData, responseOrAxiosError) {\r\n let errorCode = _.get(responseOrAxiosError, 'data.errorCode');\r\n let error = _.get(responseOrAxiosError, 'data.error');\r\n\r\n if (!errorCode && _.get(responseOrAxiosError, 'code')) {\r\n let axiosErrorStatus = _.get(responseOrAxiosError, 'response.status');\r\n let axiosErrorStatusText = _.get(responseOrAxiosError, 'response.statusText');\r\n\r\n if (_.includes([502, 504], axiosErrorStatus)) {\r\n errorCode = EXCEPTION_CODE.NETWORK_ISSUE_CLIENT;\r\n error = axiosErrorStatusText;\r\n } else if (_.includes([400], axiosErrorStatus)) {\r\n errorCode = EXCEPTION_CODE.SYS_UNKNOWN_ISSUE;\r\n error = axiosErrorStatusText;\r\n } else if (_.includes([404], axiosErrorStatus)) {\r\n errorCode = EXCEPTION_CODE.SYS_UNKNOWN_ISSUE;\r\n error = axiosErrorStatusText;\r\n }\r\n }\r\n\r\n //session timeout\r\n var sessionTimeoutErrorCodes = [\r\n EXCEPTION_CODE.AUTHENTICATION_FAILED_COMMON,\r\n EXCEPTION_CODE.AUTHENTICATION_SESSION_EXPIRED,\r\n ]\r\n\r\n if (_.includes(sessionTimeoutErrorCodes, errorCode)) {\r\n await appSessionExit(errorCode, true);\r\n return;\r\n }\r\n\r\n if (EXCEPTION_CODE.NETWORK_ISSUE_CLIENT === errorCode) {\r\n await showErrorMessage(errorCode, \"Network issue\", error);\r\n return;\r\n }\r\n\r\n await showErrorMessage(errorCode, null, getErrorMsgByCode(errorCode, error));\r\n}\r\n\r\n/**\r\n * application exit handler\r\n */\r\nasync function appSessionExit(resultCode, forceCloseFlag) {\r\n if(loginServiceInstance && loginServiceInstance.logout){\r\n await loginServiceInstance.logout();\r\n }else {\r\n await globalDialogUtilsInstance.showAppErrorDialog(\"Session Timeout\", \"Please login again\");\r\n }\r\n}\r\n\r\nconst AxiosUtils = {\r\n init: init,\r\n getHostName: getHostName,\r\n loadParamFromLocationSearch: loadParamFromLocationSearch,\r\n getPath: getPath,\r\n getUrlParam: getUrlParam,\r\n getFormData: getFormData,\r\n postFormData: postFormData,\r\n getJsonData: getJsonData,\r\n postJsonData: postJsonData,\r\n downloadExcelData: downloadExcelData,\r\n downloadImageData: downloadImageData,\r\n downloadServerData: downloadServerData,\r\n downloadServerBlobData: downloadServerBlobData,\r\n uploadFile: uploadFile,\r\n getStaticTextFile: getStaticTextFile,\r\n appSessionExit: appSessionExit,\r\n handlerError: handlerError,\r\n getErrorMsgByCode: getErrorMsgByCode,\r\n\r\n RESULT: RESULT,\r\n EXCEPTION_CODE: EXCEPTION_CODE,\r\n};\r\n\r\nexport default AxiosUtils;\r\n","!function(e,n){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=n():\"function\"==typeof define&&define.amd?define(n):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).dayjs_plugin_updateLocale=n()}(this,(function(){\"use strict\";return function(e,n,t){t.updateLocale=function(e,n){var o=t.Ls[e];if(o)return(n?Object.keys(n):[]).forEach((function(e){o[e]=n[e]})),o}}}));","!function(e,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define(t):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).dayjs_plugin_customParseFormat=t()}(this,(function(){\"use strict\";var e={LTS:\"h:mm:ss A\",LT:\"h:mm A\",L:\"MM/DD/YYYY\",LL:\"MMMM D, YYYY\",LLL:\"MMMM D, YYYY h:mm A\",LLLL:\"dddd, MMMM D, YYYY h:mm A\"},t=/(\\[[^[]*\\])|([-_:/.,()\\s]+)|(A|a|YYYY|YY?|MM?M?M?|Do|DD?|hh?|HH?|mm?|ss?|S{1,3}|z|ZZ?)/g,n=/\\d\\d/,r=/\\d\\d?/,i=/\\d*[^-_:/,()\\s\\d]+/,o={},s=function(e){return(e=+e)+(e>68?1900:2e3)};var a=function(e){return function(t){this[e]=+t}},f=[/[+-]\\d\\d:?(\\d\\d)?|Z/,function(e){(this.zone||(this.zone={})).offset=function(e){if(!e)return 0;if(\"Z\"===e)return 0;var t=e.match(/([+-]|\\d\\d)/g),n=60*t[1]+(+t[2]||0);return 0===n?0:\"+\"===t[0]?-n:n}(e)}],h=function(e){var t=o[e];return t&&(t.indexOf?t:t.s.concat(t.f))},u=function(e,t){var n,r=o.meridiem;if(r){for(var i=1;i<=24;i+=1)if(e.indexOf(r(i,0,t))>-1){n=i>12;break}}else n=e===(t?\"pm\":\"PM\");return n},d={A:[i,function(e){this.afternoon=u(e,!1)}],a:[i,function(e){this.afternoon=u(e,!0)}],S:[/\\d/,function(e){this.milliseconds=100*+e}],SS:[n,function(e){this.milliseconds=10*+e}],SSS:[/\\d{3}/,function(e){this.milliseconds=+e}],s:[r,a(\"seconds\")],ss:[r,a(\"seconds\")],m:[r,a(\"minutes\")],mm:[r,a(\"minutes\")],H:[r,a(\"hours\")],h:[r,a(\"hours\")],HH:[r,a(\"hours\")],hh:[r,a(\"hours\")],D:[r,a(\"day\")],DD:[n,a(\"day\")],Do:[i,function(e){var t=o.ordinal,n=e.match(/\\d+/);if(this.day=n[0],t)for(var r=1;r<=31;r+=1)t(r).replace(/\\[|\\]/g,\"\")===e&&(this.day=r)}],M:[r,a(\"month\")],MM:[n,a(\"month\")],MMM:[i,function(e){var t=h(\"months\"),n=(h(\"monthsShort\")||t.map((function(e){return e.slice(0,3)}))).indexOf(e)+1;if(n<1)throw new Error;this.month=n%12||n}],MMMM:[i,function(e){var t=h(\"months\").indexOf(e)+1;if(t<1)throw new Error;this.month=t%12||t}],Y:[/[+-]?\\d+/,a(\"year\")],YY:[n,function(e){this.year=s(e)}],YYYY:[/\\d{4}/,a(\"year\")],Z:f,ZZ:f};function c(n){var r,i;r=n,i=o&&o.formats;for(var s=(n=r.replace(/(\\[[^\\]]+])|(LTS?|l{1,4}|L{1,4})/g,(function(t,n,r){var o=r&&r.toUpperCase();return n||i[r]||e[r]||i[o].replace(/(\\[[^\\]]+])|(MMMM|MM|DD|dddd)/g,(function(e,t,n){return t||n.slice(1)}))}))).match(t),a=s.length,f=0;f<a;f+=1){var h=s[f],u=d[h],c=u&&u[0],l=u&&u[1];s[f]=l?{regex:c,parser:l}:h.replace(/^\\[|\\]$/g,\"\")}return function(e){for(var t={},n=0,r=0;n<a;n+=1){var i=s[n];if(\"string\"==typeof i)r+=i.length;else{var o=i.regex,f=i.parser,h=e.slice(r),u=o.exec(h)[0];f.call(t,u),e=e.replace(u,\"\")}}return function(e){var t=e.afternoon;if(void 0!==t){var n=e.hours;t?n<12&&(e.hours+=12):12===n&&(e.hours=0),delete e.afternoon}}(t),t}}return function(e,t,n){n.p.customParseFormat=!0,e&&e.parseTwoDigitYear&&(s=e.parseTwoDigitYear);var r=t.prototype,i=r.parse;r.parse=function(e){var t=e.date,r=e.utc,s=e.args;this.$u=r;var a=s[1];if(\"string\"==typeof a){var f=!0===s[2],h=!0===s[3],u=f||h,d=s[2];h&&(d=s[2]),o=this.$locale(),!f&&d&&(o=n.Ls[d]),this.$d=function(e,t,n){try{if([\"x\",\"X\"].indexOf(t)>-1)return new Date((\"X\"===t?1e3:1)*e);var r=c(t)(e),i=r.year,o=r.month,s=r.day,a=r.hours,f=r.minutes,h=r.seconds,u=r.milliseconds,d=r.zone,l=new Date,m=s||(i||o?1:l.getDate()),M=i||l.getFullYear(),Y=0;i&&!o||(Y=o>0?o-1:l.getMonth());var p=a||0,v=f||0,D=h||0,g=u||0;return d?new Date(Date.UTC(M,Y,m,p,v,D,g+60*d.offset*1e3)):n?new Date(Date.UTC(M,Y,m,p,v,D,g)):new Date(M,Y,m,p,v,D,g)}catch(e){return new Date(\"\")}}(t,a,r),this.init(),d&&!0!==d&&(this.$L=this.locale(d).$L),u&&t!=this.format(a)&&(this.$d=new Date(\"\")),o={}}else if(a instanceof Array)for(var l=a.length,m=1;m<=l;m+=1){s[1]=a[m-1];var M=n.apply(this,s);if(M.isValid()){this.$d=M.$d,this.$L=M.$L,this.init();break}m===l&&(this.$d=new Date(\"\"))}else i.call(this,e)}}}));","!function(t,i){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=i():\"function\"==typeof define&&define.amd?define(i):(t=\"undefined\"!=typeof globalThis?globalThis:t||self).dayjs_plugin_utc=i()}(this,(function(){\"use strict\";var t=\"minute\",i=/[+-]\\d\\d(?::?\\d\\d)?/g,e=/([+-]|\\d\\d)/g;return function(s,f,n){var u=f.prototype;n.utc=function(t){var i={date:t,utc:!0,args:arguments};return new f(i)},u.utc=function(i){var e=n(this.toDate(),{locale:this.$L,utc:!0});return i?e.add(this.utcOffset(),t):e},u.local=function(){return n(this.toDate(),{locale:this.$L,utc:!1})};var o=u.parse;u.parse=function(t){t.utc&&(this.$u=!0),this.$utils().u(t.$offset)||(this.$offset=t.$offset),o.call(this,t)};var r=u.init;u.init=function(){if(this.$u){var t=this.$d;this.$y=t.getUTCFullYear(),this.$M=t.getUTCMonth(),this.$D=t.getUTCDate(),this.$W=t.getUTCDay(),this.$H=t.getUTCHours(),this.$m=t.getUTCMinutes(),this.$s=t.getUTCSeconds(),this.$ms=t.getUTCMilliseconds()}else r.call(this)};var a=u.utcOffset;u.utcOffset=function(s,f){var n=this.$utils().u;if(n(s))return this.$u?0:n(this.$offset)?a.call(this):this.$offset;if(\"string\"==typeof s&&(s=function(t){void 0===t&&(t=\"\");var s=t.match(i);if(!s)return null;var f=(\"\"+s[0]).match(e)||[\"-\",0,0],n=f[0],u=60*+f[1]+ +f[2];return 0===u?0:\"+\"===n?u:-u}(s),null===s))return this;var u=Math.abs(s)<=16?60*s:s,o=this;if(f)return o.$offset=u,o.$u=0===s,o;if(0!==s){var r=this.$u?this.toDate().getTimezoneOffset():-1*this.utcOffset();(o=this.local().add(u+r,t)).$offset=u,o.$x.$localOffset=r}else o=this.utc();return o};var h=u.format;u.format=function(t){var i=t||(this.$u?\"YYYY-MM-DDTHH:mm:ss[Z]\":\"\");return h.call(this,i)},u.valueOf=function(){var t=this.$utils().u(this.$offset)?0:this.$offset+(this.$x.$localOffset||this.$d.getTimezoneOffset());return this.$d.valueOf()-6e4*t},u.isUTC=function(){return!!this.$u},u.toISOString=function(){return this.toDate().toISOString()},u.toString=function(){return this.toDate().toUTCString()};var l=u.toDate;u.toDate=function(t){return\"s\"===t&&this.$offset?n(this.format(\"YYYY-MM-DD HH:mm:ss:SSS\")).toDate():l.call(this)};var c=u.diff;u.diff=function(t,i,e){if(t&&this.$u===t.$u)return c.call(this,t,i,e);var s=this.local(),f=n(t).local();return c.call(s,f,i,e)}}}));","import dayjs from \"dayjs\";\r\n\r\n\r\nimport updateLocale from 'dayjs/plugin/updateLocale';\r\nimport customParseFormat from 'dayjs/plugin/customParseFormat';\r\nimport utc from 'dayjs/plugin/utc';\r\n\r\ndayjs.extend(utc);\r\ndayjs.extend(updateLocale);\r\ndayjs.extend(customParseFormat);\r\n\r\nconst FORMAT_DATE = \"DD-MM-YYYY\";\r\nconst FORMAT_DATETIME = \"DD-MM-YYYY HH:mm:ss\";\r\nconst FORMAT_YEARMONTH = \"YYYY-MMMM\";\r\nconst FORMAT_YEARWEEK = \"YYYY-WW\";\r\nconst FORMAT_DAYOFMONTH = \"DD\";\r\nconst FORMAT_YEAR = \"YYYY\";\r\nconst FORMAT_TIME = \"HH:mm:ss\";\r\n\r\nfunction getCurrentMoment(){\r\n return dayjs();\r\n}\r\n\r\nfunction getCurrentDateText(){\r\n return convertMomentToDateText(getCurrentMoment());\r\n}\r\n\r\nfunction getCurrentDateTimeText(){\r\n return convertMomentToDateTimeText(getCurrentMoment());\r\n}\r\n\r\nfunction getCurrentDate(){\r\n return getCurrentMoment().toDate();\r\n}\r\n\r\nfunction convertMomentToTimestamp(moment) {\r\n if (moment) {\r\n return moment.toDate().getTime();\r\n } else {\r\n return null;\r\n }\r\n}\r\n\r\nfunction convertMomentToDateText(moment) {\r\n if (moment) {\r\n return moment.format(FORMAT_DATE);\r\n } else {\r\n return '';\r\n }\r\n}\r\n\r\nfunction convertTimestampToMoment(timestamp) {\r\n if (timestamp && timestamp > 0) {\r\n return dayjs(timestamp);\r\n } else {\r\n return null;\r\n }\r\n}\r\n\r\nfunction convertMomentToDateTimeText(moment) {\r\n if (moment) {\r\n return moment.format(FORMAT_DATETIME);\r\n } else {\r\n return \"\";\r\n }\r\n}\r\n\r\nfunction convertMomentToYearText(moment) {\r\n if (moment) {\r\n return moment.format(FORMAT_YEAR);\r\n } else {\r\n return \"\";\r\n }\r\n}\r\n\r\nfunction convertMomentToYearMonthText(moment) {\r\n if (moment) {\r\n return moment.format(FORMAT_YEARMONTH);\r\n } else {\r\n return \"\";\r\n }\r\n}\r\n\r\nfunction convertMomentToDayOfMonthText(moment) {\r\n if (moment) {\r\n return moment.format(FORMAT_DAYOFMONTH);\r\n } else {\r\n return \"\";\r\n }\r\n}\r\n\r\n\r\n\r\nfunction convertMomentToTimeText(moment) {\r\n if (moment) {\r\n return moment.format(FORMAT_TIME);\r\n } else {\r\n return \"\";\r\n }\r\n}\r\n\r\nfunction convertDateTimeTextToMoment(dateTimeText) {\r\n if (dateTimeText) {\r\n return dayjs(dateTimeText, FORMAT_DATETIME);\r\n } else {\r\n return null;\r\n }\r\n}\r\n\r\nfunction convertYearMonthTextToMoment(yearMonthText) {\r\n if (yearMonthText) {\r\n return dayjs(yearMonthText, FORMAT_YEARMONTH);\r\n } else {\r\n return null;\r\n }\r\n}\r\n\r\nfunction convertDateTextToMoment(dateText) {\r\n if (dateText) {\r\n return dayjs(dateText, FORMAT_DATE);\r\n } else {\r\n return null;\r\n }\r\n}\r\n\r\nfunction convertTimeTextToMoment(dateTimeText) {\r\n if (dateTimeText) {\r\n return dayjs(dateTimeText, FORMAT_TIME);\r\n } else {\r\n return null;\r\n }\r\n}\r\n\r\nfunction convertDateTextToDate(dateText) {\r\n if (dateText) {\r\n return dayjs(dateText, FORMAT_DATE).toDate();\r\n } else {\r\n return null;\r\n }\r\n}\r\n\r\nfunction convertDateTimeTextToDate(dateTimeText) {\r\n if (dateTimeText) {\r\n let moment = dayjs(dateTimeText, FORMAT_DATETIME);\r\n return dayjs(dateTimeText, FORMAT_DATETIME).toDate();\r\n } else {\r\n return null;\r\n }\r\n}\r\n\r\nfunction convertTimestampToDateText(timestamp) {\r\n let moments = convertTimestampToMoment(timestamp);\r\n let text = convertMomentToDateText(moments);\r\n return text;\r\n}\r\n\r\nfunction convertTimestampToDateTimeText(timestamp) {\r\n let moments = convertTimestampToMoment(timestamp);\r\n let text = convertMomentToDateTimeText(moments);\r\n return text;\r\n}\r\n\r\nfunction convertTimestampToTimeText(timestamp) {\r\n let moments = convertTimestampToMoment(timestamp);\r\n let text = convertMomentToTimeText(moments);\r\n return text;\r\n}\r\n\r\nfunction convertDateToMoment(date) {\r\n if(!date){\r\n return null;\r\n }\r\n return dayjs(date);\r\n}\r\n\r\nfunction convertDateToDateText(date) {\r\n let moments = convertDateToMoment(date);\r\n let text = convertMomentToDateText(moments);\r\n return text;\r\n}\r\n\r\nfunction convertDateToDateTimeText(date) {\r\n let moments = convertDateToMoment(date);\r\n let text = convertMomentToDateTimeText(moments);\r\n return text;\r\n}\r\n\r\n\r\nfunction buildDateRange(from, to){\r\n return from+\" ~ \"+to;\r\n}\r\n\r\nfunction getFormatTextOfMMM(mthNumber){\r\n let moment = getCurrentMoment();\r\n moment = moment.month(mthNumber-1);\r\n return moment.format('MMM');\r\n}\r\n\r\nexport default {\r\n FORMAT_DATE: FORMAT_DATE,\r\n FORMAT_DATETIME: FORMAT_DATETIME,\r\n FORMAT_YEARMONTH: FORMAT_YEARMONTH,\r\n FORMAT_YEARWEEK: FORMAT_YEARWEEK,\r\n FORMAT_TIME: FORMAT_TIME,\r\n\r\n getCurrentMoment: getCurrentMoment,\r\n getCurrentDateTimeText: getCurrentDateTimeText,\r\n getCurrentDateText: getCurrentDateText,\r\n getCurrentDate: getCurrentDate,\r\n\r\n convertMomentToTimestamp: convertMomentToTimestamp,\r\n convertMomentToDateText: convertMomentToDateText,\r\n convertMomentToDateTimeText: convertMomentToDateTimeText,\r\n convertMomentToYearText: convertMomentToYearText,\r\n convertMomentToYearMonthText: convertMomentToYearMonthText,\r\n convertMomentToDayOfMonthText: convertMomentToDayOfMonthText,\r\n convertMomentToTimeText: convertMomentToTimeText,\r\n\r\n convertTimestampToMoment: convertTimestampToMoment,\r\n convertTimestampToDateText: convertTimestampToDateText,\r\n convertTimestampToDateTimeText: convertTimestampToDateTimeText,\r\n convertTimestampToTimeText: convertTimestampToTimeText,\r\n\r\n convertDateToMoment: convertDateToMoment,\r\n convertDateToDateText: convertDateToDateText,\r\n convertDateToDateTimeText: convertDateToDateTimeText,\r\n\r\n convertYearMonthTextToMoment: convertYearMonthTextToMoment,\r\n convertDateTextToMoment: convertDateTextToMoment,\r\n convertDateTimeTextToMoment: convertDateTimeTextToMoment,\r\n convertTimeTextToMoment: convertTimeTextToMoment,\r\n\r\n convertDateTextToDate: convertDateTextToDate,\r\n convertDateTimeTextToDate: convertDateTimeTextToDate,\r\n\r\n buildDateRange:buildDateRange,\r\n\r\n getFormatTextOfMMM: getFormatTextOfMMM,\r\n};\r\n","import _ from \"lodash\";\r\n\r\nfunction resetBodyScroll() {\r\n document.querySelector(\"body\").style.position = \"initial\";\r\n}\r\n\r\nfunction forbidBodyScroll() {\r\n document.querySelector(\"body\").style.position = \"fixed\";\r\n}\r\n\r\nfunction syncDomAnimation() {\r\n setTimeout(() => {\r\n //sync all animation be the same\r\n _.each(document.getAnimations(), (item) => {\r\n item.startTime = 0;\r\n });\r\n }, 200);\r\n}\r\n\r\n/**\r\n * find the closet parent element by className\r\n *\r\n * @param elem\r\n * @param className\r\n */\r\nfunction closetByClassName(elem, classNameList) {\r\n let classList = elem.classList;\r\n if (classList) {\r\n if (_.intersection(classList, classNameList).length > 0) {\r\n return elem;\r\n }\r\n }\r\n\r\n let parentElement = elem.parentElement;\r\n if (parentElement) {\r\n return closetByClassName(parentElement, classNameList);\r\n } else {\r\n return null;\r\n }\r\n}\r\n\r\n/**\r\n * calc current dom node offset to the left-top of the window\r\n */\r\nfunction offset(domNode) {\r\n var offest = {\r\n top: 0,\r\n left: 0\r\n };\r\n if (!domNode.getClientRects().length) {\r\n return offest;\r\n }\r\n if (window.getComputedStyle(domNode)['display'] === 'none') {\r\n return offest;\r\n }\r\n\r\n offest = domNode.getBoundingClientRect();\r\n var docElement = domNode.ownerDocument.documentElement;\r\n return {\r\n top: offest.top + (window.scrollY || window.pageYOffset) - docElement.clientTop,\r\n left: offest.left + (window.scrollX || window.pageXOffset) - docElement.clientLeft\r\n };\r\n}\r\n\r\nexport default {\r\n resetBodyScroll: resetBodyScroll,\r\n forbidBodyScroll: forbidBodyScroll,\r\n\r\n syncDomAnimation: syncDomAnimation,\r\n closetByClassName: closetByClassName,\r\n\r\n offset: offset,\r\n};\r\n","function isIOS() {\r\n return [\r\n 'iPad Simulator',\r\n 'iPhone Simulator',\r\n 'iPod Simulator',\r\n 'iPad',\r\n 'iPhone',\r\n 'iPod'\r\n ].includes(navigator.platform) || (navigator.userAgent.includes(\"Mac\") && \"ontouchend\" in document)\r\n}\r\n\r\nfunction isDesktopChrome() {\r\n let result = /Chrome/.test(navigator.userAgent) && /Google Inc/.test(navigator.vendor);\r\n if (!result) {\r\n return false;\r\n }\r\n\r\n if (isMobileChrome()) {\r\n return false;\r\n }\r\n\r\n return true;\r\n}\r\n\r\nfunction isMobileChrome() {\r\n return /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent) && /Chrome/.test(navigator.userAgent) && /Google Inc/.test(navigator.vendor);\r\n}\r\n\r\nfunction isMobileDevice() {\r\n return isIOS() || isMobileChrome();\r\n}\r\n\r\nfunction updateViewPort(pOptions = {}) {\r\n let viewport = document.getElementsByName(\"viewport\");\r\n if (!viewport || viewport.length != 1) {\r\n return;\r\n }\r\n\r\n let options = {};\r\n _.merge(options, defaultOptions, pOptions);\r\n\r\n let content = [];\r\n _.each(options, (value, key) => {\r\n content.push(key + \"=\" + value);\r\n });\r\n\r\n viewport[0].content = _.join(content, \",\");\r\n\r\n console.debug(\"curr viewport is: \" + viewport[0].content);\r\n}\r\n\r\nexport default {\r\n isIOS: isIOS,\r\n isDesktopChrome: isDesktopChrome,\r\n isMobileChrome: isMobileChrome,\r\n\r\n isMobileDevice: isMobileDevice,\r\n\r\n updateViewPort: updateViewPort,\r\n};\r\n","import _ from \"lodash\";\r\n\r\nlet globalDialogUtils;\r\n\r\nfunction init(pDialogInstanceUtils) {\r\n globalDialogUtils = pDialogInstanceUtils;\r\n}\r\n\r\nfunction toFormData(keyPrefix, model, ignoreKeys = [], formData = {}) {\r\n if(model == null){\r\n return {\r\n keyPrefix: null\r\n }\r\n }\r\n\r\n _.each(_.keys(model), (attr) => {\r\n let value = model[attr];\r\n let formKeyPath = keyPrefix ? keyPrefix + \"#\" + attr : attr;\r\n\r\n if(_.includes(ignoreKeys, formKeyPath)){\r\n formData[formKeyPath] = value;\r\n return;\r\n }\r\n\r\n if (_.isPlainObject(value)) {\r\n toFormData(formKeyPath, value, ignoreKeys, formData);\r\n } else {\r\n formData[formKeyPath] = value;\r\n }\r\n })\r\n\r\n return formData;\r\n}\r\n\r\nfunction toModel(formData, ignoreKeys = []) {\r\n if(formData == null){\r\n return null;\r\n }\r\n\r\n let model = {};\r\n _.each(_.keys(formData), (formKeyPath) => {\r\n let value = formData[formKeyPath];\r\n let path = formKeyPath.replaceAll(\"#\", \".\");\r\n _.set(model, path, value);\r\n });\r\n\r\n return model;\r\n}\r\n\r\nfunction scrollToFirstError(ex){\r\n const isError = document.getElementsByClassName('ant-form-item-has-error');\r\n isError[0] && isError[0].scrollIntoView();\r\n console.error(ex);\r\n}\r\n\r\n/**\r\n * show leave message when exit from a modified form page\r\n * @param formOrCheckFormDirtyFunc AntDesignForm or checkFormDirtyFunction\r\n * @returns {Promise<boolean>} true: can exit, or: abort exit\r\n */\r\nasync function confirmOfLeavingForm(formOrCheckFormDirtyFunc) {\r\n if(formOrCheckFormDirtyFunc == null){\r\n return true;\r\n }\r\n\r\n let formDirty;\r\n if (typeof formOrCheckFormDirtyFunc === 'function') {\r\n formDirty = await formOrCheckFormDirtyFunc();\r\n }else{\r\n formDirty = formOrCheckFormDirtyFunc.isFieldsTouched();\r\n }\r\n\r\n if (formDirty) {\r\n let result = await globalDialogUtils.showConfirmDialog(leaveMessage);\r\n if (result !== true) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n}\r\n\r\nconst leaveMessage = \"Do you want to give up your modification?\";\r\nexport default {\r\n init: init,\r\n\r\n toFormData: toFormData,\r\n toModel: toModel,\r\n scrollToFirstError: scrollToFirstError,\r\n\r\n confirmOfLeavingForm: confirmOfLeavingForm,\r\n leaveMessage: leaveMessage\r\n};","import _ from \"lodash\";\r\n\r\nfunction isJsonText(value) {\r\n value = _.trim(value);\r\n\r\n return (_.startsWith(value, \"{\") || _.startsWith(value, \"[\"));\r\n}\r\n\r\nfunction formatJsonText(value) {\r\n if (!isJsonText(value)) {\r\n return value;\r\n }\r\n\r\n return JSON.stringify(JSON.parse(value), null, 4);\r\n}\r\n\r\n\r\nexport default {\r\n isJsonText: isJsonText,\r\n formatJsonText: formatJsonText,\r\n};\r\n","import _ from \"lodash\";\r\n\r\nfunction formatNumberTextWithUnit(numberText, unitText) {\r\n if (!unitText) {\r\n return numberText;\r\n }\r\n return numberText + \" \" + unitText;\r\n}\r\n\r\nfunction formatPctWith2Digital(valuePct) {\r\n let valuePctText = formatNumberWithDigital(valuePct, 2, false);\r\n return valuePctText + \"%\";\r\n}\r\n\r\nfunction formatNumberWith2Digital(value) {\r\n return formatNumberWithDigital(value, 2);\r\n}\r\n\r\nfunction formatNumberWith4Digital(value) {\r\n return formatNumberWithDigital(value, 4);\r\n}\r\n\r\nfunction formatNumberWithDigital(value, digital) {\r\n if (value === null) {\r\n return \"\";\r\n }\r\n\r\n let dblValue = (_.toNumber(value));\r\n if (isNaN(dblValue)) {\r\n //the string value could not be convert to number, just return it;\r\n return value;\r\n }\r\n\r\n let valueText = value;\r\n if (digital != null) {\r\n let text = _.round(dblValue, digital) + \"\";\r\n if (text.indexOf(\".\") === -1) {\r\n text += '.';\r\n }\r\n\r\n let part1 = text.substring(0, text.indexOf(\".\"));\r\n let part2 = \"\";\r\n\r\n if (digital > 0) {\r\n part2 = text.substring(text.indexOf(\".\") + 1); //取到小数部分搜索\r\n part2 = \".\" + _.padEnd(part2, digital, '0');\r\n }\r\n valueText = part1 + part2;\r\n }\r\n\r\n return valueText;\r\n}\r\n\r\nexport default {\r\n formatPctWith2Digital: formatPctWith2Digital,\r\n formatNumberWith2Digital: formatNumberWith2Digital,\r\n formatNumberWith4Digital: formatNumberWith4Digital,\r\n formatNumberWithDigital: formatNumberWithDigital,\r\n formatNumberTextWithUnit: formatNumberTextWithUnit,\r\n};\r\n","import _ from \"lodash\";\r\nimport AxiosUtils from \"./AxiosUtils\";\r\n\r\nconst constants = {\r\n CANVAS_WIDTH: 480,\r\n CANVAS_HEIGHT: 270,\r\n}\r\n\r\n/**\r\n * create an empty 2 dimension array\r\n */\r\nfunction new2dArray(width, height, initValue) {\r\n let array = [];\r\n for (let rowIdx = 0; rowIdx < height; rowIdx++) {\r\n let newRow = [];\r\n for (let colIdx = 0; colIdx < width; colIdx++) {\r\n newRow.push(initValue);\r\n }\r\n array.push(newRow);\r\n }\r\n return array;\r\n}\r\n\r\n/**\r\n * render grey level ImageDataArray to Canvas\r\n */\r\nfunction renderImageDataArrayToCtx(ctx, imageDataArray) {\r\n let height = imageDataArray.length;\r\n let width = imageDataArray[0].length;\r\n let imageData = new ImageData(width, height);\r\n let idx = 0;\r\n for (let rowIdx = 0; rowIdx < height; rowIdx++) {\r\n for (let colIdx = 0; colIdx < width; colIdx++) {\r\n let grayData = imageDataArray[rowIdx][colIdx];\r\n\r\n imageData.data[idx + 0] = grayData;\r\n imageData.data[idx + 1] = grayData;\r\n imageData.data[idx + 2] = grayData;\r\n imageData.data[idx + 3] = 255;\r\n idx = idx + 4;\r\n }\r\n }\r\n ctx.putImageData(imageData, 0, 0, 0, 0, width, height);\r\n}\r\n\r\nfunction getImageDataArrayFromCtx(ctx, canvasWidth, canvasHeight) {\r\n let imageData = ctx.getImageData(0, 0, canvasWidth, canvasHeight);\r\n\r\n let isEmpty = true;\r\n let imageDataArray = [];\r\n for (let i = 0; i < imageData.data.length; i = i + 4) {\r\n let red = imageData.data[i];\r\n imageDataArray[i / 4] = red;\r\n if (red !== 255) {\r\n isEmpty = false;\r\n }\r\n }\r\n\r\n if (isEmpty) {\r\n return null;\r\n }\r\n\r\n imageDataArray = _.chunk(imageDataArray, canvasWidth);\r\n return imageDataArray;\r\n}\r\n\r\nfunction initCanvas(ctx, canvasWidth, canvasHeight) {\r\n ctx.fillStyle = \"white\";\r\n ctx.lineWidth = 1;\r\n ctx.lineCap = 'round';\r\n ctx.lineJoin = 'round';\r\n\r\n ctx.fillRect(0, 0, canvasWidth, canvasHeight);\r\n ctx.fill();\r\n}\r\n\r\nasync function convertCanvasToBlobFile(canvas, fileName, fileType = 'image/jpeg') {\r\n return new Promise((resolve, reject) => {\r\n canvas.toBlob(async function (blob) {\r\n const file = new File([blob], fileName);\r\n resolve(file);\r\n }, fileType, 0.9);\r\n });\r\n}\r\n\r\n/**\r\n * Build grey level ImageDataArray from text\r\n */\r\nfunction calcImageDataArrayFromText(valueText) {\r\n if (valueText == null) {\r\n return;\r\n }\r\n\r\n let imageDataArray = [];\r\n _.each(valueText.split(\";\"), (rowData, rowIdx) => {\r\n let row = [];\r\n _.each(rowData.split(\",\"), (item, colIdx) => {\r\n row.push(item);\r\n });\r\n imageDataArray.push(row);\r\n });\r\n return imageDataArray;\r\n}\r\n\r\nfunction calcTextFromImageDataArray(imageDataArray) {\r\n if (imageDataArray == null) {\r\n return;\r\n }\r\n\r\n let valueText = \"\";\r\n for (let rowIdx = 0; rowIdx < imageDataArray.length; rowIdx++) {\r\n if (rowIdx > 0) {\r\n valueText += \";\";\r\n }\r\n valueText += imageDataArray[rowIdx].join(\",\");\r\n }\r\n return valueText;\r\n}\r\n\r\nexport default {\r\n constants: constants,\r\n new2dArray: new2dArray,\r\n initCanvas: initCanvas,\r\n //common\r\n convertCanvasToBlobFile: convertCanvasToBlobFile,\r\n\r\n //for signature\r\n renderImageDataArrayToCtx: renderImageDataArrayToCtx,\r\n getImageDataArrayFromCtx: getImageDataArrayFromCtx,\r\n calcImageDataArrayFromText: calcImageDataArrayFromText,\r\n calcTextFromImageDataArray: calcTextFromImageDataArray,\r\n};\r\n","import _ from \"lodash\";\r\n\r\nlet pattern=/[`~!@#$^\\-&*()=|{}':;,\\\\\\[\\].<>\\/?\\s]/g;\r\n\r\nfunction buildKeyword(text) {\r\n if(!text){\r\n return '';\r\n }\r\n\r\n let keyword = text.replace(pattern, '').toUpperCase();\r\n return keyword;\r\n}\r\n\r\n\r\nexport default {\r\n buildKeyword: buildKeyword,\r\n};\r\n"],"names":["init","isMobileDevice","_","param","this","e","n","t","r","i","s","o","a","f","h","u","c","d","l","m","M"],"mappings":"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","x_google_ignoreList":[4,5,6]}
|
|
@@ -156,12 +156,10 @@
|
|
|
156
156
|
}
|
|
157
157
|
customizedUserUtils = pCustomizedUserUtils;
|
|
158
158
|
uriGetCurrUserInfo = pUriGetCurrUserInfo || `/api/user/getCurrUserInfo`;
|
|
159
|
-
await getCurrUserModel();
|
|
160
159
|
setDeviceType(deviceType);
|
|
161
160
|
}
|
|
162
161
|
async function clear() {
|
|
163
162
|
currUserInfoCache = null;
|
|
164
|
-
appUserModel = null;
|
|
165
163
|
AppUtils.setLocalStorageObjItem("CURRENT_USER", null);
|
|
166
164
|
}
|
|
167
165
|
function setDeviceType(deviceType) {
|
|
@@ -181,9 +179,13 @@
|
|
|
181
179
|
if (customizedUserUtils && customizedUserUtils.getUserInfo) {
|
|
182
180
|
let currUser = await customizedUserUtils.getUserInfo();
|
|
183
181
|
currUserInfoCache = currUser;
|
|
182
|
+
AppUtils.setLocalStorageObjItem("CURRENT_USER", currUser);
|
|
184
183
|
return currUser;
|
|
185
184
|
} else {
|
|
186
|
-
|
|
185
|
+
let currUser = await AxiosUtils.getJsonData(uriGetCurrUserInfo);
|
|
186
|
+
currUserInfoCache = currUser;
|
|
187
|
+
AppUtils.setLocalStorageObjItem("CURRENT_USER", currUser);
|
|
188
|
+
return currUser;
|
|
187
189
|
}
|
|
188
190
|
}
|
|
189
191
|
function getCurrUserInfoCache() {
|
|
@@ -201,21 +203,14 @@
|
|
|
201
203
|
return (_a = getCurrUserInfoCache()) == null ? void 0 : _a.id;
|
|
202
204
|
}
|
|
203
205
|
let uriGetCurrUserInfo = null;
|
|
204
|
-
let appUserModel = null;
|
|
205
|
-
async function getCurrUserModel() {
|
|
206
|
-
if (appUserModel == null) {
|
|
207
|
-
appUserModel = await AxiosUtils.getJsonData(uriGetCurrUserInfo);
|
|
208
|
-
}
|
|
209
|
-
return appUserModel;
|
|
210
|
-
}
|
|
211
206
|
function userHasRole(roleCodeOrArray) {
|
|
212
|
-
if (
|
|
207
|
+
if (currUserInfoCache == null) {
|
|
213
208
|
return false;
|
|
214
209
|
}
|
|
215
210
|
if (_$1.isArray(roleCodeOrArray)) {
|
|
216
|
-
return !_$1.isEmpty(_$1.intersection(
|
|
211
|
+
return !_$1.isEmpty(_$1.intersection(currUserInfoCache.roleList, roleCodeOrArray));
|
|
217
212
|
} else {
|
|
218
|
-
return _$1.includes(
|
|
213
|
+
return _$1.includes(currUserInfoCache.roleList, roleCodeOrArray);
|
|
219
214
|
}
|
|
220
215
|
}
|
|
221
216
|
const LoginUserUtils = {
|
|
@@ -224,7 +219,6 @@
|
|
|
224
219
|
getCurrUserInfo,
|
|
225
220
|
getCurrUserInfoCache,
|
|
226
221
|
getCurrUserId,
|
|
227
|
-
getCurrUserModel,
|
|
228
222
|
userHasRole,
|
|
229
223
|
isMobileDevice: isMobileDevice$1
|
|
230
224
|
};
|
|
@@ -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 await getCurrUserModel();\r\n\r\n setDeviceType(deviceType);\r\n}\r\n\r\nasync function clear() {\r\n currUserInfoCache = null;\r\n appUserModel = 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 return currUser;\r\n } else {\r\n return getCurrUserInfoCache();\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 // 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\nlet appUserModel = null;\r\n\r\nasync function getCurrUserModel() {\r\n if (appUserModel == null) {\r\n appUserModel = await AxiosUtils.getJsonData(uriGetCurrUserInfo);\r\n }\r\n return appUserModel;\r\n}\r\n\r\n/**\r\n * check user role\r\n */\r\nfunction userHasRole(roleCodeOrArray) {\r\n if (appUserModel == null) {\r\n return false;\r\n }\r\n\r\n if (_.isArray(roleCodeOrArray)) {\r\n return !_.isEmpty(_.intersection(appUserModel.roleList, roleCodeOrArray));\r\n } else {\r\n return _.includes(appUserModel.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 getCurrUserModel: getCurrUserModel,\r\n userHasRole: userHasRole,\r\n\r\n isMobileDevice: isMobileDevice,\r\n\r\n};\r\n","import _ from 'lodash';\r\n\r\nimport CfgUtils from \"./CfgUtils\";\r\nimport LoginUserUtils from \"./LoginUserUtils\";\r\n\r\nlet axios = null;\r\nlet urlContext = null; //URL路径前缀\r\n\r\nlet RESULT = {\r\n SUCCESS: 200,\r\n};\r\n\r\n\r\nlet EXCEPTION_CODE = {\r\n AUTHENTICATION_FAILED_COMMON: 901,\r\n AUTHENTICATION_SESSION_EXPIRED: 905,\r\n NETWORK_ISSUE_CLIENT: 911,\r\n SYS_UNKNOWN_ISSUE: 999,\r\n}\r\n\r\nlet globalDialogUtilsInstance;\r\nlet globalSpinHandlerInstance;\r\nlet loginServiceInstance;\r\n\r\nfunction init(pAxios, pContext, pSpinHandlerInstance, pDialogUtilsInstance, pLoginServiceInstance) {\r\n axios = pAxios;\r\n\r\n // axios.defaults.baseURL = getPath(\"/xms-test\");\r\n axios.defaults.baseURL = getPath(pContext);\r\n axios.defaults.timeout = CfgUtils.ajax.timeout;\r\n\r\n globalDialogUtilsInstance = pDialogUtilsInstance;\r\n globalSpinHandlerInstance = pSpinHandlerInstance;\r\n loginServiceInstance = pLoginServiceInstance;\r\n}\r\n\r\nfunction getHostName(){\r\n return window.location.hostname;\r\n}\r\n\r\n/**\r\n *\r\n */\r\nfunction loadParamFromLocationSearch(paramKey) {\r\n var paramsStr = window.location.search;\r\n if (paramsStr.indexOf('?') === 0) {\r\n paramsStr = paramsStr.substring(1);\r\n }\r\n var entryParams = paramsStr.split('&');\r\n var entryParamStr = _.find(entryParams, function (param) {\r\n return param.indexOf(paramKey) === 0;\r\n });\r\n if (!entryParamStr) {\r\n return null;\r\n }\r\n var param = entryParamStr.split('=');\r\n if (!param[1]) {\r\n return null;\r\n }\r\n return param[1];\r\n}\r\n\r\n/**\r\n * get the entire url path\r\n * @param path start with '/'\r\n * @returns {string|*}\r\n */\r\nfunction getPath(path) {\r\n if (_.startsWith(path, \"http\")) {\r\n return path;\r\n }\r\n\r\n if (urlContext == null) {\r\n urlContext = window.document.location.href;\r\n let lastIdx = urlContext.indexOf('.htm');\r\n if (lastIdx > -1) {\r\n urlContext = urlContext.substring(0, urlContext.lastIndexOf('/', lastIdx));\r\n } else {\r\n lastIdx = urlContext.indexOf('/#');\r\n if (lastIdx > -1) {\r\n urlContext = urlContext.substring(0, lastIdx);\r\n } else {\r\n lastIdx = urlContext.indexOf('#');\r\n if (lastIdx > -1) {\r\n urlContext = urlContext.substring(0, lastIdx);\r\n } else {\r\n console.log(`Could not identify URL path ${urlContext}`);\r\n }\r\n }\r\n }\r\n //http://localhost:3000/index.html/#/index/highTriggerWiggleRoomValue -> http://localhost:3000\r\n }\r\n\r\n if(urlContext.endsWith(\"/\")){ //remove the last '/'\r\n urlContext = urlContext.substring(0, urlContext.length-1);\r\n }\r\n return urlContext + path;\r\n}\r\n\r\n/**\r\n * Download excel from server\r\n */\r\nfunction downloadExcelData(url, data, headers, options = {}) {\r\n return new Promise(async function (resolve, reject) {\r\n headers = headers || {};\r\n if (headers['Content-Type'] == null) {\r\n headers['Content-Type'] = 'application/json';\r\n }\r\n\r\n await buildUserAccessToken(headers);\r\n\r\n try {\r\n let response = await axios({\r\n method: 'post',\r\n url: url,\r\n data: data,\r\n headers: headers,\r\n responseType: 'blob'\r\n });\r\n if (response.data) {\r\n if (response.data.errorCode && response.data.errorCode !== RESULT.SUCCESS) {\r\n let errorResult = await handlerError(url, data, response);\r\n resolve(errorResult);\r\n return;\r\n }\r\n }\r\n\r\n const link = document.createElement('a')\r\n let blob = new Blob([response.data], {type: 'application/vnd.ms-excel'});\r\n let contentDisposition = response.headers[\"content-disposition\"];\r\n\r\n if (contentDisposition == null) {\r\n let errorResult = await handlerError(url, data, {\r\n data: {\r\n errorCode: EXCEPTION_CODE.SYS_UNKNOWN_ISSUE,\r\n error: \"System Error\",\r\n }\r\n });\r\n resolve(errorResult);\r\n return;\r\n }\r\n\r\n let temp = contentDisposition.split(\";\")[1].split(\"ilename=\")[1];\r\n var fileName = decodeURIComponent(temp);\r\n console.log(fileName)\r\n link.style.display = 'none'\r\n link.href = URL.createObjectURL(blob);\r\n link.setAttribute('download', fileName);\r\n document.body.appendChild(link);\r\n link.click();\r\n document.body.removeChild(link);\r\n\r\n resolve(true);\r\n } catch (e) {\r\n let errorResult = await handlerError(url, {}, e);\r\n resolve(errorResult);\r\n }\r\n });\r\n}\r\n\r\n\r\n/**\r\n * Download image from server, and return ImageData blob\r\n */\r\nfunction downloadImageData(url, data, headers, options = {}) {\r\n return new Promise(async function (resolve, reject) {\r\n headers = headers || {};\r\n if (headers['Content-Type'] == null) {\r\n headers['Content-Type'] = 'application/json';\r\n }\r\n\r\n await buildUserAccessToken(headers);\r\n\r\n try {\r\n let response = await axios({\r\n method: 'post',\r\n url: url,\r\n data: data,\r\n headers: headers,\r\n responseType: 'blob'\r\n });\r\n let imageData = response.data;\r\n if (imageData!=null) {\r\n if (response.data.errorCode && response.data.errorCode !== RESULT.SUCCESS) {\r\n let errorResult = await handlerError(url, data, response);\r\n resolve(null);\r\n return;\r\n }\r\n }\r\n resolve(imageData);\r\n } catch (e) {\r\n let errorResult = await handlerError(url, {}, e);\r\n resolve(null);\r\n }\r\n });\r\n}\r\n\r\n/**\r\n *\r\n */\r\nfunction downloadServerData(url) {\r\n return new Promise(function (resolve, reject) {\r\n\r\n const hyperlink = document.createElement('a');\r\n hyperlink.style.display = 'none';//隐藏,没必要展示出来\r\n hyperlink.href = url;\r\n hyperlink.target = \"_blank\";\r\n document.body.appendChild(hyperlink);\r\n hyperlink.click();\r\n URL.revokeObjectURL(hyperlink.href); // 释放URL 对象\r\n document.body.removeChild(hyperlink);//下载\r\n\r\n resolve(true);\r\n });\r\n}\r\n\r\n/**\r\n *\r\n */\r\nfunction downloadServerBlobData(url) {\r\n return new Promise(function (resolve, reject) {\r\n axios.get(url, {\r\n responseType: 'blob',\r\n }).then((res) => {\r\n resolve(res.data);\r\n }, (error) => {\r\n resolve(null);\r\n });\r\n });\r\n}\r\n\r\n/**\r\n * upload file to server\r\n * TODO Joey need check with FormData scenario\r\n */\r\nfunction uploadFile(url, file, headers, onUploadProgress, customizedOptions) {\r\n headers = headers || {};\r\n\r\n let formdata = new FormData();\r\n if (_.isArray(file)) {\r\n formdata.append(\"files\", file);\r\n } else {\r\n formdata.append(\"file\", file)\r\n }\r\n\r\n customizedOptions = customizedOptions || {};\r\n return execute(\"POST\", url, formdata, headers, onUploadProgress, customizedOptions)\r\n}\r\n\r\n/**\r\n * getStaticTextFile\r\n */\r\nfunction getStaticTextFile(url) {\r\n return new Promise(async function (resolve, reject) {\r\n axios.get(url).then((res) => {\r\n resolve(res);\r\n }, (error) => {\r\n resolve(null);\r\n });\r\n });\r\n}\r\n\r\n/**\r\n * build form-data from param object\r\n */\r\nfunction getUrlParam(params) {\r\n if (params) {\r\n var param = '';\r\n _.each(params, function (i, val) {\r\n if (i != null) {\r\n param += val + '=' + encodeURIComponent(i) + '&';\r\n } else {\r\n param += val + '=&';\r\n }\r\n });\r\n param = param.substring(0, param.length - 1);\r\n return param;\r\n } else {\r\n return '';\r\n }\r\n}\r\n\r\nfunction getFormData(url, headers, customizedOptions) {\r\n headers = headers || {};\r\n if (headers['Content-Type'] == null) {\r\n headers['Content-Type'] = 'application/x-www-form-urlencoded';\r\n }\r\n\r\n customizedOptions = customizedOptions || {};\r\n\r\n return execute(\"GET\", url, null, headers, null, customizedOptions)\r\n}\r\n\r\nfunction postFormData(url, dataObject, headers, customizedOptions) {\r\n let formdata = null;\r\n if (dataObject) {\r\n formdata = getUrlParam(dataObject);\r\n }\r\n\r\n headers = headers || {};\r\n if (headers['Content-Type'] == null) {\r\n headers['Content-Type'] = 'application/x-www-form-urlencoded';\r\n }\r\n\r\n customizedOptions = customizedOptions || {};\r\n\r\n return execute(\"POST\", url, formdata, headers, null, customizedOptions)\r\n}\r\n\r\nfunction getJsonData(url, headers, customizedOptions) {\r\n headers = headers || {};\r\n if (headers['Content-Type'] == null) {\r\n headers['Content-Type'] = 'application/json';\r\n }\r\n\r\n return execute(\"GET\", url, null, headers, null, customizedOptions)\r\n}\r\n\r\nfunction postJsonData(url, dataObject, headers, customizedOptions) {\r\n headers = headers || {};\r\n if (headers['Content-Type'] == null) {\r\n headers['Content-Type'] = 'application/json';\r\n }\r\n\r\n return execute(\"POST\", url, dataObject, headers, null, customizedOptions)\r\n}\r\n\r\n/**\r\n * General Axios Data request\r\n *\r\n * @param method\r\n * @param url\r\n * @param data\r\n * @param headers\r\n * @param customizedOptions: { }customizedErrorHandlerFlag: false }\r\n */\r\nfunction execute(method, url, data, headers, onUploadProgress, customizedOptions = {}) {\r\n return new Promise(function (resolve, reject) {\r\n //check and set User AccessToken in the request header\r\n buildUserAccessToken(headers).then(\r\n function () {\r\n //AccessToken is valid\r\n axios({\r\n method: method,\r\n url: url,\r\n data: data,\r\n headers: headers,\r\n onUploadProgress: onUploadProgress,\r\n })\r\n .then((response) => {\r\n if (response.data) {\r\n if (response.data.errorCode && response.data.errorCode !== RESULT.SUCCESS) {\r\n if (customizedOptions.customizedErrorHandlerFlag) {\r\n resolve(response.data);\r\n } else {\r\n handlerError(url, data, response).then((result) => {\r\n resolve(result);\r\n });\r\n }\r\n } else {\r\n resolve(response.data);\r\n }\r\n } else {\r\n resolve(response.data);\r\n }\r\n }, (error) => {\r\n if (customizedOptions.customizedErrorHandlerFlag) {\r\n resolve(error);\r\n } else {\r\n handlerError(url, data, error).then((result) => {\r\n resolve(result);\r\n });\r\n }\r\n });\r\n },\r\n (error) => {\r\n //AccessToken is invalid\r\n handlerError(url, data, error).then((result) => {\r\n resolve(result);\r\n });\r\n });\r\n\r\n });\r\n}\r\n\r\nasync function buildUserAccessToken(headers) {\r\n let currUserInfo = await LoginUserUtils.getCurrUserInfo();\r\n if (currUserInfo && currUserInfo.accessToken) {\r\n if (headers['ENOS_ACCESS_TOKEN'] == null) {\r\n headers['ENOS_ACCESS_TOKEN'] = currUserInfo.accessToken;\r\n }\r\n }\r\n}\r\n\r\n\r\n/**\r\n * build error message base on errorCode\r\n */\r\nfunction getErrorMsgByCode(errorCode, errorMsg) {\r\n return errorMsg;\r\n}\r\n\r\n/**\r\n * request error handler\r\n * if multiple ajax error happened. just process the first one.\r\n */\r\nvar reqErrorInProcessing = false;\r\n\r\nasync function handlerError(url, reqData, responseOrAxiosError) {\r\n if (reqErrorInProcessing === true) {\r\n return;\r\n }\r\n\r\n reqErrorInProcessing = true;\r\n await handlerErrorLogic(url, reqData, responseOrAxiosError);\r\n reqErrorInProcessing = false;\r\n}\r\n\r\nasync function showErrorMessage(errorCode, heading = \"System Error\", message) {\r\n globalSpinHandlerInstance.complete();\r\n await globalDialogUtilsInstance.showAppErrorDialog(heading, message);\r\n}\r\n\r\nasync function handlerErrorLogic(url, reqData, responseOrAxiosError) {\r\n let errorCode = _.get(responseOrAxiosError, 'data.errorCode');\r\n let error = _.get(responseOrAxiosError, 'data.error');\r\n\r\n if (!errorCode && _.get(responseOrAxiosError, 'code')) {\r\n let axiosErrorStatus = _.get(responseOrAxiosError, 'response.status');\r\n let axiosErrorStatusText = _.get(responseOrAxiosError, 'response.statusText');\r\n\r\n if (_.includes([502, 504], axiosErrorStatus)) {\r\n errorCode = EXCEPTION_CODE.NETWORK_ISSUE_CLIENT;\r\n error = axiosErrorStatusText;\r\n } else if (_.includes([400], axiosErrorStatus)) {\r\n errorCode = EXCEPTION_CODE.SYS_UNKNOWN_ISSUE;\r\n error = axiosErrorStatusText;\r\n } else if (_.includes([404], axiosErrorStatus)) {\r\n errorCode = EXCEPTION_CODE.SYS_UNKNOWN_ISSUE;\r\n error = axiosErrorStatusText;\r\n }\r\n }\r\n\r\n //session timeout\r\n var sessionTimeoutErrorCodes = [\r\n EXCEPTION_CODE.AUTHENTICATION_FAILED_COMMON,\r\n EXCEPTION_CODE.AUTHENTICATION_SESSION_EXPIRED,\r\n ]\r\n\r\n if (_.includes(sessionTimeoutErrorCodes, errorCode)) {\r\n await appSessionExit(errorCode, true);\r\n return;\r\n }\r\n\r\n if (EXCEPTION_CODE.NETWORK_ISSUE_CLIENT === errorCode) {\r\n await showErrorMessage(errorCode, \"Network issue\", error);\r\n return;\r\n }\r\n\r\n await showErrorMessage(errorCode, null, getErrorMsgByCode(errorCode, error));\r\n}\r\n\r\n/**\r\n * application exit handler\r\n */\r\nasync function appSessionExit(resultCode, forceCloseFlag) {\r\n if(loginServiceInstance && loginServiceInstance.logout){\r\n await loginServiceInstance.logout();\r\n }else {\r\n await globalDialogUtilsInstance.showAppErrorDialog(\"Session Timeout\", \"Please login again\");\r\n }\r\n}\r\n\r\nconst AxiosUtils = {\r\n init: init,\r\n getHostName: getHostName,\r\n loadParamFromLocationSearch: loadParamFromLocationSearch,\r\n getPath: getPath,\r\n getUrlParam: getUrlParam,\r\n getFormData: getFormData,\r\n postFormData: postFormData,\r\n getJsonData: getJsonData,\r\n postJsonData: postJsonData,\r\n downloadExcelData: downloadExcelData,\r\n downloadImageData: downloadImageData,\r\n downloadServerData: downloadServerData,\r\n downloadServerBlobData: downloadServerBlobData,\r\n uploadFile: uploadFile,\r\n getStaticTextFile: getStaticTextFile,\r\n appSessionExit: appSessionExit,\r\n handlerError: handlerError,\r\n getErrorMsgByCode: getErrorMsgByCode,\r\n\r\n RESULT: RESULT,\r\n EXCEPTION_CODE: EXCEPTION_CODE,\r\n};\r\n\r\nexport default AxiosUtils;\r\n","!function(e,n){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=n():\"function\"==typeof define&&define.amd?define(n):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).dayjs_plugin_updateLocale=n()}(this,(function(){\"use strict\";return function(e,n,t){t.updateLocale=function(e,n){var o=t.Ls[e];if(o)return(n?Object.keys(n):[]).forEach((function(e){o[e]=n[e]})),o}}}));","!function(e,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define(t):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).dayjs_plugin_customParseFormat=t()}(this,(function(){\"use strict\";var e={LTS:\"h:mm:ss A\",LT:\"h:mm A\",L:\"MM/DD/YYYY\",LL:\"MMMM D, YYYY\",LLL:\"MMMM D, YYYY h:mm A\",LLLL:\"dddd, MMMM D, YYYY h:mm A\"},t=/(\\[[^[]*\\])|([-_:/.,()\\s]+)|(A|a|YYYY|YY?|MM?M?M?|Do|DD?|hh?|HH?|mm?|ss?|S{1,3}|z|ZZ?)/g,n=/\\d\\d/,r=/\\d\\d?/,i=/\\d*[^-_:/,()\\s\\d]+/,o={},s=function(e){return(e=+e)+(e>68?1900:2e3)};var a=function(e){return function(t){this[e]=+t}},f=[/[+-]\\d\\d:?(\\d\\d)?|Z/,function(e){(this.zone||(this.zone={})).offset=function(e){if(!e)return 0;if(\"Z\"===e)return 0;var t=e.match(/([+-]|\\d\\d)/g),n=60*t[1]+(+t[2]||0);return 0===n?0:\"+\"===t[0]?-n:n}(e)}],h=function(e){var t=o[e];return t&&(t.indexOf?t:t.s.concat(t.f))},u=function(e,t){var n,r=o.meridiem;if(r){for(var i=1;i<=24;i+=1)if(e.indexOf(r(i,0,t))>-1){n=i>12;break}}else n=e===(t?\"pm\":\"PM\");return n},d={A:[i,function(e){this.afternoon=u(e,!1)}],a:[i,function(e){this.afternoon=u(e,!0)}],S:[/\\d/,function(e){this.milliseconds=100*+e}],SS:[n,function(e){this.milliseconds=10*+e}],SSS:[/\\d{3}/,function(e){this.milliseconds=+e}],s:[r,a(\"seconds\")],ss:[r,a(\"seconds\")],m:[r,a(\"minutes\")],mm:[r,a(\"minutes\")],H:[r,a(\"hours\")],h:[r,a(\"hours\")],HH:[r,a(\"hours\")],hh:[r,a(\"hours\")],D:[r,a(\"day\")],DD:[n,a(\"day\")],Do:[i,function(e){var t=o.ordinal,n=e.match(/\\d+/);if(this.day=n[0],t)for(var r=1;r<=31;r+=1)t(r).replace(/\\[|\\]/g,\"\")===e&&(this.day=r)}],M:[r,a(\"month\")],MM:[n,a(\"month\")],MMM:[i,function(e){var t=h(\"months\"),n=(h(\"monthsShort\")||t.map((function(e){return e.slice(0,3)}))).indexOf(e)+1;if(n<1)throw new Error;this.month=n%12||n}],MMMM:[i,function(e){var t=h(\"months\").indexOf(e)+1;if(t<1)throw new Error;this.month=t%12||t}],Y:[/[+-]?\\d+/,a(\"year\")],YY:[n,function(e){this.year=s(e)}],YYYY:[/\\d{4}/,a(\"year\")],Z:f,ZZ:f};function c(n){var r,i;r=n,i=o&&o.formats;for(var s=(n=r.replace(/(\\[[^\\]]+])|(LTS?|l{1,4}|L{1,4})/g,(function(t,n,r){var o=r&&r.toUpperCase();return n||i[r]||e[r]||i[o].replace(/(\\[[^\\]]+])|(MMMM|MM|DD|dddd)/g,(function(e,t,n){return t||n.slice(1)}))}))).match(t),a=s.length,f=0;f<a;f+=1){var h=s[f],u=d[h],c=u&&u[0],l=u&&u[1];s[f]=l?{regex:c,parser:l}:h.replace(/^\\[|\\]$/g,\"\")}return function(e){for(var t={},n=0,r=0;n<a;n+=1){var i=s[n];if(\"string\"==typeof i)r+=i.length;else{var o=i.regex,f=i.parser,h=e.slice(r),u=o.exec(h)[0];f.call(t,u),e=e.replace(u,\"\")}}return function(e){var t=e.afternoon;if(void 0!==t){var n=e.hours;t?n<12&&(e.hours+=12):12===n&&(e.hours=0),delete e.afternoon}}(t),t}}return function(e,t,n){n.p.customParseFormat=!0,e&&e.parseTwoDigitYear&&(s=e.parseTwoDigitYear);var r=t.prototype,i=r.parse;r.parse=function(e){var t=e.date,r=e.utc,s=e.args;this.$u=r;var a=s[1];if(\"string\"==typeof a){var f=!0===s[2],h=!0===s[3],u=f||h,d=s[2];h&&(d=s[2]),o=this.$locale(),!f&&d&&(o=n.Ls[d]),this.$d=function(e,t,n){try{if([\"x\",\"X\"].indexOf(t)>-1)return new Date((\"X\"===t?1e3:1)*e);var r=c(t)(e),i=r.year,o=r.month,s=r.day,a=r.hours,f=r.minutes,h=r.seconds,u=r.milliseconds,d=r.zone,l=new Date,m=s||(i||o?1:l.getDate()),M=i||l.getFullYear(),Y=0;i&&!o||(Y=o>0?o-1:l.getMonth());var p=a||0,v=f||0,D=h||0,g=u||0;return d?new Date(Date.UTC(M,Y,m,p,v,D,g+60*d.offset*1e3)):n?new Date(Date.UTC(M,Y,m,p,v,D,g)):new Date(M,Y,m,p,v,D,g)}catch(e){return new Date(\"\")}}(t,a,r),this.init(),d&&!0!==d&&(this.$L=this.locale(d).$L),u&&t!=this.format(a)&&(this.$d=new Date(\"\")),o={}}else if(a instanceof Array)for(var l=a.length,m=1;m<=l;m+=1){s[1]=a[m-1];var M=n.apply(this,s);if(M.isValid()){this.$d=M.$d,this.$L=M.$L,this.init();break}m===l&&(this.$d=new Date(\"\"))}else i.call(this,e)}}}));","!function(t,i){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=i():\"function\"==typeof define&&define.amd?define(i):(t=\"undefined\"!=typeof globalThis?globalThis:t||self).dayjs_plugin_utc=i()}(this,(function(){\"use strict\";var t=\"minute\",i=/[+-]\\d\\d(?::?\\d\\d)?/g,e=/([+-]|\\d\\d)/g;return function(s,f,n){var u=f.prototype;n.utc=function(t){var i={date:t,utc:!0,args:arguments};return new f(i)},u.utc=function(i){var e=n(this.toDate(),{locale:this.$L,utc:!0});return i?e.add(this.utcOffset(),t):e},u.local=function(){return n(this.toDate(),{locale:this.$L,utc:!1})};var o=u.parse;u.parse=function(t){t.utc&&(this.$u=!0),this.$utils().u(t.$offset)||(this.$offset=t.$offset),o.call(this,t)};var r=u.init;u.init=function(){if(this.$u){var t=this.$d;this.$y=t.getUTCFullYear(),this.$M=t.getUTCMonth(),this.$D=t.getUTCDate(),this.$W=t.getUTCDay(),this.$H=t.getUTCHours(),this.$m=t.getUTCMinutes(),this.$s=t.getUTCSeconds(),this.$ms=t.getUTCMilliseconds()}else r.call(this)};var a=u.utcOffset;u.utcOffset=function(s,f){var n=this.$utils().u;if(n(s))return this.$u?0:n(this.$offset)?a.call(this):this.$offset;if(\"string\"==typeof s&&(s=function(t){void 0===t&&(t=\"\");var s=t.match(i);if(!s)return null;var f=(\"\"+s[0]).match(e)||[\"-\",0,0],n=f[0],u=60*+f[1]+ +f[2];return 0===u?0:\"+\"===n?u:-u}(s),null===s))return this;var u=Math.abs(s)<=16?60*s:s,o=this;if(f)return o.$offset=u,o.$u=0===s,o;if(0!==s){var r=this.$u?this.toDate().getTimezoneOffset():-1*this.utcOffset();(o=this.local().add(u+r,t)).$offset=u,o.$x.$localOffset=r}else o=this.utc();return o};var h=u.format;u.format=function(t){var i=t||(this.$u?\"YYYY-MM-DDTHH:mm:ss[Z]\":\"\");return h.call(this,i)},u.valueOf=function(){var t=this.$utils().u(this.$offset)?0:this.$offset+(this.$x.$localOffset||this.$d.getTimezoneOffset());return this.$d.valueOf()-6e4*t},u.isUTC=function(){return!!this.$u},u.toISOString=function(){return this.toDate().toISOString()},u.toString=function(){return this.toDate().toUTCString()};var l=u.toDate;u.toDate=function(t){return\"s\"===t&&this.$offset?n(this.format(\"YYYY-MM-DD HH:mm:ss:SSS\")).toDate():l.call(this)};var c=u.diff;u.diff=function(t,i,e){if(t&&this.$u===t.$u)return c.call(this,t,i,e);var s=this.local(),f=n(t).local();return c.call(s,f,i,e)}}}));","import dayjs from \"dayjs\";\r\n\r\n\r\nimport updateLocale from 'dayjs/plugin/updateLocale';\r\nimport customParseFormat from 'dayjs/plugin/customParseFormat';\r\nimport utc from 'dayjs/plugin/utc';\r\n\r\ndayjs.extend(utc);\r\ndayjs.extend(updateLocale);\r\ndayjs.extend(customParseFormat);\r\n\r\nconst FORMAT_DATE = \"DD-MM-YYYY\";\r\nconst FORMAT_DATETIME = \"DD-MM-YYYY HH:mm:ss\";\r\nconst FORMAT_YEARMONTH = \"YYYY-MMMM\";\r\nconst FORMAT_YEARWEEK = \"YYYY-WW\";\r\nconst FORMAT_DAYOFMONTH = \"DD\";\r\nconst FORMAT_YEAR = \"YYYY\";\r\nconst FORMAT_TIME = \"HH:mm:ss\";\r\n\r\nfunction getCurrentMoment(){\r\n return dayjs();\r\n}\r\n\r\nfunction getCurrentDateText(){\r\n return convertMomentToDateText(getCurrentMoment());\r\n}\r\n\r\nfunction getCurrentDateTimeText(){\r\n return convertMomentToDateTimeText(getCurrentMoment());\r\n}\r\n\r\nfunction getCurrentDate(){\r\n return getCurrentMoment().toDate();\r\n}\r\n\r\nfunction convertMomentToTimestamp(moment) {\r\n if (moment) {\r\n return moment.toDate().getTime();\r\n } else {\r\n return null;\r\n }\r\n}\r\n\r\nfunction convertMomentToDateText(moment) {\r\n if (moment) {\r\n return moment.format(FORMAT_DATE);\r\n } else {\r\n return '';\r\n }\r\n}\r\n\r\nfunction convertTimestampToMoment(timestamp) {\r\n if (timestamp && timestamp > 0) {\r\n return dayjs(timestamp);\r\n } else {\r\n return null;\r\n }\r\n}\r\n\r\nfunction convertMomentToDateTimeText(moment) {\r\n if (moment) {\r\n return moment.format(FORMAT_DATETIME);\r\n } else {\r\n return \"\";\r\n }\r\n}\r\n\r\nfunction convertMomentToYearText(moment) {\r\n if (moment) {\r\n return moment.format(FORMAT_YEAR);\r\n } else {\r\n return \"\";\r\n }\r\n}\r\n\r\nfunction convertMomentToYearMonthText(moment) {\r\n if (moment) {\r\n return moment.format(FORMAT_YEARMONTH);\r\n } else {\r\n return \"\";\r\n }\r\n}\r\n\r\nfunction convertMomentToDayOfMonthText(moment) {\r\n if (moment) {\r\n return moment.format(FORMAT_DAYOFMONTH);\r\n } else {\r\n return \"\";\r\n }\r\n}\r\n\r\n\r\n\r\nfunction convertMomentToTimeText(moment) {\r\n if (moment) {\r\n return moment.format(FORMAT_TIME);\r\n } else {\r\n return \"\";\r\n }\r\n}\r\n\r\nfunction convertDateTimeTextToMoment(dateTimeText) {\r\n if (dateTimeText) {\r\n return dayjs(dateTimeText, FORMAT_DATETIME);\r\n } else {\r\n return null;\r\n }\r\n}\r\n\r\nfunction convertYearMonthTextToMoment(yearMonthText) {\r\n if (yearMonthText) {\r\n return dayjs(yearMonthText, FORMAT_YEARMONTH);\r\n } else {\r\n return null;\r\n }\r\n}\r\n\r\nfunction convertDateTextToMoment(dateText) {\r\n if (dateText) {\r\n return dayjs(dateText, FORMAT_DATE);\r\n } else {\r\n return null;\r\n }\r\n}\r\n\r\nfunction convertTimeTextToMoment(dateTimeText) {\r\n if (dateTimeText) {\r\n return dayjs(dateTimeText, FORMAT_TIME);\r\n } else {\r\n return null;\r\n }\r\n}\r\n\r\nfunction convertDateTextToDate(dateText) {\r\n if (dateText) {\r\n return dayjs(dateText, FORMAT_DATE).toDate();\r\n } else {\r\n return null;\r\n }\r\n}\r\n\r\nfunction convertDateTimeTextToDate(dateTimeText) {\r\n if (dateTimeText) {\r\n let moment = dayjs(dateTimeText, FORMAT_DATETIME);\r\n return dayjs(dateTimeText, FORMAT_DATETIME).toDate();\r\n } else {\r\n return null;\r\n }\r\n}\r\n\r\nfunction convertTimestampToDateText(timestamp) {\r\n let moments = convertTimestampToMoment(timestamp);\r\n let text = convertMomentToDateText(moments);\r\n return text;\r\n}\r\n\r\nfunction convertTimestampToDateTimeText(timestamp) {\r\n let moments = convertTimestampToMoment(timestamp);\r\n let text = convertMomentToDateTimeText(moments);\r\n return text;\r\n}\r\n\r\nfunction convertTimestampToTimeText(timestamp) {\r\n let moments = convertTimestampToMoment(timestamp);\r\n let text = convertMomentToTimeText(moments);\r\n return text;\r\n}\r\n\r\nfunction convertDateToMoment(date) {\r\n if(!date){\r\n return null;\r\n }\r\n return dayjs(date);\r\n}\r\n\r\nfunction convertDateToDateText(date) {\r\n let moments = convertDateToMoment(date);\r\n let text = convertMomentToDateText(moments);\r\n return text;\r\n}\r\n\r\nfunction convertDateToDateTimeText(date) {\r\n let moments = convertDateToMoment(date);\r\n let text = convertMomentToDateTimeText(moments);\r\n return text;\r\n}\r\n\r\n\r\nfunction buildDateRange(from, to){\r\n return from+\" ~ \"+to;\r\n}\r\n\r\nfunction getFormatTextOfMMM(mthNumber){\r\n let moment = getCurrentMoment();\r\n moment = moment.month(mthNumber-1);\r\n return moment.format('MMM');\r\n}\r\n\r\nexport default {\r\n FORMAT_DATE: FORMAT_DATE,\r\n FORMAT_DATETIME: FORMAT_DATETIME,\r\n FORMAT_YEARMONTH: FORMAT_YEARMONTH,\r\n FORMAT_YEARWEEK: FORMAT_YEARWEEK,\r\n FORMAT_TIME: FORMAT_TIME,\r\n\r\n getCurrentMoment: getCurrentMoment,\r\n getCurrentDateTimeText: getCurrentDateTimeText,\r\n getCurrentDateText: getCurrentDateText,\r\n getCurrentDate: getCurrentDate,\r\n\r\n convertMomentToTimestamp: convertMomentToTimestamp,\r\n convertMomentToDateText: convertMomentToDateText,\r\n convertMomentToDateTimeText: convertMomentToDateTimeText,\r\n convertMomentToYearText: convertMomentToYearText,\r\n convertMomentToYearMonthText: convertMomentToYearMonthText,\r\n convertMomentToDayOfMonthText: convertMomentToDayOfMonthText,\r\n convertMomentToTimeText: convertMomentToTimeText,\r\n\r\n convertTimestampToMoment: convertTimestampToMoment,\r\n convertTimestampToDateText: convertTimestampToDateText,\r\n convertTimestampToDateTimeText: convertTimestampToDateTimeText,\r\n convertTimestampToTimeText: convertTimestampToTimeText,\r\n\r\n convertDateToMoment: convertDateToMoment,\r\n convertDateToDateText: convertDateToDateText,\r\n convertDateToDateTimeText: convertDateToDateTimeText,\r\n\r\n convertYearMonthTextToMoment: convertYearMonthTextToMoment,\r\n convertDateTextToMoment: convertDateTextToMoment,\r\n convertDateTimeTextToMoment: convertDateTimeTextToMoment,\r\n convertTimeTextToMoment: convertTimeTextToMoment,\r\n\r\n convertDateTextToDate: convertDateTextToDate,\r\n convertDateTimeTextToDate: convertDateTimeTextToDate,\r\n\r\n buildDateRange:buildDateRange,\r\n\r\n getFormatTextOfMMM: getFormatTextOfMMM,\r\n};\r\n","import _ from \"lodash\";\r\n\r\nfunction resetBodyScroll() {\r\n document.querySelector(\"body\").style.position = \"initial\";\r\n}\r\n\r\nfunction forbidBodyScroll() {\r\n document.querySelector(\"body\").style.position = \"fixed\";\r\n}\r\n\r\nfunction syncDomAnimation() {\r\n setTimeout(() => {\r\n //sync all animation be the same\r\n _.each(document.getAnimations(), (item) => {\r\n item.startTime = 0;\r\n });\r\n }, 200);\r\n}\r\n\r\n/**\r\n * find the closet parent element by className\r\n *\r\n * @param elem\r\n * @param className\r\n */\r\nfunction closetByClassName(elem, classNameList) {\r\n let classList = elem.classList;\r\n if (classList) {\r\n if (_.intersection(classList, classNameList).length > 0) {\r\n return elem;\r\n }\r\n }\r\n\r\n let parentElement = elem.parentElement;\r\n if (parentElement) {\r\n return closetByClassName(parentElement, classNameList);\r\n } else {\r\n return null;\r\n }\r\n}\r\n\r\n/**\r\n * calc current dom node offset to the left-top of the window\r\n */\r\nfunction offset(domNode) {\r\n var offest = {\r\n top: 0,\r\n left: 0\r\n };\r\n if (!domNode.getClientRects().length) {\r\n return offest;\r\n }\r\n if (window.getComputedStyle(domNode)['display'] === 'none') {\r\n return offest;\r\n }\r\n\r\n offest = domNode.getBoundingClientRect();\r\n var docElement = domNode.ownerDocument.documentElement;\r\n return {\r\n top: offest.top + (window.scrollY || window.pageYOffset) - docElement.clientTop,\r\n left: offest.left + (window.scrollX || window.pageXOffset) - docElement.clientLeft\r\n };\r\n}\r\n\r\nexport default {\r\n resetBodyScroll: resetBodyScroll,\r\n forbidBodyScroll: forbidBodyScroll,\r\n\r\n syncDomAnimation: syncDomAnimation,\r\n closetByClassName: closetByClassName,\r\n\r\n offset: offset,\r\n};\r\n","function isIOS() {\r\n return [\r\n 'iPad Simulator',\r\n 'iPhone Simulator',\r\n 'iPod Simulator',\r\n 'iPad',\r\n 'iPhone',\r\n 'iPod'\r\n ].includes(navigator.platform) || (navigator.userAgent.includes(\"Mac\") && \"ontouchend\" in document)\r\n}\r\n\r\nfunction isDesktopChrome() {\r\n let result = /Chrome/.test(navigator.userAgent) && /Google Inc/.test(navigator.vendor);\r\n if (!result) {\r\n return false;\r\n }\r\n\r\n if (isMobileChrome()) {\r\n return false;\r\n }\r\n\r\n return true;\r\n}\r\n\r\nfunction isMobileChrome() {\r\n return /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent) && /Chrome/.test(navigator.userAgent) && /Google Inc/.test(navigator.vendor);\r\n}\r\n\r\nfunction isMobileDevice() {\r\n return isIOS() || isMobileChrome();\r\n}\r\n\r\nfunction updateViewPort(pOptions = {}) {\r\n let viewport = document.getElementsByName(\"viewport\");\r\n if (!viewport || viewport.length != 1) {\r\n return;\r\n }\r\n\r\n let options = {};\r\n _.merge(options, defaultOptions, pOptions);\r\n\r\n let content = [];\r\n _.each(options, (value, key) => {\r\n content.push(key + \"=\" + value);\r\n });\r\n\r\n viewport[0].content = _.join(content, \",\");\r\n\r\n console.debug(\"curr viewport is: \" + viewport[0].content);\r\n}\r\n\r\nexport default {\r\n isIOS: isIOS,\r\n isDesktopChrome: isDesktopChrome,\r\n isMobileChrome: isMobileChrome,\r\n\r\n isMobileDevice: isMobileDevice,\r\n\r\n updateViewPort: updateViewPort,\r\n};\r\n","import _ from \"lodash\";\r\n\r\nlet globalDialogUtils;\r\n\r\nfunction init(pDialogInstanceUtils) {\r\n globalDialogUtils = pDialogInstanceUtils;\r\n}\r\n\r\nfunction toFormData(keyPrefix, model, ignoreKeys = [], formData = {}) {\r\n if(model == null){\r\n return {\r\n keyPrefix: null\r\n }\r\n }\r\n\r\n _.each(_.keys(model), (attr) => {\r\n let value = model[attr];\r\n let formKeyPath = keyPrefix ? keyPrefix + \"#\" + attr : attr;\r\n\r\n if(_.includes(ignoreKeys, formKeyPath)){\r\n formData[formKeyPath] = value;\r\n return;\r\n }\r\n\r\n if (_.isPlainObject(value)) {\r\n toFormData(formKeyPath, value, ignoreKeys, formData);\r\n } else {\r\n formData[formKeyPath] = value;\r\n }\r\n })\r\n\r\n return formData;\r\n}\r\n\r\nfunction toModel(formData, ignoreKeys = []) {\r\n if(formData == null){\r\n return null;\r\n }\r\n\r\n let model = {};\r\n _.each(_.keys(formData), (formKeyPath) => {\r\n let value = formData[formKeyPath];\r\n let path = formKeyPath.replaceAll(\"#\", \".\");\r\n _.set(model, path, value);\r\n });\r\n\r\n return model;\r\n}\r\n\r\nfunction scrollToFirstError(ex){\r\n const isError = document.getElementsByClassName('ant-form-item-has-error');\r\n isError[0] && isError[0].scrollIntoView();\r\n console.error(ex);\r\n}\r\n\r\n/**\r\n * show leave message when exit from a modified form page\r\n * @param formOrCheckFormDirtyFunc AntDesignForm or checkFormDirtyFunction\r\n * @returns {Promise<boolean>} true: can exit, or: abort exit\r\n */\r\nasync function confirmOfLeavingForm(formOrCheckFormDirtyFunc) {\r\n if(formOrCheckFormDirtyFunc == null){\r\n return true;\r\n }\r\n\r\n let formDirty;\r\n if (typeof formOrCheckFormDirtyFunc === 'function') {\r\n formDirty = await formOrCheckFormDirtyFunc();\r\n }else{\r\n formDirty = formOrCheckFormDirtyFunc.isFieldsTouched();\r\n }\r\n\r\n if (formDirty) {\r\n let result = await globalDialogUtils.showConfirmDialog(leaveMessage);\r\n if (result !== true) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n}\r\n\r\nconst leaveMessage = \"Do you want to give up your modification?\";\r\nexport default {\r\n init: init,\r\n\r\n toFormData: toFormData,\r\n toModel: toModel,\r\n scrollToFirstError: scrollToFirstError,\r\n\r\n confirmOfLeavingForm: confirmOfLeavingForm,\r\n leaveMessage: leaveMessage\r\n};","import _ from \"lodash\";\r\n\r\nfunction isJsonText(value) {\r\n value = _.trim(value);\r\n\r\n return (_.startsWith(value, \"{\") || _.startsWith(value, \"[\"));\r\n}\r\n\r\nfunction formatJsonText(value) {\r\n if (!isJsonText(value)) {\r\n return value;\r\n }\r\n\r\n return JSON.stringify(JSON.parse(value), null, 4);\r\n}\r\n\r\n\r\nexport default {\r\n isJsonText: isJsonText,\r\n formatJsonText: formatJsonText,\r\n};\r\n","import _ from \"lodash\";\r\n\r\nfunction formatNumberTextWithUnit(numberText, unitText) {\r\n if (!unitText) {\r\n return numberText;\r\n }\r\n return numberText + \" \" + unitText;\r\n}\r\n\r\nfunction formatPctWith2Digital(valuePct) {\r\n let valuePctText = formatNumberWithDigital(valuePct, 2, false);\r\n return valuePctText + \"%\";\r\n}\r\n\r\nfunction formatNumberWith2Digital(value) {\r\n return formatNumberWithDigital(value, 2);\r\n}\r\n\r\nfunction formatNumberWith4Digital(value) {\r\n return formatNumberWithDigital(value, 4);\r\n}\r\n\r\nfunction formatNumberWithDigital(value, digital) {\r\n if (value === null) {\r\n return \"\";\r\n }\r\n\r\n let dblValue = (_.toNumber(value));\r\n if (isNaN(dblValue)) {\r\n //the string value could not be convert to number, just return it;\r\n return value;\r\n }\r\n\r\n let valueText = value;\r\n if (digital != null) {\r\n let text = _.round(dblValue, digital) + \"\";\r\n if (text.indexOf(\".\") === -1) {\r\n text += '.';\r\n }\r\n\r\n let part1 = text.substring(0, text.indexOf(\".\"));\r\n let part2 = \"\";\r\n\r\n if (digital > 0) {\r\n part2 = text.substring(text.indexOf(\".\") + 1); //取到小数部分搜索\r\n part2 = \".\" + _.padEnd(part2, digital, '0');\r\n }\r\n valueText = part1 + part2;\r\n }\r\n\r\n return valueText;\r\n}\r\n\r\nexport default {\r\n formatPctWith2Digital: formatPctWith2Digital,\r\n formatNumberWith2Digital: formatNumberWith2Digital,\r\n formatNumberWith4Digital: formatNumberWith4Digital,\r\n formatNumberWithDigital: formatNumberWithDigital,\r\n formatNumberTextWithUnit: formatNumberTextWithUnit,\r\n};\r\n","import _ from \"lodash\";\r\nimport AxiosUtils from \"./AxiosUtils\";\r\n\r\nconst constants = {\r\n CANVAS_WIDTH: 480,\r\n CANVAS_HEIGHT: 270,\r\n}\r\n\r\n/**\r\n * create an empty 2 dimension array\r\n */\r\nfunction new2dArray(width, height, initValue) {\r\n let array = [];\r\n for (let rowIdx = 0; rowIdx < height; rowIdx++) {\r\n let newRow = [];\r\n for (let colIdx = 0; colIdx < width; colIdx++) {\r\n newRow.push(initValue);\r\n }\r\n array.push(newRow);\r\n }\r\n return array;\r\n}\r\n\r\n/**\r\n * render grey level ImageDataArray to Canvas\r\n */\r\nfunction renderImageDataArrayToCtx(ctx, imageDataArray) {\r\n let height = imageDataArray.length;\r\n let width = imageDataArray[0].length;\r\n let imageData = new ImageData(width, height);\r\n let idx = 0;\r\n for (let rowIdx = 0; rowIdx < height; rowIdx++) {\r\n for (let colIdx = 0; colIdx < width; colIdx++) {\r\n let grayData = imageDataArray[rowIdx][colIdx];\r\n\r\n imageData.data[idx + 0] = grayData;\r\n imageData.data[idx + 1] = grayData;\r\n imageData.data[idx + 2] = grayData;\r\n imageData.data[idx + 3] = 255;\r\n idx = idx + 4;\r\n }\r\n }\r\n ctx.putImageData(imageData, 0, 0, 0, 0, width, height);\r\n}\r\n\r\nfunction getImageDataArrayFromCtx(ctx, canvasWidth, canvasHeight) {\r\n let imageData = ctx.getImageData(0, 0, canvasWidth, canvasHeight);\r\n\r\n let isEmpty = true;\r\n let imageDataArray = [];\r\n for (let i = 0; i < imageData.data.length; i = i + 4) {\r\n let red = imageData.data[i];\r\n imageDataArray[i / 4] = red;\r\n if (red !== 255) {\r\n isEmpty = false;\r\n }\r\n }\r\n\r\n if (isEmpty) {\r\n return null;\r\n }\r\n\r\n imageDataArray = _.chunk(imageDataArray, canvasWidth);\r\n return imageDataArray;\r\n}\r\n\r\nfunction initCanvas(ctx, canvasWidth, canvasHeight) {\r\n ctx.fillStyle = \"white\";\r\n ctx.lineWidth = 1;\r\n ctx.lineCap = 'round';\r\n ctx.lineJoin = 'round';\r\n\r\n ctx.fillRect(0, 0, canvasWidth, canvasHeight);\r\n ctx.fill();\r\n}\r\n\r\nasync function convertCanvasToBlobFile(canvas, fileName, fileType = 'image/jpeg') {\r\n return new Promise((resolve, reject) => {\r\n canvas.toBlob(async function (blob) {\r\n const file = new File([blob], fileName);\r\n resolve(file);\r\n }, fileType, 0.9);\r\n });\r\n}\r\n\r\n/**\r\n * Build grey level ImageDataArray from text\r\n */\r\nfunction calcImageDataArrayFromText(valueText) {\r\n if (valueText == null) {\r\n return;\r\n }\r\n\r\n let imageDataArray = [];\r\n _.each(valueText.split(\";\"), (rowData, rowIdx) => {\r\n let row = [];\r\n _.each(rowData.split(\",\"), (item, colIdx) => {\r\n row.push(item);\r\n });\r\n imageDataArray.push(row);\r\n });\r\n return imageDataArray;\r\n}\r\n\r\nfunction calcTextFromImageDataArray(imageDataArray) {\r\n if (imageDataArray == null) {\r\n return;\r\n }\r\n\r\n let valueText = \"\";\r\n for (let rowIdx = 0; rowIdx < imageDataArray.length; rowIdx++) {\r\n if (rowIdx > 0) {\r\n valueText += \";\";\r\n }\r\n valueText += imageDataArray[rowIdx].join(\",\");\r\n }\r\n return valueText;\r\n}\r\n\r\nexport default {\r\n constants: constants,\r\n new2dArray: new2dArray,\r\n initCanvas: initCanvas,\r\n //common\r\n convertCanvasToBlobFile: convertCanvasToBlobFile,\r\n\r\n //for signature\r\n renderImageDataArrayToCtx: renderImageDataArrayToCtx,\r\n getImageDataArrayFromCtx: getImageDataArrayFromCtx,\r\n calcImageDataArrayFromText: calcImageDataArrayFromText,\r\n calcTextFromImageDataArray: calcTextFromImageDataArray,\r\n};\r\n","import _ from \"lodash\";\r\n\r\nlet pattern=/[`~!@#$^\\-&*()=|{}':;,\\\\\\[\\].<>\\/?\\s]/g;\r\n\r\nfunction buildKeyword(text) {\r\n if(!text){\r\n return '';\r\n }\r\n\r\n let keyword = text.replace(pattern, '').toUpperCase();\r\n return keyword;\r\n}\r\n\r\n\r\nexport default {\r\n buildKeyword: buildKeyword,\r\n};\r\n"],"names":["Base64","init","isMobileDevice","_","param","module","this","e","n","t","r","i","s","o","a","f","h","u","c","d","l","m","M"],"mappings":";;;;AAAe,QAAA,WAAA;AAAA;AAAA,IAEX,SAAS;AAAA,MACL,SAAS;AAAA;AAAA,MACT,yBAAyB;AAAA;AAAA,MACzB,qCAAqC;AAAA;AAAA,IACxC;AAAA;AAAA,IAED,MAAK;AAAA,MACD,SAAS;AAAA;AAAA,IACZ;AAAA,IACD,QAAQ;AAAA,MACJ,aAAa;AAAA,IAChB;AAAA,EACL;ACRA,WAAS,cAAc,SAAS;AAC5B,8BAA0B,eAAe,OAAO;AAAA,EACpD;AAEA,WAAS,gBAAgB;AACrB,WAAO,0BAA0B,aAAa;AAAA,EAClD;AAGA,WAAS,gBAAgB,SAAS;AAC9B,8BAA0B,iBAAiB,OAAO;AAAA,EACtD;AAEA,WAAS,kBAAkB;AACvB,WAAO,0BAA0B,eAAe;AAAA,EACpD;AAGA,WAAS,mBAAmB,SAAS;AACjC,8BAA0B,qBAAqB,OAAO;AAAA,EAC1D;AAEA,WAAS,qBAAqB;AAC1B,WAAO,0BAA0B,mBAAmB;AAAA,EACxD;AAMA,WAAS,0BAA0B,KAAI;AACnC,QAAI,UAAU,SAAS,QAAQ,UAAU,MAAM;AAC/C,QAAI,MAAM,aAAa,QAAQ,OAAO;AACtC,WAAO,OAAM;AAAA,EACjB;AAEA,WAAS,uBAAuB,KAAK,KAAK;AACtC,QAAI,UAAU,SAAS,QAAQ,UAAU,MAAM;AAC/C,iBAAa,WAAW,OAAO;AAAA,EACnC;AAKA,WAAS,0BAA0B,KAAK,KAAK;AACzC,QAAI,UAAU,SAAS,QAAQ,UAAU,MAAM;AAC/C,QAAI,YAAY;AAChB,iBAAa,QAAQ,SAAS,OAAO,SAAS,CAAC;AAAA,EACnD;AAEA,WAAS,0BAA0B,KAAK;AACpC,QAAI,UAAU,SAAS,QAAQ,UAAU,MAAM;AAC/C,QAAI,MAAM,OAAO,aAAa,QAAQ,OAAO,CAAC;AAC9C,WAAO;AAAA,EACX;AAMA,WAAS,uBAAuB,KAAK,KAAK;AACtC,QAAI,UAAU,SAAS,QAAQ,UAAU,MAAM;AAC/C,iBAAa,QAAQ,SAAS,OAAO,KAAK,UAAU,GAAG,CAAC,CAAC;AAAA,EAC7D;AAEA,WAAS,uBAAuB,KAAK;AACjC,QAAI,UAAU,SAAS,QAAQ,UAAU,MAAM;AAC/C,QAAI,MAAM;AACV,QAAI;AACA,UAAI,UAAU,aAAa,QAAQ,OAAO;AAC1C,YAAM,KAAK,MAAM,OAAO,OAAO,CAAC;AAAA,IACnC,SAAQ,GAAG;AAAA,IACX;AACD,WAAO;AAAA,EACX;AAEA,WAAS,2BAA2B,KAAK,KAAI;AACzC,2BAAuB,KAAK,GAAG;AAAA,EACnC;AAEA,WAAS,2BAA2B,KAAI;AACpC,QAAI,SAAS,uBAAuB,GAAG;AACvC,2BAAuB,KAAK,IAAI;AAChC,WAAO;AAAA,EACX;AAEA,WAAS,2BAA2B,KAAK,KAAI;AACzC,8BAA0B,KAAK,GAAG;AAAA,EACtC;AAEA,WAAS,0BAA0B,KAAI;AACnC,QAAI,SAAS,0BAA0B,GAAG;AAC1C,2BAAuB,GAAG;AAC1B,WAAO;AAAA,EACX;AAEA,WAAS,6BAA6B,KAAK,KAAI;AAC3C,6BAAyB,KAAK,GAAG;AAAA,EACrC;AAEA,WAAS,6BAA6B,KAAI;AACtC,QAAI,SAAS,yBAAyB,GAAG;AACzC,6BAAyB,KAAK,IAAI;AAClC,WAAO;AAAA,EACX;AAEA,WAAS,yBAAyB,KAAK,KAAK;AACxC,QAAI,UAAU,SAAS,QAAQ,UAAU,MAAM;AAC/C,mBAAe,QAAQ,SAAS,OAAO,KAAK,UAAU,GAAG,CAAC,CAAC;AAAA,EAC/D;AAEA,WAAS,yBAAyB,KAAK;AACnC,QAAI,UAAU,SAAS,QAAQ,UAAU,MAAM;AAC/C,QAAI,MAAM;AACV,QAAI;AACA,UAAI,UAAU,eAAe,QAAQ,OAAO;AAC5C,YAAM,KAAK,MAAM,OAAO,OAAO,CAAC;AAAA,IACnC,SAAQ,GAAG;AAAA,IACX;AACD,WAAO;AAAA,EACX;AAEA,WAAS,OAAO,eAAc;AAC1B,QAAG,CAAC,eAAc;AACd,aAAO;AAAA,IACV;AACD,QAAG,CAAC,SAAS,QAAQ,yBAAwB;AACzC,aAAO;AAAA,IACV;AACD,WAAOA,SAAM,OAAC,OAAO,aAAa;AAAA,EACtC;AAEA,WAAS,OAAO,aAAY;AACxB,QAAG,CAAC,aAAY;AACZ,aAAO;AAAA,IACV;AACD,QAAG,CAAC,SAAS,QAAQ,yBAAwB;AACzC,aAAO;AAAA,IACV;AACD,WAAOA,SAAM,OAAC,OAAO,WAAW;AAAA,EACpC;AAEe,QAAA,WAAA;AAAA,IACX;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IAEA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IAEA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IAEA;AAAA,IACA;AAAA,IAEA;AAAA,IACA;AAAA,EACJ;ACpKA,iBAAeC,OACX,YACA,oBACA,sBACA,qBACF;AACE,QAAI,oBAAoB;AACpB,0BAAoB;AACpB,eAAS,uBAAuB,gBAAgB,iBAAiB;AAAA,IACpE;AAED,0BAAsB;AACtB,yBAAqB,uBAAuB;AAE5C,UAAM,iBAAgB;AAEtB,kBAAc,UAAU;AAAA,EAC5B;AAEA,iBAAe,QAAQ;AACnB,wBAAoB;AACpB,mBAAe;AACf,aAAS,uBAAuB,gBAAgB,IAAI;AAAA,EACxD;AAEA,WAAS,cAAc,YAAY;AAC/B,QAAI,eAAe,UAAU;AACzB,eAAS,0BAA0B,eAAe,QAAQ;AAAA,IAClE,OAAW;AACH,eAAS,0BAA0B,eAAe,KAAK;AAAA,IAC1D;AAAA,EACL;AAEA,WAASC,mBAAiB;AACtB,QAAI,aAAa,SAAS,0BAA0B,aAAa;AACjE,WAAO,eAAe;AAAA,EAC1B;AAEA,MAAI,sBAAsB;AAC1B,MAAI,oBAAoB;AAExB,iBAAe,kBAAkB;AAC7B,QAAI,uBAAuB,oBAAoB,aAAa;AACxD,UAAI,WAAW,MAAM,oBAAoB;AACzC,0BAAoB;AACpB,aAAO;AAAA,IACf,OAAW;AACH,aAAO,qBAAoB;AAAA,IAC9B;AAAA,EACL;AAEA,WAAS,uBAAuB;AAC5B,QAAI,qBAAqB,MAAM;AAC3B,aAAO;AAAA,IACV;AAED,wBAAoB,SAAS,uBAAuB,cAAc;AAClE,QAAI,qBAAqB,MAAM;AAC3B,aAAO;AAAA,IACV;AAGD,WAAO;AAAA,EACX;AAEA,WAAS,gBAAgB;;AACrB,YAAO,0BAAsB,MAAtB,mBAAwB;AAAA,EACnC;AAGA,MAAI,qBAAqB;AACzB,MAAI,eAAe;AAEnB,iBAAe,mBAAmB;AAC9B,QAAI,gBAAgB,MAAM;AACtB,qBAAe,MAAM,WAAW,YAAY,kBAAkB;AAAA,IACjE;AACD,WAAO;AAAA,EACX;AAKA,WAAS,YAAY,iBAAiB;AAClC,QAAI,gBAAgB,MAAM;AACtB,aAAO;AAAA,IACV;AAED,QAAIC,IAAE,QAAQ,eAAe,GAAG;AAC5B,aAAO,CAACA,IAAE,QAAQA,IAAE,aAAa,aAAa,UAAU,eAAe,CAAC;AAAA,IAChF,OAAW;AACH,aAAOA,IAAE,SAAS,aAAa,UAAU,eAAe;AAAA,IAC3D;AAAA,EACL;AAEe,QAAA,iBAAA;AAAA,IACX,MAAMF;AAAAA,IACN;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IAEA,gBAAgBC;AAAAA,EAEpB;AC7GA,MAAI,QAAQ;AACZ,MAAI,aAAa;AAEjB,MAAI,SAAS;AAAA,IACT,SAAS;AAAA,EACb;AAGA,MAAI,iBAAiB;AAAA,IACjB,8BAA8B;AAAA,IAC9B,gCAAgC;AAAA,IAChC,sBAAsB;AAAA,IACtB,mBAAmB;AAAA,EACvB;AAEA,MAAI;AACJ,MAAI;AACJ,MAAI;AAEJ,WAASD,OAAK,QAAQ,UAAU,sBAAsB,sBAAsB,uBAAuB;AAC/F,YAAQ;AAGR,UAAM,SAAS,UAAU,QAAQ,QAAQ;AACzC,UAAM,SAAS,UAAU,SAAS,KAAK;AAEvC,gCAA4B;AAC5B,gCAA4B;AAC5B,2BAAuB;AAAA,EAC3B;AAEA,WAAS,cAAa;AAClB,WAAO,OAAO,SAAS;AAAA,EAC3B;AAKA,WAAS,4BAA4B,UAAU;AAC3C,QAAI,YAAY,OAAO,SAAS;AAChC,QAAI,UAAU,QAAQ,GAAG,MAAM,GAAG;AAC9B,kBAAY,UAAU,UAAU,CAAC;AAAA,IACpC;AACD,QAAI,cAAc,UAAU,MAAM,GAAG;AACrC,QAAI,gBAAgBE,IAAE,KAAK,aAAa,SAAUC,QAAO;AACrD,aAAOA,OAAM,QAAQ,QAAQ,MAAM;AAAA,IAC3C,CAAK;AACD,QAAI,CAAC,eAAe;AAChB,aAAO;AAAA,IACV;AACD,QAAI,QAAQ,cAAc,MAAM,GAAG;AACnC,QAAI,CAAC,MAAM,CAAC,GAAG;AACX,aAAO;AAAA,IACV;AACD,WAAO,MAAM,CAAC;AAAA,EAClB;AAOA,WAAS,QAAQ,MAAM;AACnB,QAAID,IAAE,WAAW,MAAM,MAAM,GAAG;AAC5B,aAAO;AAAA,IACV;AAED,QAAI,cAAc,MAAM;AACpB,mBAAa,OAAO,SAAS,SAAS;AACtC,UAAI,UAAU,WAAW,QAAQ,MAAM;AACvC,UAAI,UAAU,IAAI;AACd,qBAAa,WAAW,UAAU,GAAG,WAAW,YAAY,KAAK,OAAO,CAAC;AAAA,MACrF,OAAe;AACH,kBAAU,WAAW,QAAQ,IAAI;AACjC,YAAI,UAAU,IAAI;AACd,uBAAa,WAAW,UAAU,GAAG,OAAO;AAAA,QAC5D,OAAmB;AACH,oBAAU,WAAW,QAAQ,GAAG;AAChC,cAAI,UAAU,IAAI;AACd,yBAAa,WAAW,UAAU,GAAG,OAAO;AAAA,UAChE,OAAuB;AACH,oBAAQ,IAAI,+BAA+B,UAAU,EAAE;AAAA,UAC1D;AAAA,QACJ;AAAA,MACJ;AAAA,IAEJ;AAED,QAAG,WAAW,SAAS,GAAG,GAAE;AACxB,mBAAa,WAAW,UAAU,GAAG,WAAW,SAAO,CAAC;AAAA,IAC3D;AACD,WAAO,aAAa;AAAA,EACxB;AAKA,WAAS,kBAAkB,KAAK,MAAM,SAAS,UAAU,CAAA,GAAI;AACzD,WAAO,IAAI,QAAQ,eAAgB,SAAS,QAAQ;AAChD,gBAAU,WAAW;AACrB,UAAI,QAAQ,cAAc,KAAK,MAAM;AACjC,gBAAQ,cAAc,IAAI;AAAA,MAC7B;AAED,YAAM,qBAAqB,OAAO;AAElC,UAAI;AACA,YAAI,WAAW,MAAM,MAAM;AAAA,UACvB,QAAQ;AAAA,UACR;AAAA,UACA;AAAA,UACA;AAAA,UACA,cAAc;AAAA,QAC9B,CAAa;AACD,YAAI,SAAS,MAAM;AACf,cAAI,SAAS,KAAK,aAAa,SAAS,KAAK,cAAc,OAAO,SAAS;AACvE,gBAAI,cAAc,MAAM,aAAa,KAAK,MAAM,QAAQ;AACxD,oBAAQ,WAAW;AACnB;AAAA,UACH;AAAA,QACJ;AAED,cAAM,OAAO,SAAS,cAAc,GAAG;AACvC,YAAI,OAAO,IAAI,KAAK,CAAC,SAAS,IAAI,GAAG,EAAC,MAAM,2BAA0B,CAAC;AACvE,YAAI,qBAAqB,SAAS,QAAQ,qBAAqB;AAE/D,YAAI,sBAAsB,MAAM;AAC5B,cAAI,cAAc,MAAM,aAAa,KAAK,MAAM;AAAA,YAC5C,MAAM;AAAA,cACF,WAAW,eAAe;AAAA,cAC1B,OAAO;AAAA,YACV;AAAA,UACrB,CAAiB;AACD,kBAAQ,WAAW;AACnB;AAAA,QACH;AAED,YAAI,OAAO,mBAAmB,MAAM,GAAG,EAAE,CAAC,EAAE,MAAM,UAAU,EAAE,CAAC;AAC/D,YAAI,WAAW,mBAAmB,IAAI;AACtC,gBAAQ,IAAI,QAAQ;AACpB,aAAK,MAAM,UAAU;AACrB,aAAK,OAAO,IAAI,gBAAgB,IAAI;AACpC,aAAK,aAAa,YAAY,QAAQ;AACtC,iBAAS,KAAK,YAAY,IAAI;AAC9B,aAAK,MAAK;AACV,iBAAS,KAAK,YAAY,IAAI;AAE9B,gBAAQ,IAAI;AAAA,MACf,SAAQ,GAAG;AACR,YAAI,cAAc,MAAM,aAAa,KAAK,CAAE,GAAE,CAAC;AAC/C,gBAAQ,WAAW;AAAA,MACtB;AAAA,IACT,CAAK;AAAA,EACL;AAMA,WAAS,kBAAkB,KAAK,MAAM,SAAS,UAAU,CAAA,GAAI;AACzD,WAAO,IAAI,QAAQ,eAAgB,SAAS,QAAQ;AAChD,gBAAU,WAAW;AACrB,UAAI,QAAQ,cAAc,KAAK,MAAM;AACjC,gBAAQ,cAAc,IAAI;AAAA,MAC7B;AAED,YAAM,qBAAqB,OAAO;AAElC,UAAI;AACA,YAAI,WAAW,MAAM,MAAM;AAAA,UACvB,QAAQ;AAAA,UACR;AAAA,UACA;AAAA,UACA;AAAA,UACA,cAAc;AAAA,QAC9B,CAAa;AACD,YAAI,YAAY,SAAS;AACzB,YAAI,aAAW,MAAM;AACjB,cAAI,SAAS,KAAK,aAAa,SAAS,KAAK,cAAc,OAAO,SAAS;AACvE,gBAAI,cAAc,MAAM,aAAa,KAAK,MAAM,QAAQ;AACxD,oBAAQ,IAAI;AACZ;AAAA,UACH;AAAA,QACJ;AACD,gBAAQ,SAAS;AAAA,MACpB,SAAQ,GAAG;AACU,cAAM,aAAa,KAAK,CAAE,GAAE,CAAC;AAC/C,gBAAQ,IAAI;AAAA,MACf;AAAA,IACT,CAAK;AAAA,EACL;AAKA,WAAS,mBAAmB,KAAK;AAC7B,WAAO,IAAI,QAAQ,SAAU,SAAS,QAAQ;AAE1C,YAAM,YAAY,SAAS,cAAc,GAAG;AAC5C,gBAAU,MAAM,UAAU;AAC1B,gBAAU,OAAO;AACjB,gBAAU,SAAS;AACnB,eAAS,KAAK,YAAY,SAAS;AACnC,gBAAU,MAAK;AACf,UAAI,gBAAgB,UAAU,IAAI;AAClC,eAAS,KAAK,YAAY,SAAS;AAEnC,cAAQ,IAAI;AAAA,IACpB,CAAK;AAAA,EACL;AAKA,WAAS,uBAAuB,KAAK;AACjC,WAAO,IAAI,QAAQ,SAAU,SAAS,QAAQ;AAC1C,YAAM,IAAI,KAAK;AAAA,QACX,cAAc;AAAA,MAC1B,CAAS,EAAE,KAAK,CAAC,QAAQ;AACb,gBAAQ,IAAI,IAAI;AAAA,MACnB,GAAE,CAAC,UAAU;AACV,gBAAQ,IAAI;AAAA,MACxB,CAAS;AAAA,IACT,CAAK;AAAA,EACL;AAMA,WAAS,WAAW,KAAK,MAAM,SAAS,kBAAkB,mBAAmB;AACzE,cAAU,WAAW;AAErB,QAAI,WAAW,IAAI;AACnB,QAAIA,IAAE,QAAQ,IAAI,GAAG;AACjB,eAAS,OAAO,SAAS,IAAI;AAAA,IACrC,OAAW;AACH,eAAS,OAAO,QAAQ,IAAI;AAAA,IAC/B;AAED,wBAAoB,qBAAqB;AACzC,WAAO,QAAQ,QAAQ,KAAK,UAAU,SAAS,kBAAkB,iBAAiB;AAAA,EACtF;AAKA,WAAS,kBAAkB,KAAK;AAC5B,WAAO,IAAI,QAAQ,eAAgB,SAAS,QAAQ;AAChD,YAAM,IAAI,GAAG,EAAE,KAAK,CAAC,QAAQ;AACzB,gBAAQ,GAAG;AAAA,MACd,GAAE,CAAC,UAAU;AACV,gBAAQ,IAAI;AAAA,MACxB,CAAS;AAAA,IACT,CAAK;AAAA,EACL;AAKA,WAAS,YAAY,QAAQ;AACzB,QAAI,QAAQ;AACR,UAAI,QAAQ;AACZA,UAAE,KAAK,QAAQ,SAAU,GAAG,KAAK;AAC7B,YAAI,KAAK,MAAM;AACX,mBAAS,MAAM,MAAM,mBAAmB,CAAC,IAAI;AAAA,QAC7D,OAAmB;AACH,mBAAS,MAAM;AAAA,QAClB;AAAA,MACb,CAAS;AACD,cAAQ,MAAM,UAAU,GAAG,MAAM,SAAS,CAAC;AAC3C,aAAO;AAAA,IACf,OAAW;AACH,aAAO;AAAA,IACV;AAAA,EACL;AAEA,WAAS,YAAY,KAAK,SAAS,mBAAmB;AAClD,cAAU,WAAW;AACrB,QAAI,QAAQ,cAAc,KAAK,MAAM;AACjC,cAAQ,cAAc,IAAI;AAAA,IAC7B;AAED,wBAAoB,qBAAqB;AAEzC,WAAO,QAAQ,OAAO,KAAK,MAAM,SAAS,MAAM,iBAAiB;AAAA,EACrE;AAEA,WAAS,aAAa,KAAK,YAAY,SAAS,mBAAmB;AAC/D,QAAI,WAAW;AACf,QAAI,YAAY;AACZ,iBAAW,YAAY,UAAU;AAAA,IACpC;AAED,cAAU,WAAW;AACrB,QAAI,QAAQ,cAAc,KAAK,MAAM;AACjC,cAAQ,cAAc,IAAI;AAAA,IAC7B;AAED,wBAAoB,qBAAqB;AAEzC,WAAO,QAAQ,QAAQ,KAAK,UAAU,SAAS,MAAM,iBAAiB;AAAA,EAC1E;AAEA,WAAS,YAAY,KAAK,SAAS,mBAAmB;AAClD,cAAU,WAAW;AACrB,QAAI,QAAQ,cAAc,KAAK,MAAM;AACjC,cAAQ,cAAc,IAAI;AAAA,IAC7B;AAED,WAAO,QAAQ,OAAO,KAAK,MAAM,SAAS,MAAM,iBAAiB;AAAA,EACrE;AAEA,WAAS,aAAa,KAAK,YAAY,SAAS,mBAAmB;AAC/D,cAAU,WAAW;AACrB,QAAI,QAAQ,cAAc,KAAK,MAAM;AACjC,cAAQ,cAAc,IAAI;AAAA,IAC7B;AAED,WAAO,QAAQ,QAAQ,KAAK,YAAY,SAAS,MAAM,iBAAiB;AAAA,EAC5E;AAWA,WAAS,QAAQ,QAAQ,KAAK,MAAM,SAAS,kBAAkB,oBAAoB,IAAI;AACnF,WAAO,IAAI,QAAQ,SAAU,SAAS,QAAQ;AAE1C,2BAAqB,OAAO,EAAE;AAAA,QAC1B,WAAY;AAER,gBAAM;AAAA,YACF;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,UACpB,CAAiB,EACI,KAAK,CAAC,aAAa;AAChB,gBAAI,SAAS,MAAM;AACf,kBAAI,SAAS,KAAK,aAAa,SAAS,KAAK,cAAc,OAAO,SAAS;AACvE,oBAAI,kBAAkB,4BAA4B;AAC9C,0BAAQ,SAAS,IAAI;AAAA,gBACzD,OAAuC;AACH,+BAAa,KAAK,MAAM,QAAQ,EAAE,KAAK,CAAC,WAAW;AAC/C,4BAAQ,MAAM;AAAA,kBACtD,CAAqC;AAAA,gBACJ;AAAA,cACjC,OAAmC;AACH,wBAAQ,SAAS,IAAI;AAAA,cACxB;AAAA,YAC7B,OAA+B;AACH,sBAAQ,SAAS,IAAI;AAAA,YACxB;AAAA,UACJ,GAAE,CAAC,UAAU;AACV,gBAAI,kBAAkB,4BAA4B;AAC9C,sBAAQ,KAAK;AAAA,YACzC,OAA+B;AACH,2BAAa,KAAK,MAAM,KAAK,EAAE,KAAK,CAAC,WAAW;AAC5C,wBAAQ,MAAM;AAAA,cAC9C,CAA6B;AAAA,YACJ;AAAA,UACzB,CAAqB;AAAA,QACR;AAAA,QACD,CAAC,UAAU;AAEP,uBAAa,KAAK,MAAM,KAAK,EAAE,KAAK,CAAC,WAAW;AAC5C,oBAAQ,MAAM;AAAA,UAClC,CAAiB;AAAA,QACjB;AAAA,MAAa;AAAA,IAEb,CAAK;AAAA,EACL;AAEA,iBAAe,qBAAqB,SAAS;AACzC,QAAI,eAAe,MAAM,eAAe;AACxC,QAAI,gBAAgB,aAAa,aAAa;AAC1C,UAAI,QAAQ,mBAAmB,KAAK,MAAM;AACtC,gBAAQ,mBAAmB,IAAI,aAAa;AAAA,MAC/C;AAAA,IACJ;AAAA,EACL;AAMA,WAAS,kBAAkB,WAAW,UAAU;AAC5C,WAAO;AAAA,EACX;AAMA,MAAI,uBAAuB;AAE3B,iBAAe,aAAa,KAAK,SAAS,sBAAsB;AAC5D,QAAI,yBAAyB,MAAM;AAC/B;AAAA,IACH;AAED,2BAAuB;AACvB,UAAM,kBAAkB,KAAK,SAAS,oBAAoB;AAC1D,2BAAuB;AAAA,EAC3B;AAEA,iBAAe,iBAAiB,WAAW,UAAU,gBAAgB,SAAS;AAC1E,8BAA0B,SAAQ;AAClC,UAAM,0BAA0B,mBAAmB,SAAS,OAAO;AAAA,EACvE;AAEA,iBAAe,kBAAkB,KAAK,SAAS,sBAAsB;AACjE,QAAI,YAAYA,IAAE,IAAI,sBAAsB,gBAAgB;AAC5D,QAAI,QAAQA,IAAE,IAAI,sBAAsB,YAAY;AAEpD,QAAI,CAAC,aAAaA,IAAE,IAAI,sBAAsB,MAAM,GAAG;AACnD,UAAI,mBAAmBA,IAAE,IAAI,sBAAsB,iBAAiB;AACpE,UAAI,uBAAuBA,IAAE,IAAI,sBAAsB,qBAAqB;AAE5E,UAAIA,IAAE,SAAS,CAAC,KAAK,GAAG,GAAG,gBAAgB,GAAG;AAC1C,oBAAY,eAAe;AAC3B,gBAAQ;AAAA,MACpB,WAAmBA,IAAE,SAAS,CAAC,GAAG,GAAG,gBAAgB,GAAG;AAC5C,oBAAY,eAAe;AAC3B,gBAAQ;AAAA,MACpB,WAAmBA,IAAE,SAAS,CAAC,GAAG,GAAG,gBAAgB,GAAG;AAC5C,oBAAY,eAAe;AAC3B,gBAAQ;AAAA,MACX;AAAA,IACJ;AAGD,QAAI,2BAA2B;AAAA,MAC3B,eAAe;AAAA,MACf,eAAe;AAAA,IAClB;AAED,QAAIA,IAAE,SAAS,0BAA0B,SAAS,GAAG;AACjD,YAAM,eAA8B;AACpC;AAAA,IACH;AAED,QAAI,eAAe,yBAAyB,WAAW;AACnD,YAAM,iBAAiB,WAAW,iBAAiB,KAAK;AACxD;AAAA,IACH;AAED,UAAM,iBAAiB,WAAW,MAAM,kBAAkB,WAAW,KAAK,CAAC;AAAA,EAC/E;AAKA,iBAAe,eAAe,YAAY,gBAAgB;AACtD,QAAG,wBAAwB,qBAAqB,QAAO;AACnD,YAAM,qBAAqB;IACnC,OAAU;AACF,YAAM,0BAA0B,mBAAmB,mBAAmB,oBAAoB;AAAA,IAC7F;AAAA,EACL;AAEK,QAAC,aAAa;AAAA,IACf,MAAMF;AAAAA,IACN;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IAEA;AAAA,IACA;AAAA,EACJ;;;;;;;AC/eA,KAAC,SAAS,GAAE,GAAE;AAAsD,MAAAI,QAAe,UAAA,EAAuI;AAAA,IAAA,EAAEC,gBAAM,WAAU;AAAc,aAAO,SAAS,GAAE,GAAE,GAAE;AAAC,UAAE,eAAa,SAASC,IAAEC,IAAE;AAAC,cAAI,IAAE,EAAE,GAAGD,EAAC;AAAE,cAAG;AAAE,oBAAOC,KAAE,OAAO,KAAKA,EAAC,IAAE,CAAA,GAAI,QAAS,SAASD,IAAE;AAAC,gBAAEA,EAAC,IAAEC,GAAED,EAAC;AAAA,YAAC,IAAI;AAAA,QAAC;AAAA,MAAC;AAAA,IAAC;;;;;;ACAlY,KAAC,SAAS,GAAE,GAAE;AAAsD,MAAAF,QAAA,UAAe,EAA4I;AAAA,IAAA,EAAEC,gBAAM,WAAU;AAAc,UAAI,IAAE,EAAC,KAAI,aAAY,IAAG,UAAS,GAAE,cAAa,IAAG,gBAAe,KAAI,uBAAsB,MAAK,4BAA2B,GAAE,IAAE,2FAA0F,IAAE,QAAO,IAAE,SAAQ,IAAE,sBAAqB,IAAE,CAAE,GAAC,IAAE,SAASC,IAAE;AAAC,gBAAOA,KAAE,CAACA,OAAIA,KAAE,KAAG,OAAK;AAAA,MAAI;AAAE,UAAI,IAAE,SAASA,IAAE;AAAC,eAAO,SAASE,IAAE;AAAC,eAAKF,EAAC,IAAE,CAACE;AAAA,QAAC;AAAA,MAAC,GAAE,IAAE,CAAC,uBAAsB,SAASF,IAAE;AAAC,SAAC,KAAK,SAAO,KAAK,OAAK,CAAA,IAAK,SAAO,SAASA,IAAE;AAAC,cAAG,CAACA;AAAE,mBAAO;AAAE,cAAG,QAAMA;AAAE,mBAAO;AAAE,cAAIE,KAAEF,GAAE,MAAM,cAAc,GAAEC,KAAE,KAAGC,GAAE,CAAC,KAAG,CAACA,GAAE,CAAC,KAAG;AAAG,iBAAO,MAAID,KAAE,IAAE,QAAMC,GAAE,CAAC,IAAE,CAACD,KAAEA;AAAA,QAAC,EAAED,EAAC;AAAA,MAAC,CAAC,GAAE,IAAE,SAASA,IAAE;AAAC,YAAIE,KAAE,EAAEF,EAAC;AAAE,eAAOE,OAAIA,GAAE,UAAQA,KAAEA,GAAE,EAAE,OAAOA,GAAE,CAAC;AAAA,MAAE,GAAE,IAAE,SAASF,IAAEE,IAAE;AAAC,YAAID,IAAEE,KAAE,EAAE;AAAS,YAAGA,IAAE;AAAC,mBAAQC,KAAE,GAAEA,MAAG,IAAGA,MAAG;AAAE,gBAAGJ,GAAE,QAAQG,GAAEC,IAAE,GAAEF,EAAC,CAAC,IAAE,IAAG;AAAC,cAAAD,KAAEG,KAAE;AAAG;AAAA,YAAK;AAAA,QAAC;AAAM,UAAAH,KAAED,QAAKE,KAAE,OAAK;AAAM,eAAOD;AAAA,MAAC,GAAE,IAAE,EAAC,GAAE,CAAC,GAAE,SAASD,IAAE;AAAC,aAAK,YAAU,EAAEA,IAAE,KAAE;AAAA,MAAC,CAAC,GAAE,GAAE,CAAC,GAAE,SAASA,IAAE;AAAC,aAAK,YAAU,EAAEA,IAAE,IAAE;AAAA,MAAC,CAAC,GAAE,GAAE,CAAC,MAAK,SAASA,IAAE;AAAC,aAAK,eAAa,MAAI,CAACA;AAAA,MAAC,CAAC,GAAE,IAAG,CAAC,GAAE,SAASA,IAAE;AAAC,aAAK,eAAa,KAAG,CAACA;AAAA,MAAC,CAAC,GAAE,KAAI,CAAC,SAAQ,SAASA,IAAE;AAAC,aAAK,eAAa,CAACA;AAAA,MAAC,CAAC,GAAE,GAAE,CAAC,GAAE,EAAE,SAAS,CAAC,GAAE,IAAG,CAAC,GAAE,EAAE,SAAS,CAAC,GAAE,GAAE,CAAC,GAAE,EAAE,SAAS,CAAC,GAAE,IAAG,CAAC,GAAE,EAAE,SAAS,CAAC,GAAE,GAAE,CAAC,GAAE,EAAE,OAAO,CAAC,GAAE,GAAE,CAAC,GAAE,EAAE,OAAO,CAAC,GAAE,IAAG,CAAC,GAAE,EAAE,OAAO,CAAC,GAAE,IAAG,CAAC,GAAE,EAAE,OAAO,CAAC,GAAE,GAAE,CAAC,GAAE,EAAE,KAAK,CAAC,GAAE,IAAG,CAAC,GAAE,EAAE,KAAK,CAAC,GAAE,IAAG,CAAC,GAAE,SAASA,IAAE;AAAC,YAAIE,KAAE,EAAE,SAAQD,KAAED,GAAE,MAAM,KAAK;AAAE,YAAG,KAAK,MAAIC,GAAE,CAAC,GAAEC;AAAE,mBAAQC,KAAE,GAAEA,MAAG,IAAGA,MAAG;AAAE,YAAAD,GAAEC,EAAC,EAAE,QAAQ,UAAS,EAAE,MAAIH,OAAI,KAAK,MAAIG;AAAA,MAAE,CAAC,GAAE,GAAE,CAAC,GAAE,EAAE,OAAO,CAAC,GAAE,IAAG,CAAC,GAAE,EAAE,OAAO,CAAC,GAAE,KAAI,CAAC,GAAE,SAASH,IAAE;AAAC,YAAIE,KAAE,EAAE,QAAQ,GAAED,MAAG,EAAE,aAAa,KAAGC,GAAE,IAAK,SAASF,IAAE;AAAC,iBAAOA,GAAE,MAAM,GAAE,CAAC;AAAA,QAAC,CAAC,GAAI,QAAQA,EAAC,IAAE;AAAE,YAAGC,KAAE;AAAE,gBAAM,IAAI;AAAM,aAAK,QAAMA,KAAE,MAAIA;AAAA,MAAC,CAAC,GAAE,MAAK,CAAC,GAAE,SAASD,IAAE;AAAC,YAAIE,KAAE,EAAE,QAAQ,EAAE,QAAQF,EAAC,IAAE;AAAE,YAAGE,KAAE;AAAE,gBAAM,IAAI;AAAM,aAAK,QAAMA,KAAE,MAAIA;AAAA,MAAC,CAAC,GAAE,GAAE,CAAC,YAAW,EAAE,MAAM,CAAC,GAAE,IAAG,CAAC,GAAE,SAASF,IAAE;AAAC,aAAK,OAAK,EAAEA,EAAC;AAAA,MAAC,CAAC,GAAE,MAAK,CAAC,SAAQ,EAAE,MAAM,CAAC,GAAE,GAAE,GAAE,IAAG,EAAC;AAAE,eAAS,EAAEC,IAAE;AAAC,YAAIE,IAAEC;AAAE,QAAAD,KAAEF,IAAEG,KAAE,KAAG,EAAE;AAAQ,iBAAQC,MAAGJ,KAAEE,GAAE,QAAQ,qCAAqC,SAASD,IAAED,IAAEE,IAAE;AAAC,cAAIG,KAAEH,MAAGA,GAAE,YAAa;AAAC,iBAAOF,MAAGG,GAAED,EAAC,KAAG,EAAEA,EAAC,KAAGC,GAAEE,EAAC,EAAE,QAAQ,kCAAkC,SAASN,IAAEE,IAAED,IAAE;AAAC,mBAAOC,MAAGD,GAAE,MAAM,CAAC;AAAA,UAAC,CAAC;AAAA,QAAE,CAAC,GAAI,MAAM,CAAC,GAAEM,KAAEF,GAAE,QAAOG,KAAE,GAAEA,KAAED,IAAEC,MAAG,GAAE;AAAC,cAAIC,KAAEJ,GAAEG,EAAC,GAAEE,KAAE,EAAED,EAAC,GAAEE,KAAED,MAAGA,GAAE,CAAC,GAAE,IAAEA,MAAGA,GAAE,CAAC;AAAE,UAAAL,GAAEG,EAAC,IAAE,IAAE,EAAC,OAAMG,IAAE,QAAO,EAAC,IAAEF,GAAE,QAAQ,YAAW,EAAE;AAAA,QAAC;AAAC,eAAO,SAAST,IAAE;AAAC,mBAAQE,KAAE,CAAE,GAACD,KAAE,GAAEE,KAAE,GAAEF,KAAEM,IAAEN,MAAG,GAAE;AAAC,gBAAIG,KAAEC,GAAEJ,EAAC;AAAE,gBAAG,YAAU,OAAOG;AAAE,cAAAD,MAAGC,GAAE;AAAA,iBAAW;AAAC,kBAAIE,KAAEF,GAAE,OAAMI,KAAEJ,GAAE,QAAOK,KAAET,GAAE,MAAMG,EAAC,GAAEO,KAAEJ,GAAE,KAAKG,EAAC,EAAE,CAAC;AAAE,cAAAD,GAAE,KAAKN,IAAEQ,EAAC,GAAEV,KAAEA,GAAE,QAAQU,IAAE,EAAE;AAAA,YAAC;AAAA,UAAC;AAAC,iBAAO,SAASV,IAAE;AAAC,gBAAIE,KAAEF,GAAE;AAAU,gBAAG,WAASE,IAAE;AAAC,kBAAID,KAAED,GAAE;AAAM,cAAAE,KAAED,KAAE,OAAKD,GAAE,SAAO,MAAI,OAAKC,OAAID,GAAE,QAAM,IAAG,OAAOA,GAAE;AAAA,YAAS;AAAA,UAAC,EAAEE,EAAC,GAAEA;AAAA,QAAC;AAAA,MAAC;AAAC,aAAO,SAASF,IAAEE,IAAED,IAAE;AAAC,QAAAA,GAAE,EAAE,oBAAkB,MAAGD,MAAGA,GAAE,sBAAoB,IAAEA,GAAE;AAAmB,YAAIG,KAAED,GAAE,WAAUE,KAAED,GAAE;AAAM,QAAAA,GAAE,QAAM,SAASH,IAAE;AAAC,cAAIE,KAAEF,GAAE,MAAKG,KAAEH,GAAE,KAAIK,KAAEL,GAAE;AAAK,eAAK,KAAGG;AAAE,cAAII,KAAEF,GAAE,CAAC;AAAE,cAAG,YAAU,OAAOE,IAAE;AAAC,gBAAIC,KAAE,SAAKH,GAAE,CAAC,GAAEI,KAAE,SAAKJ,GAAE,CAAC,GAAEK,KAAEF,MAAGC,IAAEG,KAAEP,GAAE,CAAC;AAAE,YAAAI,OAAIG,KAAEP,GAAE,CAAC,IAAG,IAAE,KAAK,WAAU,CAACG,MAAGI,OAAI,IAAEX,GAAE,GAAGW,EAAC,IAAG,KAAK,KAAG,SAASZ,IAAEE,IAAED,IAAE;AAAC,kBAAG;AAAC,oBAAG,CAAC,KAAI,GAAG,EAAE,QAAQC,EAAC,IAAE;AAAG,yBAAO,IAAI,MAAM,QAAMA,KAAE,MAAI,KAAGF,EAAC;AAAE,oBAAIG,KAAE,EAAED,EAAC,EAAEF,EAAC,GAAEI,KAAED,GAAE,MAAKG,KAAEH,GAAE,OAAME,KAAEF,GAAE,KAAII,KAAEJ,GAAE,OAAMK,KAAEL,GAAE,SAAQM,KAAEN,GAAE,SAAQO,KAAEP,GAAE,cAAaS,KAAET,GAAE,MAAKU,KAAE,oBAAI,QAAKC,KAAET,OAAID,MAAGE,KAAE,IAAEO,GAAE,QAAO,IAAIE,KAAEX,MAAGS,GAAE,YAAa,GAAC,IAAE;AAAE,gBAAAT,MAAG,CAACE,OAAI,IAAEA,KAAE,IAAEA,KAAE,IAAEO,GAAE,SAAU;AAAE,oBAAI,IAAEN,MAAG,GAAE,IAAEC,MAAG,GAAE,IAAEC,MAAG,GAAE,IAAEC,MAAG;AAAE,uBAAOE,KAAE,IAAI,KAAK,KAAK,IAAIG,IAAE,GAAED,IAAE,GAAE,GAAE,GAAE,IAAE,KAAGF,GAAE,SAAO,GAAG,CAAC,IAAEX,KAAE,IAAI,KAAK,KAAK,IAAIc,IAAE,GAAED,IAAE,GAAE,GAAE,GAAE,CAAC,CAAC,IAAE,IAAI,KAAKC,IAAE,GAAED,IAAE,GAAE,GAAE,GAAE,CAAC;AAAA,cAAC,SAAOd,IAAE;AAAC,uBAAO,oBAAI,KAAK,EAAE;AAAA,cAAC;AAAA,YAAC,EAAEE,IAAEK,IAAEJ,EAAC,GAAE,KAAK,KAAI,GAAGS,MAAG,SAAKA,OAAI,KAAK,KAAG,KAAK,OAAOA,EAAC,EAAE,KAAIF,MAAGR,MAAG,KAAK,OAAOK,EAAC,MAAI,KAAK,KAAG,oBAAI,KAAK,EAAE,IAAG,IAAE,CAAA;AAAA,UAAE,WAASA,cAAa;AAAM,qBAAQ,IAAEA,GAAE,QAAO,IAAE,GAAE,KAAG,GAAE,KAAG,GAAE;AAAC,cAAAF,GAAE,CAAC,IAAEE,GAAE,IAAE,CAAC;AAAE,kBAAI,IAAEN,GAAE,MAAM,MAAKI,EAAC;AAAE,kBAAG,EAAE,QAAO,GAAG;AAAC,qBAAK,KAAG,EAAE,IAAG,KAAK,KAAG,EAAE,IAAG,KAAK,KAAM;AAAC;AAAA,cAAK;AAAC,oBAAI,MAAI,KAAK,KAAG,oBAAI,KAAK,EAAE;AAAA,YAAE;AAAA;AAAM,YAAAD,GAAE,KAAK,MAAKJ,EAAC;AAAA,QAAC;AAAA,MAAC;AAAA,IAAC,CAAC;AAAA;;;;;ACA/pH,KAAC,SAAS,GAAE,GAAE;AAAsD,MAAAF,QAAA,UAAe,EAA8H;AAAA,IAAA,EAAEC,gBAAM,WAAU;AAAc,UAAI,IAAE,UAAS,IAAE,wBAAuB,IAAE;AAAe,aAAO,SAAS,GAAE,GAAE,GAAE;AAAC,YAAI,IAAE,EAAE;AAAU,UAAE,MAAI,SAASG,IAAE;AAAC,cAAIE,KAAE,EAAC,MAAKF,IAAE,KAAI,MAAG,MAAK,UAAS;AAAE,iBAAO,IAAI,EAAEE,EAAC;AAAA,QAAC,GAAE,EAAE,MAAI,SAASA,IAAE;AAAC,cAAIJ,KAAE,EAAE,KAAK,OAAQ,GAAC,EAAC,QAAO,KAAK,IAAG,KAAI,KAAE,CAAC;AAAE,iBAAOI,KAAEJ,GAAE,IAAI,KAAK,UAAS,GAAG,CAAC,IAAEA;AAAA,QAAC,GAAE,EAAE,QAAM,WAAU;AAAC,iBAAO,EAAE,KAAK,OAAQ,GAAC,EAAC,QAAO,KAAK,IAAG,KAAI,MAAE,CAAC;AAAA,QAAC;AAAE,YAAI,IAAE,EAAE;AAAM,UAAE,QAAM,SAASE,IAAE;AAAC,UAAAA,GAAE,QAAM,KAAK,KAAG,OAAI,KAAK,OAAM,EAAG,EAAEA,GAAE,OAAO,MAAI,KAAK,UAAQA,GAAE,UAAS,EAAE,KAAK,MAAKA,EAAC;AAAA,QAAC;AAAE,YAAI,IAAE,EAAE;AAAK,UAAE,OAAK,WAAU;AAAC,cAAG,KAAK,IAAG;AAAC,gBAAIA,KAAE,KAAK;AAAG,iBAAK,KAAGA,GAAE,eAAgB,GAAC,KAAK,KAAGA,GAAE,YAAa,GAAC,KAAK,KAAGA,GAAE,WAAY,GAAC,KAAK,KAAGA,GAAE,UAAW,GAAC,KAAK,KAAGA,GAAE,YAAa,GAAC,KAAK,KAAGA,GAAE,cAAe,GAAC,KAAK,KAAGA,GAAE,iBAAgB,KAAK,MAAIA,GAAE,mBAAkB;AAAA,UAAE;AAAM,cAAE,KAAK,IAAI;AAAA,QAAC;AAAE,YAAI,IAAE,EAAE;AAAU,UAAE,YAAU,SAASG,IAAEG,IAAE;AAAC,cAAIP,KAAE,KAAK,OAAM,EAAG;AAAE,cAAGA,GAAEI,EAAC;AAAE,mBAAO,KAAK,KAAG,IAAEJ,GAAE,KAAK,OAAO,IAAE,EAAE,KAAK,IAAI,IAAE,KAAK;AAAQ,cAAG,YAAU,OAAOI,OAAIA,KAAE,SAASH,IAAE;AAAC,uBAASA,OAAIA,KAAE;AAAI,gBAAIG,KAAEH,GAAE,MAAM,CAAC;AAAE,gBAAG,CAACG;AAAE,qBAAO;AAAK,gBAAIG,MAAG,KAAGH,GAAE,CAAC,GAAG,MAAM,CAAC,KAAG,CAAC,KAAI,GAAE,CAAC,GAAEJ,KAAEO,GAAE,CAAC,GAAEE,KAAE,KAAG,CAACF,GAAE,CAAC,IAAG,CAACA,GAAE,CAAC;AAAE,mBAAO,MAAIE,KAAE,IAAE,QAAMT,KAAES,KAAE,CAACA;AAAA,UAAC,EAAEL,EAAC,GAAE,SAAOA;AAAG,mBAAO;AAAK,cAAIK,KAAE,KAAK,IAAIL,EAAC,KAAG,KAAG,KAAGA,KAAEA,IAAEC,KAAE;AAAK,cAAGE;AAAE,mBAAOF,GAAE,UAAQI,IAAEJ,GAAE,KAAG,MAAID,IAAEC;AAAE,cAAG,MAAID,IAAE;AAAC,gBAAIF,KAAE,KAAK,KAAG,KAAK,OAAM,EAAG,sBAAoB,KAAG,KAAK,UAAW;AAAC,aAACG,KAAE,KAAK,MAAK,EAAG,IAAII,KAAEP,IAAE,CAAC,GAAG,UAAQO,IAAEJ,GAAE,GAAG,eAAaH;AAAA,UAAC;AAAM,YAAAG,KAAE,KAAK;AAAM,iBAAOA;AAAA,QAAC;AAAE,YAAI,IAAE,EAAE;AAAO,UAAE,SAAO,SAASJ,IAAE;AAAC,cAAIE,KAAEF,OAAI,KAAK,KAAG,2BAAyB;AAAI,iBAAO,EAAE,KAAK,MAAKE,EAAC;AAAA,QAAC,GAAE,EAAE,UAAQ,WAAU;AAAC,cAAIF,KAAE,KAAK,SAAS,EAAE,KAAK,OAAO,IAAE,IAAE,KAAK,WAAS,KAAK,GAAG,gBAAc,KAAK,GAAG,kBAAmB;AAAE,iBAAO,KAAK,GAAG,YAAU,MAAIA;AAAA,QAAC,GAAE,EAAE,QAAM,WAAU;AAAC,iBAAM,CAAC,CAAC,KAAK;AAAA,QAAE,GAAE,EAAE,cAAY,WAAU;AAAC,iBAAO,KAAK,OAAM,EAAG;QAAa,GAAE,EAAE,WAAS,WAAU;AAAC,iBAAO,KAAK,OAAM,EAAG,YAAW;AAAA,QAAE;AAAE,YAAI,IAAE,EAAE;AAAO,UAAE,SAAO,SAASA,IAAE;AAAC,iBAAM,QAAMA,MAAG,KAAK,UAAQ,EAAE,KAAK,OAAO,yBAAyB,CAAC,EAAE,OAAM,IAAG,EAAE,KAAK,IAAI;AAAA,QAAC;AAAE,YAAI,IAAE,EAAE;AAAK,UAAE,OAAK,SAASA,IAAEE,IAAEJ,IAAE;AAAC,cAAGE,MAAG,KAAK,OAAKA,GAAE;AAAG,mBAAO,EAAE,KAAK,MAAKA,IAAEE,IAAEJ,EAAC;AAAE,cAAIK,KAAE,KAAK,MAAK,GAAGG,KAAE,EAAEN,EAAC,EAAE;AAAQ,iBAAO,EAAE,KAAKG,IAAEG,IAAEJ,IAAEJ,EAAC;AAAA,QAAC;AAAA,MAAC;AAAA,IAAC,CAAC;AAAA;;;ACO1sE,QAAM,OAAO,GAAG;AAChB,QAAM,OAAO,YAAY;AACzB,QAAM,OAAO,iBAAiB;AAE9B,QAAM,cAAc;AACpB,QAAM,kBAAkB;AACxB,QAAM,mBAAmB;AACzB,QAAM,kBAAkB;AACxB,QAAM,oBAAoB;AAC1B,QAAM,cAAc;AACpB,QAAM,cAAc;AAEpB,WAAS,mBAAkB;AACvB,WAAO,MAAK;AAAA,EAChB;AAEA,WAAS,qBAAoB;AACzB,WAAO,wBAAwB,iBAAgB,CAAE;AAAA,EACrD;AAEA,WAAS,yBAAwB;AAC7B,WAAO,4BAA4B,iBAAgB,CAAE;AAAA,EACzD;AAEA,WAAS,iBAAgB;AACrB,WAAO,iBAAgB,EAAG;EAC9B;AAEA,WAAS,yBAAyB,QAAQ;AACtC,QAAI,QAAQ;AACR,aAAO,OAAO,SAAS;IAC/B,OAAW;AACH,aAAO;AAAA,IACV;AAAA,EACL;AAEA,WAAS,wBAAwB,QAAQ;AACrC,QAAI,QAAQ;AACR,aAAO,OAAO,OAAO,WAAW;AAAA,IACxC,OAAW;AACH,aAAO;AAAA,IACV;AAAA,EACL;AAEA,WAAS,yBAAyB,WAAW;AACzC,QAAI,aAAa,YAAY,GAAG;AAC5B,aAAO,MAAM,SAAS;AAAA,IAC9B,OAAW;AACH,aAAO;AAAA,IACV;AAAA,EACL;AAEA,WAAS,4BAA4B,QAAQ;AACzC,QAAI,QAAQ;AACR,aAAO,OAAO,OAAO,eAAe;AAAA,IAC5C,OAAW;AACH,aAAO;AAAA,IACV;AAAA,EACL;AAEA,WAAS,wBAAwB,QAAQ;AACrC,QAAI,QAAQ;AACR,aAAO,OAAO,OAAO,WAAW;AAAA,IACxC,OAAW;AACH,aAAO;AAAA,IACV;AAAA,EACL;AAEA,WAAS,6BAA6B,QAAQ;AAC1C,QAAI,QAAQ;AACR,aAAO,OAAO,OAAO,gBAAgB;AAAA,IAC7C,OAAW;AACH,aAAO;AAAA,IACV;AAAA,EACL;AAEA,WAAS,8BAA8B,QAAQ;AAC3C,QAAI,QAAQ;AACR,aAAO,OAAO,OAAO,iBAAiB;AAAA,IAC9C,OAAW;AACH,aAAO;AAAA,IACV;AAAA,EACL;AAIA,WAAS,wBAAwB,QAAQ;AACrC,QAAI,QAAQ;AACR,aAAO,OAAO,OAAO,WAAW;AAAA,IACxC,OAAW;AACH,aAAO;AAAA,IACV;AAAA,EACL;AAEA,WAAS,4BAA4B,cAAc;AAC/C,QAAI,cAAc;AACd,aAAO,MAAM,cAAc,eAAe;AAAA,IAClD,OAAW;AACH,aAAO;AAAA,IACV;AAAA,EACL;AAEA,WAAS,6BAA6B,eAAe;AACjD,QAAI,eAAe;AACf,aAAO,MAAM,eAAe,gBAAgB;AAAA,IACpD,OAAW;AACH,aAAO;AAAA,IACV;AAAA,EACL;AAEA,WAAS,wBAAwB,UAAU;AACvC,QAAI,UAAU;AACV,aAAO,MAAM,UAAU,WAAW;AAAA,IAC1C,OAAW;AACH,aAAO;AAAA,IACV;AAAA,EACL;AAEA,WAAS,wBAAwB,cAAc;AAC3C,QAAI,cAAc;AACd,aAAO,MAAM,cAAc,WAAW;AAAA,IAC9C,OAAW;AACH,aAAO;AAAA,IACV;AAAA,EACL;AAEA,WAAS,sBAAsB,UAAU;AACrC,QAAI,UAAU;AACV,aAAO,MAAM,UAAU,WAAW,EAAE,OAAM;AAAA,IAClD,OAAW;AACH,aAAO;AAAA,IACV;AAAA,EACL;AAEA,WAAS,0BAA0B,cAAc;AAC7C,QAAI,cAAc;AACD,YAAM,cAAc,eAAe;AAChD,aAAO,MAAM,cAAc,eAAe,EAAE,OAAM;AAAA,IAC1D,OAAW;AACH,aAAO;AAAA,IACV;AAAA,EACL;AAEA,WAAS,2BAA2B,WAAW;AAC3C,QAAI,UAAU,yBAAyB,SAAS;AAChD,QAAI,OAAO,wBAAwB,OAAO;AAC1C,WAAO;AAAA,EACX;AAEA,WAAS,+BAA+B,WAAW;AAC/C,QAAI,UAAU,yBAAyB,SAAS;AAChD,QAAI,OAAO,4BAA4B,OAAO;AAC9C,WAAO;AAAA,EACX;AAEA,WAAS,2BAA2B,WAAW;AAC3C,QAAI,UAAU,yBAAyB,SAAS;AAChD,QAAI,OAAO,wBAAwB,OAAO;AAC1C,WAAO;AAAA,EACX;AAEA,WAAS,oBAAoB,MAAM;AAC/B,QAAG,CAAC,MAAK;AACL,aAAO;AAAA,IACV;AACD,WAAO,MAAM,IAAI;AAAA,EACrB;AAEA,WAAS,sBAAsB,MAAM;AACjC,QAAI,UAAU,oBAAoB,IAAI;AACtC,QAAI,OAAO,wBAAwB,OAAO;AAC1C,WAAO;AAAA,EACX;AAEA,WAAS,0BAA0B,MAAM;AACrC,QAAI,UAAU,oBAAoB,IAAI;AACtC,QAAI,OAAO,4BAA4B,OAAO;AAC9C,WAAO;AAAA,EACX;AAGA,WAAS,eAAe,MAAM,IAAG;AAC7B,WAAO,OAAK,QAAM;AAAA,EACtB;AAEA,WAAS,mBAAmB,WAAU;AAClC,QAAI,SAAS;AACb,aAAS,OAAO,MAAM,YAAU,CAAC;AACjC,WAAO,OAAO,OAAO,KAAK;AAAA,EAC9B;AAEe,QAAA,YAAA;AAAA,IACX;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IAEA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IAEA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IAEA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IAEA;AAAA,IACA;AAAA,IACA;AAAA,IAEA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IAEA;AAAA,IACA;AAAA,IAEA;AAAA,IAEA;AAAA,EACJ;AC5OA,WAAS,kBAAkB;AACvB,aAAS,cAAc,MAAM,EAAE,MAAM,WAAW;AAAA,EACpD;AAEA,WAAS,mBAAmB;AACxB,aAAS,cAAc,MAAM,EAAE,MAAM,WAAW;AAAA,EACpD;AAEA,WAAS,mBAAmB;AACxB,eAAW,MAAM;AAEbJ,UAAE,KAAK,SAAS,cAAe,GAAE,CAAC,SAAS;AACvC,aAAK,YAAY;AAAA,MAC7B,CAAS;AAAA,IACJ,GAAE,GAAG;AAAA,EACV;AAQA,WAAS,kBAAkB,MAAM,eAAe;AAC5C,QAAI,YAAY,KAAK;AACrB,QAAI,WAAW;AACX,UAAIA,IAAE,aAAa,WAAW,aAAa,EAAE,SAAS,GAAG;AACrD,eAAO;AAAA,MACV;AAAA,IACJ;AAED,QAAI,gBAAgB,KAAK;AACzB,QAAI,eAAe;AACf,aAAO,kBAAkB,eAAe,aAAa;AAAA,IAC7D,OAAW;AACH,aAAO;AAAA,IACV;AAAA,EACL;AAKA,WAAS,OAAO,SAAS;AACrB,QAAI,SAAS;AAAA,MACT,KAAK;AAAA,MACL,MAAM;AAAA,IACd;AACI,QAAI,CAAC,QAAQ,eAAgB,EAAC,QAAQ;AAClC,aAAO;AAAA,IACV;AACD,QAAI,OAAO,iBAAiB,OAAO,EAAE,SAAS,MAAM,QAAQ;AACxD,aAAO;AAAA,IACV;AAED,aAAS,QAAQ;AACjB,QAAI,aAAa,QAAQ,cAAc;AACvC,WAAO;AAAA,MACH,KAAK,OAAO,OAAO,OAAO,WAAW,OAAO,eAAe,WAAW;AAAA,MACtE,MAAM,OAAO,QAAQ,OAAO,WAAW,OAAO,eAAe,WAAW;AAAA,IAChF;AAAA,EACA;AAEe,QAAA,WAAA;AAAA,IACX;AAAA,IACA;AAAA,IAEA;AAAA,IACA;AAAA,IAEA;AAAA,EACJ;ACxEA,WAAS,QAAQ;AACb,WAAO;AAAA,MACH;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACH,EAAC,SAAS,UAAU,QAAQ,KAAM,UAAU,UAAU,SAAS,KAAK,KAAK,gBAAgB;AAAA,EAC9F;AAEA,WAAS,kBAAkB;AACvB,QAAI,SAAS,SAAS,KAAK,UAAU,SAAS,KAAK,aAAa,KAAK,UAAU,MAAM;AACrF,QAAI,CAAC,QAAQ;AACT,aAAO;AAAA,IACV;AAED,QAAI,eAAc,GAAI;AAClB,aAAO;AAAA,IACV;AAED,WAAO;AAAA,EACX;AAEA,WAAS,iBAAiB;AACtB,WAAO,iEAAiE,KAAK,UAAU,SAAS,KAAK,SAAS,KAAK,UAAU,SAAS,KAAK,aAAa,KAAK,UAAU,MAAM;AAAA,EACjL;AAEA,WAAS,iBAAiB;AACtB,WAAO,MAAK,KAAM;EACtB;AAEA,WAAS,eAAe,WAAW,IAAI;AACnC,QAAI,WAAW,SAAS,kBAAkB,UAAU;AACpD,QAAI,CAAC,YAAY,SAAS,UAAU,GAAG;AACnC;AAAA,IACH;AAED,QAAI,UAAU,CAAA;AACd,MAAE,MAAM,SAAS,gBAAgB,QAAQ;AAEzC,QAAI,UAAU,CAAA;AACd,MAAE,KAAK,SAAS,CAAC,OAAO,QAAQ;AAC5B,cAAQ,KAAK,MAAM,MAAM,KAAK;AAAA,IACtC,CAAK;AAED,aAAS,CAAC,EAAE,UAAU,EAAE,KAAK,SAAS,GAAG;AAEzC,YAAQ,MAAM,uBAAuB,SAAS,CAAC,EAAE,OAAO;AAAA,EAC5D;AAEe,QAAA,oBAAA;AAAA,IACX;AAAA,IACA;AAAA,IACA;AAAA,IAEA;AAAA,IAEA;AAAA,EACJ;ACzDA,MAAI;AAEJ,WAAS,KAAK,sBAAsB;AAChC,wBAAoB;AAAA,EACxB;AAEA,WAAS,WAAW,WAAW,OAAO,aAAa,CAAE,GAAE,WAAW,IAAI;AAClE,QAAG,SAAS,MAAK;AACb,aAAO;AAAA,QACH,WAAW;AAAA,MACd;AAAA,IACJ;AAEDA,QAAE,KAAKA,IAAE,KAAK,KAAK,GAAG,CAAC,SAAS;AAC5B,UAAI,QAAQ,MAAM,IAAI;AACtB,UAAI,cAAc,YAAY,YAAY,MAAM,OAAO;AAEvD,UAAGA,IAAE,SAAS,YAAY,WAAW,GAAE;AACnC,iBAAS,WAAW,IAAI;AACxB;AAAA,MACH;AAED,UAAIA,IAAE,cAAc,KAAK,GAAG;AACxB,mBAAW,aAAa,OAAO,YAAY,QAAQ;AAAA,MAC/D,OAAe;AACH,iBAAS,WAAW,IAAI;AAAA,MAC3B;AAAA,IACT,CAAK;AAED,WAAO;AAAA,EACX;AAEA,WAAS,QAAQ,UAAU,aAAa,IAAI;AACxC,QAAG,YAAY,MAAK;AAChB,aAAO;AAAA,IACV;AAED,QAAI,QAAQ,CAAA;AACZA,QAAE,KAAKA,IAAE,KAAK,QAAQ,GAAG,CAAC,gBAAgB;AACtC,UAAI,QAAQ,SAAS,WAAW;AAChC,UAAI,OAAO,YAAY,WAAW,KAAK,GAAG;AAC1CA,UAAE,IAAI,OAAO,MAAM,KAAK;AAAA,IAChC,CAAK;AAED,WAAO;AAAA,EACX;AAEA,WAAS,mBAAmB,IAAG;AAC3B,UAAM,UAAU,SAAS,uBAAuB,yBAAyB;AACzE,YAAQ,CAAC,KAAK,QAAQ,CAAC,EAAE,eAAc;AACvC,YAAQ,MAAM,EAAE;AAAA,EACpB;AAOA,iBAAe,qBAAqB,0BAA0B;AAC1D,QAAG,4BAA4B,MAAK;AAChC,aAAO;AAAA,IACV;AAED,QAAI;AACJ,QAAI,OAAO,6BAA6B,YAAY;AAChD,kBAAY,MAAM;IAC1B,OAAS;AACD,kBAAY,yBAAyB;IACxC;AAED,QAAI,WAAW;AACX,UAAI,SAAS,MAAM,kBAAkB,kBAAkB,YAAY;AACnE,UAAI,WAAW,MAAM;AACjB,eAAO;AAAA,MACV;AAAA,IACJ;AACD,WAAO;AAAA,EACX;AAEA,QAAM,eAAe;AACN,QAAA,YAAA;AAAA,IACX;AAAA,IAEA;AAAA,IACA;AAAA,IACA;AAAA,IAEA;AAAA,IACA;AAAA,EACJ;ACzFA,WAAS,WAAW,OAAO;AACvB,YAAQA,IAAE,KAAK,KAAK;AAEpB,WAAQA,IAAE,WAAW,OAAO,GAAG,KAAKA,IAAE,WAAW,OAAO,GAAG;AAAA,EAC/D;AAEA,WAAS,eAAe,OAAO;AAC3B,QAAI,CAAC,WAAW,KAAK,GAAG;AACpB,aAAO;AAAA,IACV;AAED,WAAO,KAAK,UAAU,KAAK,MAAM,KAAK,GAAG,MAAM,CAAC;AAAA,EACpD;AAGe,QAAA,YAAA;AAAA,IACX;AAAA,IACA;AAAA,EACJ;AClBA,WAAS,yBAAyB,YAAY,UAAU;AACpD,QAAI,CAAC,UAAU;AACX,aAAO;AAAA,IACV;AACD,WAAO,aAAa,MAAM;AAAA,EAC9B;AAEA,WAAS,sBAAsB,UAAU;AACrC,QAAI,eAAe,wBAAwB,UAAU,CAAQ;AAC7D,WAAO,eAAe;AAAA,EAC1B;AAEA,WAAS,yBAAyB,OAAO;AACrC,WAAO,wBAAwB,OAAO,CAAC;AAAA,EAC3C;AAEA,WAAS,yBAAyB,OAAO;AACrC,WAAO,wBAAwB,OAAO,CAAC;AAAA,EAC3C;AAEA,WAAS,wBAAwB,OAAO,SAAS;AAC7C,QAAI,UAAU,MAAM;AAChB,aAAO;AAAA,IACV;AAED,QAAI,WAAYA,IAAE,SAAS,KAAK;AAChC,QAAI,MAAM,QAAQ,GAAG;AAEjB,aAAO;AAAA,IACV;AAED,QAAI,YAAY;AAChB,QAAI,WAAW,MAAM;AACjB,UAAI,OAAOA,IAAE,MAAM,UAAU,OAAO,IAAI;AACxC,UAAI,KAAK,QAAQ,GAAG,MAAM,IAAI;AAC1B,gBAAQ;AAAA,MACX;AAED,UAAI,QAAQ,KAAK,UAAU,GAAG,KAAK,QAAQ,GAAG,CAAC;AAC/C,UAAI,QAAQ;AAEZ,UAAI,UAAU,GAAG;AACb,gBAAQ,KAAK,UAAU,KAAK,QAAQ,GAAG,IAAI,CAAC;AAC5C,gBAAQ,MAAMA,IAAE,OAAO,OAAO,SAAS,GAAG;AAAA,MAC7C;AACD,kBAAY,QAAQ;AAAA,IACvB;AAED,WAAO;AAAA,EACX;AAEe,QAAA,cAAA;AAAA,IACX;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ;ACxDA,QAAM,YAAY;AAAA,IACd,cAAc;AAAA,IACd,eAAe;AAAA,EACnB;AAKA,WAAS,WAAW,OAAO,QAAQ,WAAW;AAC1C,QAAI,QAAQ,CAAA;AACZ,aAAS,SAAS,GAAG,SAAS,QAAQ,UAAU;AAC5C,UAAI,SAAS,CAAA;AACb,eAAS,SAAS,GAAG,SAAS,OAAO,UAAU;AAC3C,eAAO,KAAK,SAAS;AAAA,MACxB;AACD,YAAM,KAAK,MAAM;AAAA,IACpB;AACD,WAAO;AAAA,EACX;AAKA,WAAS,0BAA0B,KAAK,gBAAgB;AACpD,QAAI,SAAS,eAAe;AAC5B,QAAI,QAAQ,eAAe,CAAC,EAAE;AAC9B,QAAI,YAAY,IAAI,UAAU,OAAO,MAAM;AAC3C,QAAI,MAAM;AACV,aAAS,SAAS,GAAG,SAAS,QAAQ,UAAU;AAC5C,eAAS,SAAS,GAAG,SAAS,OAAO,UAAU;AAC3C,YAAI,WAAW,eAAe,MAAM,EAAE,MAAM;AAE5C,kBAAU,KAAK,MAAM,CAAC,IAAI;AAC1B,kBAAU,KAAK,MAAM,CAAC,IAAI;AAC1B,kBAAU,KAAK,MAAM,CAAC,IAAI;AAC1B,kBAAU,KAAK,MAAM,CAAC,IAAI;AAC1B,cAAM,MAAM;AAAA,MACf;AAAA,IACJ;AACD,QAAI,aAAa,WAAW,GAAG,GAAG,GAAG,GAAG,OAAO,MAAM;AAAA,EACzD;AAEA,WAAS,yBAAyB,KAAK,aAAa,cAAc;AAC9D,QAAI,YAAY,IAAI,aAAa,GAAG,GAAG,aAAa,YAAY;AAEhE,QAAI,UAAU;AACd,QAAI,iBAAiB,CAAA;AACrB,aAAS,IAAI,GAAG,IAAI,UAAU,KAAK,QAAQ,IAAI,IAAI,GAAG;AAClD,UAAI,MAAM,UAAU,KAAK,CAAC;AAC1B,qBAAe,IAAI,CAAC,IAAI;AACxB,UAAI,QAAQ,KAAK;AACb,kBAAU;AAAA,MACb;AAAA,IACJ;AAED,QAAI,SAAS;AACT,aAAO;AAAA,IACV;AAED,qBAAiBA,IAAE,MAAM,gBAAgB,WAAW;AACpD,WAAO;AAAA,EACX;AAEA,WAAS,WAAW,KAAK,aAAa,cAAc;AAChD,QAAI,YAAY;AAChB,QAAI,YAAY;AAChB,QAAI,UAAU;AACd,QAAI,WAAW;AAEf,QAAI,SAAS,GAAG,GAAG,aAAa,YAAY;AAC5C,QAAI,KAAI;AAAA,EACZ;AAEA,iBAAe,wBAAwB,QAAQ,UAAU,WAAW,cAAc;AAC9E,WAAO,IAAI,QAAQ,CAAC,SAAS,WAAW;AACpC,aAAO,OAAO,eAAgB,MAAM;AAChC,cAAM,OAAO,IAAI,KAAK,CAAC,IAAI,GAAG,QAAQ;AACtC,gBAAQ,IAAI;AAAA,MACxB,GAAW,UAAU,GAAG;AAAA,IACxB,CAAK;AAAA,EACL;AAKA,WAAS,2BAA2B,WAAW;AAC3C,QAAI,aAAa,MAAM;AACnB;AAAA,IACH;AAED,QAAI,iBAAiB,CAAA;AACrBA,QAAE,KAAK,UAAU,MAAM,GAAG,GAAG,CAAC,SAAS,WAAW;AAC9C,UAAI,MAAM,CAAA;AACVA,UAAE,KAAK,QAAQ,MAAM,GAAG,GAAG,CAAC,MAAM,WAAW;AACzC,YAAI,KAAK,IAAI;AAAA,MACzB,CAAS;AACD,qBAAe,KAAK,GAAG;AAAA,IAC/B,CAAK;AACD,WAAO;AAAA,EACX;AAEA,WAAS,2BAA2B,gBAAgB;AAChD,QAAI,kBAAkB,MAAM;AACxB;AAAA,IACH;AAED,QAAI,YAAY;AAChB,aAAS,SAAS,GAAG,SAAS,eAAe,QAAQ,UAAU;AAC3D,UAAI,SAAS,GAAG;AACZ,qBAAa;AAAA,MAChB;AACD,mBAAa,eAAe,MAAM,EAAE,KAAK,GAAG;AAAA,IAC/C;AACD,WAAO;AAAA,EACX;AAEe,QAAA,iBAAA;AAAA,IACX;AAAA,IACA;AAAA,IACA;AAAA;AAAA,IAEA;AAAA;AAAA,IAGA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ;ACjIA,MAAI,UAAQ;AAEZ,WAAS,aAAa,MAAM;AACxB,QAAG,CAAC,MAAK;AACL,aAAO;AAAA,IACV;AAED,QAAI,UAAU,KAAK,QAAQ,SAAS,EAAE,EAAE;AACxC,WAAO;AAAA,EACX;AAGe,QAAA,cAAA;AAAA,IACX;AAAA,EACJ;;;;;;;;;;;;;;;","x_google_ignoreList":[4,5,6]}
|
|
1
|
+
{"version":3,"file":"sirius-common-utils.umd.cjs","sources":["../src/packages/utils/CfgUtils.js","../src/packages/utils/AppUtils.js","../src/packages/utils/LoginUserUtils.js","../src/packages/utils/AxiosUtils.js","../node_modules/dayjs/plugin/updateLocale.js","../node_modules/dayjs/plugin/customParseFormat.js","../node_modules/dayjs/plugin/utc.js","../src/packages/utils/DateUtils.js","../src/packages/utils/DomUtils.js","../src/packages/utils/ExplorerTypeUtils.js","../src/packages/utils/FormUtils.js","../src/packages/utils/JsonUtils.js","../src/packages/utils/NumberUtils.js","../src/packages/utils/SignatureUtils.js","../src/packages/utils/StringUtils.js"],"sourcesContent":["export default {\r\n //Application Configuration\r\n appInfo: {\r\n appName: 'XMS', //application name\r\n frontEndValueEncodeFlag: false, //need to encode for LocalStorage values\r\n needFrontEndExceptionStatisticsFlag: true, //need trace front-end logs\r\n },\r\n //Ajax Configuration\r\n ajax:{\r\n timeOut: 60000, //Timeout\r\n },\r\n sysCfg: {\r\n ibmsEnabled: true,\r\n }\r\n};\r\n","import _ from 'lodash';\r\n\r\nimport {Base64} from 'js-base64';\r\nimport CfgUtils from \"./CfgUtils\";\r\n\r\n//appVersion\r\nfunction setAppVersion(version) {\r\n setLocalStorageStringItem(\"APP_VERSION\", version);\r\n}\r\n\r\nfunction getAppVersion() {\r\n return getLocalStorageStringItem(\"APP_VERSION\");\r\n}\r\n\r\n//app build version\r\nfunction setBuildVersion(version) {\r\n setLocalStorageStringItem(\"BUILD_VERSION\", version);\r\n}\r\n\r\nfunction getBuildVersion() {\r\n return getLocalStorageStringItem(\"BUILD_VERSION\");\r\n}\r\n\r\n//app cache version\r\nfunction setAppCacheVersion(version) {\r\n setLocalStorageStringItem(\"APP_CACHE_VERSION\", version);\r\n}\r\n\r\nfunction getAppCacheVersion() {\r\n return getLocalStorageStringItem(\"APP_CACHE_VERSION\");\r\n}\r\n\r\n\r\n/**\r\n * 检查LocalStorage中是否存在该键\r\n */\r\nfunction isLocalStorageItemExisted(key){\r\n let realKey = CfgUtils.appInfo.appName + '_' + key;\r\n let obj = localStorage.getItem(realKey);\r\n return obj !=null;\r\n}\r\n\r\nfunction removeLocalStorageItem(key, obj) {\r\n let realKey = CfgUtils.appInfo.appName + '_' + key;\r\n localStorage.removeItem(realKey);\r\n}\r\n\r\n/**\r\n * String类型的数据存储\r\n */\r\nfunction setLocalStorageStringItem(key, obj) {\r\n let realKey = CfgUtils.appInfo.appName + '_' + key;\r\n let realValue = obj;\r\n localStorage.setItem(realKey, encode(realValue));\r\n}\r\n\r\nfunction getLocalStorageStringItem(key) {\r\n let realKey = CfgUtils.appInfo.appName + '_' + key;\r\n let obj = decode(localStorage.getItem(realKey));\r\n return obj;\r\n}\r\n\r\n/**\r\n * Object类型的数据存储\r\n */\r\n\r\nfunction setLocalStorageObjItem(key, obj) {\r\n let realKey = CfgUtils.appInfo.appName + '_' + key;\r\n localStorage.setItem(realKey, encode(JSON.stringify(obj)));\r\n}\r\n\r\nfunction getLocalStorageObjItem(key) {\r\n let realKey = CfgUtils.appInfo.appName + '_' + key;\r\n let obj = null;\r\n try {\r\n let jsonVal = localStorage.getItem(realKey);\r\n obj = JSON.parse(decode(jsonVal));\r\n } catch (e) {\r\n }\r\n return obj;\r\n}\r\n\r\nfunction atomSetLocalStorageObjItem(key, obj){\r\n setLocalStorageObjItem(key, obj);\r\n}\r\n\r\nfunction atomGetLocalStorageObjItem(key){\r\n let result = getLocalStorageObjItem(key);\r\n setLocalStorageObjItem(key, null);\r\n return result;\r\n}\r\n\r\nfunction pushLocalStorageStringItem(key, obj){\r\n setLocalStorageStringItem(key, obj);\r\n}\r\n\r\nfunction popLocalStorageStringItem(key){\r\n let result = getLocalStorageStringItem(key);\r\n removeLocalStorageItem(key);\r\n return result;\r\n}\r\n\r\nfunction atomSetSessionStorageObjItem(key, obj){\r\n setSessionStorageObjItem(key, obj);\r\n}\r\n\r\nfunction atomGetSessionStorageObjItem(key){\r\n let result = getSessionStorageObjItem(key);\r\n setSessionStorageObjItem(key, null);\r\n return result;\r\n}\r\n\r\nfunction setSessionStorageObjItem(key, obj) {\r\n let realKey = CfgUtils.appInfo.appName + '_' + key;\r\n sessionStorage.setItem(realKey, encode(JSON.stringify(obj)));\r\n}\r\n\r\nfunction getSessionStorageObjItem(key) {\r\n let realKey = CfgUtils.appInfo.appName + '_' + key;\r\n let obj = null;\r\n try {\r\n let jsonVal = sessionStorage.getItem(realKey);\r\n obj = JSON.parse(decode(jsonVal));\r\n } catch (e) {\r\n }\r\n return obj;\r\n}\r\n\r\nfunction encode(originalValue){\r\n if(!originalValue){\r\n return originalValue;\r\n }\r\n if(!CfgUtils.appInfo.frontEndValueEncodeFlag){\r\n return originalValue;\r\n }\r\n return Base64.encode(originalValue);\r\n}\r\n\r\nfunction decode(encodeValue){\r\n if(!encodeValue){\r\n return encodeValue;\r\n }\r\n if(!CfgUtils.appInfo.frontEndValueEncodeFlag){\r\n return encodeValue;\r\n }\r\n return Base64.decode(encodeValue);\r\n}\r\n\r\nexport default {\r\n setAppVersion: setAppVersion,\r\n getAppVersion: getAppVersion,\r\n setBuildVersion: setBuildVersion,\r\n getBuildVersion: getBuildVersion,\r\n setAppCacheVersion: setAppCacheVersion,\r\n getAppCacheVersion: getAppCacheVersion,\r\n\r\n atomSetLocalStorageObjItem: atomSetLocalStorageObjItem,\r\n atomGetLocalStorageObjItem: atomGetLocalStorageObjItem,\r\n pushLocalStorageStringItem: pushLocalStorageStringItem,\r\n popLocalStorageStringItem: popLocalStorageStringItem,\r\n\r\n isLocalStorageItemExisted: isLocalStorageItemExisted,\r\n setLocalStorageObjItem: setLocalStorageObjItem,\r\n getLocalStorageObjItem: getLocalStorageObjItem,\r\n setLocalStorageStringItem: setLocalStorageStringItem,\r\n getLocalStorageStringItem: getLocalStorageStringItem,\r\n\r\n atomSetSessionStorageObjItem: atomSetSessionStorageObjItem,\r\n atomGetSessionStorageObjItem: atomGetSessionStorageObjItem,\r\n\r\n setSessionStorageObjItem: setSessionStorageObjItem,\r\n getSessionStorageObjItem: getSessionStorageObjItem,\r\n};\r\n","/**\r\n * getCurrUserInfo\r\n */\r\nimport AxiosUtils from \"./AxiosUtils\";\r\nimport _ from \"lodash\";\r\nimport AppUtils from \"./AppUtils\";\r\n\r\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\n\r\nlet axios = null;\r\nlet urlContext = null; //URL路径前缀\r\n\r\nlet RESULT = {\r\n SUCCESS: 200,\r\n};\r\n\r\n\r\nlet EXCEPTION_CODE = {\r\n AUTHENTICATION_FAILED_COMMON: 901,\r\n AUTHENTICATION_SESSION_EXPIRED: 905,\r\n NETWORK_ISSUE_CLIENT: 911,\r\n SYS_UNKNOWN_ISSUE: 999,\r\n}\r\n\r\nlet globalDialogUtilsInstance;\r\nlet globalSpinHandlerInstance;\r\nlet loginServiceInstance;\r\n\r\nfunction init(pAxios, pContext, pSpinHandlerInstance, pDialogUtilsInstance, pLoginServiceInstance) {\r\n axios = pAxios;\r\n\r\n // axios.defaults.baseURL = getPath(\"/xms-test\");\r\n axios.defaults.baseURL = getPath(pContext);\r\n axios.defaults.timeout = CfgUtils.ajax.timeout;\r\n\r\n globalDialogUtilsInstance = pDialogUtilsInstance;\r\n globalSpinHandlerInstance = pSpinHandlerInstance;\r\n loginServiceInstance = pLoginServiceInstance;\r\n}\r\n\r\nfunction getHostName(){\r\n return window.location.hostname;\r\n}\r\n\r\n/**\r\n *\r\n */\r\nfunction loadParamFromLocationSearch(paramKey) {\r\n var paramsStr = window.location.search;\r\n if (paramsStr.indexOf('?') === 0) {\r\n paramsStr = paramsStr.substring(1);\r\n }\r\n var entryParams = paramsStr.split('&');\r\n var entryParamStr = _.find(entryParams, function (param) {\r\n return param.indexOf(paramKey) === 0;\r\n });\r\n if (!entryParamStr) {\r\n return null;\r\n }\r\n var param = entryParamStr.split('=');\r\n if (!param[1]) {\r\n return null;\r\n }\r\n return param[1];\r\n}\r\n\r\n/**\r\n * get the entire url path\r\n * @param path start with '/'\r\n * @returns {string|*}\r\n */\r\nfunction getPath(path) {\r\n if (_.startsWith(path, \"http\")) {\r\n return path;\r\n }\r\n\r\n if (urlContext == null) {\r\n urlContext = window.document.location.href;\r\n let lastIdx = urlContext.indexOf('.htm');\r\n if (lastIdx > -1) {\r\n urlContext = urlContext.substring(0, urlContext.lastIndexOf('/', lastIdx));\r\n } else {\r\n lastIdx = urlContext.indexOf('/#');\r\n if (lastIdx > -1) {\r\n urlContext = urlContext.substring(0, lastIdx);\r\n } else {\r\n lastIdx = urlContext.indexOf('#');\r\n if (lastIdx > -1) {\r\n urlContext = urlContext.substring(0, lastIdx);\r\n } else {\r\n console.log(`Could not identify URL path ${urlContext}`);\r\n }\r\n }\r\n }\r\n //http://localhost:3000/index.html/#/index/highTriggerWiggleRoomValue -> http://localhost:3000\r\n }\r\n\r\n if(urlContext.endsWith(\"/\")){ //remove the last '/'\r\n urlContext = urlContext.substring(0, urlContext.length-1);\r\n }\r\n return urlContext + path;\r\n}\r\n\r\n/**\r\n * Download excel from server\r\n */\r\nfunction downloadExcelData(url, data, headers, options = {}) {\r\n return new Promise(async function (resolve, reject) {\r\n headers = headers || {};\r\n if (headers['Content-Type'] == null) {\r\n headers['Content-Type'] = 'application/json';\r\n }\r\n\r\n await buildUserAccessToken(headers);\r\n\r\n try {\r\n let response = await axios({\r\n method: 'post',\r\n url: url,\r\n data: data,\r\n headers: headers,\r\n responseType: 'blob'\r\n });\r\n if (response.data) {\r\n if (response.data.errorCode && response.data.errorCode !== RESULT.SUCCESS) {\r\n let errorResult = await handlerError(url, data, response);\r\n resolve(errorResult);\r\n return;\r\n }\r\n }\r\n\r\n const link = document.createElement('a')\r\n let blob = new Blob([response.data], {type: 'application/vnd.ms-excel'});\r\n let contentDisposition = response.headers[\"content-disposition\"];\r\n\r\n if (contentDisposition == null) {\r\n let errorResult = await handlerError(url, data, {\r\n data: {\r\n errorCode: EXCEPTION_CODE.SYS_UNKNOWN_ISSUE,\r\n error: \"System Error\",\r\n }\r\n });\r\n resolve(errorResult);\r\n return;\r\n }\r\n\r\n let temp = contentDisposition.split(\";\")[1].split(\"ilename=\")[1];\r\n var fileName = decodeURIComponent(temp);\r\n console.log(fileName)\r\n link.style.display = 'none'\r\n link.href = URL.createObjectURL(blob);\r\n link.setAttribute('download', fileName);\r\n document.body.appendChild(link);\r\n link.click();\r\n document.body.removeChild(link);\r\n\r\n resolve(true);\r\n } catch (e) {\r\n let errorResult = await handlerError(url, {}, e);\r\n resolve(errorResult);\r\n }\r\n });\r\n}\r\n\r\n\r\n/**\r\n * Download image from server, and return ImageData blob\r\n */\r\nfunction downloadImageData(url, data, headers, options = {}) {\r\n return new Promise(async function (resolve, reject) {\r\n headers = headers || {};\r\n if (headers['Content-Type'] == null) {\r\n headers['Content-Type'] = 'application/json';\r\n }\r\n\r\n await buildUserAccessToken(headers);\r\n\r\n try {\r\n let response = await axios({\r\n method: 'post',\r\n url: url,\r\n data: data,\r\n headers: headers,\r\n responseType: 'blob'\r\n });\r\n let imageData = response.data;\r\n if (imageData!=null) {\r\n if (response.data.errorCode && response.data.errorCode !== RESULT.SUCCESS) {\r\n let errorResult = await handlerError(url, data, response);\r\n resolve(null);\r\n return;\r\n }\r\n }\r\n resolve(imageData);\r\n } catch (e) {\r\n let errorResult = await handlerError(url, {}, e);\r\n resolve(null);\r\n }\r\n });\r\n}\r\n\r\n/**\r\n *\r\n */\r\nfunction downloadServerData(url) {\r\n return new Promise(function (resolve, reject) {\r\n\r\n const hyperlink = document.createElement('a');\r\n hyperlink.style.display = 'none';//隐藏,没必要展示出来\r\n hyperlink.href = url;\r\n hyperlink.target = \"_blank\";\r\n document.body.appendChild(hyperlink);\r\n hyperlink.click();\r\n URL.revokeObjectURL(hyperlink.href); // 释放URL 对象\r\n document.body.removeChild(hyperlink);//下载\r\n\r\n resolve(true);\r\n });\r\n}\r\n\r\n/**\r\n *\r\n */\r\nfunction downloadServerBlobData(url) {\r\n return new Promise(function (resolve, reject) {\r\n axios.get(url, {\r\n responseType: 'blob',\r\n }).then((res) => {\r\n resolve(res.data);\r\n }, (error) => {\r\n resolve(null);\r\n });\r\n });\r\n}\r\n\r\n/**\r\n * upload file to server\r\n * TODO Joey need check with FormData scenario\r\n */\r\nfunction uploadFile(url, file, headers, onUploadProgress, customizedOptions) {\r\n headers = headers || {};\r\n\r\n let formdata = new FormData();\r\n if (_.isArray(file)) {\r\n formdata.append(\"files\", file);\r\n } else {\r\n formdata.append(\"file\", file)\r\n }\r\n\r\n customizedOptions = customizedOptions || {};\r\n return execute(\"POST\", url, formdata, headers, onUploadProgress, customizedOptions)\r\n}\r\n\r\n/**\r\n * getStaticTextFile\r\n */\r\nfunction getStaticTextFile(url) {\r\n return new Promise(async function (resolve, reject) {\r\n axios.get(url).then((res) => {\r\n resolve(res);\r\n }, (error) => {\r\n resolve(null);\r\n });\r\n });\r\n}\r\n\r\n/**\r\n * build form-data from param object\r\n */\r\nfunction getUrlParam(params) {\r\n if (params) {\r\n var param = '';\r\n _.each(params, function (i, val) {\r\n if (i != null) {\r\n param += val + '=' + encodeURIComponent(i) + '&';\r\n } else {\r\n param += val + '=&';\r\n }\r\n });\r\n param = param.substring(0, param.length - 1);\r\n return param;\r\n } else {\r\n return '';\r\n }\r\n}\r\n\r\nfunction getFormData(url, headers, customizedOptions) {\r\n headers = headers || {};\r\n if (headers['Content-Type'] == null) {\r\n headers['Content-Type'] = 'application/x-www-form-urlencoded';\r\n }\r\n\r\n customizedOptions = customizedOptions || {};\r\n\r\n return execute(\"GET\", url, null, headers, null, customizedOptions)\r\n}\r\n\r\nfunction postFormData(url, dataObject, headers, customizedOptions) {\r\n let formdata = null;\r\n if (dataObject) {\r\n formdata = getUrlParam(dataObject);\r\n }\r\n\r\n headers = headers || {};\r\n if (headers['Content-Type'] == null) {\r\n headers['Content-Type'] = 'application/x-www-form-urlencoded';\r\n }\r\n\r\n customizedOptions = customizedOptions || {};\r\n\r\n return execute(\"POST\", url, formdata, headers, null, customizedOptions)\r\n}\r\n\r\nfunction getJsonData(url, headers, customizedOptions) {\r\n headers = headers || {};\r\n if (headers['Content-Type'] == null) {\r\n headers['Content-Type'] = 'application/json';\r\n }\r\n\r\n return execute(\"GET\", url, null, headers, null, customizedOptions)\r\n}\r\n\r\nfunction postJsonData(url, dataObject, headers, customizedOptions) {\r\n headers = headers || {};\r\n if (headers['Content-Type'] == null) {\r\n headers['Content-Type'] = 'application/json';\r\n }\r\n\r\n return execute(\"POST\", url, dataObject, headers, null, customizedOptions)\r\n}\r\n\r\n/**\r\n * General Axios Data request\r\n *\r\n * @param method\r\n * @param url\r\n * @param data\r\n * @param headers\r\n * @param customizedOptions: { }customizedErrorHandlerFlag: false }\r\n */\r\nfunction execute(method, url, data, headers, onUploadProgress, customizedOptions = {}) {\r\n return new Promise(function (resolve, reject) {\r\n //check and set User AccessToken in the request header\r\n buildUserAccessToken(headers).then(\r\n function () {\r\n //AccessToken is valid\r\n axios({\r\n method: method,\r\n url: url,\r\n data: data,\r\n headers: headers,\r\n onUploadProgress: onUploadProgress,\r\n })\r\n .then((response) => {\r\n if (response.data) {\r\n if (response.data.errorCode && response.data.errorCode !== RESULT.SUCCESS) {\r\n if (customizedOptions.customizedErrorHandlerFlag) {\r\n resolve(response.data);\r\n } else {\r\n handlerError(url, data, response).then((result) => {\r\n resolve(result);\r\n });\r\n }\r\n } else {\r\n resolve(response.data);\r\n }\r\n } else {\r\n resolve(response.data);\r\n }\r\n }, (error) => {\r\n if (customizedOptions.customizedErrorHandlerFlag) {\r\n resolve(error);\r\n } else {\r\n handlerError(url, data, error).then((result) => {\r\n resolve(result);\r\n });\r\n }\r\n });\r\n },\r\n (error) => {\r\n //AccessToken is invalid\r\n handlerError(url, data, error).then((result) => {\r\n resolve(result);\r\n });\r\n });\r\n\r\n });\r\n}\r\n\r\nasync function buildUserAccessToken(headers) {\r\n let currUserInfo = await LoginUserUtils.getCurrUserInfo();\r\n if (currUserInfo && currUserInfo.accessToken) {\r\n if (headers['ENOS_ACCESS_TOKEN'] == null) {\r\n headers['ENOS_ACCESS_TOKEN'] = currUserInfo.accessToken;\r\n }\r\n }\r\n}\r\n\r\n\r\n/**\r\n * build error message base on errorCode\r\n */\r\nfunction getErrorMsgByCode(errorCode, errorMsg) {\r\n return errorMsg;\r\n}\r\n\r\n/**\r\n * request error handler\r\n * if multiple ajax error happened. just process the first one.\r\n */\r\nvar reqErrorInProcessing = false;\r\n\r\nasync function handlerError(url, reqData, responseOrAxiosError) {\r\n if (reqErrorInProcessing === true) {\r\n return;\r\n }\r\n\r\n reqErrorInProcessing = true;\r\n await handlerErrorLogic(url, reqData, responseOrAxiosError);\r\n reqErrorInProcessing = false;\r\n}\r\n\r\nasync function showErrorMessage(errorCode, heading = \"System Error\", message) {\r\n globalSpinHandlerInstance.complete();\r\n await globalDialogUtilsInstance.showAppErrorDialog(heading, message);\r\n}\r\n\r\nasync function handlerErrorLogic(url, reqData, responseOrAxiosError) {\r\n let errorCode = _.get(responseOrAxiosError, 'data.errorCode');\r\n let error = _.get(responseOrAxiosError, 'data.error');\r\n\r\n if (!errorCode && _.get(responseOrAxiosError, 'code')) {\r\n let axiosErrorStatus = _.get(responseOrAxiosError, 'response.status');\r\n let axiosErrorStatusText = _.get(responseOrAxiosError, 'response.statusText');\r\n\r\n if (_.includes([502, 504], axiosErrorStatus)) {\r\n errorCode = EXCEPTION_CODE.NETWORK_ISSUE_CLIENT;\r\n error = axiosErrorStatusText;\r\n } else if (_.includes([400], axiosErrorStatus)) {\r\n errorCode = EXCEPTION_CODE.SYS_UNKNOWN_ISSUE;\r\n error = axiosErrorStatusText;\r\n } else if (_.includes([404], axiosErrorStatus)) {\r\n errorCode = EXCEPTION_CODE.SYS_UNKNOWN_ISSUE;\r\n error = axiosErrorStatusText;\r\n }\r\n }\r\n\r\n //session timeout\r\n var sessionTimeoutErrorCodes = [\r\n EXCEPTION_CODE.AUTHENTICATION_FAILED_COMMON,\r\n EXCEPTION_CODE.AUTHENTICATION_SESSION_EXPIRED,\r\n ]\r\n\r\n if (_.includes(sessionTimeoutErrorCodes, errorCode)) {\r\n await appSessionExit(errorCode, true);\r\n return;\r\n }\r\n\r\n if (EXCEPTION_CODE.NETWORK_ISSUE_CLIENT === errorCode) {\r\n await showErrorMessage(errorCode, \"Network issue\", error);\r\n return;\r\n }\r\n\r\n await showErrorMessage(errorCode, null, getErrorMsgByCode(errorCode, error));\r\n}\r\n\r\n/**\r\n * application exit handler\r\n */\r\nasync function appSessionExit(resultCode, forceCloseFlag) {\r\n if(loginServiceInstance && loginServiceInstance.logout){\r\n await loginServiceInstance.logout();\r\n }else {\r\n await globalDialogUtilsInstance.showAppErrorDialog(\"Session Timeout\", \"Please login again\");\r\n }\r\n}\r\n\r\nconst AxiosUtils = {\r\n init: init,\r\n getHostName: getHostName,\r\n loadParamFromLocationSearch: loadParamFromLocationSearch,\r\n getPath: getPath,\r\n getUrlParam: getUrlParam,\r\n getFormData: getFormData,\r\n postFormData: postFormData,\r\n getJsonData: getJsonData,\r\n postJsonData: postJsonData,\r\n downloadExcelData: downloadExcelData,\r\n downloadImageData: downloadImageData,\r\n downloadServerData: downloadServerData,\r\n downloadServerBlobData: downloadServerBlobData,\r\n uploadFile: uploadFile,\r\n getStaticTextFile: getStaticTextFile,\r\n appSessionExit: appSessionExit,\r\n handlerError: handlerError,\r\n getErrorMsgByCode: getErrorMsgByCode,\r\n\r\n RESULT: RESULT,\r\n EXCEPTION_CODE: EXCEPTION_CODE,\r\n};\r\n\r\nexport default AxiosUtils;\r\n","!function(e,n){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=n():\"function\"==typeof define&&define.amd?define(n):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).dayjs_plugin_updateLocale=n()}(this,(function(){\"use strict\";return function(e,n,t){t.updateLocale=function(e,n){var o=t.Ls[e];if(o)return(n?Object.keys(n):[]).forEach((function(e){o[e]=n[e]})),o}}}));","!function(e,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define(t):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).dayjs_plugin_customParseFormat=t()}(this,(function(){\"use strict\";var e={LTS:\"h:mm:ss A\",LT:\"h:mm A\",L:\"MM/DD/YYYY\",LL:\"MMMM D, YYYY\",LLL:\"MMMM D, YYYY h:mm A\",LLLL:\"dddd, MMMM D, YYYY h:mm A\"},t=/(\\[[^[]*\\])|([-_:/.,()\\s]+)|(A|a|YYYY|YY?|MM?M?M?|Do|DD?|hh?|HH?|mm?|ss?|S{1,3}|z|ZZ?)/g,n=/\\d\\d/,r=/\\d\\d?/,i=/\\d*[^-_:/,()\\s\\d]+/,o={},s=function(e){return(e=+e)+(e>68?1900:2e3)};var a=function(e){return function(t){this[e]=+t}},f=[/[+-]\\d\\d:?(\\d\\d)?|Z/,function(e){(this.zone||(this.zone={})).offset=function(e){if(!e)return 0;if(\"Z\"===e)return 0;var t=e.match(/([+-]|\\d\\d)/g),n=60*t[1]+(+t[2]||0);return 0===n?0:\"+\"===t[0]?-n:n}(e)}],h=function(e){var t=o[e];return t&&(t.indexOf?t:t.s.concat(t.f))},u=function(e,t){var n,r=o.meridiem;if(r){for(var i=1;i<=24;i+=1)if(e.indexOf(r(i,0,t))>-1){n=i>12;break}}else n=e===(t?\"pm\":\"PM\");return n},d={A:[i,function(e){this.afternoon=u(e,!1)}],a:[i,function(e){this.afternoon=u(e,!0)}],S:[/\\d/,function(e){this.milliseconds=100*+e}],SS:[n,function(e){this.milliseconds=10*+e}],SSS:[/\\d{3}/,function(e){this.milliseconds=+e}],s:[r,a(\"seconds\")],ss:[r,a(\"seconds\")],m:[r,a(\"minutes\")],mm:[r,a(\"minutes\")],H:[r,a(\"hours\")],h:[r,a(\"hours\")],HH:[r,a(\"hours\")],hh:[r,a(\"hours\")],D:[r,a(\"day\")],DD:[n,a(\"day\")],Do:[i,function(e){var t=o.ordinal,n=e.match(/\\d+/);if(this.day=n[0],t)for(var r=1;r<=31;r+=1)t(r).replace(/\\[|\\]/g,\"\")===e&&(this.day=r)}],M:[r,a(\"month\")],MM:[n,a(\"month\")],MMM:[i,function(e){var t=h(\"months\"),n=(h(\"monthsShort\")||t.map((function(e){return e.slice(0,3)}))).indexOf(e)+1;if(n<1)throw new Error;this.month=n%12||n}],MMMM:[i,function(e){var t=h(\"months\").indexOf(e)+1;if(t<1)throw new Error;this.month=t%12||t}],Y:[/[+-]?\\d+/,a(\"year\")],YY:[n,function(e){this.year=s(e)}],YYYY:[/\\d{4}/,a(\"year\")],Z:f,ZZ:f};function c(n){var r,i;r=n,i=o&&o.formats;for(var s=(n=r.replace(/(\\[[^\\]]+])|(LTS?|l{1,4}|L{1,4})/g,(function(t,n,r){var o=r&&r.toUpperCase();return n||i[r]||e[r]||i[o].replace(/(\\[[^\\]]+])|(MMMM|MM|DD|dddd)/g,(function(e,t,n){return t||n.slice(1)}))}))).match(t),a=s.length,f=0;f<a;f+=1){var h=s[f],u=d[h],c=u&&u[0],l=u&&u[1];s[f]=l?{regex:c,parser:l}:h.replace(/^\\[|\\]$/g,\"\")}return function(e){for(var t={},n=0,r=0;n<a;n+=1){var i=s[n];if(\"string\"==typeof i)r+=i.length;else{var o=i.regex,f=i.parser,h=e.slice(r),u=o.exec(h)[0];f.call(t,u),e=e.replace(u,\"\")}}return function(e){var t=e.afternoon;if(void 0!==t){var n=e.hours;t?n<12&&(e.hours+=12):12===n&&(e.hours=0),delete e.afternoon}}(t),t}}return function(e,t,n){n.p.customParseFormat=!0,e&&e.parseTwoDigitYear&&(s=e.parseTwoDigitYear);var r=t.prototype,i=r.parse;r.parse=function(e){var t=e.date,r=e.utc,s=e.args;this.$u=r;var a=s[1];if(\"string\"==typeof a){var f=!0===s[2],h=!0===s[3],u=f||h,d=s[2];h&&(d=s[2]),o=this.$locale(),!f&&d&&(o=n.Ls[d]),this.$d=function(e,t,n){try{if([\"x\",\"X\"].indexOf(t)>-1)return new Date((\"X\"===t?1e3:1)*e);var r=c(t)(e),i=r.year,o=r.month,s=r.day,a=r.hours,f=r.minutes,h=r.seconds,u=r.milliseconds,d=r.zone,l=new Date,m=s||(i||o?1:l.getDate()),M=i||l.getFullYear(),Y=0;i&&!o||(Y=o>0?o-1:l.getMonth());var p=a||0,v=f||0,D=h||0,g=u||0;return d?new Date(Date.UTC(M,Y,m,p,v,D,g+60*d.offset*1e3)):n?new Date(Date.UTC(M,Y,m,p,v,D,g)):new Date(M,Y,m,p,v,D,g)}catch(e){return new Date(\"\")}}(t,a,r),this.init(),d&&!0!==d&&(this.$L=this.locale(d).$L),u&&t!=this.format(a)&&(this.$d=new Date(\"\")),o={}}else if(a instanceof Array)for(var l=a.length,m=1;m<=l;m+=1){s[1]=a[m-1];var M=n.apply(this,s);if(M.isValid()){this.$d=M.$d,this.$L=M.$L,this.init();break}m===l&&(this.$d=new Date(\"\"))}else i.call(this,e)}}}));","!function(t,i){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=i():\"function\"==typeof define&&define.amd?define(i):(t=\"undefined\"!=typeof globalThis?globalThis:t||self).dayjs_plugin_utc=i()}(this,(function(){\"use strict\";var t=\"minute\",i=/[+-]\\d\\d(?::?\\d\\d)?/g,e=/([+-]|\\d\\d)/g;return function(s,f,n){var u=f.prototype;n.utc=function(t){var i={date:t,utc:!0,args:arguments};return new f(i)},u.utc=function(i){var e=n(this.toDate(),{locale:this.$L,utc:!0});return i?e.add(this.utcOffset(),t):e},u.local=function(){return n(this.toDate(),{locale:this.$L,utc:!1})};var o=u.parse;u.parse=function(t){t.utc&&(this.$u=!0),this.$utils().u(t.$offset)||(this.$offset=t.$offset),o.call(this,t)};var r=u.init;u.init=function(){if(this.$u){var t=this.$d;this.$y=t.getUTCFullYear(),this.$M=t.getUTCMonth(),this.$D=t.getUTCDate(),this.$W=t.getUTCDay(),this.$H=t.getUTCHours(),this.$m=t.getUTCMinutes(),this.$s=t.getUTCSeconds(),this.$ms=t.getUTCMilliseconds()}else r.call(this)};var a=u.utcOffset;u.utcOffset=function(s,f){var n=this.$utils().u;if(n(s))return this.$u?0:n(this.$offset)?a.call(this):this.$offset;if(\"string\"==typeof s&&(s=function(t){void 0===t&&(t=\"\");var s=t.match(i);if(!s)return null;var f=(\"\"+s[0]).match(e)||[\"-\",0,0],n=f[0],u=60*+f[1]+ +f[2];return 0===u?0:\"+\"===n?u:-u}(s),null===s))return this;var u=Math.abs(s)<=16?60*s:s,o=this;if(f)return o.$offset=u,o.$u=0===s,o;if(0!==s){var r=this.$u?this.toDate().getTimezoneOffset():-1*this.utcOffset();(o=this.local().add(u+r,t)).$offset=u,o.$x.$localOffset=r}else o=this.utc();return o};var h=u.format;u.format=function(t){var i=t||(this.$u?\"YYYY-MM-DDTHH:mm:ss[Z]\":\"\");return h.call(this,i)},u.valueOf=function(){var t=this.$utils().u(this.$offset)?0:this.$offset+(this.$x.$localOffset||this.$d.getTimezoneOffset());return this.$d.valueOf()-6e4*t},u.isUTC=function(){return!!this.$u},u.toISOString=function(){return this.toDate().toISOString()},u.toString=function(){return this.toDate().toUTCString()};var l=u.toDate;u.toDate=function(t){return\"s\"===t&&this.$offset?n(this.format(\"YYYY-MM-DD HH:mm:ss:SSS\")).toDate():l.call(this)};var c=u.diff;u.diff=function(t,i,e){if(t&&this.$u===t.$u)return c.call(this,t,i,e);var s=this.local(),f=n(t).local();return c.call(s,f,i,e)}}}));","import dayjs from \"dayjs\";\r\n\r\n\r\nimport updateLocale from 'dayjs/plugin/updateLocale';\r\nimport customParseFormat from 'dayjs/plugin/customParseFormat';\r\nimport utc from 'dayjs/plugin/utc';\r\n\r\ndayjs.extend(utc);\r\ndayjs.extend(updateLocale);\r\ndayjs.extend(customParseFormat);\r\n\r\nconst FORMAT_DATE = \"DD-MM-YYYY\";\r\nconst FORMAT_DATETIME = \"DD-MM-YYYY HH:mm:ss\";\r\nconst FORMAT_YEARMONTH = \"YYYY-MMMM\";\r\nconst FORMAT_YEARWEEK = \"YYYY-WW\";\r\nconst FORMAT_DAYOFMONTH = \"DD\";\r\nconst FORMAT_YEAR = \"YYYY\";\r\nconst FORMAT_TIME = \"HH:mm:ss\";\r\n\r\nfunction getCurrentMoment(){\r\n return dayjs();\r\n}\r\n\r\nfunction getCurrentDateText(){\r\n return convertMomentToDateText(getCurrentMoment());\r\n}\r\n\r\nfunction getCurrentDateTimeText(){\r\n return convertMomentToDateTimeText(getCurrentMoment());\r\n}\r\n\r\nfunction getCurrentDate(){\r\n return getCurrentMoment().toDate();\r\n}\r\n\r\nfunction convertMomentToTimestamp(moment) {\r\n if (moment) {\r\n return moment.toDate().getTime();\r\n } else {\r\n return null;\r\n }\r\n}\r\n\r\nfunction convertMomentToDateText(moment) {\r\n if (moment) {\r\n return moment.format(FORMAT_DATE);\r\n } else {\r\n return '';\r\n }\r\n}\r\n\r\nfunction convertTimestampToMoment(timestamp) {\r\n if (timestamp && timestamp > 0) {\r\n return dayjs(timestamp);\r\n } else {\r\n return null;\r\n }\r\n}\r\n\r\nfunction convertMomentToDateTimeText(moment) {\r\n if (moment) {\r\n return moment.format(FORMAT_DATETIME);\r\n } else {\r\n return \"\";\r\n }\r\n}\r\n\r\nfunction convertMomentToYearText(moment) {\r\n if (moment) {\r\n return moment.format(FORMAT_YEAR);\r\n } else {\r\n return \"\";\r\n }\r\n}\r\n\r\nfunction convertMomentToYearMonthText(moment) {\r\n if (moment) {\r\n return moment.format(FORMAT_YEARMONTH);\r\n } else {\r\n return \"\";\r\n }\r\n}\r\n\r\nfunction convertMomentToDayOfMonthText(moment) {\r\n if (moment) {\r\n return moment.format(FORMAT_DAYOFMONTH);\r\n } else {\r\n return \"\";\r\n }\r\n}\r\n\r\n\r\n\r\nfunction convertMomentToTimeText(moment) {\r\n if (moment) {\r\n return moment.format(FORMAT_TIME);\r\n } else {\r\n return \"\";\r\n }\r\n}\r\n\r\nfunction convertDateTimeTextToMoment(dateTimeText) {\r\n if (dateTimeText) {\r\n return dayjs(dateTimeText, FORMAT_DATETIME);\r\n } else {\r\n return null;\r\n }\r\n}\r\n\r\nfunction convertYearMonthTextToMoment(yearMonthText) {\r\n if (yearMonthText) {\r\n return dayjs(yearMonthText, FORMAT_YEARMONTH);\r\n } else {\r\n return null;\r\n }\r\n}\r\n\r\nfunction convertDateTextToMoment(dateText) {\r\n if (dateText) {\r\n return dayjs(dateText, FORMAT_DATE);\r\n } else {\r\n return null;\r\n }\r\n}\r\n\r\nfunction convertTimeTextToMoment(dateTimeText) {\r\n if (dateTimeText) {\r\n return dayjs(dateTimeText, FORMAT_TIME);\r\n } else {\r\n return null;\r\n }\r\n}\r\n\r\nfunction convertDateTextToDate(dateText) {\r\n if (dateText) {\r\n return dayjs(dateText, FORMAT_DATE).toDate();\r\n } else {\r\n return null;\r\n }\r\n}\r\n\r\nfunction convertDateTimeTextToDate(dateTimeText) {\r\n if (dateTimeText) {\r\n let moment = dayjs(dateTimeText, FORMAT_DATETIME);\r\n return dayjs(dateTimeText, FORMAT_DATETIME).toDate();\r\n } else {\r\n return null;\r\n }\r\n}\r\n\r\nfunction convertTimestampToDateText(timestamp) {\r\n let moments = convertTimestampToMoment(timestamp);\r\n let text = convertMomentToDateText(moments);\r\n return text;\r\n}\r\n\r\nfunction convertTimestampToDateTimeText(timestamp) {\r\n let moments = convertTimestampToMoment(timestamp);\r\n let text = convertMomentToDateTimeText(moments);\r\n return text;\r\n}\r\n\r\nfunction convertTimestampToTimeText(timestamp) {\r\n let moments = convertTimestampToMoment(timestamp);\r\n let text = convertMomentToTimeText(moments);\r\n return text;\r\n}\r\n\r\nfunction convertDateToMoment(date) {\r\n if(!date){\r\n return null;\r\n }\r\n return dayjs(date);\r\n}\r\n\r\nfunction convertDateToDateText(date) {\r\n let moments = convertDateToMoment(date);\r\n let text = convertMomentToDateText(moments);\r\n return text;\r\n}\r\n\r\nfunction convertDateToDateTimeText(date) {\r\n let moments = convertDateToMoment(date);\r\n let text = convertMomentToDateTimeText(moments);\r\n return text;\r\n}\r\n\r\n\r\nfunction buildDateRange(from, to){\r\n return from+\" ~ \"+to;\r\n}\r\n\r\nfunction getFormatTextOfMMM(mthNumber){\r\n let moment = getCurrentMoment();\r\n moment = moment.month(mthNumber-1);\r\n return moment.format('MMM');\r\n}\r\n\r\nexport default {\r\n FORMAT_DATE: FORMAT_DATE,\r\n FORMAT_DATETIME: FORMAT_DATETIME,\r\n FORMAT_YEARMONTH: FORMAT_YEARMONTH,\r\n FORMAT_YEARWEEK: FORMAT_YEARWEEK,\r\n FORMAT_TIME: FORMAT_TIME,\r\n\r\n getCurrentMoment: getCurrentMoment,\r\n getCurrentDateTimeText: getCurrentDateTimeText,\r\n getCurrentDateText: getCurrentDateText,\r\n getCurrentDate: getCurrentDate,\r\n\r\n convertMomentToTimestamp: convertMomentToTimestamp,\r\n convertMomentToDateText: convertMomentToDateText,\r\n convertMomentToDateTimeText: convertMomentToDateTimeText,\r\n convertMomentToYearText: convertMomentToYearText,\r\n convertMomentToYearMonthText: convertMomentToYearMonthText,\r\n convertMomentToDayOfMonthText: convertMomentToDayOfMonthText,\r\n convertMomentToTimeText: convertMomentToTimeText,\r\n\r\n convertTimestampToMoment: convertTimestampToMoment,\r\n convertTimestampToDateText: convertTimestampToDateText,\r\n convertTimestampToDateTimeText: convertTimestampToDateTimeText,\r\n convertTimestampToTimeText: convertTimestampToTimeText,\r\n\r\n convertDateToMoment: convertDateToMoment,\r\n convertDateToDateText: convertDateToDateText,\r\n convertDateToDateTimeText: convertDateToDateTimeText,\r\n\r\n convertYearMonthTextToMoment: convertYearMonthTextToMoment,\r\n convertDateTextToMoment: convertDateTextToMoment,\r\n convertDateTimeTextToMoment: convertDateTimeTextToMoment,\r\n convertTimeTextToMoment: convertTimeTextToMoment,\r\n\r\n convertDateTextToDate: convertDateTextToDate,\r\n convertDateTimeTextToDate: convertDateTimeTextToDate,\r\n\r\n buildDateRange:buildDateRange,\r\n\r\n getFormatTextOfMMM: getFormatTextOfMMM,\r\n};\r\n","import _ from \"lodash\";\r\n\r\nfunction resetBodyScroll() {\r\n document.querySelector(\"body\").style.position = \"initial\";\r\n}\r\n\r\nfunction forbidBodyScroll() {\r\n document.querySelector(\"body\").style.position = \"fixed\";\r\n}\r\n\r\nfunction syncDomAnimation() {\r\n setTimeout(() => {\r\n //sync all animation be the same\r\n _.each(document.getAnimations(), (item) => {\r\n item.startTime = 0;\r\n });\r\n }, 200);\r\n}\r\n\r\n/**\r\n * find the closet parent element by className\r\n *\r\n * @param elem\r\n * @param className\r\n */\r\nfunction closetByClassName(elem, classNameList) {\r\n let classList = elem.classList;\r\n if (classList) {\r\n if (_.intersection(classList, classNameList).length > 0) {\r\n return elem;\r\n }\r\n }\r\n\r\n let parentElement = elem.parentElement;\r\n if (parentElement) {\r\n return closetByClassName(parentElement, classNameList);\r\n } else {\r\n return null;\r\n }\r\n}\r\n\r\n/**\r\n * calc current dom node offset to the left-top of the window\r\n */\r\nfunction offset(domNode) {\r\n var offest = {\r\n top: 0,\r\n left: 0\r\n };\r\n if (!domNode.getClientRects().length) {\r\n return offest;\r\n }\r\n if (window.getComputedStyle(domNode)['display'] === 'none') {\r\n return offest;\r\n }\r\n\r\n offest = domNode.getBoundingClientRect();\r\n var docElement = domNode.ownerDocument.documentElement;\r\n return {\r\n top: offest.top + (window.scrollY || window.pageYOffset) - docElement.clientTop,\r\n left: offest.left + (window.scrollX || window.pageXOffset) - docElement.clientLeft\r\n };\r\n}\r\n\r\nexport default {\r\n resetBodyScroll: resetBodyScroll,\r\n forbidBodyScroll: forbidBodyScroll,\r\n\r\n syncDomAnimation: syncDomAnimation,\r\n closetByClassName: closetByClassName,\r\n\r\n offset: offset,\r\n};\r\n","function isIOS() {\r\n return [\r\n 'iPad Simulator',\r\n 'iPhone Simulator',\r\n 'iPod Simulator',\r\n 'iPad',\r\n 'iPhone',\r\n 'iPod'\r\n ].includes(navigator.platform) || (navigator.userAgent.includes(\"Mac\") && \"ontouchend\" in document)\r\n}\r\n\r\nfunction isDesktopChrome() {\r\n let result = /Chrome/.test(navigator.userAgent) && /Google Inc/.test(navigator.vendor);\r\n if (!result) {\r\n return false;\r\n }\r\n\r\n if (isMobileChrome()) {\r\n return false;\r\n }\r\n\r\n return true;\r\n}\r\n\r\nfunction isMobileChrome() {\r\n return /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent) && /Chrome/.test(navigator.userAgent) && /Google Inc/.test(navigator.vendor);\r\n}\r\n\r\nfunction isMobileDevice() {\r\n return isIOS() || isMobileChrome();\r\n}\r\n\r\nfunction updateViewPort(pOptions = {}) {\r\n let viewport = document.getElementsByName(\"viewport\");\r\n if (!viewport || viewport.length != 1) {\r\n return;\r\n }\r\n\r\n let options = {};\r\n _.merge(options, defaultOptions, pOptions);\r\n\r\n let content = [];\r\n _.each(options, (value, key) => {\r\n content.push(key + \"=\" + value);\r\n });\r\n\r\n viewport[0].content = _.join(content, \",\");\r\n\r\n console.debug(\"curr viewport is: \" + viewport[0].content);\r\n}\r\n\r\nexport default {\r\n isIOS: isIOS,\r\n isDesktopChrome: isDesktopChrome,\r\n isMobileChrome: isMobileChrome,\r\n\r\n isMobileDevice: isMobileDevice,\r\n\r\n updateViewPort: updateViewPort,\r\n};\r\n","import _ from \"lodash\";\r\n\r\nlet globalDialogUtils;\r\n\r\nfunction init(pDialogInstanceUtils) {\r\n globalDialogUtils = pDialogInstanceUtils;\r\n}\r\n\r\nfunction toFormData(keyPrefix, model, ignoreKeys = [], formData = {}) {\r\n if(model == null){\r\n return {\r\n keyPrefix: null\r\n }\r\n }\r\n\r\n _.each(_.keys(model), (attr) => {\r\n let value = model[attr];\r\n let formKeyPath = keyPrefix ? keyPrefix + \"#\" + attr : attr;\r\n\r\n if(_.includes(ignoreKeys, formKeyPath)){\r\n formData[formKeyPath] = value;\r\n return;\r\n }\r\n\r\n if (_.isPlainObject(value)) {\r\n toFormData(formKeyPath, value, ignoreKeys, formData);\r\n } else {\r\n formData[formKeyPath] = value;\r\n }\r\n })\r\n\r\n return formData;\r\n}\r\n\r\nfunction toModel(formData, ignoreKeys = []) {\r\n if(formData == null){\r\n return null;\r\n }\r\n\r\n let model = {};\r\n _.each(_.keys(formData), (formKeyPath) => {\r\n let value = formData[formKeyPath];\r\n let path = formKeyPath.replaceAll(\"#\", \".\");\r\n _.set(model, path, value);\r\n });\r\n\r\n return model;\r\n}\r\n\r\nfunction scrollToFirstError(ex){\r\n const isError = document.getElementsByClassName('ant-form-item-has-error');\r\n isError[0] && isError[0].scrollIntoView();\r\n console.error(ex);\r\n}\r\n\r\n/**\r\n * show leave message when exit from a modified form page\r\n * @param formOrCheckFormDirtyFunc AntDesignForm or checkFormDirtyFunction\r\n * @returns {Promise<boolean>} true: can exit, or: abort exit\r\n */\r\nasync function confirmOfLeavingForm(formOrCheckFormDirtyFunc) {\r\n if(formOrCheckFormDirtyFunc == null){\r\n return true;\r\n }\r\n\r\n let formDirty;\r\n if (typeof formOrCheckFormDirtyFunc === 'function') {\r\n formDirty = await formOrCheckFormDirtyFunc();\r\n }else{\r\n formDirty = formOrCheckFormDirtyFunc.isFieldsTouched();\r\n }\r\n\r\n if (formDirty) {\r\n let result = await globalDialogUtils.showConfirmDialog(leaveMessage);\r\n if (result !== true) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n}\r\n\r\nconst leaveMessage = \"Do you want to give up your modification?\";\r\nexport default {\r\n init: init,\r\n\r\n toFormData: toFormData,\r\n toModel: toModel,\r\n scrollToFirstError: scrollToFirstError,\r\n\r\n confirmOfLeavingForm: confirmOfLeavingForm,\r\n leaveMessage: leaveMessage\r\n};","import _ from \"lodash\";\r\n\r\nfunction isJsonText(value) {\r\n value = _.trim(value);\r\n\r\n return (_.startsWith(value, \"{\") || _.startsWith(value, \"[\"));\r\n}\r\n\r\nfunction formatJsonText(value) {\r\n if (!isJsonText(value)) {\r\n return value;\r\n }\r\n\r\n return JSON.stringify(JSON.parse(value), null, 4);\r\n}\r\n\r\n\r\nexport default {\r\n isJsonText: isJsonText,\r\n formatJsonText: formatJsonText,\r\n};\r\n","import _ from \"lodash\";\r\n\r\nfunction formatNumberTextWithUnit(numberText, unitText) {\r\n if (!unitText) {\r\n return numberText;\r\n }\r\n return numberText + \" \" + unitText;\r\n}\r\n\r\nfunction formatPctWith2Digital(valuePct) {\r\n let valuePctText = formatNumberWithDigital(valuePct, 2, false);\r\n return valuePctText + \"%\";\r\n}\r\n\r\nfunction formatNumberWith2Digital(value) {\r\n return formatNumberWithDigital(value, 2);\r\n}\r\n\r\nfunction formatNumberWith4Digital(value) {\r\n return formatNumberWithDigital(value, 4);\r\n}\r\n\r\nfunction formatNumberWithDigital(value, digital) {\r\n if (value === null) {\r\n return \"\";\r\n }\r\n\r\n let dblValue = (_.toNumber(value));\r\n if (isNaN(dblValue)) {\r\n //the string value could not be convert to number, just return it;\r\n return value;\r\n }\r\n\r\n let valueText = value;\r\n if (digital != null) {\r\n let text = _.round(dblValue, digital) + \"\";\r\n if (text.indexOf(\".\") === -1) {\r\n text += '.';\r\n }\r\n\r\n let part1 = text.substring(0, text.indexOf(\".\"));\r\n let part2 = \"\";\r\n\r\n if (digital > 0) {\r\n part2 = text.substring(text.indexOf(\".\") + 1); //取到小数部分搜索\r\n part2 = \".\" + _.padEnd(part2, digital, '0');\r\n }\r\n valueText = part1 + part2;\r\n }\r\n\r\n return valueText;\r\n}\r\n\r\nexport default {\r\n formatPctWith2Digital: formatPctWith2Digital,\r\n formatNumberWith2Digital: formatNumberWith2Digital,\r\n formatNumberWith4Digital: formatNumberWith4Digital,\r\n formatNumberWithDigital: formatNumberWithDigital,\r\n formatNumberTextWithUnit: formatNumberTextWithUnit,\r\n};\r\n","import _ from \"lodash\";\r\nimport AxiosUtils from \"./AxiosUtils\";\r\n\r\nconst constants = {\r\n CANVAS_WIDTH: 480,\r\n CANVAS_HEIGHT: 270,\r\n}\r\n\r\n/**\r\n * create an empty 2 dimension array\r\n */\r\nfunction new2dArray(width, height, initValue) {\r\n let array = [];\r\n for (let rowIdx = 0; rowIdx < height; rowIdx++) {\r\n let newRow = [];\r\n for (let colIdx = 0; colIdx < width; colIdx++) {\r\n newRow.push(initValue);\r\n }\r\n array.push(newRow);\r\n }\r\n return array;\r\n}\r\n\r\n/**\r\n * render grey level ImageDataArray to Canvas\r\n */\r\nfunction renderImageDataArrayToCtx(ctx, imageDataArray) {\r\n let height = imageDataArray.length;\r\n let width = imageDataArray[0].length;\r\n let imageData = new ImageData(width, height);\r\n let idx = 0;\r\n for (let rowIdx = 0; rowIdx < height; rowIdx++) {\r\n for (let colIdx = 0; colIdx < width; colIdx++) {\r\n let grayData = imageDataArray[rowIdx][colIdx];\r\n\r\n imageData.data[idx + 0] = grayData;\r\n imageData.data[idx + 1] = grayData;\r\n imageData.data[idx + 2] = grayData;\r\n imageData.data[idx + 3] = 255;\r\n idx = idx + 4;\r\n }\r\n }\r\n ctx.putImageData(imageData, 0, 0, 0, 0, width, height);\r\n}\r\n\r\nfunction getImageDataArrayFromCtx(ctx, canvasWidth, canvasHeight) {\r\n let imageData = ctx.getImageData(0, 0, canvasWidth, canvasHeight);\r\n\r\n let isEmpty = true;\r\n let imageDataArray = [];\r\n for (let i = 0; i < imageData.data.length; i = i + 4) {\r\n let red = imageData.data[i];\r\n imageDataArray[i / 4] = red;\r\n if (red !== 255) {\r\n isEmpty = false;\r\n }\r\n }\r\n\r\n if (isEmpty) {\r\n return null;\r\n }\r\n\r\n imageDataArray = _.chunk(imageDataArray, canvasWidth);\r\n return imageDataArray;\r\n}\r\n\r\nfunction initCanvas(ctx, canvasWidth, canvasHeight) {\r\n ctx.fillStyle = \"white\";\r\n ctx.lineWidth = 1;\r\n ctx.lineCap = 'round';\r\n ctx.lineJoin = 'round';\r\n\r\n ctx.fillRect(0, 0, canvasWidth, canvasHeight);\r\n ctx.fill();\r\n}\r\n\r\nasync function convertCanvasToBlobFile(canvas, fileName, fileType = 'image/jpeg') {\r\n return new Promise((resolve, reject) => {\r\n canvas.toBlob(async function (blob) {\r\n const file = new File([blob], fileName);\r\n resolve(file);\r\n }, fileType, 0.9);\r\n });\r\n}\r\n\r\n/**\r\n * Build grey level ImageDataArray from text\r\n */\r\nfunction calcImageDataArrayFromText(valueText) {\r\n if (valueText == null) {\r\n return;\r\n }\r\n\r\n let imageDataArray = [];\r\n _.each(valueText.split(\";\"), (rowData, rowIdx) => {\r\n let row = [];\r\n _.each(rowData.split(\",\"), (item, colIdx) => {\r\n row.push(item);\r\n });\r\n imageDataArray.push(row);\r\n });\r\n return imageDataArray;\r\n}\r\n\r\nfunction calcTextFromImageDataArray(imageDataArray) {\r\n if (imageDataArray == null) {\r\n return;\r\n }\r\n\r\n let valueText = \"\";\r\n for (let rowIdx = 0; rowIdx < imageDataArray.length; rowIdx++) {\r\n if (rowIdx > 0) {\r\n valueText += \";\";\r\n }\r\n valueText += imageDataArray[rowIdx].join(\",\");\r\n }\r\n return valueText;\r\n}\r\n\r\nexport default {\r\n constants: constants,\r\n new2dArray: new2dArray,\r\n initCanvas: initCanvas,\r\n //common\r\n convertCanvasToBlobFile: convertCanvasToBlobFile,\r\n\r\n //for signature\r\n renderImageDataArrayToCtx: renderImageDataArrayToCtx,\r\n getImageDataArrayFromCtx: getImageDataArrayFromCtx,\r\n calcImageDataArrayFromText: calcImageDataArrayFromText,\r\n calcTextFromImageDataArray: calcTextFromImageDataArray,\r\n};\r\n","import _ from \"lodash\";\r\n\r\nlet pattern=/[`~!@#$^\\-&*()=|{}':;,\\\\\\[\\].<>\\/?\\s]/g;\r\n\r\nfunction buildKeyword(text) {\r\n if(!text){\r\n return '';\r\n }\r\n\r\n let keyword = text.replace(pattern, '').toUpperCase();\r\n return keyword;\r\n}\r\n\r\n\r\nexport default {\r\n buildKeyword: buildKeyword,\r\n};\r\n"],"names":["Base64","init","isMobileDevice","_","param","module","this","e","n","t","r","i","s","o","a","f","h","u","c","d","l","m","M"],"mappings":"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","x_google_ignoreList":[4,5,6]}
|