@fmdeui/fmui 1.0.11 → 1.0.14

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.
@@ -4,3 +4,5 @@ export * from './useVxeTableOptionsHook';
4
4
  export * from './sysInfo';
5
5
  export * from './useInfo';
6
6
  export * from './dateTimeShortCust';
7
+ export * from './idleTimeout';
8
+ export * from './useVxeTableOptionsHook';
package/es/index.d.ts CHANGED
@@ -4,6 +4,7 @@ import { default as emitter } from './utils/mitt';
4
4
  import { default as Watermark } from './utils/watermark';
5
5
  import { default as commonFunction } from './hooks/commonFunction';
6
6
  import { default as other } from './hooks/other';
7
+ import { default as router } from './router';
7
8
  import { EmptyArrayType } from './types';
8
9
  import { MessageHandler } from 'element-plus';
9
10
  import { App } from 'vue';
@@ -36,7 +37,7 @@ declare const commonFun: {
36
37
  value: () => Date[];
37
38
  }[];
38
39
  };
39
- export { setIntroduction, emitter as mittBus, Watermark, other, commonFunction, commonFun, setCssCdn, setJsCdn };
40
+ export { setIntroduction, emitter as mittBus, Watermark, other, commonFunction, commonFun, setCssCdn, setJsCdn, router };
40
41
  export { version } from './version';
41
42
  export declare const install: (app: App) => void;
42
43
  export default installer;
package/es/index.mjs CHANGED
@@ -4,12 +4,12 @@ export { default as mittBus } from './packages/utils/mitt.mjs';
4
4
  export { default as Watermark } from './packages/utils/watermark.mjs';
5
5
  import commonFunction from './packages/hooks/commonFunction.mjs';
6
6
  export { default as other } from './packages/hooks/other.mjs';
7
+ export { initRouter } from './packages/router/index.mjs';
7
8
  import './packages/types/index.mjs';
8
9
  export { AccountTypeEnum, HttpMethodEnum, JobCreateTypeEnum } from './packages/api/index.mjs';
9
10
  import './packages/utils/index.mjs';
10
11
  import './packages/stores/index.mjs';
11
12
  import './packages/hooks/index.mjs';
12
- export { initRouter } from './packages/router/index.mjs';
13
13
  export { getCountryCode, i18n, iso_3166_1_CountryList, languageList, mergMessage, setupI18n } from './packages/locale/index.mjs';
14
14
  export { version } from './version.mjs';
15
15
  export { Local, Session } from './packages/utils/storage.mjs';
@@ -21,6 +21,7 @@ export { base64ToFile, blobToFile, dataURLtoBlob, fileToBase64, urlToBase64 } fr
21
21
  export { buildLocaleContext, buildTranslator, translate, useLocale } from './packages/hooks/useLocale.mjs';
22
22
  export { clone, isObjectValueEqual, judgementSameArr, removeDuplicate } from './packages/utils/arrayOperation.mjs';
23
23
  export { configureRoutes, setPathPrefix } from './packages/router/route.mjs';
24
+ export { destroyIdleTimeout, initIdleTimeout, updateIdleTimeout } from './packages/hooks/idleTimeout.mjs';
24
25
  export { downloadByBase64, downloadByData, downloadByOnlineUrl, downloadByUrl, downloadStreamFile, getFileName, openWindow } from './packages/utils/download.mjs';
25
26
  export { default as en } from './packages/locale/lang/en.mjs';
26
27
  export { exportExcel } from './packages/utils/exportExcel.mjs';
@@ -33,7 +34,9 @@ export { initBackEndControlRoutes, setDynamicViewsModules } from './packages/rou
33
34
  export { initFrontEndControlRoutes } from './packages/router/frontEnd.mjs';
