@next-core/runtime 1.3.1 → 1.3.3

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.
@@ -10,27 +10,23 @@ var __secret_internals = _interopRequireWildcard(require("./internal/secret_inte
10
10
  let brick;
11
11
  function show(options) {
12
12
  if (brick) {
13
- brick.resolve(options);
13
+ return brick.resolve(options);
14
14
  } else {
15
15
  if (options.type === "confirm") {
16
16
  if (confirm(options.content)) {
17
- setTimeout(() => {
18
- var _options$onOk;
19
- (_options$onOk = options.onOk) === null || _options$onOk === void 0 ? void 0 : _options$onOk.call(options);
20
- }, 1);
17
+ return new Promise(resolve => setTimeout(() => {
18
+ resolve();
19
+ }, 1));
21
20
  } else {
22
- setTimeout(() => {
23
- var _options$onCancel;
24
- (_options$onCancel = options.onCancel) === null || _options$onCancel === void 0 ? void 0 : _options$onCancel.call(options);
25
- }, 1);
21
+ return new Promise((resolve, reject) => setTimeout(() => {
22
+ reject();
23
+ }, 1));
26
24
  }
27
25
  } else {
28
26
  alert(options.content);
29
- if (options.onOk) {
30
- setTimeout(() => {
31
- options.onOk();
32
- }, 1000);
33
- }
27
+ return new Promise(resolve => setTimeout(() => {
28
+ resolve();
29
+ }, 1000));
34
30
  }
35
31
  }
36
32
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Dialog.js","names":["__secret_internals","_interopRequireWildcard","require","brick","show","options","resolve","type","confirm","content","setTimeout","_options$onOk","onOk","call","_options$onCancel","onCancel","alert","loadDialogService","tagName","loadBricks","then","document","createElement","error","console","Dialog","Object","freeze","exports"],"sources":["../../src/Dialog.ts"],"sourcesContent":["import * as __secret_internals from \"./internal/secret_internals.js\";\n\nlet brick: {\n resolve(options: DialogOptions): void;\n};\n\nfunction show(options: DialogOptions) {\n if (brick) {\n brick.resolve(options);\n } else {\n if (options.type === \"confirm\") {\n if (confirm(options.content)) {\n setTimeout(() => {\n options.onOk?.();\n }, 1);\n } else {\n setTimeout(() => {\n options.onCancel?.();\n }, 1);\n }\n } else {\n alert(options.content);\n if (options.onOk) {\n setTimeout(() => {\n options.onOk!();\n }, 1000);\n }\n }\n }\n}\n\nexport function loadDialogService(tagName: string) {\n __secret_internals.loadBricks([tagName]).then(\n () => {\n brick = document.createElement(tagName) as any;\n },\n (error: unknown) => {\n // eslint-disable-next-line no-console\n console.error(\"Load dialog service failed:\", error);\n }\n );\n}\n\nexport interface DialogOptions {\n type?: \"success\" | \"error\" | \"warn\" | \"info\" | \"confirm\";\n title?: string | null;\n content: string;\n whiteSpace?: string;\n onOk?: () => void;\n onCancel?: () => void;\n}\n\nexport const Dialog = Object.freeze({\n show,\n});\n"],"mappings":";;;;;;;;AAAA,IAAAA,kBAAA,GAAAC,uBAAA,CAAAC,OAAA;AAEA,IAAIC,KAEH;AAED,SAASC,IAAIA,CAACC,OAAsB,EAAE;EACpC,IAAIF,KAAK,EAAE;IACTA,KAAK,CAACG,OAAO,CAACD,OAAO,CAAC;EACxB,CAAC,MAAM;IACL,IAAIA,OAAO,CAACE,IAAI,KAAK,SAAS,EAAE;MAC9B,IAAIC,OAAO,CAACH,OAAO,CAACI,OAAO,CAAC,EAAE;QAC5BC,UAAU,CAAC,MAAM;UAAA,IAAAC,aAAA;UACf,CAAAA,aAAA,GAAAN,OAAO,CAACO,IAAI,cAAAD,aAAA,uBAAZA,aAAA,CAAAE,IAAA,CAAAR,OAAO,CAAS;QAClB,CAAC,EAAE,CAAC,CAAC;MACP,CAAC,MAAM;QACLK,UAAU,CAAC,MAAM;UAAA,IAAAI,iBAAA;UACf,CAAAA,iBAAA,GAAAT,OAAO,CAACU,QAAQ,cAAAD,iBAAA,uBAAhBA,iBAAA,CAAAD,IAAA,CAAAR,OAAO,CAAa;QACtB,CAAC,EAAE,CAAC,CAAC;MACP;IACF,CAAC,MAAM;MACLW,KAAK,CAACX,OAAO,CAACI,OAAO,CAAC;MACtB,IAAIJ,OAAO,CAACO,IAAI,EAAE;QAChBF,UAAU,CAAC,MAAM;UACfL,OAAO,CAACO,IAAI,EAAG;QACjB,CAAC,EAAE,IAAI,CAAC;MACV;IACF;EACF;AACF;AAEO,SAASK,iBAAiBA,CAACC,OAAe,EAAE;EACjDlB,kBAAkB,CAACmB,UAAU,CAAC,CAACD,OAAO,CAAC,CAAC,CAACE,IAAI,CAC3C,MAAM;IACJjB,KAAK,GAAGkB,QAAQ,CAACC,aAAa,CAACJ,OAAO,CAAQ;EAChD,CAAC,EACAK,KAAc,IAAK;IAClB;IACAC,OAAO,CAACD,KAAK,CAAC,6BAA6B,EAAEA,KAAK,CAAC;EACrD,CAAC,CACF;AACH;AAWO,MAAME,MAAM,GAAGC,MAAM,CAACC,MAAM,CAAC;EAClCvB;AACF,CAAC,CAAC;AAACwB,OAAA,CAAAH,MAAA,GAAAA,MAAA"}
1
+ {"version":3,"file":"Dialog.js","names":["__secret_internals","_interopRequireWildcard","require","brick","show","options","resolve","type","confirm","content","Promise","setTimeout","reject","alert","loadDialogService","tagName","loadBricks","then","document","createElement","error","console","Dialog","Object","freeze","exports"],"sources":["../../src/Dialog.ts"],"sourcesContent":["import * as __secret_internals from \"./internal/secret_internals.js\";\n\nlet brick: {\n resolve(options: DialogOptions): Promise<void>;\n};\n\nfunction show(options: DialogOptions): Promise<void> {\n if (brick) {\n return brick.resolve(options);\n } else {\n if (options.type === \"confirm\") {\n if (confirm(options.content)) {\n return new Promise((resolve) =>\n setTimeout(() => {\n resolve();\n }, 1)\n );\n } else {\n return new Promise((resolve, reject) =>\n setTimeout(() => {\n reject();\n }, 1)\n );\n }\n } else {\n alert(options.content);\n return new Promise((resolve) =>\n setTimeout(() => {\n resolve();\n }, 1000)\n );\n }\n }\n}\n\nexport function loadDialogService(tagName: string) {\n __secret_internals.loadBricks([tagName]).then(\n () => {\n brick = document.createElement(tagName) as any;\n },\n (error: unknown) => {\n // eslint-disable-next-line no-console\n console.error(\"Load dialog service failed:\", error);\n }\n );\n}\n\nexport interface DialogOptions {\n type?: \"success\" | \"error\" | \"warn\" | \"info\" | \"confirm\";\n title?: string | null;\n content: string;\n contentStyle?: object;\n}\n\nexport const Dialog = Object.freeze({\n show,\n});\n"],"mappings":";;;;;;;;AAAA,IAAAA,kBAAA,GAAAC,uBAAA,CAAAC,OAAA;AAEA,IAAIC,KAEH;AAED,SAASC,IAAIA,CAACC,OAAsB,EAAiB;EACnD,IAAIF,KAAK,EAAE;IACT,OAAOA,KAAK,CAACG,OAAO,CAACD,OAAO,CAAC;EAC/B,CAAC,MAAM;IACL,IAAIA,OAAO,CAACE,IAAI,KAAK,SAAS,EAAE;MAC9B,IAAIC,OAAO,CAACH,OAAO,CAACI,OAAO,CAAC,EAAE;QAC5B,OAAO,IAAIC,OAAO,CAAEJ,OAAO,IACzBK,UAAU,CAAC,MAAM;UACfL,OAAO,EAAE;QACX,CAAC,EAAE,CAAC,CAAC,CACN;MACH,CAAC,MAAM;QACL,OAAO,IAAII,OAAO,CAAC,CAACJ,OAAO,EAAEM,MAAM,KACjCD,UAAU,CAAC,MAAM;UACfC,MAAM,EAAE;QACV,CAAC,EAAE,CAAC,CAAC,CACN;MACH;IACF,CAAC,MAAM;MACLC,KAAK,CAACR,OAAO,CAACI,OAAO,CAAC;MACtB,OAAO,IAAIC,OAAO,CAAEJ,OAAO,IACzBK,UAAU,CAAC,MAAM;QACfL,OAAO,EAAE;MACX,CAAC,EAAE,IAAI,CAAC,CACT;IACH;EACF;AACF;AAEO,SAASQ,iBAAiBA,CAACC,OAAe,EAAE;EACjDf,kBAAkB,CAACgB,UAAU,CAAC,CAACD,OAAO,CAAC,CAAC,CAACE,IAAI,CAC3C,MAAM;IACJd,KAAK,GAAGe,QAAQ,CAACC,aAAa,CAACJ,OAAO,CAAQ;EAChD,CAAC,EACAK,KAAc,IAAK;IAClB;IACAC,OAAO,CAACD,KAAK,CAAC,6BAA6B,EAAEA,KAAK,CAAC;EACrD,CAAC,CACF;AACH;AASO,MAAME,MAAM,GAAGC,MAAM,CAACC,MAAM,CAAC;EAClCpB;AACF,CAAC,CAAC;AAACqB,OAAA,CAAAH,MAAA,GAAAA,MAAA"}
@@ -28,8 +28,7 @@ function httpErrorToString(error) {
28
28
  return error.target.src;
29
29
  }
30
30
  if (error instanceof _http.HttpFetchError) {
31
- // return i18next.t(`${NS_BRICK_KIT}:${K.NETWORK_ERROR}`);
32
- return "网络错误,请检查您的网络连接。";
31
+ return _i18n.i18n.t(`${_i18n2.NS}:${_i18n2.K.NETWORK_ERROR}`);
33
32
  }
34
33
  if (error instanceof _http.HttpResponseError) {
35
34
  if (error.responseJson) {
@@ -70,14 +69,12 @@ function handleHttpError(error) {
70
69
  unauthenticatedConfirming = true;
71
70
  _Dialog.Dialog.show({
72
71
  type: "confirm",
73
- content: _i18n.i18n.t(`${_i18n2.NS}:${_i18n2.K.LOGIN_TIMEOUT_MESSAGE}`),
74
- onOk() {
75
- redirectToLogin();
76
- unauthenticatedConfirming = false;
77
- },
78
- onCancel() {
79
- unauthenticatedConfirming = false;
80
- }
72
+ content: _i18n.i18n.t(`${_i18n2.NS}:${_i18n2.K.LOGIN_TIMEOUT_MESSAGE}`)
73
+ }).then(() => {
74
+ redirectToLogin();
75
+ unauthenticatedConfirming = false;
76
+ }, () => {
77
+ unauthenticatedConfirming = false;
81
78
  });
82
79
  return;
83
80
  }
@@ -91,10 +88,11 @@ function handleHttpError(error) {
91
88
  type: "error",
92
89
  title: _i18n.i18n.t(`${_i18n2.NS}:${_i18n2.K.REQUEST_FAILED}`),
93
90
  content: message,
94
- whiteSpace: "pre-wrap",
95
- onOk() {
96
- lastErrorMessage = undefined;
91
+ contentStyle: {
92
+ whiteSpace: "pre-wrap"
97
93
  }
94
+ }).then(() => {
95
+ lastErrorMessage = undefined;
98
96
  });
99
97
  }
100
98
  return;
@@ -1 +1 @@
1
- {"version":3,"file":"handleHttpError.js","names":["_http","require","_i18n","_Runtime","_history","_i18n2","_Dialog","httpErrorToString","error","Event","target","HTMLScriptElement","src","HttpFetchError","HttpResponseError","responseJson","msg","toString","isUnauthenticatedError","response","status","code","unauthenticatedConfirming","lastErrorMessage","handleHttpError","HttpAbortError","window","NO_AUTH_GUARD","Dialog","show","type","content","i18n","t","NS","K","LOGIN_TIMEOUT_MESSAGE","onOk","redirectToLogin","onCancel","console","message","title","REQUEST_FAILED","whiteSpace","undefined","ssoEnabled","getRuntime","getFeatureFlags","history","getHistory","push","from","location","state"],"sources":["../../src/handleHttpError.ts"],"sourcesContent":["import {\n HttpAbortError,\n HttpFetchError,\n HttpResponseError,\n} from \"@next-core/http\";\nimport { i18n } from \"@next-core/i18n\";\nimport { getRuntime } from \"./internal/Runtime.js\";\nimport { getHistory } from \"./history.js\";\nimport { K, NS } from \"./internal/i18n.js\";\nimport { Dialog } from \"./Dialog.js\";\n\n/**\n * 将 http 请求错误转换为可读的字符串。\n *\n * @remarks\n *\n * 将依次尝试读取返回的 JSON 格式数据的字符串类型的 `error` 和 `msg` 字段,如果没有找到则返回 `error.toString()` 的结果。\n *\n * @param error - 错误对象。\n *\n * @returns 转换为字符串的错误信息。\n */\nexport function httpErrorToString(error: unknown): string {\n if (error instanceof Event && error.target instanceof HTMLScriptElement) {\n return error.target.src;\n }\n if (error instanceof HttpFetchError) {\n // return i18next.t(`${NS_BRICK_KIT}:${K.NETWORK_ERROR}`);\n return \"网络错误,请检查您的网络连接。\";\n }\n if (error instanceof HttpResponseError) {\n if (error.responseJson) {\n if (typeof error.responseJson.error === \"string\") {\n return error.responseJson.error;\n } else if (typeof error.responseJson.msg === \"string\") {\n return error.responseJson.msg;\n }\n }\n }\n if (error == null) {\n return \"Unknown error\";\n }\n return error.toString();\n}\n\nexport function isUnauthenticatedError(error: unknown): boolean {\n return (\n error instanceof HttpResponseError &&\n error.response.status === 401 &&\n !!error.responseJson &&\n error.responseJson.code === 100003\n );\n}\n\nlet unauthenticatedConfirming = false;\n\nlet lastErrorMessage: string | undefined;\n\n/**\n * 处理 http 请求错误(使用 AntDesign 模态框弹出错误信息)。\n *\n * @param error - 错误对象。\n */\nexport function handleHttpError(error: unknown) {\n // Do nothing if aborted http requests\n if (error instanceof HttpAbortError) {\n return;\n }\n\n // Redirect to login page if not logged in.\n if (isUnauthenticatedError(error) && !window.NO_AUTH_GUARD) {\n if (unauthenticatedConfirming) {\n return;\n }\n unauthenticatedConfirming = true;\n Dialog.show({\n type: \"confirm\",\n content: i18n.t(`${NS}:${K.LOGIN_TIMEOUT_MESSAGE}`),\n onOk() {\n redirectToLogin();\n unauthenticatedConfirming = false;\n },\n onCancel() {\n unauthenticatedConfirming = false;\n },\n });\n return;\n }\n\n // eslint-disable-next-line no-console\n console.error(error);\n\n const message = httpErrorToString(error);\n if (message !== lastErrorMessage) {\n lastErrorMessage = message;\n Dialog.show({\n type: \"error\",\n title: i18n.t(`${NS}:${K.REQUEST_FAILED}`),\n content: message,\n whiteSpace: \"pre-wrap\",\n onOk() {\n lastErrorMessage = undefined;\n },\n });\n }\n return;\n}\n\nfunction redirectToLogin() {\n const ssoEnabled = getRuntime().getFeatureFlags()[\"sso-enabled\"];\n const history = getHistory();\n history.push(ssoEnabled ? \"/sso-auth/login\" : \"/auth/login\", {\n from: {\n ...history.location,\n state: undefined,\n },\n });\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"handleHttpError.js","names":["_http","require","_i18n","_Runtime","_history","_i18n2","_Dialog","httpErrorToString","error","Event","target","HTMLScriptElement","src","HttpFetchError","i18n","t","NS","K","NETWORK_ERROR","HttpResponseError","responseJson","msg","toString","isUnauthenticatedError","response","status","code","unauthenticatedConfirming","lastErrorMessage","handleHttpError","HttpAbortError","window","NO_AUTH_GUARD","Dialog","show","type","content","LOGIN_TIMEOUT_MESSAGE","then","redirectToLogin","console","message","title","REQUEST_FAILED","contentStyle","whiteSpace","undefined","ssoEnabled","getRuntime","getFeatureFlags","history","getHistory","push","from","location","state"],"sources":["../../src/handleHttpError.ts"],"sourcesContent":["import {\n HttpAbortError,\n HttpFetchError,\n HttpResponseError,\n} from \"@next-core/http\";\nimport { i18n } from \"@next-core/i18n\";\nimport { getRuntime } from \"./internal/Runtime.js\";\nimport { getHistory } from \"./history.js\";\nimport { K, NS } from \"./internal/i18n.js\";\nimport { Dialog } from \"./Dialog.js\";\n\n/**\n * 将 http 请求错误转换为可读的字符串。\n *\n * @remarks\n *\n * 将依次尝试读取返回的 JSON 格式数据的字符串类型的 `error` 和 `msg` 字段,如果没有找到则返回 `error.toString()` 的结果。\n *\n * @param error - 错误对象。\n *\n * @returns 转换为字符串的错误信息。\n */\nexport function httpErrorToString(error: unknown): string {\n if (error instanceof Event && error.target instanceof HTMLScriptElement) {\n return error.target.src;\n }\n if (error instanceof HttpFetchError) {\n return i18n.t(`${NS}:${K.NETWORK_ERROR}`);\n }\n if (error instanceof HttpResponseError) {\n if (error.responseJson) {\n if (typeof error.responseJson.error === \"string\") {\n return error.responseJson.error;\n } else if (typeof error.responseJson.msg === \"string\") {\n return error.responseJson.msg;\n }\n }\n }\n if (error == null) {\n return \"Unknown error\";\n }\n return error.toString();\n}\n\nexport function isUnauthenticatedError(error: unknown): boolean {\n return (\n error instanceof HttpResponseError &&\n error.response.status === 401 &&\n !!error.responseJson &&\n error.responseJson.code === 100003\n );\n}\n\nlet unauthenticatedConfirming = false;\n\nlet lastErrorMessage: string | undefined;\n\n/**\n * 处理 http 请求错误(使用 AntDesign 模态框弹出错误信息)。\n *\n * @param error - 错误对象。\n */\nexport function handleHttpError(error: unknown) {\n // Do nothing if aborted http requests\n if (error instanceof HttpAbortError) {\n return;\n }\n\n // Redirect to login page if not logged in.\n if (isUnauthenticatedError(error) && !window.NO_AUTH_GUARD) {\n if (unauthenticatedConfirming) {\n return;\n }\n unauthenticatedConfirming = true;\n Dialog.show({\n type: \"confirm\",\n content: i18n.t(`${NS}:${K.LOGIN_TIMEOUT_MESSAGE}`),\n }).then(\n () => {\n redirectToLogin();\n unauthenticatedConfirming = false;\n },\n () => {\n unauthenticatedConfirming = false;\n }\n );\n return;\n }\n\n // eslint-disable-next-line no-console\n console.error(error);\n\n const message = httpErrorToString(error);\n if (message !== lastErrorMessage) {\n lastErrorMessage = message;\n Dialog.show({\n type: \"error\",\n title: i18n.t(`${NS}:${K.REQUEST_FAILED}`),\n content: message,\n contentStyle: {\n whiteSpace: \"pre-wrap\",\n },\n }).then(() => {\n lastErrorMessage = undefined;\n });\n }\n return;\n}\n\nfunction redirectToLogin() {\n const ssoEnabled = getRuntime().getFeatureFlags()[\"sso-enabled\"];\n const history = getHistory();\n history.push(ssoEnabled ? \"/sso-auth/login\" : \"/auth/login\", {\n from: {\n ...history.location,\n state: undefined,\n },\n });\n}\n"],"mappings":"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"}
@@ -47,10 +47,10 @@ function getRuntime() {
47
47
  class Runtime {
48
48
  async bootstrap() {
49
49
  const [, _bootstrapData] = await Promise.all([(0, _loadCheckLogin.loadCheckLogin)(), (0, _loadBootstrapData.loadBootstrapData)()]);
50
+ bootstrapData = _bootstrapData;
50
51
  // Todo: allow configuration of notification bricks.
51
52
  (0, _Notification.loadNotificationService)("shoelace.show-notification");
52
53
  (0, _Dialog.loadDialogService)("shoelace.show-dialog");
53
- bootstrapData = _bootstrapData;
54
54
  router = new _Router.Router(_bootstrapData.storyboards);
55
55
  await router.bootstrap();
56
56
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Runtime.js","names":["_i18n","require","_moment","_interopRequireDefault","_history","_matchStoryboard","_Router","_loadCheckLogin","_loadBootstrapData","_i18n2","_Notification","_Dialog","runtime","bootstrapData","router","createRuntime","Error","initializeI18n","NS","locales","moment","locale","i18n","language","on","createHistory","Runtime","getRuntime","bootstrap","_bootstrapData","Promise","all","loadCheckLogin","loadBootstrapData","loadNotificationService","loadDialogService","Router","storyboards","getRecentApps","_router$getRecentApps","_router","getCurrentApp","_router2","currentApp","getFeatureFlags","_bootstrapData2","_bootstrapData2$setti","_router3","_router3$getRecentApp","_router3$getRecentApp2","_router3$getRecentApp3","settings","featureFlags","config","getMiscSettings","_bootstrapData3","_bootstrapData3$setti","_router4","_router4$getRecentApp","_router4$getRecentApp2","_router4$getRecentApp3","misc","getBrandSettings","_bootstrapData4","_bootstrapData4$setti","base_title","brand","getLaunchpadSettings","_bootstrapData5","_bootstrapData5$setti","columns","rows","launchpad","getDesktops","_bootstrapData$deskto","_bootstrapData6","desktops","getLaunchpadSiteMap","_bootstrapData$siteSo","_bootstrapData7","siteSort","toggleLaunchpadEffect","open","document","body","classList","toggle","applyPageTitle","pageTitle","baseTitle","title","getNavConfig","_router5","exports","_internalApiSetBootstrapData","data","getBrickPackages","_bootstrapData$brickP","_bootstrapData8","brickPackages","_internalApiGetRenderId","_router6","getRenderId","_internalApiMatchStoryboard","pathname","_bootstrapData$storyb","_bootstrapData9","matchStoryboard","_internalApiGetRuntimeContext","_router7","getRuntimeContext","_internalApiGetStoryboardInBootstrapData","appId","_bootstrapData10","_bootstrapData10$stor","find","storyboard","app","id","_internalApiGetAppInBootstrapData","_internalApiGetStoryb"],"sources":["../../../src/internal/Runtime.ts"],"sourcesContent":["import type {\n RuntimeStoryboard,\n BootstrapSettings,\n FeatureFlags,\n BootstrapData,\n} from \"@next-core/types\";\nimport { i18n, initializeI18n } from \"@next-core/i18n\";\nimport moment from \"moment\";\nimport \"moment/locale/zh-cn.js\";\nimport { createHistory } from \"../history.js\";\nimport { matchStoryboard } from \"./matchStoryboard.js\";\nimport { Router } from \"./Router.js\";\nimport { loadCheckLogin } from \"./loadCheckLogin.js\";\nimport { loadBootstrapData } from \"./loadBootstrapData.js\";\nimport { NS, locales } from \"./i18n.js\";\nimport { loadNotificationService } from \"../Notification.js\";\nimport { loadDialogService } from \"../Dialog.js\";\n\nlet runtime: Runtime;\n\nlet bootstrapData: Partial<BootstrapData> | undefined;\nlet router: Router | undefined;\n\nexport function createRuntime() {\n if (runtime) {\n throw new Error(\"Cannot create multiple runtimes\");\n }\n initializeI18n(NS, locales);\n moment.locale(i18n.language);\n i18n.on(\"languageChanged\", () => {\n moment.locale(i18n.language);\n });\n createHistory();\n runtime = new Runtime();\n return runtime;\n}\n\nexport function getRuntime() {\n return runtime;\n}\n\nexport class Runtime {\n async bootstrap() {\n const [, _bootstrapData] = await Promise.all([\n loadCheckLogin(),\n loadBootstrapData(),\n ]);\n // Todo: allow configuration of notification bricks.\n loadNotificationService(\"shoelace.show-notification\");\n loadDialogService(\"shoelace.show-dialog\");\n bootstrapData = _bootstrapData;\n router = new Router(_bootstrapData.storyboards);\n await router.bootstrap();\n }\n\n getRecentApps() {\n return router?.getRecentApps() ?? {};\n }\n\n getCurrentApp() {\n return router?.getRecentApps().currentApp;\n }\n\n getFeatureFlags(): FeatureFlags {\n return {\n ...bootstrapData?.settings?.featureFlags,\n ...(\n router?.getRecentApps().currentApp?.config\n ?.settings as BootstrapSettings\n )?.featureFlags,\n \"migrate-to-brick-next-v3\": true,\n };\n }\n\n getMiscSettings() {\n return {\n ...bootstrapData?.settings?.misc,\n ...(\n router?.getRecentApps().currentApp?.config\n ?.settings as BootstrapSettings\n )?.misc,\n };\n }\n\n getBrandSettings(): Record<string, string> {\n return {\n base_title: \"DevOps 管理专家\",\n ...(bootstrapData?.settings?.brand as Record<string, string>),\n // ...(kernel.getOriginFaviconHref()\n // ? { favicon: kernel.getOriginFaviconHref() }\n // : {})\n };\n }\n\n getLaunchpadSettings() {\n return {\n columns: 7,\n rows: 4,\n ...bootstrapData?.settings?.launchpad,\n };\n }\n\n getDesktops(): unknown[] {\n return bootstrapData?.desktops ?? [];\n }\n\n getLaunchpadSiteMap(): unknown[] {\n return bootstrapData?.siteSort ?? [];\n }\n\n toggleLaunchpadEffect(open: boolean): void {\n document.body.classList.toggle(\"launchpad-open\", open);\n }\n\n applyPageTitle(pageTitle: string): void {\n const baseTitle = this.getBrandSettings().base_title;\n document.title = pageTitle ? `${pageTitle} - ${baseTitle}` : baseTitle;\n }\n\n getNavConfig() {\n return router?.getNavConfig();\n }\n}\n\nexport function _internalApiSetBootstrapData(data: Partial<BootstrapData>) {\n bootstrapData = data;\n}\n\nexport function getBrickPackages() {\n return bootstrapData?.brickPackages ?? [];\n}\n\nexport function _internalApiGetRenderId(): string | undefined {\n return router?.getRenderId();\n}\n\nexport function _internalApiMatchStoryboard(\n pathname: string\n): RuntimeStoryboard | undefined {\n return matchStoryboard(bootstrapData?.storyboards ?? [], pathname);\n}\n\nexport function _internalApiGetRuntimeContext() {\n return router?.getRuntimeContext();\n}\n\nexport function _internalApiGetStoryboardInBootstrapData(appId: string) {\n return bootstrapData?.storyboards?.find(\n (storyboard) => storyboard.app.id === appId\n );\n}\n\nexport function _internalApiGetAppInBootstrapData(appId: string) {\n return _internalApiGetStoryboardInBootstrapData(appId)?.app;\n}\n"],"mappings":";;;;;;;;;;;;;;;;AAMA,IAAAA,KAAA,GAAAC,OAAA;AACA,IAAAC,OAAA,GAAAC,sBAAA,CAAAF,OAAA;AACAA,OAAA;AACA,IAAAG,QAAA,GAAAH,OAAA;AACA,IAAAI,gBAAA,GAAAJ,OAAA;AACA,IAAAK,OAAA,GAAAL,OAAA;AACA,IAAAM,eAAA,GAAAN,OAAA;AACA,IAAAO,kBAAA,GAAAP,OAAA;AACA,IAAAQ,MAAA,GAAAR,OAAA;AACA,IAAAS,aAAA,GAAAT,OAAA;AACA,IAAAU,OAAA,GAAAV,OAAA;AAEA,IAAIW,OAAgB;AAEpB,IAAIC,aAAiD;AACrD,IAAIC,MAA0B;AAEvB,SAASC,aAAaA,CAAA,EAAG;EAC9B,IAAIH,OAAO,EAAE;IACX,MAAM,IAAII,KAAK,CAAC,iCAAiC,CAAC;EACpD;EACA,IAAAC,oBAAc,EAACC,SAAE,EAAEC,cAAO,CAAC;EAC3BC,eAAM,CAACC,MAAM,CAACC,UAAI,CAACC,QAAQ,CAAC;EAC5BD,UAAI,CAACE,EAAE,CAAC,iBAAiB,EAAE,MAAM;IAC/BJ,eAAM,CAACC,MAAM,CAACC,UAAI,CAACC,QAAQ,CAAC;EAC9B,CAAC,CAAC;EACF,IAAAE,sBAAa,GAAE;EACfb,OAAO,GAAG,IAAIc,OAAO,EAAE;EACvB,OAAOd,OAAO;AAChB;AAEO,SAASe,UAAUA,CAAA,EAAG;EAC3B,OAAOf,OAAO;AAChB;AAEO,MAAMc,OAAO,CAAC;EACnB,MAAME,SAASA,CAAA,EAAG;IAChB,MAAM,GAAGC,cAAc,CAAC,GAAG,MAAMC,OAAO,CAACC,GAAG,CAAC,CAC3C,IAAAC,8BAAc,GAAE,EAChB,IAAAC,oCAAiB,GAAE,CACpB,CAAC;IACF;IACA,IAAAC,qCAAuB,EAAC,4BAA4B,CAAC;IACrD,IAAAC,yBAAiB,EAAC,sBAAsB,CAAC;IACzCtB,aAAa,GAAGgB,cAAc;IAC9Bf,MAAM,GAAG,IAAIsB,cAAM,CAACP,cAAc,CAACQ,WAAW,CAAC;IAC/C,MAAMvB,MAAM,CAACc,SAAS,EAAE;EAC1B;EAEAU,aAAaA,CAAA,EAAG;IAAA,IAAAC,qBAAA,EAAAC,OAAA;IACd,QAAAD,qBAAA,IAAAC,OAAA,GAAO1B,MAAM,cAAA0B,OAAA,uBAANA,OAAA,CAAQF,aAAa,EAAE,cAAAC,qBAAA,cAAAA,qBAAA,GAAI,CAAC,CAAC;EACtC;EAEAE,aAAaA,CAAA,EAAG;IAAA,IAAAC,QAAA;IACd,QAAAA,QAAA,GAAO5B,MAAM,cAAA4B,QAAA,uBAANA,QAAA,CAAQJ,aAAa,EAAE,CAACK,UAAU;EAC3C;EAEAC,eAAeA,CAAA,EAAiB;IAAA,IAAAC,eAAA,EAAAC,qBAAA,EAAAC,QAAA,EAAAC,qBAAA,EAAAC,sBAAA,EAAAC,sBAAA;IAC9B,OAAO;MACL,KAAAL,eAAA,GAAGhC,aAAa,cAAAgC,eAAA,wBAAAC,qBAAA,GAAbD,eAAA,CAAeM,QAAQ,cAAAL,qBAAA,uBAAvBA,qBAAA,CAAyBM,YAAY;MACxC,KAAAL,QAAA,GACEjC,MAAM,cAAAiC,QAAA,wBAAAC,qBAAA,GAAND,QAAA,CAAQT,aAAa,EAAE,CAACK,UAAU,cAAAK,qBAAA,wBAAAC,sBAAA,GAAlCD,qBAAA,CAAoCK,MAAM,cAAAJ,sBAAA,wBAAAC,sBAAA,GAA1CD,sBAAA,CACIE,QAAQ,cAAAD,sBAAA,uBAFXA,sBAAA,CAGAE,YAAY;MACf,0BAA0B,EAAE;IAC9B,CAAC;EACH;EAEAE,eAAeA,CAAA,EAAG;IAAA,IAAAC,eAAA,EAAAC,qBAAA,EAAAC,QAAA,EAAAC,qBAAA,EAAAC,sBAAA,EAAAC,sBAAA;IAChB,OAAO;MACL,KAAAL,eAAA,GAAG1C,aAAa,cAAA0C,eAAA,wBAAAC,qBAAA,GAAbD,eAAA,CAAeJ,QAAQ,cAAAK,qBAAA,uBAAvBA,qBAAA,CAAyBK,IAAI;MAChC,KAAAJ,QAAA,GACE3C,MAAM,cAAA2C,QAAA,wBAAAC,qBAAA,GAAND,QAAA,CAAQnB,aAAa,EAAE,CAACK,UAAU,cAAAe,qBAAA,wBAAAC,sBAAA,GAAlCD,qBAAA,CAAoCL,MAAM,cAAAM,sBAAA,wBAAAC,sBAAA,GAA1CD,sBAAA,CACIR,QAAQ,cAAAS,sBAAA,uBAFXA,sBAAA,CAGAC,IAAI;IACT,CAAC;EACH;EAEAC,gBAAgBA,CAAA,EAA2B;IAAA,IAAAC,eAAA,EAAAC,qBAAA;IACzC,OAAO;MACLC,UAAU,EAAE,aAAa;MACzB,KAAAF,eAAA,GAAIlD,aAAa,cAAAkD,eAAA,wBAAAC,qBAAA,GAAbD,eAAA,CAAeZ,QAAQ,cAAAa,qBAAA,uBAAvBA,qBAAA,CAAyBE,KAAK;MAClC;MACA;MACA;IACF,CAAC;EACH;;EAEAC,oBAAoBA,CAAA,EAAG;IAAA,IAAAC,eAAA,EAAAC,qBAAA;IACrB,OAAO;MACLC,OAAO,EAAE,CAAC;MACVC,IAAI,EAAE,CAAC;MACP,KAAAH,eAAA,GAAGvD,aAAa,cAAAuD,eAAA,wBAAAC,qBAAA,GAAbD,eAAA,CAAejB,QAAQ,cAAAkB,qBAAA,uBAAvBA,qBAAA,CAAyBG,SAAS;IACvC,CAAC;EACH;EAEAC,WAAWA,CAAA,EAAc;IAAA,IAAAC,qBAAA,EAAAC,eAAA;IACvB,QAAAD,qBAAA,IAAAC,eAAA,GAAO9D,aAAa,cAAA8D,eAAA,uBAAbA,eAAA,CAAeC,QAAQ,cAAAF,qBAAA,cAAAA,qBAAA,GAAI,EAAE;EACtC;EAEAG,mBAAmBA,CAAA,EAAc;IAAA,IAAAC,qBAAA,EAAAC,eAAA;IAC/B,QAAAD,qBAAA,IAAAC,eAAA,GAAOlE,aAAa,cAAAkE,eAAA,uBAAbA,eAAA,CAAeC,QAAQ,cAAAF,qBAAA,cAAAA,qBAAA,GAAI,EAAE;EACtC;EAEAG,qBAAqBA,CAACC,IAAa,EAAQ;IACzCC,QAAQ,CAACC,IAAI,CAACC,SAAS,CAACC,MAAM,CAAC,gBAAgB,EAAEJ,IAAI,CAAC;EACxD;EAEAK,cAAcA,CAACC,SAAiB,EAAQ;IACtC,MAAMC,SAAS,GAAG,IAAI,CAAC3B,gBAAgB,EAAE,CAACG,UAAU;IACpDkB,QAAQ,CAACO,KAAK,GAAGF,SAAS,GAAI,GAAEA,SAAU,MAAKC,SAAU,EAAC,GAAGA,SAAS;EACxE;EAEAE,YAAYA,CAAA,EAAG;IAAA,IAAAC,QAAA;IACb,QAAAA,QAAA,GAAO9E,MAAM,cAAA8E,QAAA,uBAANA,QAAA,CAAQD,YAAY,EAAE;EAC/B;AACF;AAACE,OAAA,CAAAnE,OAAA,GAAAA,OAAA;AAEM,SAASoE,4BAA4BA,CAACC,IAA4B,EAAE;EACzElF,aAAa,GAAGkF,IAAI;AACtB;AAEO,SAASC,gBAAgBA,CAAA,EAAG;EAAA,IAAAC,qBAAA,EAAAC,eAAA;EACjC,QAAAD,qBAAA,IAAAC,eAAA,GAAOrF,aAAa,cAAAqF,eAAA,uBAAbA,eAAA,CAAeC,aAAa,cAAAF,qBAAA,cAAAA,qBAAA,GAAI,EAAE;AAC3C;AAEO,SAASG,uBAAuBA,CAAA,EAAuB;EAAA,IAAAC,QAAA;EAC5D,QAAAA,QAAA,GAAOvF,MAAM,cAAAuF,QAAA,uBAANA,QAAA,CAAQC,WAAW,EAAE;AAC9B;AAEO,SAASC,2BAA2BA,CACzCC,QAAgB,EACe;EAAA,IAAAC,qBAAA,EAAAC,eAAA;EAC/B,OAAO,IAAAC,gCAAe,GAAAF,qBAAA,IAAAC,eAAA,GAAC7F,aAAa,cAAA6F,eAAA,uBAAbA,eAAA,CAAerE,WAAW,cAAAoE,qBAAA,cAAAA,qBAAA,GAAI,EAAE,EAAED,QAAQ,CAAC;AACpE;AAEO,SAASI,6BAA6BA,CAAA,EAAG;EAAA,IAAAC,QAAA;EAC9C,QAAAA,QAAA,GAAO/F,MAAM,cAAA+F,QAAA,uBAANA,QAAA,CAAQC,iBAAiB,EAAE;AACpC;AAEO,SAASC,wCAAwCA,CAACC,KAAa,EAAE;EAAA,IAAAC,gBAAA,EAAAC,qBAAA;EACtE,QAAAD,gBAAA,GAAOpG,aAAa,cAAAoG,gBAAA,wBAAAC,qBAAA,GAAbD,gBAAA,CAAe5E,WAAW,cAAA6E,qBAAA,uBAA1BA,qBAAA,CAA4BC,IAAI,CACpCC,UAAU,IAAKA,UAAU,CAACC,GAAG,CAACC,EAAE,KAAKN,KAAK,CAC5C;AACH;AAEO,SAASO,iCAAiCA,CAACP,KAAa,EAAE;EAAA,IAAAQ,qBAAA;EAC/D,QAAAA,qBAAA,GAAOT,wCAAwC,CAACC,KAAK,CAAC,cAAAQ,qBAAA,uBAA/CA,qBAAA,CAAiDH,GAAG;AAC7D"}
1
+ {"version":3,"file":"Runtime.js","names":["_i18n","require","_moment","_interopRequireDefault","_history","_matchStoryboard","_Router","_loadCheckLogin","_loadBootstrapData","_i18n2","_Notification","_Dialog","runtime","bootstrapData","router","createRuntime","Error","initializeI18n","NS","locales","moment","locale","i18n","language","on","createHistory","Runtime","getRuntime","bootstrap","_bootstrapData","Promise","all","loadCheckLogin","loadBootstrapData","loadNotificationService","loadDialogService","Router","storyboards","getRecentApps","_router$getRecentApps","_router","getCurrentApp","_router2","currentApp","getFeatureFlags","_bootstrapData2","_bootstrapData2$setti","_router3","_router3$getRecentApp","_router3$getRecentApp2","_router3$getRecentApp3","settings","featureFlags","config","getMiscSettings","_bootstrapData3","_bootstrapData3$setti","_router4","_router4$getRecentApp","_router4$getRecentApp2","_router4$getRecentApp3","misc","getBrandSettings","_bootstrapData4","_bootstrapData4$setti","base_title","brand","getLaunchpadSettings","_bootstrapData5","_bootstrapData5$setti","columns","rows","launchpad","getDesktops","_bootstrapData$deskto","_bootstrapData6","desktops","getLaunchpadSiteMap","_bootstrapData$siteSo","_bootstrapData7","siteSort","toggleLaunchpadEffect","open","document","body","classList","toggle","applyPageTitle","pageTitle","baseTitle","title","getNavConfig","_router5","exports","_internalApiSetBootstrapData","data","getBrickPackages","_bootstrapData$brickP","_bootstrapData8","brickPackages","_internalApiGetRenderId","_router6","getRenderId","_internalApiMatchStoryboard","pathname","_bootstrapData$storyb","_bootstrapData9","matchStoryboard","_internalApiGetRuntimeContext","_router7","getRuntimeContext","_internalApiGetStoryboardInBootstrapData","appId","_bootstrapData10","_bootstrapData10$stor","find","storyboard","app","id","_internalApiGetAppInBootstrapData","_internalApiGetStoryb"],"sources":["../../../src/internal/Runtime.ts"],"sourcesContent":["import type {\n RuntimeStoryboard,\n BootstrapSettings,\n FeatureFlags,\n BootstrapData,\n} from \"@next-core/types\";\nimport { i18n, initializeI18n } from \"@next-core/i18n\";\nimport moment from \"moment\";\nimport \"moment/locale/zh-cn.js\";\nimport { createHistory } from \"../history.js\";\nimport { matchStoryboard } from \"./matchStoryboard.js\";\nimport { Router } from \"./Router.js\";\nimport { loadCheckLogin } from \"./loadCheckLogin.js\";\nimport { loadBootstrapData } from \"./loadBootstrapData.js\";\nimport { NS, locales } from \"./i18n.js\";\nimport { loadNotificationService } from \"../Notification.js\";\nimport { loadDialogService } from \"../Dialog.js\";\n\nlet runtime: Runtime;\n\nlet bootstrapData: Partial<BootstrapData> | undefined;\nlet router: Router | undefined;\n\nexport function createRuntime() {\n if (runtime) {\n throw new Error(\"Cannot create multiple runtimes\");\n }\n initializeI18n(NS, locales);\n moment.locale(i18n.language);\n i18n.on(\"languageChanged\", () => {\n moment.locale(i18n.language);\n });\n createHistory();\n runtime = new Runtime();\n return runtime;\n}\n\nexport function getRuntime() {\n return runtime;\n}\n\nexport class Runtime {\n async bootstrap() {\n const [, _bootstrapData] = await Promise.all([\n loadCheckLogin(),\n loadBootstrapData(),\n ]);\n bootstrapData = _bootstrapData;\n // Todo: allow configuration of notification bricks.\n loadNotificationService(\"shoelace.show-notification\");\n loadDialogService(\"shoelace.show-dialog\");\n router = new Router(_bootstrapData.storyboards);\n await router.bootstrap();\n }\n\n getRecentApps() {\n return router?.getRecentApps() ?? {};\n }\n\n getCurrentApp() {\n return router?.getRecentApps().currentApp;\n }\n\n getFeatureFlags(): FeatureFlags {\n return {\n ...bootstrapData?.settings?.featureFlags,\n ...(\n router?.getRecentApps().currentApp?.config\n ?.settings as BootstrapSettings\n )?.featureFlags,\n \"migrate-to-brick-next-v3\": true,\n };\n }\n\n getMiscSettings() {\n return {\n ...bootstrapData?.settings?.misc,\n ...(\n router?.getRecentApps().currentApp?.config\n ?.settings as BootstrapSettings\n )?.misc,\n };\n }\n\n getBrandSettings(): Record<string, string> {\n return {\n base_title: \"DevOps 管理专家\",\n ...(bootstrapData?.settings?.brand as Record<string, string>),\n // ...(kernel.getOriginFaviconHref()\n // ? { favicon: kernel.getOriginFaviconHref() }\n // : {})\n };\n }\n\n getLaunchpadSettings() {\n return {\n columns: 7,\n rows: 4,\n ...bootstrapData?.settings?.launchpad,\n };\n }\n\n getDesktops(): unknown[] {\n return bootstrapData?.desktops ?? [];\n }\n\n getLaunchpadSiteMap(): unknown[] {\n return bootstrapData?.siteSort ?? [];\n }\n\n toggleLaunchpadEffect(open: boolean): void {\n document.body.classList.toggle(\"launchpad-open\", open);\n }\n\n applyPageTitle(pageTitle: string): void {\n const baseTitle = this.getBrandSettings().base_title;\n document.title = pageTitle ? `${pageTitle} - ${baseTitle}` : baseTitle;\n }\n\n getNavConfig() {\n return router?.getNavConfig();\n }\n}\n\nexport function _internalApiSetBootstrapData(data: Partial<BootstrapData>) {\n bootstrapData = data;\n}\n\nexport function getBrickPackages() {\n return bootstrapData?.brickPackages ?? [];\n}\n\nexport function _internalApiGetRenderId(): string | undefined {\n return router?.getRenderId();\n}\n\nexport function _internalApiMatchStoryboard(\n pathname: string\n): RuntimeStoryboard | undefined {\n return matchStoryboard(bootstrapData?.storyboards ?? [], pathname);\n}\n\nexport function _internalApiGetRuntimeContext() {\n return router?.getRuntimeContext();\n}\n\nexport function _internalApiGetStoryboardInBootstrapData(appId: string) {\n return bootstrapData?.storyboards?.find(\n (storyboard) => storyboard.app.id === appId\n );\n}\n\nexport function _internalApiGetAppInBootstrapData(appId: string) {\n return _internalApiGetStoryboardInBootstrapData(appId)?.app;\n}\n"],"mappings":"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"}
@@ -8,18 +8,21 @@ let K = /*#__PURE__*/function (K) {
8
8
  K["REQUEST_FAILED"] = "REQUEST_FAILED";
9
9
  K["SOMETHING_WENT_WRONG"] = "SOMETHING_WENT_WRONG";
10
10
  K["LOGIN_TIMEOUT_MESSAGE"] = "LOGIN_TIMEOUT_MESSAGE";
11
+ K["NETWORK_ERROR"] = "NETWORK_ERROR";
11
12
  return K;
12
13
  }({});
13
14
  exports.K = K;
14
15
  const en = {
15
16
  [K.REQUEST_FAILED]: "Request Failed",
16
17
  [K.SOMETHING_WENT_WRONG]: "Something went wrong!",
17
- [K.LOGIN_TIMEOUT_MESSAGE]: "You haven't logged in or your login session has expired. Login right now?"
18
+ [K.LOGIN_TIMEOUT_MESSAGE]: "You haven't logged in or your login session has expired. Login right now?",
19
+ [K.NETWORK_ERROR]: "Network error, please check your network."
18
20
  };
19
21
  const zh = {
20
22
  [K.REQUEST_FAILED]: "请求失败",
21
23
  [K.SOMETHING_WENT_WRONG]: "出现了一些问题!",
22
- [K.LOGIN_TIMEOUT_MESSAGE]: "您还未登录或登录信息已过期,现在重新登录?"
24
+ [K.LOGIN_TIMEOUT_MESSAGE]: "您还未登录或登录信息已过期,现在重新登录?",
25
+ [K.NETWORK_ERROR]: "网络错误,请检查您的网络连接。"
23
26
  };
24
27
  const NS = "core/runtime";
25
28
  exports.NS = NS;
@@ -1 +1 @@
1
- {"version":3,"file":"i18n.js","names":["K","exports","en","REQUEST_FAILED","SOMETHING_WENT_WRONG","LOGIN_TIMEOUT_MESSAGE","zh","NS","locales"],"sources":["../../../src/internal/i18n.ts"],"sourcesContent":["export enum K {\n REQUEST_FAILED = \"REQUEST_FAILED\",\n SOMETHING_WENT_WRONG = \"SOMETHING_WENT_WRONG\",\n LOGIN_TIMEOUT_MESSAGE = \"LOGIN_TIMEOUT_MESSAGE\",\n}\n\nconst en: Locale = {\n [K.REQUEST_FAILED]: \"Request Failed\",\n [K.SOMETHING_WENT_WRONG]: \"Something went wrong!\",\n [K.LOGIN_TIMEOUT_MESSAGE]:\n \"You haven't logged in or your login session has expired. Login right now?\",\n};\n\nconst zh: Locale = {\n [K.REQUEST_FAILED]: \"请求失败\",\n [K.SOMETHING_WENT_WRONG]: \"出现了一些问题!\",\n [K.LOGIN_TIMEOUT_MESSAGE]: \"您还未登录或登录信息已过期,现在重新登录?\",\n};\n\nexport const NS = \"core/runtime\";\n\nexport const locales = { en, zh };\n\ntype Locale = { [key in K]: string };\n"],"mappings":";;;;;;IAAYA,CAAC,0BAADA,CAAC;EAADA,CAAC;EAADA,CAAC;EAADA,CAAC;EAAA,OAADA,CAAC;AAAA;AAAAC,OAAA,CAAAD,CAAA,GAAAA,CAAA;AAMb,MAAME,EAAU,GAAG;EACjB,CAACF,CAAC,CAACG,cAAc,GAAG,gBAAgB;EACpC,CAACH,CAAC,CAACI,oBAAoB,GAAG,uBAAuB;EACjD,CAACJ,CAAC,CAACK,qBAAqB,GACtB;AACJ,CAAC;AAED,MAAMC,EAAU,GAAG;EACjB,CAACN,CAAC,CAACG,cAAc,GAAG,MAAM;EAC1B,CAACH,CAAC,CAACI,oBAAoB,GAAG,UAAU;EACpC,CAACJ,CAAC,CAACK,qBAAqB,GAAG;AAC7B,CAAC;AAEM,MAAME,EAAE,GAAG,cAAc;AAACN,OAAA,CAAAM,EAAA,GAAAA,EAAA;AAE1B,MAAMC,OAAO,GAAG;EAAEN,EAAE;EAAEI;AAAG,CAAC;AAACL,OAAA,CAAAO,OAAA,GAAAA,OAAA"}
1
+ {"version":3,"file":"i18n.js","names":["K","exports","en","REQUEST_FAILED","SOMETHING_WENT_WRONG","LOGIN_TIMEOUT_MESSAGE","NETWORK_ERROR","zh","NS","locales"],"sources":["../../../src/internal/i18n.ts"],"sourcesContent":["export enum K {\n REQUEST_FAILED = \"REQUEST_FAILED\",\n SOMETHING_WENT_WRONG = \"SOMETHING_WENT_WRONG\",\n LOGIN_TIMEOUT_MESSAGE = \"LOGIN_TIMEOUT_MESSAGE\",\n NETWORK_ERROR = \"NETWORK_ERROR\",\n}\n\nconst en: Locale = {\n [K.REQUEST_FAILED]: \"Request Failed\",\n [K.SOMETHING_WENT_WRONG]: \"Something went wrong!\",\n [K.LOGIN_TIMEOUT_MESSAGE]:\n \"You haven't logged in or your login session has expired. Login right now?\",\n [K.NETWORK_ERROR]: \"Network error, please check your network.\",\n};\n\nconst zh: Locale = {\n [K.REQUEST_FAILED]: \"请求失败\",\n [K.SOMETHING_WENT_WRONG]: \"出现了一些问题!\",\n [K.LOGIN_TIMEOUT_MESSAGE]: \"您还未登录或登录信息已过期,现在重新登录?\",\n [K.NETWORK_ERROR]: \"网络错误,请检查您的网络连接。\",\n};\n\nexport const NS = \"core/runtime\";\n\nexport const locales = { en, zh };\n\ntype Locale = { [key in K]: string };\n"],"mappings":";;;;;;IAAYA,CAAC,0BAADA,CAAC;EAADA,CAAC;EAADA,CAAC;EAADA,CAAC;EAADA,CAAC;EAAA,OAADA,CAAC;AAAA;AAAAC,OAAA,CAAAD,CAAA,GAAAA,CAAA;AAOb,MAAME,EAAU,GAAG;EACjB,CAACF,CAAC,CAACG,cAAc,GAAG,gBAAgB;EACpC,CAACH,CAAC,CAACI,oBAAoB,GAAG,uBAAuB;EACjD,CAACJ,CAAC,CAACK,qBAAqB,GACtB,2EAA2E;EAC7E,CAACL,CAAC,CAACM,aAAa,GAAG;AACrB,CAAC;AAED,MAAMC,EAAU,GAAG;EACjB,CAACP,CAAC,CAACG,cAAc,GAAG,MAAM;EAC1B,CAACH,CAAC,CAACI,oBAAoB,GAAG,UAAU;EACpC,CAACJ,CAAC,CAACK,qBAAqB,GAAG,uBAAuB;EAClD,CAACL,CAAC,CAACM,aAAa,GAAG;AACrB,CAAC;AAEM,MAAME,EAAE,GAAG,cAAc;AAACP,OAAA,CAAAO,EAAA,GAAAA,EAAA;AAE1B,MAAMC,OAAO,GAAG;EAAEP,EAAE;EAAEK;AAAG,CAAC;AAACN,OAAA,CAAAQ,OAAA,GAAAA,OAAA"}
@@ -6,6 +6,7 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.isOutsideApp = isOutsideApp;
7
7
  exports.matchStoryboard = matchStoryboard;
8
8
  var _lodash = require("lodash");
9
+ var _Runtime = require("./Runtime.js");
9
10
  function matchStoryboard(storyboards, pathname) {
10
11
  // Put apps with longer homepage before shorter ones.
11
12
  // E.g., `/legacy/tool` will match first before `/legacy`.
@@ -27,14 +28,18 @@ function matchStoryboard(storyboards, pathname) {
27
28
  /**
28
29
  * We say it's an outside app when at least one of the below conditions are true:
29
30
  * - target app is not found.
31
+ * - target app is not the current app.
30
32
  * - current app is non-standalone mode and target app is standalone mode.
31
33
  *
32
34
  * Note: when current app is standalone mode, other apps will not be found.
33
35
  */
34
36
  function isOutsideApp(storyboard) {
37
+ var _getRuntime$getCurren;
35
38
  if (process.env.NODE_ENV === "test") {
36
39
  return false;
37
40
  }
38
- return !storyboard || !window.STANDALONE_MICRO_APPS && storyboard.app.standaloneMode;
41
+ return !storyboard ||
42
+ // Sometimes `storyboard.app.standaloneMode` is incorrect.
43
+ ((_getRuntime$getCurren = (0, _Runtime.getRuntime)().getCurrentApp()) === null || _getRuntime$getCurren === void 0 ? void 0 : _getRuntime$getCurren.id) !== storyboard.app.id && !window.STANDALONE_MICRO_APPS && storyboard.app.standaloneMode;
39
44
  }
40
45
  //# sourceMappingURL=matchStoryboard.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"matchStoryboard.js","names":["_lodash","require","matchStoryboard","storyboards","pathname","sortedStoryboards","orderBy","storyboard","_storyboard$app$homep","_storyboard$app","_storyboard$app$homep2","app","homepage","length","replace","startsWith","isOutsideApp","process","env","NODE_ENV","window","STANDALONE_MICRO_APPS","standaloneMode"],"sources":["../../../src/internal/matchStoryboard.ts"],"sourcesContent":["import type { RuntimeStoryboard } from \"@next-core/types\";\nimport { orderBy } from \"lodash\";\n\nexport function matchStoryboard(\n storyboards: RuntimeStoryboard[],\n pathname: string\n): RuntimeStoryboard | undefined {\n // Put apps with longer homepage before shorter ones.\n // E.g., `/legacy/tool` will match first before `/legacy`.\n // This enables two apps with relationship of parent-child of homepage.\n const sortedStoryboards = orderBy(\n storyboards,\n (storyboard) => storyboard.app?.homepage?.length ?? 0,\n \"desc\"\n );\n for (const storyboard of sortedStoryboards) {\n const homepage = storyboard.app.homepage;\n if (typeof homepage === \"string\" && homepage[0] === \"/\") {\n if (\n homepage === \"/\"\n ? pathname === homepage\n : `${pathname.replace(/\\/+$/, \"\")}/`.startsWith(\n `${homepage.replace(/\\/+$/, \"\")}/`\n )\n ) {\n return storyboard;\n }\n }\n }\n}\n\n/**\n * We say it's an outside app when at least one of the below conditions are true:\n * - target app is not found.\n * - current app is non-standalone mode and target app is standalone mode.\n *\n * Note: when current app is standalone mode, other apps will not be found.\n */\nexport function isOutsideApp(\n storyboard: RuntimeStoryboard | undefined\n): boolean | undefined {\n if (process.env.NODE_ENV === \"test\") {\n return false;\n }\n return (\n !storyboard ||\n (!window.STANDALONE_MICRO_APPS && storyboard.app.standaloneMode)\n );\n}\n"],"mappings":";;;;;;;AACA,IAAAA,OAAA,GAAAC,OAAA;AAEO,SAASC,eAAeA,CAC7BC,WAAgC,EAChCC,QAAgB,EACe;EAC/B;EACA;EACA;EACA,MAAMC,iBAAiB,GAAG,IAAAC,eAAO,EAC/BH,WAAW,EACVI,UAAU;IAAA,IAAAC,qBAAA,EAAAC,eAAA,EAAAC,sBAAA;IAAA,QAAAF,qBAAA,IAAAC,eAAA,GAAKF,UAAU,CAACI,GAAG,cAAAF,eAAA,wBAAAC,sBAAA,GAAdD,eAAA,CAAgBG,QAAQ,cAAAF,sBAAA,uBAAxBA,sBAAA,CAA0BG,MAAM,cAAAL,qBAAA,cAAAA,qBAAA,GAAI,CAAC;EAAA,GACrD,MAAM,CACP;EACD,KAAK,MAAMD,UAAU,IAAIF,iBAAiB,EAAE;IAC1C,MAAMO,QAAQ,GAAGL,UAAU,CAACI,GAAG,CAACC,QAAQ;IACxC,IAAI,OAAOA,QAAQ,KAAK,QAAQ,IAAIA,QAAQ,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;MACvD,IACEA,QAAQ,KAAK,GAAG,GACZR,QAAQ,KAAKQ,QAAQ,GACpB,GAAER,QAAQ,CAACU,OAAO,CAAC,MAAM,EAAE,EAAE,CAAE,GAAE,CAACC,UAAU,CAC1C,GAAEH,QAAQ,CAACE,OAAO,CAAC,MAAM,EAAE,EAAE,CAAE,GAAE,CACnC,EACL;QACA,OAAOP,UAAU;MACnB;IACF;EACF;AACF;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASS,YAAYA,CAC1BT,UAAyC,EACpB;EACrB,IAAIU,OAAO,CAACC,GAAG,CAACC,QAAQ,KAAK,MAAM,EAAE;IACnC,OAAO,KAAK;EACd;EACA,OACE,CAACZ,UAAU,IACV,CAACa,MAAM,CAACC,qBAAqB,IAAId,UAAU,CAACI,GAAG,CAACW,cAAe;AAEpE"}
1
+ {"version":3,"file":"matchStoryboard.js","names":["_lodash","require","_Runtime","matchStoryboard","storyboards","pathname","sortedStoryboards","orderBy","storyboard","_storyboard$app$homep","_storyboard$app","_storyboard$app$homep2","app","homepage","length","replace","startsWith","isOutsideApp","_getRuntime$getCurren","process","env","NODE_ENV","getRuntime","getCurrentApp","id","window","STANDALONE_MICRO_APPS","standaloneMode"],"sources":["../../../src/internal/matchStoryboard.ts"],"sourcesContent":["import type { RuntimeStoryboard } from \"@next-core/types\";\nimport { orderBy } from \"lodash\";\nimport { getRuntime } from \"./Runtime.js\";\n\nexport function matchStoryboard(\n storyboards: RuntimeStoryboard[],\n pathname: string\n): RuntimeStoryboard | undefined {\n // Put apps with longer homepage before shorter ones.\n // E.g., `/legacy/tool` will match first before `/legacy`.\n // This enables two apps with relationship of parent-child of homepage.\n const sortedStoryboards = orderBy(\n storyboards,\n (storyboard) => storyboard.app?.homepage?.length ?? 0,\n \"desc\"\n );\n for (const storyboard of sortedStoryboards) {\n const homepage = storyboard.app.homepage;\n if (typeof homepage === \"string\" && homepage[0] === \"/\") {\n if (\n homepage === \"/\"\n ? pathname === homepage\n : `${pathname.replace(/\\/+$/, \"\")}/`.startsWith(\n `${homepage.replace(/\\/+$/, \"\")}/`\n )\n ) {\n return storyboard;\n }\n }\n }\n}\n\n/**\n * We say it's an outside app when at least one of the below conditions are true:\n * - target app is not found.\n * - target app is not the current app.\n * - current app is non-standalone mode and target app is standalone mode.\n *\n * Note: when current app is standalone mode, other apps will not be found.\n */\nexport function isOutsideApp(\n storyboard: RuntimeStoryboard | undefined\n): boolean | undefined {\n if (process.env.NODE_ENV === \"test\") {\n return false;\n }\n return (\n !storyboard ||\n // Sometimes `storyboard.app.standaloneMode` is incorrect.\n (getRuntime().getCurrentApp()?.id !== storyboard.app.id &&\n !window.STANDALONE_MICRO_APPS &&\n storyboard.app.standaloneMode)\n );\n}\n"],"mappings":";;;;;;;AACA,IAAAA,OAAA,GAAAC,OAAA;AACA,IAAAC,QAAA,GAAAD,OAAA;AAEO,SAASE,eAAeA,CAC7BC,WAAgC,EAChCC,QAAgB,EACe;EAC/B;EACA;EACA;EACA,MAAMC,iBAAiB,GAAG,IAAAC,eAAO,EAC/BH,WAAW,EACVI,UAAU;IAAA,IAAAC,qBAAA,EAAAC,eAAA,EAAAC,sBAAA;IAAA,QAAAF,qBAAA,IAAAC,eAAA,GAAKF,UAAU,CAACI,GAAG,cAAAF,eAAA,wBAAAC,sBAAA,GAAdD,eAAA,CAAgBG,QAAQ,cAAAF,sBAAA,uBAAxBA,sBAAA,CAA0BG,MAAM,cAAAL,qBAAA,cAAAA,qBAAA,GAAI,CAAC;EAAA,GACrD,MAAM,CACP;EACD,KAAK,MAAMD,UAAU,IAAIF,iBAAiB,EAAE;IAC1C,MAAMO,QAAQ,GAAGL,UAAU,CAACI,GAAG,CAACC,QAAQ;IACxC,IAAI,OAAOA,QAAQ,KAAK,QAAQ,IAAIA,QAAQ,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;MACvD,IACEA,QAAQ,KAAK,GAAG,GACZR,QAAQ,KAAKQ,QAAQ,GACpB,GAAER,QAAQ,CAACU,OAAO,CAAC,MAAM,EAAE,EAAE,CAAE,GAAE,CAACC,UAAU,CAC1C,GAAEH,QAAQ,CAACE,OAAO,CAAC,MAAM,EAAE,EAAE,CAAE,GAAE,CACnC,EACL;QACA,OAAOP,UAAU;MACnB;IACF;EACF;AACF;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASS,YAAYA,CAC1BT,UAAyC,EACpB;EAAA,IAAAU,qBAAA;EACrB,IAAIC,OAAO,CAACC,GAAG,CAACC,QAAQ,KAAK,MAAM,EAAE;IACnC,OAAO,KAAK;EACd;EACA,OACE,CAACb,UAAU;EACX;EACC,EAAAU,qBAAA,OAAAI,mBAAU,GAAE,CAACC,aAAa,EAAE,cAAAL,qBAAA,uBAA5BA,qBAAA,CAA8BM,EAAE,MAAKhB,UAAU,CAACI,GAAG,CAACY,EAAE,IACrD,CAACC,MAAM,CAACC,qBAAqB,IAC7BlB,UAAU,CAACI,GAAG,CAACe,cAAe;AAEpC"}
@@ -2,27 +2,23 @@ import * as __secret_internals from "./internal/secret_internals.js";
2
2
  var brick;
3
3
  function show(options) {
4
4
  if (brick) {
5
- brick.resolve(options);
5
+ return brick.resolve(options);
6
6
  } else {
7
7
  if (options.type === "confirm") {
8
8
  if (confirm(options.content)) {
9
- setTimeout(() => {
10
- var _options$onOk;
11
- (_options$onOk = options.onOk) === null || _options$onOk === void 0 ? void 0 : _options$onOk.call(options);
12
- }, 1);
9
+ return new Promise(resolve => setTimeout(() => {
10
+ resolve();
11
+ }, 1));
13
12
  } else {
14
- setTimeout(() => {
15
- var _options$onCancel;
16
- (_options$onCancel = options.onCancel) === null || _options$onCancel === void 0 ? void 0 : _options$onCancel.call(options);
17
- }, 1);
13
+ return new Promise((resolve, reject) => setTimeout(() => {
14
+ reject();
15
+ }, 1));
18
16
  }
19
17
  } else {
20
18
  alert(options.content);
21
- if (options.onOk) {
22
- setTimeout(() => {
23
- options.onOk();
24
- }, 1000);
25
- }
19
+ return new Promise(resolve => setTimeout(() => {
20
+ resolve();
21
+ }, 1000));
26
22
  }
27
23
  }
28
24
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Dialog.js","names":["__secret_internals","brick","show","options","resolve","type","confirm","content","setTimeout","_options$onOk","onOk","call","_options$onCancel","onCancel","alert","loadDialogService","tagName","loadBricks","then","document","createElement","error","console","Dialog","Object","freeze"],"sources":["../../src/Dialog.ts"],"sourcesContent":["import * as __secret_internals from \"./internal/secret_internals.js\";\n\nlet brick: {\n resolve(options: DialogOptions): void;\n};\n\nfunction show(options: DialogOptions) {\n if (brick) {\n brick.resolve(options);\n } else {\n if (options.type === \"confirm\") {\n if (confirm(options.content)) {\n setTimeout(() => {\n options.onOk?.();\n }, 1);\n } else {\n setTimeout(() => {\n options.onCancel?.();\n }, 1);\n }\n } else {\n alert(options.content);\n if (options.onOk) {\n setTimeout(() => {\n options.onOk!();\n }, 1000);\n }\n }\n }\n}\n\nexport function loadDialogService(tagName: string) {\n __secret_internals.loadBricks([tagName]).then(\n () => {\n brick = document.createElement(tagName) as any;\n },\n (error: unknown) => {\n // eslint-disable-next-line no-console\n console.error(\"Load dialog service failed:\", error);\n }\n );\n}\n\nexport interface DialogOptions {\n type?: \"success\" | \"error\" | \"warn\" | \"info\" | \"confirm\";\n title?: string | null;\n content: string;\n whiteSpace?: string;\n onOk?: () => void;\n onCancel?: () => void;\n}\n\nexport const Dialog = Object.freeze({\n show,\n});\n"],"mappings":"AAAA,OAAO,KAAKA,kBAAkB,MAAM,gCAAgC;AAEpE,IAAIC,KAEH;AAED,SAASC,IAAIA,CAACC,OAAsB,EAAE;EACpC,IAAIF,KAAK,EAAE;IACTA,KAAK,CAACG,OAAO,CAACD,OAAO,CAAC;EACxB,CAAC,MAAM;IACL,IAAIA,OAAO,CAACE,IAAI,KAAK,SAAS,EAAE;MAC9B,IAAIC,OAAO,CAACH,OAAO,CAACI,OAAO,CAAC,EAAE;QAC5BC,UAAU,CAAC,MAAM;UAAA,IAAAC,aAAA;UACf,CAAAA,aAAA,GAAAN,OAAO,CAACO,IAAI,cAAAD,aAAA,uBAAZA,aAAA,CAAAE,IAAA,CAAAR,OAAO,CAAS;QAClB,CAAC,EAAE,CAAC,CAAC;MACP,CAAC,MAAM;QACLK,UAAU,CAAC,MAAM;UAAA,IAAAI,iBAAA;UACf,CAAAA,iBAAA,GAAAT,OAAO,CAACU,QAAQ,cAAAD,iBAAA,uBAAhBA,iBAAA,CAAAD,IAAA,CAAAR,OAAO,CAAa;QACtB,CAAC,EAAE,CAAC,CAAC;MACP;IACF,CAAC,MAAM;MACLW,KAAK,CAACX,OAAO,CAACI,OAAO,CAAC;MACtB,IAAIJ,OAAO,CAACO,IAAI,EAAE;QAChBF,UAAU,CAAC,MAAM;UACfL,OAAO,CAACO,IAAI,EAAG;QACjB,CAAC,EAAE,IAAI,CAAC;MACV;IACF;EACF;AACF;AAEA,OAAO,SAASK,iBAAiBA,CAACC,OAAe,EAAE;EACjDhB,kBAAkB,CAACiB,UAAU,CAAC,CAACD,OAAO,CAAC,CAAC,CAACE,IAAI,CAC3C,MAAM;IACJjB,KAAK,GAAGkB,QAAQ,CAACC,aAAa,CAACJ,OAAO,CAAQ;EAChD,CAAC,EACAK,KAAc,IAAK;IAClB;IACAC,OAAO,CAACD,KAAK,CAAC,6BAA6B,EAAEA,KAAK,CAAC;EACrD,CAAC,CACF;AACH;AAWA,OAAO,IAAME,MAAM,GAAGC,MAAM,CAACC,MAAM,CAAC;EAClCvB;AACF,CAAC,CAAC"}
1
+ {"version":3,"file":"Dialog.js","names":["__secret_internals","brick","show","options","resolve","type","confirm","content","Promise","setTimeout","reject","alert","loadDialogService","tagName","loadBricks","then","document","createElement","error","console","Dialog","Object","freeze"],"sources":["../../src/Dialog.ts"],"sourcesContent":["import * as __secret_internals from \"./internal/secret_internals.js\";\n\nlet brick: {\n resolve(options: DialogOptions): Promise<void>;\n};\n\nfunction show(options: DialogOptions): Promise<void> {\n if (brick) {\n return brick.resolve(options);\n } else {\n if (options.type === \"confirm\") {\n if (confirm(options.content)) {\n return new Promise((resolve) =>\n setTimeout(() => {\n resolve();\n }, 1)\n );\n } else {\n return new Promise((resolve, reject) =>\n setTimeout(() => {\n reject();\n }, 1)\n );\n }\n } else {\n alert(options.content);\n return new Promise((resolve) =>\n setTimeout(() => {\n resolve();\n }, 1000)\n );\n }\n }\n}\n\nexport function loadDialogService(tagName: string) {\n __secret_internals.loadBricks([tagName]).then(\n () => {\n brick = document.createElement(tagName) as any;\n },\n (error: unknown) => {\n // eslint-disable-next-line no-console\n console.error(\"Load dialog service failed:\", error);\n }\n );\n}\n\nexport interface DialogOptions {\n type?: \"success\" | \"error\" | \"warn\" | \"info\" | \"confirm\";\n title?: string | null;\n content: string;\n contentStyle?: object;\n}\n\nexport const Dialog = Object.freeze({\n show,\n});\n"],"mappings":"AAAA,OAAO,KAAKA,kBAAkB,MAAM,gCAAgC;AAEpE,IAAIC,KAEH;AAED,SAASC,IAAIA,CAACC,OAAsB,EAAiB;EACnD,IAAIF,KAAK,EAAE;IACT,OAAOA,KAAK,CAACG,OAAO,CAACD,OAAO,CAAC;EAC/B,CAAC,MAAM;IACL,IAAIA,OAAO,CAACE,IAAI,KAAK,SAAS,EAAE;MAC9B,IAAIC,OAAO,CAACH,OAAO,CAACI,OAAO,CAAC,EAAE;QAC5B,OAAO,IAAIC,OAAO,CAAEJ,OAAO,IACzBK,UAAU,CAAC,MAAM;UACfL,OAAO,EAAE;QACX,CAAC,EAAE,CAAC,CAAC,CACN;MACH,CAAC,MAAM;QACL,OAAO,IAAII,OAAO,CAAC,CAACJ,OAAO,EAAEM,MAAM,KACjCD,UAAU,CAAC,MAAM;UACfC,MAAM,EAAE;QACV,CAAC,EAAE,CAAC,CAAC,CACN;MACH;IACF,CAAC,MAAM;MACLC,KAAK,CAACR,OAAO,CAACI,OAAO,CAAC;MACtB,OAAO,IAAIC,OAAO,CAAEJ,OAAO,IACzBK,UAAU,CAAC,MAAM;QACfL,OAAO,EAAE;MACX,CAAC,EAAE,IAAI,CAAC,CACT;IACH;EACF;AACF;AAEA,OAAO,SAASQ,iBAAiBA,CAACC,OAAe,EAAE;EACjDb,kBAAkB,CAACc,UAAU,CAAC,CAACD,OAAO,CAAC,CAAC,CAACE,IAAI,CAC3C,MAAM;IACJd,KAAK,GAAGe,QAAQ,CAACC,aAAa,CAACJ,OAAO,CAAQ;EAChD,CAAC,EACAK,KAAc,IAAK;IAClB;IACAC,OAAO,CAACD,KAAK,CAAC,6BAA6B,EAAEA,KAAK,CAAC;EACrD,CAAC,CACF;AACH;AASA,OAAO,IAAME,MAAM,GAAGC,MAAM,CAACC,MAAM,CAAC;EAClCpB;AACF,CAAC,CAAC"}
@@ -22,8 +22,7 @@ export function httpErrorToString(error) {
22
22
  return error.target.src;
23
23
  }
24
24
  if (error instanceof HttpFetchError) {
25
- // return i18next.t(`${NS_BRICK_KIT}:${K.NETWORK_ERROR}`);
26
- return "网络错误,请检查您的网络连接。";
25
+ return i18n.t("".concat(NS, ":").concat(K.NETWORK_ERROR));
27
26
  }
28
27
  if (error instanceof HttpResponseError) {
29
28
  if (error.responseJson) {
@@ -64,14 +63,12 @@ export function handleHttpError(error) {
64
63
  unauthenticatedConfirming = true;
65
64
  Dialog.show({
66
65
  type: "confirm",
67
- content: i18n.t("".concat(NS, ":").concat(K.LOGIN_TIMEOUT_MESSAGE)),
68
- onOk() {
69
- redirectToLogin();
70
- unauthenticatedConfirming = false;
71
- },
72
- onCancel() {
73
- unauthenticatedConfirming = false;
74
- }
66
+ content: i18n.t("".concat(NS, ":").concat(K.LOGIN_TIMEOUT_MESSAGE))
67
+ }).then(() => {
68
+ redirectToLogin();
69
+ unauthenticatedConfirming = false;
70
+ }, () => {
71
+ unauthenticatedConfirming = false;
75
72
  });
76
73
  return;
77
74
  }
@@ -85,10 +82,11 @@ export function handleHttpError(error) {
85
82
  type: "error",
86
83
  title: i18n.t("".concat(NS, ":").concat(K.REQUEST_FAILED)),
87
84
  content: message,
88
- whiteSpace: "pre-wrap",
89
- onOk() {
90
- lastErrorMessage = undefined;
85
+ contentStyle: {
86
+ whiteSpace: "pre-wrap"
91
87
  }
88
+ }).then(() => {
89
+ lastErrorMessage = undefined;
92
90
  });
93
91
  }
94
92
  return;
@@ -1 +1 @@
1
- {"version":3,"file":"handleHttpError.js","names":["HttpAbortError","HttpFetchError","HttpResponseError","i18n","getRuntime","getHistory","K","NS","Dialog","httpErrorToString","error","Event","target","HTMLScriptElement","src","responseJson","msg","toString","isUnauthenticatedError","response","status","code","unauthenticatedConfirming","lastErrorMessage","handleHttpError","window","NO_AUTH_GUARD","show","type","content","t","concat","LOGIN_TIMEOUT_MESSAGE","onOk","redirectToLogin","onCancel","console","message","title","REQUEST_FAILED","whiteSpace","undefined","ssoEnabled","getFeatureFlags","history","push","from","_objectSpread","location","state"],"sources":["../../src/handleHttpError.ts"],"sourcesContent":["import {\n HttpAbortError,\n HttpFetchError,\n HttpResponseError,\n} from \"@next-core/http\";\nimport { i18n } from \"@next-core/i18n\";\nimport { getRuntime } from \"./internal/Runtime.js\";\nimport { getHistory } from \"./history.js\";\nimport { K, NS } from \"./internal/i18n.js\";\nimport { Dialog } from \"./Dialog.js\";\n\n/**\n * 将 http 请求错误转换为可读的字符串。\n *\n * @remarks\n *\n * 将依次尝试读取返回的 JSON 格式数据的字符串类型的 `error` 和 `msg` 字段,如果没有找到则返回 `error.toString()` 的结果。\n *\n * @param error - 错误对象。\n *\n * @returns 转换为字符串的错误信息。\n */\nexport function httpErrorToString(error: unknown): string {\n if (error instanceof Event && error.target instanceof HTMLScriptElement) {\n return error.target.src;\n }\n if (error instanceof HttpFetchError) {\n // return i18next.t(`${NS_BRICK_KIT}:${K.NETWORK_ERROR}`);\n return \"网络错误,请检查您的网络连接。\";\n }\n if (error instanceof HttpResponseError) {\n if (error.responseJson) {\n if (typeof error.responseJson.error === \"string\") {\n return error.responseJson.error;\n } else if (typeof error.responseJson.msg === \"string\") {\n return error.responseJson.msg;\n }\n }\n }\n if (error == null) {\n return \"Unknown error\";\n }\n return error.toString();\n}\n\nexport function isUnauthenticatedError(error: unknown): boolean {\n return (\n error instanceof HttpResponseError &&\n error.response.status === 401 &&\n !!error.responseJson &&\n error.responseJson.code === 100003\n );\n}\n\nlet unauthenticatedConfirming = false;\n\nlet lastErrorMessage: string | undefined;\n\n/**\n * 处理 http 请求错误(使用 AntDesign 模态框弹出错误信息)。\n *\n * @param error - 错误对象。\n */\nexport function handleHttpError(error: unknown) {\n // Do nothing if aborted http requests\n if (error instanceof HttpAbortError) {\n return;\n }\n\n // Redirect to login page if not logged in.\n if (isUnauthenticatedError(error) && !window.NO_AUTH_GUARD) {\n if (unauthenticatedConfirming) {\n return;\n }\n unauthenticatedConfirming = true;\n Dialog.show({\n type: \"confirm\",\n content: i18n.t(`${NS}:${K.LOGIN_TIMEOUT_MESSAGE}`),\n onOk() {\n redirectToLogin();\n unauthenticatedConfirming = false;\n },\n onCancel() {\n unauthenticatedConfirming = false;\n },\n });\n return;\n }\n\n // eslint-disable-next-line no-console\n console.error(error);\n\n const message = httpErrorToString(error);\n if (message !== lastErrorMessage) {\n lastErrorMessage = message;\n Dialog.show({\n type: \"error\",\n title: i18n.t(`${NS}:${K.REQUEST_FAILED}`),\n content: message,\n whiteSpace: \"pre-wrap\",\n onOk() {\n lastErrorMessage = undefined;\n },\n });\n }\n return;\n}\n\nfunction redirectToLogin() {\n const ssoEnabled = getRuntime().getFeatureFlags()[\"sso-enabled\"];\n const history = getHistory();\n history.push(ssoEnabled ? \"/sso-auth/login\" : \"/auth/login\", {\n from: {\n ...history.location,\n state: undefined,\n },\n });\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"handleHttpError.js","names":["HttpAbortError","HttpFetchError","HttpResponseError","i18n","getRuntime","getHistory","K","NS","Dialog","httpErrorToString","error","Event","target","HTMLScriptElement","src","t","concat","NETWORK_ERROR","responseJson","msg","toString","isUnauthenticatedError","response","status","code","unauthenticatedConfirming","lastErrorMessage","handleHttpError","window","NO_AUTH_GUARD","show","type","content","LOGIN_TIMEOUT_MESSAGE","then","redirectToLogin","console","message","title","REQUEST_FAILED","contentStyle","whiteSpace","undefined","ssoEnabled","getFeatureFlags","history","push","from","_objectSpread","location","state"],"sources":["../../src/handleHttpError.ts"],"sourcesContent":["import {\n HttpAbortError,\n HttpFetchError,\n HttpResponseError,\n} from \"@next-core/http\";\nimport { i18n } from \"@next-core/i18n\";\nimport { getRuntime } from \"./internal/Runtime.js\";\nimport { getHistory } from \"./history.js\";\nimport { K, NS } from \"./internal/i18n.js\";\nimport { Dialog } from \"./Dialog.js\";\n\n/**\n * 将 http 请求错误转换为可读的字符串。\n *\n * @remarks\n *\n * 将依次尝试读取返回的 JSON 格式数据的字符串类型的 `error` 和 `msg` 字段,如果没有找到则返回 `error.toString()` 的结果。\n *\n * @param error - 错误对象。\n *\n * @returns 转换为字符串的错误信息。\n */\nexport function httpErrorToString(error: unknown): string {\n if (error instanceof Event && error.target instanceof HTMLScriptElement) {\n return error.target.src;\n }\n if (error instanceof HttpFetchError) {\n return i18n.t(`${NS}:${K.NETWORK_ERROR}`);\n }\n if (error instanceof HttpResponseError) {\n if (error.responseJson) {\n if (typeof error.responseJson.error === \"string\") {\n return error.responseJson.error;\n } else if (typeof error.responseJson.msg === \"string\") {\n return error.responseJson.msg;\n }\n }\n }\n if (error == null) {\n return \"Unknown error\";\n }\n return error.toString();\n}\n\nexport function isUnauthenticatedError(error: unknown): boolean {\n return (\n error instanceof HttpResponseError &&\n error.response.status === 401 &&\n !!error.responseJson &&\n error.responseJson.code === 100003\n );\n}\n\nlet unauthenticatedConfirming = false;\n\nlet lastErrorMessage: string | undefined;\n\n/**\n * 处理 http 请求错误(使用 AntDesign 模态框弹出错误信息)。\n *\n * @param error - 错误对象。\n */\nexport function handleHttpError(error: unknown) {\n // Do nothing if aborted http requests\n if (error instanceof HttpAbortError) {\n return;\n }\n\n // Redirect to login page if not logged in.\n if (isUnauthenticatedError(error) && !window.NO_AUTH_GUARD) {\n if (unauthenticatedConfirming) {\n return;\n }\n unauthenticatedConfirming = true;\n Dialog.show({\n type: \"confirm\",\n content: i18n.t(`${NS}:${K.LOGIN_TIMEOUT_MESSAGE}`),\n }).then(\n () => {\n redirectToLogin();\n unauthenticatedConfirming = false;\n },\n () => {\n unauthenticatedConfirming = false;\n }\n );\n return;\n }\n\n // eslint-disable-next-line no-console\n console.error(error);\n\n const message = httpErrorToString(error);\n if (message !== lastErrorMessage) {\n lastErrorMessage = message;\n Dialog.show({\n type: \"error\",\n title: i18n.t(`${NS}:${K.REQUEST_FAILED}`),\n content: message,\n contentStyle: {\n whiteSpace: \"pre-wrap\",\n },\n }).then(() => {\n lastErrorMessage = undefined;\n });\n }\n return;\n}\n\nfunction redirectToLogin() {\n const ssoEnabled = getRuntime().getFeatureFlags()[\"sso-enabled\"];\n const history = getHistory();\n history.push(ssoEnabled ? \"/sso-auth/login\" : \"/auth/login\", {\n from: {\n ...history.location,\n state: undefined,\n },\n });\n}\n"],"mappings":"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"}
@@ -34,10 +34,10 @@ export class Runtime {
34
34
  bootstrap() {
35
35
  return _asyncToGenerator(function* () {
36
36
  var [, _bootstrapData] = yield Promise.all([loadCheckLogin(), loadBootstrapData()]);
37
+ bootstrapData = _bootstrapData;
37
38
  // Todo: allow configuration of notification bricks.
38
39
  loadNotificationService("shoelace.show-notification");
39
40
  loadDialogService("shoelace.show-dialog");
40
- bootstrapData = _bootstrapData;
41
41
  router = new Router(_bootstrapData.storyboards);
42
42
  yield router.bootstrap();
43
43
  })();
@@ -1 +1 @@
1
- {"version":3,"file":"Runtime.js","names":["i18n","initializeI18n","moment","createHistory","matchStoryboard","Router","loadCheckLogin","loadBootstrapData","NS","locales","loadNotificationService","loadDialogService","runtime","bootstrapData","router","createRuntime","Error","locale","language","on","Runtime","getRuntime","bootstrap","_asyncToGenerator","_bootstrapData","Promise","all","storyboards","getRecentApps","_router$getRecentApps","_router","getCurrentApp","_router2","currentApp","getFeatureFlags","_bootstrapData2","_bootstrapData2$setti","_router3","_router3$getRecentApp","_router3$getRecentApp2","_router3$getRecentApp3","_objectSpread","settings","featureFlags","config","getMiscSettings","_bootstrapData3","_bootstrapData3$setti","_router4","_router4$getRecentApp","_router4$getRecentApp2","_router4$getRecentApp3","misc","getBrandSettings","_bootstrapData4","_bootstrapData4$setti","base_title","brand","getLaunchpadSettings","_bootstrapData5","_bootstrapData5$setti","columns","rows","launchpad","getDesktops","_bootstrapData$deskto","_bootstrapData6","desktops","getLaunchpadSiteMap","_bootstrapData$siteSo","_bootstrapData7","siteSort","toggleLaunchpadEffect","open","document","body","classList","toggle","applyPageTitle","pageTitle","baseTitle","title","concat","getNavConfig","_router5","_internalApiSetBootstrapData","data","getBrickPackages","_bootstrapData$brickP","_bootstrapData8","brickPackages","_internalApiGetRenderId","_router6","getRenderId","_internalApiMatchStoryboard","pathname","_bootstrapData$storyb","_bootstrapData9","_internalApiGetRuntimeContext","_router7","getRuntimeContext","_internalApiGetStoryboardInBootstrapData","appId","_bootstrapData10","_bootstrapData10$stor","find","storyboard","app","id","_internalApiGetAppInBootstrapData","_internalApiGetStoryb"],"sources":["../../../src/internal/Runtime.ts"],"sourcesContent":["import type {\n RuntimeStoryboard,\n BootstrapSettings,\n FeatureFlags,\n BootstrapData,\n} from \"@next-core/types\";\nimport { i18n, initializeI18n } from \"@next-core/i18n\";\nimport moment from \"moment\";\nimport \"moment/locale/zh-cn.js\";\nimport { createHistory } from \"../history.js\";\nimport { matchStoryboard } from \"./matchStoryboard.js\";\nimport { Router } from \"./Router.js\";\nimport { loadCheckLogin } from \"./loadCheckLogin.js\";\nimport { loadBootstrapData } from \"./loadBootstrapData.js\";\nimport { NS, locales } from \"./i18n.js\";\nimport { loadNotificationService } from \"../Notification.js\";\nimport { loadDialogService } from \"../Dialog.js\";\n\nlet runtime: Runtime;\n\nlet bootstrapData: Partial<BootstrapData> | undefined;\nlet router: Router | undefined;\n\nexport function createRuntime() {\n if (runtime) {\n throw new Error(\"Cannot create multiple runtimes\");\n }\n initializeI18n(NS, locales);\n moment.locale(i18n.language);\n i18n.on(\"languageChanged\", () => {\n moment.locale(i18n.language);\n });\n createHistory();\n runtime = new Runtime();\n return runtime;\n}\n\nexport function getRuntime() {\n return runtime;\n}\n\nexport class Runtime {\n async bootstrap() {\n const [, _bootstrapData] = await Promise.all([\n loadCheckLogin(),\n loadBootstrapData(),\n ]);\n // Todo: allow configuration of notification bricks.\n loadNotificationService(\"shoelace.show-notification\");\n loadDialogService(\"shoelace.show-dialog\");\n bootstrapData = _bootstrapData;\n router = new Router(_bootstrapData.storyboards);\n await router.bootstrap();\n }\n\n getRecentApps() {\n return router?.getRecentApps() ?? {};\n }\n\n getCurrentApp() {\n return router?.getRecentApps().currentApp;\n }\n\n getFeatureFlags(): FeatureFlags {\n return {\n ...bootstrapData?.settings?.featureFlags,\n ...(\n router?.getRecentApps().currentApp?.config\n ?.settings as BootstrapSettings\n )?.featureFlags,\n \"migrate-to-brick-next-v3\": true,\n };\n }\n\n getMiscSettings() {\n return {\n ...bootstrapData?.settings?.misc,\n ...(\n router?.getRecentApps().currentApp?.config\n ?.settings as BootstrapSettings\n )?.misc,\n };\n }\n\n getBrandSettings(): Record<string, string> {\n return {\n base_title: \"DevOps 管理专家\",\n ...(bootstrapData?.settings?.brand as Record<string, string>),\n // ...(kernel.getOriginFaviconHref()\n // ? { favicon: kernel.getOriginFaviconHref() }\n // : {})\n };\n }\n\n getLaunchpadSettings() {\n return {\n columns: 7,\n rows: 4,\n ...bootstrapData?.settings?.launchpad,\n };\n }\n\n getDesktops(): unknown[] {\n return bootstrapData?.desktops ?? [];\n }\n\n getLaunchpadSiteMap(): unknown[] {\n return bootstrapData?.siteSort ?? [];\n }\n\n toggleLaunchpadEffect(open: boolean): void {\n document.body.classList.toggle(\"launchpad-open\", open);\n }\n\n applyPageTitle(pageTitle: string): void {\n const baseTitle = this.getBrandSettings().base_title;\n document.title = pageTitle ? `${pageTitle} - ${baseTitle}` : baseTitle;\n }\n\n getNavConfig() {\n return router?.getNavConfig();\n }\n}\n\nexport function _internalApiSetBootstrapData(data: Partial<BootstrapData>) {\n bootstrapData = data;\n}\n\nexport function getBrickPackages() {\n return bootstrapData?.brickPackages ?? [];\n}\n\nexport function _internalApiGetRenderId(): string | undefined {\n return router?.getRenderId();\n}\n\nexport function _internalApiMatchStoryboard(\n pathname: string\n): RuntimeStoryboard | undefined {\n return matchStoryboard(bootstrapData?.storyboards ?? [], pathname);\n}\n\nexport function _internalApiGetRuntimeContext() {\n return router?.getRuntimeContext();\n}\n\nexport function _internalApiGetStoryboardInBootstrapData(appId: string) {\n return bootstrapData?.storyboards?.find(\n (storyboard) => storyboard.app.id === appId\n );\n}\n\nexport function _internalApiGetAppInBootstrapData(appId: string) {\n return _internalApiGetStoryboardInBootstrapData(appId)?.app;\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"Runtime.js","names":["i18n","initializeI18n","moment","createHistory","matchStoryboard","Router","loadCheckLogin","loadBootstrapData","NS","locales","loadNotificationService","loadDialogService","runtime","bootstrapData","router","createRuntime","Error","locale","language","on","Runtime","getRuntime","bootstrap","_asyncToGenerator","_bootstrapData","Promise","all","storyboards","getRecentApps","_router$getRecentApps","_router","getCurrentApp","_router2","currentApp","getFeatureFlags","_bootstrapData2","_bootstrapData2$setti","_router3","_router3$getRecentApp","_router3$getRecentApp2","_router3$getRecentApp3","_objectSpread","settings","featureFlags","config","getMiscSettings","_bootstrapData3","_bootstrapData3$setti","_router4","_router4$getRecentApp","_router4$getRecentApp2","_router4$getRecentApp3","misc","getBrandSettings","_bootstrapData4","_bootstrapData4$setti","base_title","brand","getLaunchpadSettings","_bootstrapData5","_bootstrapData5$setti","columns","rows","launchpad","getDesktops","_bootstrapData$deskto","_bootstrapData6","desktops","getLaunchpadSiteMap","_bootstrapData$siteSo","_bootstrapData7","siteSort","toggleLaunchpadEffect","open","document","body","classList","toggle","applyPageTitle","pageTitle","baseTitle","title","concat","getNavConfig","_router5","_internalApiSetBootstrapData","data","getBrickPackages","_bootstrapData$brickP","_bootstrapData8","brickPackages","_internalApiGetRenderId","_router6","getRenderId","_internalApiMatchStoryboard","pathname","_bootstrapData$storyb","_bootstrapData9","_internalApiGetRuntimeContext","_router7","getRuntimeContext","_internalApiGetStoryboardInBootstrapData","appId","_bootstrapData10","_bootstrapData10$stor","find","storyboard","app","id","_internalApiGetAppInBootstrapData","_internalApiGetStoryb"],"sources":["../../../src/internal/Runtime.ts"],"sourcesContent":["import type {\n RuntimeStoryboard,\n BootstrapSettings,\n FeatureFlags,\n BootstrapData,\n} from \"@next-core/types\";\nimport { i18n, initializeI18n } from \"@next-core/i18n\";\nimport moment from \"moment\";\nimport \"moment/locale/zh-cn.js\";\nimport { createHistory } from \"../history.js\";\nimport { matchStoryboard } from \"./matchStoryboard.js\";\nimport { Router } from \"./Router.js\";\nimport { loadCheckLogin } from \"./loadCheckLogin.js\";\nimport { loadBootstrapData } from \"./loadBootstrapData.js\";\nimport { NS, locales } from \"./i18n.js\";\nimport { loadNotificationService } from \"../Notification.js\";\nimport { loadDialogService } from \"../Dialog.js\";\n\nlet runtime: Runtime;\n\nlet bootstrapData: Partial<BootstrapData> | undefined;\nlet router: Router | undefined;\n\nexport function createRuntime() {\n if (runtime) {\n throw new Error(\"Cannot create multiple runtimes\");\n }\n initializeI18n(NS, locales);\n moment.locale(i18n.language);\n i18n.on(\"languageChanged\", () => {\n moment.locale(i18n.language);\n });\n createHistory();\n runtime = new Runtime();\n return runtime;\n}\n\nexport function getRuntime() {\n return runtime;\n}\n\nexport class Runtime {\n async bootstrap() {\n const [, _bootstrapData] = await Promise.all([\n loadCheckLogin(),\n loadBootstrapData(),\n ]);\n bootstrapData = _bootstrapData;\n // Todo: allow configuration of notification bricks.\n loadNotificationService(\"shoelace.show-notification\");\n loadDialogService(\"shoelace.show-dialog\");\n router = new Router(_bootstrapData.storyboards);\n await router.bootstrap();\n }\n\n getRecentApps() {\n return router?.getRecentApps() ?? {};\n }\n\n getCurrentApp() {\n return router?.getRecentApps().currentApp;\n }\n\n getFeatureFlags(): FeatureFlags {\n return {\n ...bootstrapData?.settings?.featureFlags,\n ...(\n router?.getRecentApps().currentApp?.config\n ?.settings as BootstrapSettings\n )?.featureFlags,\n \"migrate-to-brick-next-v3\": true,\n };\n }\n\n getMiscSettings() {\n return {\n ...bootstrapData?.settings?.misc,\n ...(\n router?.getRecentApps().currentApp?.config\n ?.settings as BootstrapSettings\n )?.misc,\n };\n }\n\n getBrandSettings(): Record<string, string> {\n return {\n base_title: \"DevOps 管理专家\",\n ...(bootstrapData?.settings?.brand as Record<string, string>),\n // ...(kernel.getOriginFaviconHref()\n // ? { favicon: kernel.getOriginFaviconHref() }\n // : {})\n };\n }\n\n getLaunchpadSettings() {\n return {\n columns: 7,\n rows: 4,\n ...bootstrapData?.settings?.launchpad,\n };\n }\n\n getDesktops(): unknown[] {\n return bootstrapData?.desktops ?? [];\n }\n\n getLaunchpadSiteMap(): unknown[] {\n return bootstrapData?.siteSort ?? [];\n }\n\n toggleLaunchpadEffect(open: boolean): void {\n document.body.classList.toggle(\"launchpad-open\", open);\n }\n\n applyPageTitle(pageTitle: string): void {\n const baseTitle = this.getBrandSettings().base_title;\n document.title = pageTitle ? `${pageTitle} - ${baseTitle}` : baseTitle;\n }\n\n getNavConfig() {\n return router?.getNavConfig();\n }\n}\n\nexport function _internalApiSetBootstrapData(data: Partial<BootstrapData>) {\n bootstrapData = data;\n}\n\nexport function getBrickPackages() {\n return bootstrapData?.brickPackages ?? [];\n}\n\nexport function _internalApiGetRenderId(): string | undefined {\n return router?.getRenderId();\n}\n\nexport function _internalApiMatchStoryboard(\n pathname: string\n): RuntimeStoryboard | undefined {\n return matchStoryboard(bootstrapData?.storyboards ?? [], pathname);\n}\n\nexport function _internalApiGetRuntimeContext() {\n return router?.getRuntimeContext();\n}\n\nexport function _internalApiGetStoryboardInBootstrapData(appId: string) {\n return bootstrapData?.storyboards?.find(\n (storyboard) => storyboard.app.id === appId\n );\n}\n\nexport function _internalApiGetAppInBootstrapData(appId: string) {\n return _internalApiGetStoryboardInBootstrapData(appId)?.app;\n}\n"],"mappings":"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"}
@@ -2,17 +2,20 @@ export var K = /*#__PURE__*/function (K) {
2
2
  K["REQUEST_FAILED"] = "REQUEST_FAILED";
3
3
  K["SOMETHING_WENT_WRONG"] = "SOMETHING_WENT_WRONG";
4
4
  K["LOGIN_TIMEOUT_MESSAGE"] = "LOGIN_TIMEOUT_MESSAGE";
5
+ K["NETWORK_ERROR"] = "NETWORK_ERROR";
5
6
  return K;
6
7
  }({});
7
8
  var en = {
8
9
  [K.REQUEST_FAILED]: "Request Failed",
9
10
  [K.SOMETHING_WENT_WRONG]: "Something went wrong!",
10
- [K.LOGIN_TIMEOUT_MESSAGE]: "You haven't logged in or your login session has expired. Login right now?"
11
+ [K.LOGIN_TIMEOUT_MESSAGE]: "You haven't logged in or your login session has expired. Login right now?",
12
+ [K.NETWORK_ERROR]: "Network error, please check your network."
11
13
  };
12
14
  var zh = {
13
15
  [K.REQUEST_FAILED]: "请求失败",
14
16
  [K.SOMETHING_WENT_WRONG]: "出现了一些问题!",
15
- [K.LOGIN_TIMEOUT_MESSAGE]: "您还未登录或登录信息已过期,现在重新登录?"
17
+ [K.LOGIN_TIMEOUT_MESSAGE]: "您还未登录或登录信息已过期,现在重新登录?",
18
+ [K.NETWORK_ERROR]: "网络错误,请检查您的网络连接。"
16
19
  };
17
20
  export var NS = "core/runtime";
18
21
  export var locales = {
@@ -1 +1 @@
1
- {"version":3,"file":"i18n.js","names":["K","en","REQUEST_FAILED","SOMETHING_WENT_WRONG","LOGIN_TIMEOUT_MESSAGE","zh","NS","locales"],"sources":["../../../src/internal/i18n.ts"],"sourcesContent":["export enum K {\n REQUEST_FAILED = \"REQUEST_FAILED\",\n SOMETHING_WENT_WRONG = \"SOMETHING_WENT_WRONG\",\n LOGIN_TIMEOUT_MESSAGE = \"LOGIN_TIMEOUT_MESSAGE\",\n}\n\nconst en: Locale = {\n [K.REQUEST_FAILED]: \"Request Failed\",\n [K.SOMETHING_WENT_WRONG]: \"Something went wrong!\",\n [K.LOGIN_TIMEOUT_MESSAGE]:\n \"You haven't logged in or your login session has expired. Login right now?\",\n};\n\nconst zh: Locale = {\n [K.REQUEST_FAILED]: \"请求失败\",\n [K.SOMETHING_WENT_WRONG]: \"出现了一些问题!\",\n [K.LOGIN_TIMEOUT_MESSAGE]: \"您还未登录或登录信息已过期,现在重新登录?\",\n};\n\nexport const NS = \"core/runtime\";\n\nexport const locales = { en, zh };\n\ntype Locale = { [key in K]: string };\n"],"mappings":"AAAA,WAAYA,CAAC,0BAADA,CAAC;EAADA,CAAC;EAADA,CAAC;EAADA,CAAC;EAAA,OAADA,CAAC;AAAA;AAMb,IAAMC,EAAU,GAAG;EACjB,CAACD,CAAC,CAACE,cAAc,GAAG,gBAAgB;EACpC,CAACF,CAAC,CAACG,oBAAoB,GAAG,uBAAuB;EACjD,CAACH,CAAC,CAACI,qBAAqB,GACtB;AACJ,CAAC;AAED,IAAMC,EAAU,GAAG;EACjB,CAACL,CAAC,CAACE,cAAc,GAAG,MAAM;EAC1B,CAACF,CAAC,CAACG,oBAAoB,GAAG,UAAU;EACpC,CAACH,CAAC,CAACI,qBAAqB,GAAG;AAC7B,CAAC;AAED,OAAO,IAAME,EAAE,GAAG,cAAc;AAEhC,OAAO,IAAMC,OAAO,GAAG;EAAEN,EAAE;EAAEI;AAAG,CAAC"}
1
+ {"version":3,"file":"i18n.js","names":["K","en","REQUEST_FAILED","SOMETHING_WENT_WRONG","LOGIN_TIMEOUT_MESSAGE","NETWORK_ERROR","zh","NS","locales"],"sources":["../../../src/internal/i18n.ts"],"sourcesContent":["export enum K {\n REQUEST_FAILED = \"REQUEST_FAILED\",\n SOMETHING_WENT_WRONG = \"SOMETHING_WENT_WRONG\",\n LOGIN_TIMEOUT_MESSAGE = \"LOGIN_TIMEOUT_MESSAGE\",\n NETWORK_ERROR = \"NETWORK_ERROR\",\n}\n\nconst en: Locale = {\n [K.REQUEST_FAILED]: \"Request Failed\",\n [K.SOMETHING_WENT_WRONG]: \"Something went wrong!\",\n [K.LOGIN_TIMEOUT_MESSAGE]:\n \"You haven't logged in or your login session has expired. Login right now?\",\n [K.NETWORK_ERROR]: \"Network error, please check your network.\",\n};\n\nconst zh: Locale = {\n [K.REQUEST_FAILED]: \"请求失败\",\n [K.SOMETHING_WENT_WRONG]: \"出现了一些问题!\",\n [K.LOGIN_TIMEOUT_MESSAGE]: \"您还未登录或登录信息已过期,现在重新登录?\",\n [K.NETWORK_ERROR]: \"网络错误,请检查您的网络连接。\",\n};\n\nexport const NS = \"core/runtime\";\n\nexport const locales = { en, zh };\n\ntype Locale = { [key in K]: string };\n"],"mappings":"AAAA,WAAYA,CAAC,0BAADA,CAAC;EAADA,CAAC;EAADA,CAAC;EAADA,CAAC;EAADA,CAAC;EAAA,OAADA,CAAC;AAAA;AAOb,IAAMC,EAAU,GAAG;EACjB,CAACD,CAAC,CAACE,cAAc,GAAG,gBAAgB;EACpC,CAACF,CAAC,CAACG,oBAAoB,GAAG,uBAAuB;EACjD,CAACH,CAAC,CAACI,qBAAqB,GACtB,2EAA2E;EAC7E,CAACJ,CAAC,CAACK,aAAa,GAAG;AACrB,CAAC;AAED,IAAMC,EAAU,GAAG;EACjB,CAACN,CAAC,CAACE,cAAc,GAAG,MAAM;EAC1B,CAACF,CAAC,CAACG,oBAAoB,GAAG,UAAU;EACpC,CAACH,CAAC,CAACI,qBAAqB,GAAG,uBAAuB;EAClD,CAACJ,CAAC,CAACK,aAAa,GAAG;AACrB,CAAC;AAED,OAAO,IAAME,EAAE,GAAG,cAAc;AAEhC,OAAO,IAAMC,OAAO,GAAG;EAAEP,EAAE;EAAEK;AAAG,CAAC"}
@@ -1,4 +1,5 @@
1
1
  import { orderBy } from "lodash";
2
+ import { getRuntime } from "./Runtime.js";
2
3
  export function matchStoryboard(storyboards, pathname) {
3
4
  // Put apps with longer homepage before shorter ones.
4
5
  // E.g., `/legacy/tool` will match first before `/legacy`.
@@ -20,14 +21,18 @@ export function matchStoryboard(storyboards, pathname) {
20
21
  /**
21
22
  * We say it's an outside app when at least one of the below conditions are true:
22
23
  * - target app is not found.
24
+ * - target app is not the current app.
23
25
  * - current app is non-standalone mode and target app is standalone mode.
24
26
  *
25
27
  * Note: when current app is standalone mode, other apps will not be found.
26
28
  */
27
29
  export function isOutsideApp(storyboard) {
30
+ var _getRuntime$getCurren;
28
31
  if (process.env.NODE_ENV === "test") {
29
32
  return false;
30
33
  }
31
- return !storyboard || !window.STANDALONE_MICRO_APPS && storyboard.app.standaloneMode;
34
+ return !storyboard ||
35
+ // Sometimes `storyboard.app.standaloneMode` is incorrect.
36
+ ((_getRuntime$getCurren = getRuntime().getCurrentApp()) === null || _getRuntime$getCurren === void 0 ? void 0 : _getRuntime$getCurren.id) !== storyboard.app.id && !window.STANDALONE_MICRO_APPS && storyboard.app.standaloneMode;
32
37
  }
33
38
  //# sourceMappingURL=matchStoryboard.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"matchStoryboard.js","names":["orderBy","matchStoryboard","storyboards","pathname","sortedStoryboards","storyboard","_storyboard$app$homep","_storyboard$app","_storyboard$app$homep2","app","homepage","length","concat","replace","startsWith","isOutsideApp","process","env","NODE_ENV","window","STANDALONE_MICRO_APPS","standaloneMode"],"sources":["../../../src/internal/matchStoryboard.ts"],"sourcesContent":["import type { RuntimeStoryboard } from \"@next-core/types\";\nimport { orderBy } from \"lodash\";\n\nexport function matchStoryboard(\n storyboards: RuntimeStoryboard[],\n pathname: string\n): RuntimeStoryboard | undefined {\n // Put apps with longer homepage before shorter ones.\n // E.g., `/legacy/tool` will match first before `/legacy`.\n // This enables two apps with relationship of parent-child of homepage.\n const sortedStoryboards = orderBy(\n storyboards,\n (storyboard) => storyboard.app?.homepage?.length ?? 0,\n \"desc\"\n );\n for (const storyboard of sortedStoryboards) {\n const homepage = storyboard.app.homepage;\n if (typeof homepage === \"string\" && homepage[0] === \"/\") {\n if (\n homepage === \"/\"\n ? pathname === homepage\n : `${pathname.replace(/\\/+$/, \"\")}/`.startsWith(\n `${homepage.replace(/\\/+$/, \"\")}/`\n )\n ) {\n return storyboard;\n }\n }\n }\n}\n\n/**\n * We say it's an outside app when at least one of the below conditions are true:\n * - target app is not found.\n * - current app is non-standalone mode and target app is standalone mode.\n *\n * Note: when current app is standalone mode, other apps will not be found.\n */\nexport function isOutsideApp(\n storyboard: RuntimeStoryboard | undefined\n): boolean | undefined {\n if (process.env.NODE_ENV === \"test\") {\n return false;\n }\n return (\n !storyboard ||\n (!window.STANDALONE_MICRO_APPS && storyboard.app.standaloneMode)\n );\n}\n"],"mappings":"AACA,SAASA,OAAO,QAAQ,QAAQ;AAEhC,OAAO,SAASC,eAAeA,CAC7BC,WAAgC,EAChCC,QAAgB,EACe;EAC/B;EACA;EACA;EACA,IAAMC,iBAAiB,GAAGJ,OAAO,CAC/BE,WAAW,EACVG,UAAU;IAAA,IAAAC,qBAAA,EAAAC,eAAA,EAAAC,sBAAA;IAAA,QAAAF,qBAAA,IAAAC,eAAA,GAAKF,UAAU,CAACI,GAAG,cAAAF,eAAA,wBAAAC,sBAAA,GAAdD,eAAA,CAAgBG,QAAQ,cAAAF,sBAAA,uBAAxBA,sBAAA,CAA0BG,MAAM,cAAAL,qBAAA,cAAAA,qBAAA,GAAI,CAAC;EAAA,GACrD,MAAM,CACP;EACD,KAAK,IAAMD,UAAU,IAAID,iBAAiB,EAAE;IAC1C,IAAMM,QAAQ,GAAGL,UAAU,CAACI,GAAG,CAACC,QAAQ;IACxC,IAAI,OAAOA,QAAQ,KAAK,QAAQ,IAAIA,QAAQ,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;MACvD,IACEA,QAAQ,KAAK,GAAG,GACZP,QAAQ,KAAKO,QAAQ,GACrB,GAAAE,MAAA,CAAGT,QAAQ,CAACU,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,OAAIC,UAAU,IAAAF,MAAA,CACxCF,QAAQ,CAACG,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,OAChC,EACL;QACA,OAAOR,UAAU;MACnB;IACF;EACF;AACF;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASU,YAAYA,CAC1BV,UAAyC,EACpB;EACrB,IAAIW,OAAO,CAACC,GAAG,CAACC,QAAQ,KAAK,MAAM,EAAE;IACnC,OAAO,KAAK;EACd;EACA,OACE,CAACb,UAAU,IACV,CAACc,MAAM,CAACC,qBAAqB,IAAIf,UAAU,CAACI,GAAG,CAACY,cAAe;AAEpE"}
1
+ {"version":3,"file":"matchStoryboard.js","names":["orderBy","getRuntime","matchStoryboard","storyboards","pathname","sortedStoryboards","storyboard","_storyboard$app$homep","_storyboard$app","_storyboard$app$homep2","app","homepage","length","concat","replace","startsWith","isOutsideApp","_getRuntime$getCurren","process","env","NODE_ENV","getCurrentApp","id","window","STANDALONE_MICRO_APPS","standaloneMode"],"sources":["../../../src/internal/matchStoryboard.ts"],"sourcesContent":["import type { RuntimeStoryboard } from \"@next-core/types\";\nimport { orderBy } from \"lodash\";\nimport { getRuntime } from \"./Runtime.js\";\n\nexport function matchStoryboard(\n storyboards: RuntimeStoryboard[],\n pathname: string\n): RuntimeStoryboard | undefined {\n // Put apps with longer homepage before shorter ones.\n // E.g., `/legacy/tool` will match first before `/legacy`.\n // This enables two apps with relationship of parent-child of homepage.\n const sortedStoryboards = orderBy(\n storyboards,\n (storyboard) => storyboard.app?.homepage?.length ?? 0,\n \"desc\"\n );\n for (const storyboard of sortedStoryboards) {\n const homepage = storyboard.app.homepage;\n if (typeof homepage === \"string\" && homepage[0] === \"/\") {\n if (\n homepage === \"/\"\n ? pathname === homepage\n : `${pathname.replace(/\\/+$/, \"\")}/`.startsWith(\n `${homepage.replace(/\\/+$/, \"\")}/`\n )\n ) {\n return storyboard;\n }\n }\n }\n}\n\n/**\n * We say it's an outside app when at least one of the below conditions are true:\n * - target app is not found.\n * - target app is not the current app.\n * - current app is non-standalone mode and target app is standalone mode.\n *\n * Note: when current app is standalone mode, other apps will not be found.\n */\nexport function isOutsideApp(\n storyboard: RuntimeStoryboard | undefined\n): boolean | undefined {\n if (process.env.NODE_ENV === \"test\") {\n return false;\n }\n return (\n !storyboard ||\n // Sometimes `storyboard.app.standaloneMode` is incorrect.\n (getRuntime().getCurrentApp()?.id !== storyboard.app.id &&\n !window.STANDALONE_MICRO_APPS &&\n storyboard.app.standaloneMode)\n );\n}\n"],"mappings":"AACA,SAASA,OAAO,QAAQ,QAAQ;AAChC,SAASC,UAAU,QAAQ,cAAc;AAEzC,OAAO,SAASC,eAAeA,CAC7BC,WAAgC,EAChCC,QAAgB,EACe;EAC/B;EACA;EACA;EACA,IAAMC,iBAAiB,GAAGL,OAAO,CAC/BG,WAAW,EACVG,UAAU;IAAA,IAAAC,qBAAA,EAAAC,eAAA,EAAAC,sBAAA;IAAA,QAAAF,qBAAA,IAAAC,eAAA,GAAKF,UAAU,CAACI,GAAG,cAAAF,eAAA,wBAAAC,sBAAA,GAAdD,eAAA,CAAgBG,QAAQ,cAAAF,sBAAA,uBAAxBA,sBAAA,CAA0BG,MAAM,cAAAL,qBAAA,cAAAA,qBAAA,GAAI,CAAC;EAAA,GACrD,MAAM,CACP;EACD,KAAK,IAAMD,UAAU,IAAID,iBAAiB,EAAE;IAC1C,IAAMM,QAAQ,GAAGL,UAAU,CAACI,GAAG,CAACC,QAAQ;IACxC,IAAI,OAAOA,QAAQ,KAAK,QAAQ,IAAIA,QAAQ,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;MACvD,IACEA,QAAQ,KAAK,GAAG,GACZP,QAAQ,KAAKO,QAAQ,GACrB,GAAAE,MAAA,CAAGT,QAAQ,CAACU,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,OAAIC,UAAU,IAAAF,MAAA,CACxCF,QAAQ,CAACG,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,OAChC,EACL;QACA,OAAOR,UAAU;MACnB;IACF;EACF;AACF;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASU,YAAYA,CAC1BV,UAAyC,EACpB;EAAA,IAAAW,qBAAA;EACrB,IAAIC,OAAO,CAACC,GAAG,CAACC,QAAQ,KAAK,MAAM,EAAE;IACnC,OAAO,KAAK;EACd;EACA,OACE,CAACd,UAAU;EACX;EACC,EAAAW,qBAAA,GAAAhB,UAAU,EAAE,CAACoB,aAAa,EAAE,cAAAJ,qBAAA,uBAA5BA,qBAAA,CAA8BK,EAAE,MAAKhB,UAAU,CAACI,GAAG,CAACY,EAAE,IACrD,CAACC,MAAM,CAACC,qBAAqB,IAC7BlB,UAAU,CAACI,GAAG,CAACe,cAAe;AAEpC"}
@@ -1,12 +1,10 @@
1
- declare function show(options: DialogOptions): void;
1
+ declare function show(options: DialogOptions): Promise<void>;
2
2
  export declare function loadDialogService(tagName: string): void;
3
3
  export interface DialogOptions {
4
4
  type?: "success" | "error" | "warn" | "info" | "confirm";
5
5
  title?: string | null;
6
6
  content: string;
7
- whiteSpace?: string;
8
- onOk?: () => void;
9
- onCancel?: () => void;
7
+ contentStyle?: object;
10
8
  }
11
9
  export declare const Dialog: Readonly<{
12
10
  show: typeof show;
@@ -1,7 +1,8 @@
1
1
  export declare enum K {
2
2
  REQUEST_FAILED = "REQUEST_FAILED",
3
3
  SOMETHING_WENT_WRONG = "SOMETHING_WENT_WRONG",
4
- LOGIN_TIMEOUT_MESSAGE = "LOGIN_TIMEOUT_MESSAGE"
4
+ LOGIN_TIMEOUT_MESSAGE = "LOGIN_TIMEOUT_MESSAGE",
5
+ NETWORK_ERROR = "NETWORK_ERROR"
5
6
  }
6
7
  export declare const NS = "core/runtime";
7
8
  export declare const locales: {
@@ -3,6 +3,7 @@ export declare function matchStoryboard(storyboards: RuntimeStoryboard[], pathna
3
3
  /**
4
4
  * We say it's an outside app when at least one of the below conditions are true:
5
5
  * - target app is not found.
6
+ * - target app is not the current app.
6
7
  * - current app is non-standalone mode and target app is standalone mode.
7
8
  *
8
9
  * Note: when current app is standalone mode, other apps will not be found.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@next-core/runtime",
3
- "version": "1.3.1",
3
+ "version": "1.3.3",
4
4
  "homepage": "https://github.com/easyops-cn/next-core/tree/master/packages/runtime",
5
5
  "license": "GPL-3.0",
6
6
  "repository": {
@@ -67,5 +67,5 @@
67
67
  "@next-core/build-next-libs": "^1.0.3",
68
68
  "@next-core/test-next": "^1.0.4"
69
69
  },
70
- "gitHead": "21be51ee07f9a5a80364e5e0eb84beebc52c410b"
70
+ "gitHead": "98d58f39f3dd6e137a638951cf6da0483454c12a"
71
71
  }