34
35
  export { judgementIdCard, verifiyNumberInteger, verifyAccount, verifyAndSpace, verifyCarNum, verifyCnAndSpace, verifyEmail, verifyEnAndSpace, verifyFullName, verifyIPAddress, verifyIdCard, verifyNumberCnUppercase, verifyNumberComma, verifyNumberIntegerAndFloat, verifyNumberPercentage, verifyNumberPercentageFloat, verifyPassword, verifyPasswordPowerful, verifyPasswordStrength, verifyPhone, verifyPostalCode, verifyTelPhone, verifyTextColor, verifyUrl } from './packages/utils/toolsValidate.mjs';
35
36
  export { loadSysInfo, updateFavicon } from './packages/hooks/sysInfo.mjs';
37
+ export { router } from './packages/router/createRouter.mjs';
36
38
  export { saulVModel } from './packages/utils/saulVModel.mjs';
39
+ export { signalR } from './packages/utils/signalR.mjs';
37
40
  export { signatureByKSort } from './packages/utils/data-signature.mjs';
38
41
  export { useApi, useBaseApi } from './packages/api/base/index.mjs';
39
42
  export { useChangeColor } from './packages/utils/theme.mjs';
@@ -4,3 +4,4 @@ export { useVxeTable } from './useVxeTableOptionsHook.mjs';
4
4
  export { loadSysInfo, updateFavicon } from './sysInfo.mjs';
5
5
  export { hasPrivilege, hasRoleCode, isAdmin, isMember, isNormalUser, isSupperAdmin, isTenantAdmin, orgId, orgName, posId, posName, roles, tenantId, userAccount, userEmail, userFriendName, userId, userName, userPhone } from './useInfo.mjs';
6
6
  export { useDateTimeShortCust } from './dateTimeShortCust.mjs';
7
+ export { destroyIdleTimeout, initIdleTimeout, updateIdleTimeout } from './idleTimeout.mjs';
@@ -18,3 +18,4 @@ export { saulVModel } from './saulVModel.mjs';
18
18
  export { Local, Session } from './storage.mjs';
19
19
  export { useChangeColor } from './theme.mjs';
20
20
  export { judgementIdCard, verifiyNumberInteger, verifyAccount, verifyAndSpace, verifyCarNum, verifyCnAndSpace, verifyEmail, verifyEnAndSpace, verifyFullName, verifyIPAddress, verifyIdCard, verifyNumberCnUppercase, verifyNumberComma, verifyNumberIntegerAndFloat, verifyNumberPercentage, verifyNumberPercentageFloat, verifyPassword, verifyPasswordPowerful, verifyPasswordStrength, verifyPhone, verifyPostalCode, verifyTelPhone, verifyTextColor, verifyUrl } from './toolsValidate.mjs';
21
+ export { signalR } from './signalR.mjs';
@@ -18,3 +18,4 @@ export * from './saulVModel';
18
18
  export * from './storage';
19
19
  export * from './theme';
20
20
  export * from './toolsValidate';
21
+ export * from './signalR';
package/index.js CHANGED
@@ -1,9 +1,9 @@
1
- /*! fmdeui-fmui v1.0.11 */
1
+ /*! fmdeui-fmui v1.0.14 */
2
2
  (function (global, factory) {
3
- typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('pinia'), require('crypto-js'), require('xlsx-js-style'), require('element-plus'), require('vue'), require('@element-plus/icons-vue'), require('axios'), require('js-cookie'), require('vxe-table'), require('@vxe-ui/plugin-render-element'), require('@vxe-ui/plugin-export-xlsx'), require('vxe-pc-ui'), require('vue-i18n'), require('exceljs'), require('lodash-es'), require('@vueuse/core'), require('mitt'), require('vue-router'), require('nprogress')) :
4
- typeof define === 'function' && define.amd ? define(['exports', 'pinia', 'crypto-js', 'xlsx-js-style', 'element-plus', 'vue', '@element-plus/icons-vue', 'axios', 'js-cookie', 'vxe-table', '@vxe-ui/plugin-render-element', '@vxe-ui/plugin-export-xlsx', 'vxe-pc-ui', 'vue-i18n', 'exceljs', 'lodash-es', '@vueuse/core', 'mitt', 'vue-router', 'nprogress'], factory) :
5
- (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.fmdeuifmui = {}, global.Pinia, global.CryptoJS, global.XLSX, global.ElementPlus, global.Vue, global.ElementPlusIconsVue, global.axios, global.Cookies, global.VxeUITable, global.VxeUIPluginRenderElement, global.VxeUIPluginExportXLSX, global.VxeUIExport, global.vueI18n, global.ExcelJS, global._, global.VueUse, global.mitt, global.vueRouter, global.NProgress));
6
- })(this, (function (exports, pinia$1, CryptoJS, XLSXS, elementPlus, vue, svg, axios, Cookies, VxeUITable, VxeUIPluginRenderElement, VxeUIPluginExportXLSX, VxeUI, vueI18n, ExcelJS, lodashEs, core, mitt, vueRouter, NProgress) { 'use strict';
3
+ typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('pinia'), require('crypto-js'), require('xlsx-js-style'), require('element-plus'), require('vue'), require('@element-plus/icons-vue'), require('axios'), require('js-cookie'), require('@microsoft/signalr'), require('vxe-table'), require('@vxe-ui/plugin-render-element'), require('@vxe-ui/plugin-export-xlsx'), require('vxe-pc-ui'), require('vue-i18n'), require('exceljs'), require('lodash-es'), require('@vueuse/core'), require('mitt'), require('vue-router'), require('nprogress')) :
4
+ typeof define === 'function' && define.amd ? define(['exports', 'pinia', 'crypto-js', 'xlsx-js-style', 'element-plus', 'vue', '@element-plus/icons-vue', 'axios', 'js-cookie', '@microsoft/signalr', 'vxe-table', '@vxe-ui/plugin-render-element', '@vxe-ui/plugin-export-xlsx', 'vxe-pc-ui', 'vue-i18n', 'exceljs', 'lodash-es', '@vueuse/core', 'mitt', 'vue-router', 'nprogress'], factory) :
5
+ (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.fmdeuifmui = {}, global.Pinia, global.CryptoJS, global.XLSX, global.ElementPlus, global.Vue, global.ElementPlusIconsVue, global.axios, global.Cookies, global.SignalR, global.VxeUITable, global.VxeUIPluginRenderElement, global.VxeUIPluginExportXLSX, global.VxeUIExport, global.vueI18n, global.ExcelJS, global._, global.VueUse, global.mitt, global.vueRouter, global.NProgress));
6
+ })(this, (function (exports, pinia$1, CryptoJS, XLSXS, elementPlus, vue, svg, axios, Cookies, SignalR, VxeUITable, VxeUIPluginRenderElement, VxeUIPluginExportXLSX, VxeUI, vueI18n, ExcelJS, lodashEs, core, mitt, vueRouter, NProgress) { 'use strict';
7
7
 
8
8
  function _interopNamespaceDefault(e) {
9
9
  var n = Object.create(null);
@@ -23,6 +23,7 @@
23
23
  }
24
24
 
25
25
  var svg__namespace = /*#__PURE__*/_interopNamespaceDefault(svg);
26
+ var SignalR__namespace = /*#__PURE__*/_interopNamespaceDefault(SignalR);
26
27
 
27
28
  const pinia = pinia$1.createPinia();
28
29
 
@@ -510,9 +511,9 @@
510
511
  return value;
511
512
  };
512
513
 
513
- var __defProp = Object.defineProperty;
514
- var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
515
- var __publicField = (obj, key, value) => __defNormalProp(obj, key + "" , value);
514
+ var __defProp$1 = Object.defineProperty;
515
+ var __defNormalProp$1 = (obj, key, value) => key in obj ? __defProp$1(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
516
+ var __publicField$1 = (obj, key, value) => __defNormalProp$1(obj, key + "" , value);
516
517
  const DEFAULT_CONFIG = {
517
518
  lock: true,
518
519
  text: "",
@@ -525,7 +526,7 @@
525
526
  };
526
527
  class FlowLoadingManager {
527
528
  constructor() {
528
- __publicField(this, "instance", null);
529
+ __publicField$1(this, "instance", null);
529
530
  }
530
531
  // 2. 统一返回类型
531
532
  start(options) {
@@ -1651,6 +1652,53 @@
1651
1652
  return entity;
1652
1653
  }
1653
1654
 
1655
+ const connection = new SignalR__namespace.HubConnectionBuilder().configureLogging(SignalR__namespace.LogLevel.Warning).withUrl(`${window.__env__.VITE_API_URL}/hubs/onlineUser?token=${getToken()}`, { transport: SignalR__namespace.HttpTransportType.WebSockets, skipNegotiation: true }).withAutomaticReconnect({
1656
+ nextRetryDelayInMilliseconds: () => {
1657
+ return 5e3;
1658
+ }
1659
+ }).build();
1660
+ connection.keepAliveIntervalInMilliseconds = 15 * 1e3;
1661
+ connection.serverTimeoutInMilliseconds = 30 * 1e3;
1662
+ connection.start().then(() => {
1663
+ });
1664
+ connection.onclose(async () => {
1665
+ });
1666
+ connection.onreconnecting(() => {
1667
+ elementPlus.ElNotification({
1668
+ title: "\u63D0\u793A",
1669
+ message: "\u8FDE\u63A5\u5DF2\u65AD\u5F00 >>>>>",
1670
+ type: "error",
1671
+ position: "bottom-right"
1672
+ });
1673
+ });
1674
+ connection.onreconnected(() => {
1675
+ elementPlus.ElNotification({
1676
+ title: "\u63D0\u793A",
1677
+ message: "\u8FDE\u63A5\u5DF2\u6062\u590D >>>>>",
1678
+ type: "success",
1679
+ position: "bottom-right"
1680
+ });
1681
+ });
1682
+ connection.on("OnlineUserList", () => {
1683
+ });
1684
+ connection.on("ReceiveMessage", (message) => {
1685
+ var tmpMsg = `<div style="white-space: pre-wrap;">${message.message}<div><br/>`;
1686
+ tmpMsg += `<p style="color:#808080; font-size:10px;float:right"> ${message.sendUserName} ${message.sendTime}<p>`;
1687
+ elementPlus.ElNotification({
1688
+ title: `${message.title}`,
1689
+ message: tmpMsg,
1690
+ type: message.messageType.toString().toLowerCase(),
1691
+ position: "top-right",
1692
+ dangerouslyUseHTMLString: true,
1693
+ duration: 5e3
1694
+ });
1695
+ });
1696
+
1697
+ var signalR$1 = /*#__PURE__*/Object.freeze({
1698
+ __proto__: null,
1699
+ signalR: connection
1700
+ });
1701
+
1654
1702
  const setWatermark = (str) => {
1655
1703
  const id = "1.23452384164.123412416";
1656
1704
  if (document.getElementById(id) !== null) document.body.removeChild(document.getElementById(id));
@@ -18705,7 +18753,120 @@
18705
18753
 
18706
18754
  var img = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEEAAABBCAYAAACO98lFAAAACXBIWXMAAAsTAAALEwEAmpwYAAAFwmlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS42LWMxNDIgNzkuMTYwOTI0LCAyMDE3LzA3LzEzLTAxOjA2OjM5ICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIiB4bWxuczpzdEV2dD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlRXZlbnQjIiB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iIHhtbG5zOnBob3Rvc2hvcD0iaHR0cDovL25zLmFkb2JlLmNvbS9waG90b3Nob3AvMS4wLyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ0MgKFdpbmRvd3MpIiB4bXA6Q3JlYXRlRGF0ZT0iMjAyNS0wNC0wNFQwMToyMzozMCswODowMCIgeG1wOk1ldGFkYXRhRGF0ZT0iMjAyNS0wNC0wNFQwMToyMzozMCswODowMCIgeG1wOk1vZGlmeURhdGU9IjIwMjUtMDQtMDRUMDE6MjM6MzArMDg6MDAiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6NDY0Mzc1NWEtZTM4ZC1hMzQxLWFmODgtNmFhY2FmYmI4ZDY0IiB4bXBNTTpEb2N1bWVudElEPSJhZG9iZTpkb2NpZDpwaG90b3Nob3A6MTdlYzEzMTgtNmY3Mi1mYjQ4LWI3YjUtMzg2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";
18707
18755
 
18756
+ var __defProp = Object.defineProperty;
18757
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
18758
+ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
18759
+ let signalR;
18760
+ async function loadSignalR() {
18761
+ if (!signalR) {
18762
+ const module = await Promise.resolve().then(function () { return signalR$1; });
18763
+ signalR = module.signalR;
18764
+ }
18765
+ return signalR;
18766
+ }
18708
18767
  const { t } = useLocale();
18768
+ class IdleTimeoutManager {
18769
+ constructor(config = {}) {
18770
+ __publicField(this, "timerId", null);
18771
+ __publicField(this, "config");
18772
+ __publicField(this, "debouncedReset");
18773
+ /** 检查闲置超时时间间隔 */
18774
+ __publicField(this, "checkTimeoutInterval", 2 * 1e3);
18775
+ __publicField(this, "handleVisibilityChange", () => {
18776
+ if (document.visibilityState === "visible") {
18777
+ this.setLastActivityTime();
18778
+ }
18779
+ });
18780
+ this.config = {
18781
+ timeout: 30 * 60,
18782
+ events: ["mousewheel", "keydown", "click"],
18783
+ onTimeout: this.timeOutExec.bind(this),
18784
+ debounceInterval: 200,
18785
+ ...config
18786
+ };
18787
+ this.debouncedReset = this.config.debounceInterval > 0 ? lodashEs.debounce(this.setLastActivityTime.bind(this), this.config.debounceInterval) : this.setLastActivityTime.bind(this);
18788
+ this.init();
18789
+ }
18790
+ init() {
18791
+ this.config.events.forEach((event) => {
18792
+ window.addEventListener(event, this.debouncedReset);
18793
+ });
18794
+ document.addEventListener("visibilitychange", this.handleVisibilityChange);
18795
+ this.setLastActivityTime();
18796
+ this.updateIdleTimeout(this.config.timeout);
18797
+ }
18798
+ /** 设置最后活动时间 */
18799
+ setLastActivityTime() {
18800
+ Local.set("lastActivityTime", (/* @__PURE__ */ new Date()).getTime());
18801
+ }
18802
+ /**
18803
+ * 更新空闲超时时间
18804
+ * @param timeout - 新的超时时间(毫秒)
18805
+ */
18806
+ updateIdleTimeout(timeout) {
18807
+ this.config.timeout = timeout;
18808
+ if (this.config.timeout > 0 && this.timerId == null) {
18809
+ this.timerId = window.setInterval(this.checkTimeout.bind(this), this.checkTimeoutInterval);
18810
+ } else if (this.config.timeout == 0 && this.timerId != null) {
18811
+ window.clearInterval(this.timerId);
18812
+ this.timerId = null;
18813
+ }
18814
+ }
18815
+ /** 检查是否超时 */
18816
+ checkTimeout() {
18817
+ const currentTime = (/* @__PURE__ */ new Date()).getTime();
18818
+ const lastActivityTime = Number(Local.get("lastActivityTime"));
18819
+ if (lastActivityTime == 0) return;
18820
+ const accessToken = Local.get(accessTokenKey);
18821
+ if (!accessToken || accessToken == "invalid_token") return;
18822
+ const timeout = this.config.timeout * 1e3;
18823
+ if (currentTime - lastActivityTime > timeout) {
18824
+ this.destroy();
18825
+ this.config.onTimeout();
18826
+ }
18827
+ }
18828
+ /** 销毁实例 */
18829
+ destroy() {
18830
+ this.config.events.forEach((event) => {
18831
+ window.removeEventListener(event, this.debouncedReset);
18832
+ });
18833
+ document.removeEventListener("visibilitychange", this.handleVisibilityChange);
18834
+ if (this.timerId !== null) {
18835
+ window.clearInterval(this.timerId);
18836
+ this.timerId = null;
18837
+ }
18838
+ }
18839
+ /** 超时时执行 */
18840
+ timeOutExec() {
18841
+ const appEl = document.getElementById("app");
18842
+ appEl == null ? void 0 : appEl.remove();
18843
+ loadSignalR().then((signalR2) => {
18844
+ signalR2.stop();
18845
+ });
18846
+ Local.remove(accessTokenKey);
18847
+ Local.remove(refreshAccessTokenKey);
18848
+ Session.clear();
18849
+ elementPlus.ElMessageBox.alert(t("plus.list.idleTimeoutMessage"), t("plus.list.sysMessage"), {
18850
+ type: "warning",
18851
+ draggable: true,
18852
+ callback: () => {
18853
+ window.location.reload();
18854
+ }
18855
+ });
18856
+ }
18857
+ }
18858
+ function initIdleTimeout(config) {
18859
+ if (!window.__IDLE_TIMEOUT__) {
18860
+ window.__IDLE_TIMEOUT__ = new IdleTimeoutManager(config);
18861
+ }
18862
+ return window.__IDLE_TIMEOUT__;
18863
+ }
18864
+ function destroyIdleTimeout() {
18865
+ if (window.__IDLE_TIMEOUT__) {
18866
+ window.__IDLE_TIMEOUT__.destroy();
18867
+ window.__IDLE_TIMEOUT__ = void 0;
18868
+ }
18869
+ }
18709
18870
  function updateIdleTimeout(timeout) {
18710
18871
  if (window.__IDLE_TIMEOUT__) {
18711
18872
  window.__IDLE_TIMEOUT__.updateIdleTimeout(timeout);
@@ -22847,6 +23008,7 @@
22847
23008
  exports.dataURLtoBlob = dataURLtoBlob;
22848
23009
  exports.decryptJWT = decryptJWT;
22849
23010
  exports.default = installer;
23011
+ exports.destroyIdleTimeout = destroyIdleTimeout;
22850
23012
  exports.downloadByBase64 = downloadByBase64;
22851
23013
  exports.downloadByData = downloadByData;
22852
23014
  exports.downloadByOnlineUrl = downloadByOnlineUrl;
@@ -22875,6 +23037,7 @@
22875
23037
  exports.i18n = i18n;
22876
23038
  exports.initBackEndControlRoutes = initBackEndControlRoutes;
22877
23039
  exports.initFrontEndControlRoutes = initFrontEndControlRoutes;
23040
+ exports.initIdleTimeout = initIdleTimeout;
22878
23041
  exports.initRouter = initRouter;
22879
23042
  exports.install = install;
22880
23043
  exports.isAdmin = isAdmin;
@@ -22901,6 +23064,7 @@
22901
23064
  exports.removeDuplicate = removeDuplicate;
22902
23065
  exports.request2 = request2;
22903
23066
  exports.roles = roles;
23067
+ exports.router = router;
22904
23068
  exports.saulVModel = saulVModel;
22905
23069
  exports.service = service;
22906
23070
  exports.setCssCdn = setCssCdn;
@@ -22909,12 +23073,14 @@
22909
23073
  exports.setJsCdn = setJsCdn;
22910
23074
  exports.setPathPrefix = setPathPrefix;
22911
23075
  exports.setupI18n = setupI18n;
23076
+ exports.signalR = connection;
22912
23077
  exports.signatureByKSort = signatureByKSort;
22913
23078
  exports.sleep = sleep;
22914
23079
  exports.tansParams = tansParams;
22915
23080
  exports.tenantId = tenantId;
22916
23081
  exports.translate = translate;
22917
23082
  exports.updateFavicon = updateFavicon;
23083
+ exports.updateIdleTimeout = updateIdleTimeout;
22918
23084
  exports.urlToBase64 = urlToBase64;
22919
23085
  exports.useApi = useApi;
22920
23086
  exports.useBaseApi = useBaseApi;