@next-core/runtime 1.2.1 → 1.3.0
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.
- package/dist/cjs/Dialog.js +49 -0
- package/dist/cjs/Dialog.js.map +1 -0
- package/dist/cjs/Notification.js +30 -0
- package/dist/cjs/Notification.js.map +1 -0
- package/dist/cjs/StoryboardFunctionRegistry.js +14 -0
- package/dist/cjs/StoryboardFunctionRegistry.js.map +1 -1
- package/dist/cjs/handleHttpError.js +33 -18
- package/dist/cjs/handleHttpError.js.map +1 -1
- package/dist/cjs/index.js +19 -3
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/internal/CustomTemplates/utils.js +1 -1
- package/dist/cjs/internal/CustomTemplates/utils.js.map +1 -1
- package/dist/cjs/internal/Renderer.js +2 -3
- package/dist/cjs/internal/Renderer.js.map +1 -1
- package/dist/cjs/internal/Runtime.js +21 -11
- package/dist/cjs/internal/Runtime.js.map +1 -1
- package/dist/cjs/internal/bindListeners.js +7 -2
- package/dist/cjs/internal/bindListeners.js.map +1 -1
- package/dist/cjs/internal/compute/checkIf.js +4 -0
- package/dist/cjs/internal/compute/checkIf.js.map +1 -1
- package/dist/cjs/internal/compute/getNextStateOfUseBrick.js +4 -4
- package/dist/cjs/internal/compute/getNextStateOfUseBrick.js.map +1 -1
- package/dist/cjs/internal/enums.js +4 -4
- package/dist/cjs/internal/enums.js.map +1 -1
- package/dist/cjs/internal/historyExtended.js +21 -0
- package/dist/cjs/internal/historyExtended.js.map +1 -1
- package/dist/cjs/internal/i18n.js +31 -0
- package/dist/cjs/internal/i18n.js.map +1 -0
- package/dist/cjs/internal/mediaQuery.js +4 -4
- package/dist/cjs/internal/mediaQuery.js.map +1 -1
- package/dist/cjs/internal/secret_internals.js +5 -0
- package/dist/cjs/internal/secret_internals.js.map +1 -1
- package/dist/esm/CustomTemplates.js.map +1 -1
- package/dist/esm/Dialog.js +40 -0
- package/dist/esm/Dialog.js.map +1 -0
- package/dist/esm/Notification.js +21 -0
- package/dist/esm/Notification.js.map +1 -0
- package/dist/esm/StoryboardFunctionRegistry.js +12 -0
- package/dist/esm/StoryboardFunctionRegistry.js.map +1 -1
- package/dist/esm/handleHttpError.js +32 -17
- package/dist/esm/handleHttpError.js.map +1 -1
- package/dist/esm/index.js +4 -2
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/internal/CustomTemplates/bindTemplateProxy.js +2 -2
- package/dist/esm/internal/CustomTemplates/bindTemplateProxy.js.map +1 -1
- package/dist/esm/internal/CustomTemplates/setupTemplateProxy.js +2 -2
- package/dist/esm/internal/CustomTemplates/setupTemplateProxy.js.map +1 -1
- package/dist/esm/internal/CustomTemplates/utils.js +1 -1
- package/dist/esm/internal/CustomTemplates/utils.js.map +1 -1
- package/dist/esm/internal/Renderer.js +2 -3
- package/dist/esm/internal/Renderer.js.map +1 -1
- package/dist/esm/internal/Runtime.js +21 -11
- package/dist/esm/internal/Runtime.js.map +1 -1
- package/dist/esm/internal/bindListeners.js +7 -2
- package/dist/esm/internal/bindListeners.js.map +1 -1
- package/dist/esm/internal/checkInstalledApps.js.map +1 -1
- package/dist/esm/internal/compute/checkIf.js +5 -0
- package/dist/esm/internal/compute/checkIf.js.map +1 -1
- package/dist/esm/internal/compute/getNextStateOfUseBrick.js +3 -3
- package/dist/esm/internal/compute/getNextStateOfUseBrick.js.map +1 -1
- package/dist/esm/internal/compute/listenOnTrackingContext.js.map +1 -1
- package/dist/esm/internal/data/DataStore.js.map +1 -1
- package/dist/esm/internal/data/FlowApiProvider.js +6 -6
- package/dist/esm/internal/data/FlowApiProvider.js.map +1 -1
- package/dist/esm/internal/enums.js +3 -3
- package/dist/esm/internal/enums.js.map +1 -1
- package/dist/esm/internal/historyExtended.js +21 -0
- package/dist/esm/internal/historyExtended.js.map +1 -1
- package/dist/esm/internal/i18n.js +22 -0
- package/dist/esm/internal/i18n.js.map +1 -0
- package/dist/esm/internal/loadBootstrapData.js +19 -18
- package/dist/esm/internal/loadBootstrapData.js.map +1 -1
- package/dist/esm/internal/mediaQuery.js +3 -3
- package/dist/esm/internal/mediaQuery.js.map +1 -1
- package/dist/esm/internal/menu/interfaces.js +4 -0
- package/dist/esm/internal/menu/interfaces.js.map +1 -1
- package/dist/esm/internal/menu/mergeMenu.js +11 -10
- package/dist/esm/internal/menu/mergeMenu.js.map +1 -1
- package/dist/esm/internal/secret_internals.js +5 -0
- package/dist/esm/internal/secret_internals.js.map +1 -1
- package/dist/types/Dialog.d.ts +14 -0
- package/dist/types/Notification.d.ts +10 -0
- package/dist/types/index.d.ts +4 -1
- package/dist/types/internal/Runtime.d.ts +1 -4
- package/dist/types/internal/i18n.d.ts +14 -0
- package/dist/types/tsdoc-metadata.json +11 -0
- package/package.json +16 -12
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"historyExtended.js","names":["parsePath","getBasePath","_internalApiMatchStoryboard","isOutsideApp","blocked","getUserConfirmation","message","callback","confirm","historyExtended","browserHistory","push","originalPush","replace","originalReplace","location","state","updateQueryFactory","method","updateQuery","query","options","arguments","length","undefined","extraQuery","clear","keepHash","_objectWithoutProperties","_excluded","urlSearchParams","URLSearchParams","search","params","Object","assign","key","value","entries","Array","isArray","delete","item","append","set","concat","toString","hash","pushAnchor","_objectSpread","notify","reload","blockMessage","setBlockMessage","getBlockMessage","unblock","pushQuery","replaceQuery","historyOverridden","updateFactory","update","path","pathname","pathIsString","startsWith","substring","createHref"],"sources":["../../../src/internal/historyExtended.ts"],"sourcesContent":["import {\n History,\n LocationDescriptor,\n LocationDescriptorObject,\n parsePath,\n} from \"history\";\nimport { getBasePath } from \"../getBasePath.js\";\nimport { _internalApiMatchStoryboard } from \"./Runtime.js\";\nimport { isOutsideApp } from \"./matchStoryboard.js\";\n\nlet blocked = false;\nexport function getUserConfirmation(\n message: string,\n callback: (result: boolean) => void\n): void {\n blocked = !confirm(message);\n callback(!blocked);\n}\n\nexport function historyExtended(\n browserHistory: History<NextHistoryState>\n): ExtendedHistory {\n const { push: originalPush, replace: originalReplace } = browserHistory;\n\n function push(\n location: LocationDescriptor<NextHistoryState>,\n state?: NextHistoryState,\n callback?: (blocked: boolean) => void\n ): void {\n blocked = false;\n originalPush(location, state);\n callback?.(blocked);\n }\n\n function replace(\n location: LocationDescriptor<NextHistoryState>,\n state?: NextHistoryState,\n callback?: (blocked: boolean) => void\n ): void {\n blocked = false;\n originalReplace(location, state);\n callback?.(blocked);\n }\n\n function updateQueryFactory(method: \"push\" | \"replace\"): UpdateQueryFunction {\n return function updateQuery(query, options = {}, callback?): void {\n const { extraQuery, clear, keepHash, ...state } = options;\n const urlSearchParams = new URLSearchParams(\n clear ? \"\" : browserHistory.location.search\n );\n const params: Record<string, string | string[]> = {};\n Object.assign(params, query, extraQuery);\n for (const [key, value] of Object.entries(params)) {\n if (Array.isArray(value)) {\n urlSearchParams.delete(key);\n for (const item of value) {\n urlSearchParams.append(key, item);\n }\n } else if (value === undefined || value === null || value === \"\") {\n urlSearchParams.delete(key);\n } else {\n urlSearchParams.set(key, value);\n }\n }\n (method === \"push\" ? push : replace)(\n `?${urlSearchParams.toString()}${\n keepHash ? browserHistory.location.hash : \"\"\n }`,\n state,\n callback\n );\n };\n }\n\n function pushAnchor(\n hash: string,\n state?: NextHistoryState,\n callback?: (blocked: boolean) => void\n ): void {\n push(\n {\n ...browserHistory.location,\n key: undefined,\n hash,\n state: {\n // The default notify is false\n notify: false,\n ...state,\n },\n },\n undefined,\n callback\n );\n }\n\n function reload(callback?: (blocked: boolean) => void): void {\n replace(\n {\n ...browserHistory.location,\n state: {\n ...browserHistory.location.state,\n // Always notify\n notify: true,\n },\n },\n undefined,\n callback\n );\n }\n\n let blockMessage: string | undefined;\n\n function setBlockMessage(message: string | undefined): void {\n blockMessage = message;\n }\n\n function getBlockMessage(): string | undefined {\n return blockMessage;\n }\n\n function unblock(): void {\n blockMessage = undefined;\n }\n\n return {\n pushQuery: updateQueryFactory(\"push\"),\n replaceQuery: updateQueryFactory(\"replace\"),\n pushAnchor: pushAnchor,\n reload,\n setBlockMessage,\n getBlockMessage,\n unblock,\n ...historyOverridden({ ...browserHistory, push, replace }),\n };\n}\n\n/**\n * Override history for standalone micro apps.\n *\n * when `push` or `replace` to other apps, force page refresh.\n */\nfunction historyOverridden(\n browserHistory: History<NextHistoryState> &\n Pick<ExtendedHistory, \"push\" | \"replace\">\n): Pick<ExtendedHistory, \"push\" | \"replace\"> {\n const { push: originalPush, replace: originalReplace } = browserHistory;\n function updateFactory(method: \"push\" | \"replace\"): ExtendedHistory[\"push\"] {\n return function update(path, state?, callback?) {\n let pathname: string | undefined;\n const pathIsString = typeof path === \"string\";\n if (pathIsString) {\n pathname = parsePath(path).pathname;\n } else {\n pathname = path.pathname;\n }\n\n // When history.push or history.replace is performing with an absolute pathname,\n // force load the target page when it is a page of an outside app.\n if (\n typeof pathname === \"string\" &&\n pathname.startsWith(\"/\") &&\n isOutsideApp(_internalApiMatchStoryboard(pathname))\n ) {\n // Going to outside apps.\n return location[method === \"push\" ? \"assign\" : \"replace\"](\n pathIsString\n ? getBasePath() + path.substring(1)\n : browserHistory.createHref(\n path as LocationDescriptorObject<NextHistoryState>\n )\n );\n }\n\n return (method === \"push\" ? originalPush : originalReplace)(\n path as string,\n state,\n callback\n );\n };\n }\n return {\n push: updateFactory(\"push\"),\n replace: updateFactory(\"replace\"),\n };\n}\n\nexport interface NextHistoryState {\n notify?: boolean;\n from?: LocationDescriptor<NextHistoryState>;\n}\n\n/**\n * 扩展的系统会话对象。\n */\nexport interface ExtendedHistory {\n /**\n * 更新指定的 query 参数,会保留当前其它 query 参数,往浏览器会话历史栈中推入一条新记录。\n */\n pushQuery: UpdateQueryFunction;\n\n /**\n * 更新指定的 query 参数,会保留当前其它 query 参数,替换浏览器会话历史栈中最新的一条记录。\n */\n replaceQuery: UpdateQueryFunction;\n\n /** {@inheritDoc UpdateAnchorFunction} */\n pushAnchor: UpdateAnchorFunction;\n\n /** 重载当前会话,即触发页面重新渲染。与 location.reload() 不同,它不会触发浏览器页面的重载。 */\n reload: (callback?: (blocked: boolean) => void) => void;\n\n /** @internal */\n setBlockMessage: (message: string | undefined) => void;\n\n /** @internal */\n getBlockMessage: () => string | undefined;\n\n /** 取消之前设置的阻止页面离开信息的设置。 */\n unblock: () => void;\n\n /** 推入一条记录。*/\n push: (\n location: LocationDescriptor<NextHistoryState>,\n state?: NextHistoryState,\n callback?: (blocked: boolean) => void\n ) => void;\n\n /** 替换一条记录。*/\n replace: (\n location: LocationDescriptor<NextHistoryState>,\n state?: NextHistoryState,\n callback?: (blocked: boolean) => void\n ) => void;\n}\n\n/**\n * 更新指定的 query 参数。\n *\n * @param query - 要更新的 query 参数。\n * @param options - 选项。\n */\nexport type UpdateQueryFunction = (\n query: Record<string, unknown>,\n options?: UpdateQueryOptions,\n callback?: (blocked: boolean) => void\n) => void;\n\n/** 更新 query 参数时的选项 */\nexport interface UpdateQueryOptions extends NextHistoryState {\n /** 额外要更新的 query 参数。 */\n extraQuery?: Record<string, unknown>;\n /** 是否同时清除当前的所有其它 query 参数。 */\n clear?: boolean;\n /** 是否保留当前 hash 参数。 */\n keepHash?: boolean;\n}\n\n/**\n * 设置指定的 anchor (URL hash)地址,此方法默认不会触发页面重新渲染。\n * 往浏览器会话历史栈中推入一条新记录。\n *\n * @param hash - Hash 地址。\n * @param state - 会话状态设置。\n */\nexport type UpdateAnchorFunction = (\n hash: string,\n state?: NextHistoryState,\n callback?: (blocked: boolean) => void\n) => void;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"historyExtended.js","names":["parsePath","getBasePath","_internalApiMatchStoryboard","isOutsideApp","blocked","getUserConfirmation","message","callback","confirm","historyExtended","browserHistory","push","originalPush","replace","originalReplace","location","state","updateQueryFactory","method","updateQuery","query","options","arguments","length","undefined","extraQuery","clear","keepHash","_objectWithoutProperties","_excluded","urlSearchParams","URLSearchParams","search","params","Object","assign","key","value","entries","Array","isArray","delete","item","append","set","concat","toString","hash","pushAnchor","_objectSpread","notify","reload","blockMessage","setBlockMessage","getBlockMessage","unblock","pushQuery","replaceQuery","historyOverridden","updateFactory","update","path","pathname","pathIsString","startsWith","substring","createHref"],"sources":["../../../src/internal/historyExtended.ts"],"sourcesContent":["import {\n History,\n LocationDescriptor,\n LocationDescriptorObject,\n parsePath,\n} from \"history\";\nimport { getBasePath } from \"../getBasePath.js\";\nimport { _internalApiMatchStoryboard } from \"./Runtime.js\";\nimport { isOutsideApp } from \"./matchStoryboard.js\";\n\nlet blocked = false;\nexport function getUserConfirmation(\n message: string,\n callback: (result: boolean) => void\n): void {\n blocked = !confirm(message);\n callback(!blocked);\n}\n\nexport function historyExtended(\n browserHistory: History<NextHistoryState>\n): ExtendedHistory {\n const { push: originalPush, replace: originalReplace } = browserHistory;\n\n function push(\n location: LocationDescriptor<NextHistoryState>,\n state?: NextHistoryState,\n callback?: (blocked: boolean) => void\n ): void {\n blocked = false;\n originalPush(location, state);\n callback?.(blocked);\n }\n\n function replace(\n location: LocationDescriptor<NextHistoryState>,\n state?: NextHistoryState,\n callback?: (blocked: boolean) => void\n ): void {\n blocked = false;\n originalReplace(location, state);\n callback?.(blocked);\n }\n\n function updateQueryFactory(method: \"push\" | \"replace\"): UpdateQueryFunction {\n return function updateQuery(query, options = {}, callback?): void {\n const { extraQuery, clear, keepHash, ...state } = options;\n const urlSearchParams = new URLSearchParams(\n clear ? \"\" : browserHistory.location.search\n );\n const params: Record<string, string | string[]> = {};\n Object.assign(params, query, extraQuery);\n for (const [key, value] of Object.entries(params)) {\n if (Array.isArray(value)) {\n urlSearchParams.delete(key);\n for (const item of value) {\n urlSearchParams.append(key, item);\n }\n } else if (value === undefined || value === null || value === \"\") {\n urlSearchParams.delete(key);\n } else {\n urlSearchParams.set(key, value);\n }\n }\n (method === \"push\" ? push : replace)(\n `?${urlSearchParams.toString()}${\n keepHash ? browserHistory.location.hash : \"\"\n }`,\n state,\n callback\n );\n };\n }\n\n function pushAnchor(\n hash: string,\n state?: NextHistoryState,\n callback?: (blocked: boolean) => void\n ): void {\n push(\n {\n ...browserHistory.location,\n key: undefined,\n hash,\n state: {\n // The default notify is false\n notify: false,\n ...state,\n },\n },\n undefined,\n callback\n );\n }\n\n function reload(callback?: (blocked: boolean) => void): void {\n replace(\n {\n ...browserHistory.location,\n state: {\n ...browserHistory.location.state,\n // Always notify\n notify: true,\n },\n },\n undefined,\n callback\n );\n }\n\n let blockMessage: string | undefined;\n\n function setBlockMessage(message: string | undefined): void {\n blockMessage = message;\n }\n\n function getBlockMessage(): string | undefined {\n return blockMessage;\n }\n\n function unblock(): void {\n blockMessage = undefined;\n }\n\n return {\n pushQuery: updateQueryFactory(\"push\"),\n replaceQuery: updateQueryFactory(\"replace\"),\n pushAnchor: pushAnchor,\n reload,\n setBlockMessage,\n getBlockMessage,\n unblock,\n ...historyOverridden({ ...browserHistory, push, replace }),\n };\n}\n\n/**\n * Override history for standalone micro apps.\n *\n * when `push` or `replace` to other apps, force page refresh.\n */\nfunction historyOverridden(\n browserHistory: History<NextHistoryState> &\n Pick<ExtendedHistory, \"push\" | \"replace\">\n): Pick<ExtendedHistory, \"push\" | \"replace\"> {\n const { push: originalPush, replace: originalReplace } = browserHistory;\n function updateFactory(method: \"push\" | \"replace\"): ExtendedHistory[\"push\"] {\n return function update(path, state?, callback?) {\n let pathname: string | undefined;\n const pathIsString = typeof path === \"string\";\n if (pathIsString) {\n pathname = parsePath(path).pathname;\n } else {\n pathname = path.pathname;\n }\n\n // When history.push or history.replace is performing with an absolute pathname,\n // force load the target page when it is a page of an outside app.\n if (\n typeof pathname === \"string\" &&\n pathname.startsWith(\"/\") &&\n isOutsideApp(_internalApiMatchStoryboard(pathname))\n ) {\n // Going to outside apps.\n return location[method === \"push\" ? \"assign\" : \"replace\"](\n pathIsString\n ? getBasePath() + path.substring(1)\n : browserHistory.createHref(\n path as LocationDescriptorObject<NextHistoryState>\n )\n );\n }\n\n return (method === \"push\" ? originalPush : originalReplace)(\n path as string,\n state,\n callback\n );\n };\n }\n return {\n push: updateFactory(\"push\"),\n replace: updateFactory(\"replace\"),\n };\n}\n\nexport interface NextHistoryState {\n notify?: boolean;\n from?: LocationDescriptor<NextHistoryState>;\n}\n\n/**\n * 扩展的系统会话对象。\n */\nexport interface ExtendedHistory {\n /**\n * 更新指定的 query 参数,会保留当前其它 query 参数,往浏览器会话历史栈中推入一条新记录。\n */\n pushQuery: UpdateQueryFunction;\n\n /**\n * 更新指定的 query 参数,会保留当前其它 query 参数,替换浏览器会话历史栈中最新的一条记录。\n */\n replaceQuery: UpdateQueryFunction;\n\n /** {@inheritDoc UpdateAnchorFunction} */\n pushAnchor: UpdateAnchorFunction;\n\n /** 重载当前会话,即触发页面重新渲染。与 location.reload() 不同,它不会触发浏览器页面的重载。 */\n reload: (callback?: (blocked: boolean) => void) => void;\n\n /** @internal */\n setBlockMessage: (message: string | undefined) => void;\n\n /** @internal */\n getBlockMessage: () => string | undefined;\n\n /** 取消之前设置的阻止页面离开信息的设置。 */\n unblock: () => void;\n\n /** 推入一条记录。*/\n push: (\n location: LocationDescriptor<NextHistoryState>,\n state?: NextHistoryState,\n callback?: (blocked: boolean) => void\n ) => void;\n\n /** 替换一条记录。*/\n replace: (\n location: LocationDescriptor<NextHistoryState>,\n state?: NextHistoryState,\n callback?: (blocked: boolean) => void\n ) => void;\n}\n\n/**\n * 更新指定的 query 参数。\n *\n * @param query - 要更新的 query 参数。\n * @param options - 选项。\n */\nexport type UpdateQueryFunction = (\n query: Record<string, unknown>,\n options?: UpdateQueryOptions,\n callback?: (blocked: boolean) => void\n) => void;\n\n/** 更新 query 参数时的选项 */\nexport interface UpdateQueryOptions extends NextHistoryState {\n /** 额外要更新的 query 参数。 */\n extraQuery?: Record<string, unknown>;\n /** 是否同时清除当前的所有其它 query 参数。 */\n clear?: boolean;\n /** 是否保留当前 hash 参数。 */\n keepHash?: boolean;\n}\n\n/**\n * 设置指定的 anchor (URL hash)地址,此方法默认不会触发页面重新渲染。\n * 往浏览器会话历史栈中推入一条新记录。\n *\n * @param hash - Hash 地址。\n * @param state - 会话状态设置。\n */\nexport type UpdateAnchorFunction = (\n hash: string,\n state?: NextHistoryState,\n callback?: (blocked: boolean) => void\n) => void;\n"],"mappings":"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"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
export var K = /*#__PURE__*/function (K) {
|
|
2
|
+
K["REQUEST_FAILED"] = "REQUEST_FAILED";
|
|
3
|
+
K["SOMETHING_WENT_WRONG"] = "SOMETHING_WENT_WRONG";
|
|
4
|
+
K["LOGIN_TIMEOUT_MESSAGE"] = "LOGIN_TIMEOUT_MESSAGE";
|
|
5
|
+
return K;
|
|
6
|
+
}({});
|
|
7
|
+
var en = {
|
|
8
|
+
[K.REQUEST_FAILED]: "Request Failed",
|
|
9
|
+
[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
|
+
};
|
|
12
|
+
var zh = {
|
|
13
|
+
[K.REQUEST_FAILED]: "请求失败",
|
|
14
|
+
[K.SOMETHING_WENT_WRONG]: "出现了一些问题!",
|
|
15
|
+
[K.LOGIN_TIMEOUT_MESSAGE]: "您还未登录或登录信息已过期,现在重新登录?"
|
|
16
|
+
};
|
|
17
|
+
export var NS = "core/runtime";
|
|
18
|
+
export var locales = {
|
|
19
|
+
en,
|
|
20
|
+
zh
|
|
21
|
+
};
|
|
22
|
+
//# sourceMappingURL=i18n.js.map
|
|
@@ -0,0 +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"}
|
|
@@ -21,28 +21,29 @@ function _loadBootstrapData() {
|
|
|
21
21
|
ignoreTemplateFields: "templates",
|
|
22
22
|
ignoreBrickFields: "bricks,processors,providers,editors"
|
|
23
23
|
});
|
|
24
|
-
|
|
25
|
-
app
|
|
26
|
-
} of data.storyboards) {
|
|
24
|
+
var _loop = function* () {
|
|
27
25
|
if (app.locales) {
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
});
|
|
42
|
-
})();
|
|
26
|
+
// Prefix to avoid conflict between brick package's i18n namespace.
|
|
27
|
+
var ns = "tmp/".concat(app.id);
|
|
28
|
+
// Support any languages in `app.locales`.
|
|
29
|
+
Object.entries(app.locales).forEach(_ref => {
|
|
30
|
+
var [lang, resources] = _ref;
|
|
31
|
+
i18n.addResourceBundle(lang, ns, resources);
|
|
32
|
+
});
|
|
33
|
+
// Use `app.name` as the fallback `app.localeName`.
|
|
34
|
+
app.localeName = i18n.getFixedT(null, ns)("name", app.name);
|
|
35
|
+
// Remove the temporary i18n resource bundles.
|
|
36
|
+
Object.keys(app.locales).forEach(lang => {
|
|
37
|
+
i18n.removeResourceBundle(lang, ns);
|
|
38
|
+
});
|
|
43
39
|
} else {
|
|
44
40
|
app.localeName = app.name;
|
|
45
41
|
}
|
|
42
|
+
};
|
|
43
|
+
for (var {
|
|
44
|
+
app
|
|
45
|
+
} of data.storyboards) {
|
|
46
|
+
yield* _loop();
|
|
46
47
|
}
|
|
47
48
|
if (isObject(data.settings)) {
|
|
48
49
|
deepFreeze(data.settings);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loadBootstrapData.js","names":["BootstrapStandaloneApi_runtimeStandalone","BootstrapV2Api_bootstrapV2","BootstrapV2Api_getAppStoryboardV2","http","i18n","deepFreeze","hasOwnProperty","isObject","merge","JSON_SCHEMA","safeLoad","RuntimeApi_runtimeMicroAppStandalone","registerAppI18n","loadBootstrapData","_loadBootstrapData","apply","arguments","_asyncToGenerator","data","window","STANDALONE_MICRO_APPS","standaloneBootstrap","appFields","ignoreTemplateFields","ignoreBrickFields","app","storyboards","locales","ns","concat","id","Object","entries","forEach","_ref","lang","resources","addResourceBundle","localeName","getFixedT","name","keys","removeResourceBundle","settings","brickPackages","_standaloneBootstrap","requests","get","BOOTSTRAP_FILE","APP_ROOT","responseType","catch","error","console","warn","NO_AUTH_GUARD","matches","appId","APP_ID","match","safeGetRuntimeMicroAppStandalone","bootstrapResult","confString","runtimeData","Promise","all","mergeConf","mergeRuntimeSettings","conf","schema","json","undefined","Error","sys_settings","user_config","user_config_by_apps","feature_flags","featureFlags","rest","_objectWithoutProperties","_excluded","_objectSpread","length","userConfig","runtimeSettings","_bootstrapResult$sett","misc","_excluded2","assign","appRuntimeDataMap","Map","_x","_safeGetRuntimeMicroAppStandalone","has","promise","set","fulfilStoryboard","_x2","_fulfilStoryboard","storyboard","$$fulfilled","$$fulfilling","doFulfilStoryboard","_x3","_doFulfilStoryboard","appRuntimeData","injectMenus","initializeInjectMenus","meta","routes","initializeAppConfig","config","defaultConfig","menus","Array","isArray","menu","overrideApp"],"sources":["../../../src/internal/loadBootstrapData.ts"],"sourcesContent":["import {\n BootstrapStandaloneApi_runtimeStandalone,\n BootstrapV2Api_bootstrapV2,\n BootstrapV2Api_getAppStoryboardV2,\n} from \"@next-api-sdk/api-gateway-sdk\";\nimport { http } from \"@next-core/http\";\nimport type {\n BootstrapData,\n BootstrapSettings,\n MicroApp,\n RuntimeStoryboard,\n} from \"@next-core/types\";\nimport { i18n } from \"@next-core/i18n\";\nimport { deepFreeze, hasOwnProperty, isObject } from \"@next-core/utils/general\";\nimport { merge } from \"lodash\";\nimport { JSON_SCHEMA, safeLoad } from \"js-yaml\";\nimport { RuntimeApi_runtimeMicroAppStandalone } from \"@next-api-sdk/micro-app-standalone-sdk\";\nimport { registerAppI18n } from \"./registerAppI18n.js\";\nimport { MenuRawData } from \"./menu/interfaces.js\";\n\ninterface StandaloneConf {\n /** The same as `auth.bootstrap.sys_settings` in api gateway conf. */\n sys_settings: StandaloneSettings;\n\n /** For fully standalone micro-apps. */\n user_config?: Record<string, unknown>;\n\n /** For mixed standalone micro-apps. */\n user_config_by_apps?: UserConfigByApps;\n}\n\ntype UserConfigByApps = Record<string, Record<string, unknown>>;\n\ninterface StandaloneSettings extends Omit<BootstrapSettings, \"featureFlags\"> {\n feature_flags: Record<string, boolean>;\n}\n\nexport async function loadBootstrapData(): Promise<BootstrapData> {\n const data = await (window.STANDALONE_MICRO_APPS\n ? standaloneBootstrap()\n : (BootstrapV2Api_bootstrapV2({\n appFields:\n \"defaultConfig,userConfig,locales,name,homepage,id,currentVersion,installStatus,internal,status,icons,standaloneMode\",\n ignoreTemplateFields: \"templates\",\n ignoreBrickFields: \"bricks,processors,providers,editors\",\n }) as Promise<BootstrapData>));\n\n for (const { app } of data.storyboards) {\n if (app.locales) {\n // Prefix to avoid conflict between brick package's i18n namespace.\n const ns = `tmp/${app.id}`;\n // Support any languages in `app.locales`.\n Object.entries(app.locales).forEach(([lang, resources]) => {\n i18n.addResourceBundle(lang, ns, resources);\n });\n // Use `app.name` as the fallback `app.localeName`.\n app.localeName = i18n.getFixedT(null, ns)(\"name\", app.name) as string;\n // Remove the temporary i18n resource bundles.\n Object.keys(app.locales).forEach((lang) => {\n i18n.removeResourceBundle(lang, ns);\n });\n } else {\n app.localeName = app.name;\n }\n }\n\n if (isObject(data.settings)) {\n deepFreeze(data.settings);\n }\n data.brickPackages = deepFreeze(data.brickPackages);\n\n return data;\n}\n\nasync function standaloneBootstrap(): Promise<BootstrapData> {\n const requests = [\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n http.get<BootstrapData>(window.BOOTSTRAP_FILE!),\n http.get<string>(`${window.APP_ROOT}conf.yaml`, {\n responseType: \"text\",\n }),\n BootstrapStandaloneApi_runtimeStandalone().catch((error) => {\n // make it not crash when the backend service is not updated.\n // eslint-disable-next-line no-console\n console.warn(\n \"request runtime api from api-gateway failed: \",\n error,\n \", something might went wrong running standalone micro app\"\n );\n }),\n ] as const;\n\n if (!window.NO_AUTH_GUARD) {\n let matches: string[] | null;\n const appId =\n window.APP_ID ||\n (window.APP_ROOT &&\n (matches = window.APP_ROOT.match(\n /^(?:(?:\\/next)?\\/)?sa-static\\/([^/]+)\\/versions\\//\n ))\n ? matches[1]\n : null);\n if (appId) {\n // No need to wait.\n safeGetRuntimeMicroAppStandalone(appId);\n }\n }\n\n const [bootstrapResult, confString, runtimeData] = await Promise.all(\n requests\n );\n\n mergeConf(bootstrapResult, confString);\n\n mergeRuntimeSettings(bootstrapResult, runtimeData?.settings);\n\n return bootstrapResult;\n}\n\nfunction mergeConf(bootstrapResult: BootstrapData, confString: string) {\n let conf: StandaloneConf | undefined;\n try {\n conf = confString\n ? (safeLoad(confString, {\n schema: JSON_SCHEMA,\n json: true,\n }) as StandaloneConf)\n : undefined;\n } catch (error) {\n // eslint-disable-next-line no-console\n console.error(\"Parse conf.yaml failed\", error);\n throw new Error(\"Invalid conf.yaml\");\n }\n\n if (conf) {\n const { sys_settings, user_config, user_config_by_apps } = conf;\n if (sys_settings) {\n const { feature_flags: featureFlags, ...rest } = sys_settings;\n bootstrapResult.settings = {\n featureFlags,\n ...rest,\n } as BootstrapSettings;\n }\n if (user_config && bootstrapResult.storyboards.length === 1) {\n bootstrapResult.storyboards[0].app.userConfig = user_config;\n } else if (user_config_by_apps) {\n for (const { app } of bootstrapResult.storyboards) {\n if (hasOwnProperty(user_config_by_apps, app.id)) {\n app.userConfig = user_config_by_apps[app.id];\n }\n }\n }\n }\n}\n\nfunction mergeRuntimeSettings(\n bootstrapResult: BootstrapData,\n runtimeSettings: BootstrapSettings | undefined\n) {\n if (!runtimeSettings) {\n return;\n }\n // Merge Feature Flags & Misc\n const { featureFlags, misc, ...rest } = runtimeSettings;\n const settings = (bootstrapResult.settings ??= {});\n settings.featureFlags = {\n ...settings.featureFlags,\n ...featureFlags,\n };\n settings.misc = {\n ...settings.misc,\n ...misc,\n };\n Object.assign(settings, rest);\n}\n\nconst appRuntimeDataMap = new Map<\n string,\n Promise<RuntimeMicroAppStandaloneData | undefined>\n>();\n\ninterface RuntimeMicroAppStandaloneData {\n userConfig?: Record<string, unknown>;\n injectMenus?: MenuRawData[];\n}\n\nexport async function safeGetRuntimeMicroAppStandalone(appId: string) {\n if (appRuntimeDataMap.has(appId)) {\n return appRuntimeDataMap.get(appId);\n }\n const promise = RuntimeApi_runtimeMicroAppStandalone(appId).catch((error) => {\n // make it not crash when the backend service is not updated.\n // eslint-disable-next-line no-console\n console.warn(\n \"request standalone runtime api from micro-app-standalone failed: \",\n error,\n \", something might went wrong running standalone micro app\"\n );\n }) as Promise<RuntimeMicroAppStandaloneData | undefined>;\n appRuntimeDataMap.set(appId, promise);\n return promise;\n}\n\nexport async function fulfilStoryboard(storyboard: RuntimeStoryboard) {\n if (storyboard.$$fulfilled) {\n return;\n }\n if (!storyboard.$$fulfilling) {\n storyboard.$$fulfilling = doFulfilStoryboard(storyboard);\n }\n return storyboard.$$fulfilling;\n}\n\nasync function doFulfilStoryboard(storyboard: RuntimeStoryboard) {\n if (window.STANDALONE_MICRO_APPS) {\n Object.assign(storyboard, {\n $$fulfilled: true,\n $$fulfilling: null,\n });\n if (!window.NO_AUTH_GUARD) {\n let appRuntimeData: RuntimeMicroAppStandaloneData | void;\n try {\n // Note: the request maybe have fired already during bootstrap.\n appRuntimeData = await safeGetRuntimeMicroAppStandalone(\n storyboard.app.id\n );\n } catch (error) {\n // make it not crash when the backend service is not updated.\n // eslint-disable-next-line no-console\n console.warn(\n \"request standalone runtime api from micro-app-standalone failed: \",\n error,\n \", something might went wrong running standalone micro app\"\n );\n }\n if (appRuntimeData) {\n const { userConfig, injectMenus } = appRuntimeData;\n // Merge `app.defaultConfig` and `app.userConfig` to `app.config`.\n storyboard.app.userConfig = {\n ...storyboard.app.userConfig,\n ...userConfig,\n };\n\n // Initialize `overrideApp.config` in `injectMenus`\n initializeInjectMenus(injectMenus);\n\n // get inject menus (Actually, appRuntimeData contains both main and inject menus)\n storyboard.meta = {\n ...storyboard.meta,\n injectMenus,\n };\n }\n }\n } else {\n const { routes, meta, app } = await BootstrapV2Api_getAppStoryboardV2(\n storyboard.app.id,\n {}\n );\n Object.assign(storyboard, {\n routes,\n meta,\n app: { ...storyboard.app, ...app },\n $$fulfilled: true,\n $$fulfilling: null,\n });\n }\n\n registerAppI18n(storyboard);\n\n initializeAppConfig(storyboard.app);\n}\n\nfunction initializeAppConfig(app: MicroApp) {\n app.config = deepFreeze(merge({}, app.defaultConfig, app.userConfig));\n}\n\nfunction initializeInjectMenus(menus: MenuRawData[] | undefined) {\n if (!Array.isArray(menus)) {\n return;\n }\n for (const menu of menus) {\n if (menu.overrideApp) {\n initializeAppConfig(menu.overrideApp);\n }\n }\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"loadBootstrapData.js","names":["BootstrapStandaloneApi_runtimeStandalone","BootstrapV2Api_bootstrapV2","BootstrapV2Api_getAppStoryboardV2","http","i18n","deepFreeze","hasOwnProperty","isObject","merge","JSON_SCHEMA","safeLoad","RuntimeApi_runtimeMicroAppStandalone","registerAppI18n","loadBootstrapData","_loadBootstrapData","apply","arguments","_asyncToGenerator","data","window","STANDALONE_MICRO_APPS","standaloneBootstrap","appFields","ignoreTemplateFields","ignoreBrickFields","_loop","app","locales","ns","concat","id","Object","entries","forEach","_ref","lang","resources","addResourceBundle","localeName","getFixedT","name","keys","removeResourceBundle","storyboards","settings","brickPackages","_standaloneBootstrap","requests","get","BOOTSTRAP_FILE","APP_ROOT","responseType","catch","error","console","warn","NO_AUTH_GUARD","matches","appId","APP_ID","match","safeGetRuntimeMicroAppStandalone","bootstrapResult","confString","runtimeData","Promise","all","mergeConf","mergeRuntimeSettings","conf","schema","json","undefined","Error","sys_settings","user_config","user_config_by_apps","feature_flags","featureFlags","rest","_objectWithoutProperties","_excluded","_objectSpread","length","userConfig","runtimeSettings","_bootstrapResult$sett","misc","_excluded2","assign","appRuntimeDataMap","Map","_x","_safeGetRuntimeMicroAppStandalone","has","promise","set","fulfilStoryboard","_x2","_fulfilStoryboard","storyboard","$$fulfilled","$$fulfilling","doFulfilStoryboard","_x3","_doFulfilStoryboard","appRuntimeData","injectMenus","initializeInjectMenus","meta","routes","initializeAppConfig","config","defaultConfig","menus","Array","isArray","menu","overrideApp"],"sources":["../../../src/internal/loadBootstrapData.ts"],"sourcesContent":["import {\n BootstrapStandaloneApi_runtimeStandalone,\n BootstrapV2Api_bootstrapV2,\n BootstrapV2Api_getAppStoryboardV2,\n} from \"@next-api-sdk/api-gateway-sdk\";\nimport { http } from \"@next-core/http\";\nimport type {\n BootstrapData,\n BootstrapSettings,\n MicroApp,\n RuntimeStoryboard,\n} from \"@next-core/types\";\nimport { i18n } from \"@next-core/i18n\";\nimport { deepFreeze, hasOwnProperty, isObject } from \"@next-core/utils/general\";\nimport { merge } from \"lodash\";\nimport { JSON_SCHEMA, safeLoad } from \"js-yaml\";\nimport { RuntimeApi_runtimeMicroAppStandalone } from \"@next-api-sdk/micro-app-standalone-sdk\";\nimport { registerAppI18n } from \"./registerAppI18n.js\";\nimport { MenuRawData } from \"./menu/interfaces.js\";\n\ninterface StandaloneConf {\n /** The same as `auth.bootstrap.sys_settings` in api gateway conf. */\n sys_settings: StandaloneSettings;\n\n /** For fully standalone micro-apps. */\n user_config?: Record<string, unknown>;\n\n /** For mixed standalone micro-apps. */\n user_config_by_apps?: UserConfigByApps;\n}\n\ntype UserConfigByApps = Record<string, Record<string, unknown>>;\n\ninterface StandaloneSettings extends Omit<BootstrapSettings, \"featureFlags\"> {\n feature_flags: Record<string, boolean>;\n}\n\nexport async function loadBootstrapData(): Promise<BootstrapData> {\n const data = await (window.STANDALONE_MICRO_APPS\n ? standaloneBootstrap()\n : (BootstrapV2Api_bootstrapV2({\n appFields:\n \"defaultConfig,userConfig,locales,name,homepage,id,currentVersion,installStatus,internal,status,icons,standaloneMode\",\n ignoreTemplateFields: \"templates\",\n ignoreBrickFields: \"bricks,processors,providers,editors\",\n }) as Promise<BootstrapData>));\n\n for (const { app } of data.storyboards) {\n if (app.locales) {\n // Prefix to avoid conflict between brick package's i18n namespace.\n const ns = `tmp/${app.id}`;\n // Support any languages in `app.locales`.\n Object.entries(app.locales).forEach(([lang, resources]) => {\n i18n.addResourceBundle(lang, ns, resources);\n });\n // Use `app.name` as the fallback `app.localeName`.\n app.localeName = i18n.getFixedT(null, ns)(\"name\", app.name) as string;\n // Remove the temporary i18n resource bundles.\n Object.keys(app.locales).forEach((lang) => {\n i18n.removeResourceBundle(lang, ns);\n });\n } else {\n app.localeName = app.name;\n }\n }\n\n if (isObject(data.settings)) {\n deepFreeze(data.settings);\n }\n data.brickPackages = deepFreeze(data.brickPackages);\n\n return data;\n}\n\nasync function standaloneBootstrap(): Promise<BootstrapData> {\n const requests = [\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n http.get<BootstrapData>(window.BOOTSTRAP_FILE!),\n http.get<string>(`${window.APP_ROOT}conf.yaml`, {\n responseType: \"text\",\n }),\n BootstrapStandaloneApi_runtimeStandalone().catch((error) => {\n // make it not crash when the backend service is not updated.\n // eslint-disable-next-line no-console\n console.warn(\n \"request runtime api from api-gateway failed: \",\n error,\n \", something might went wrong running standalone micro app\"\n );\n }),\n ] as const;\n\n if (!window.NO_AUTH_GUARD) {\n let matches: string[] | null;\n const appId =\n window.APP_ID ||\n (window.APP_ROOT &&\n (matches = window.APP_ROOT.match(\n /^(?:(?:\\/next)?\\/)?sa-static\\/([^/]+)\\/versions\\//\n ))\n ? matches[1]\n : null);\n if (appId) {\n // No need to wait.\n safeGetRuntimeMicroAppStandalone(appId);\n }\n }\n\n const [bootstrapResult, confString, runtimeData] = await Promise.all(\n requests\n );\n\n mergeConf(bootstrapResult, confString);\n\n mergeRuntimeSettings(bootstrapResult, runtimeData?.settings);\n\n return bootstrapResult;\n}\n\nfunction mergeConf(bootstrapResult: BootstrapData, confString: string) {\n let conf: StandaloneConf | undefined;\n try {\n conf = confString\n ? (safeLoad(confString, {\n schema: JSON_SCHEMA,\n json: true,\n }) as StandaloneConf)\n : undefined;\n } catch (error) {\n // eslint-disable-next-line no-console\n console.error(\"Parse conf.yaml failed\", error);\n throw new Error(\"Invalid conf.yaml\");\n }\n\n if (conf) {\n const { sys_settings, user_config, user_config_by_apps } = conf;\n if (sys_settings) {\n const { feature_flags: featureFlags, ...rest } = sys_settings;\n bootstrapResult.settings = {\n featureFlags,\n ...rest,\n } as BootstrapSettings;\n }\n if (user_config && bootstrapResult.storyboards.length === 1) {\n bootstrapResult.storyboards[0].app.userConfig = user_config;\n } else if (user_config_by_apps) {\n for (const { app } of bootstrapResult.storyboards) {\n if (hasOwnProperty(user_config_by_apps, app.id)) {\n app.userConfig = user_config_by_apps[app.id];\n }\n }\n }\n }\n}\n\nfunction mergeRuntimeSettings(\n bootstrapResult: BootstrapData,\n runtimeSettings: BootstrapSettings | undefined\n) {\n if (!runtimeSettings) {\n return;\n }\n // Merge Feature Flags & Misc\n const { featureFlags, misc, ...rest } = runtimeSettings;\n const settings = (bootstrapResult.settings ??= {});\n settings.featureFlags = {\n ...settings.featureFlags,\n ...featureFlags,\n };\n settings.misc = {\n ...settings.misc,\n ...misc,\n };\n Object.assign(settings, rest);\n}\n\nconst appRuntimeDataMap = new Map<\n string,\n Promise<RuntimeMicroAppStandaloneData | undefined>\n>();\n\ninterface RuntimeMicroAppStandaloneData {\n userConfig?: Record<string, unknown>;\n injectMenus?: MenuRawData[];\n}\n\nexport async function safeGetRuntimeMicroAppStandalone(appId: string) {\n if (appRuntimeDataMap.has(appId)) {\n return appRuntimeDataMap.get(appId);\n }\n const promise = RuntimeApi_runtimeMicroAppStandalone(appId).catch((error) => {\n // make it not crash when the backend service is not updated.\n // eslint-disable-next-line no-console\n console.warn(\n \"request standalone runtime api from micro-app-standalone failed: \",\n error,\n \", something might went wrong running standalone micro app\"\n );\n }) as Promise<RuntimeMicroAppStandaloneData | undefined>;\n appRuntimeDataMap.set(appId, promise);\n return promise;\n}\n\nexport async function fulfilStoryboard(storyboard: RuntimeStoryboard) {\n if (storyboard.$$fulfilled) {\n return;\n }\n if (!storyboard.$$fulfilling) {\n storyboard.$$fulfilling = doFulfilStoryboard(storyboard);\n }\n return storyboard.$$fulfilling;\n}\n\nasync function doFulfilStoryboard(storyboard: RuntimeStoryboard) {\n if (window.STANDALONE_MICRO_APPS) {\n Object.assign(storyboard, {\n $$fulfilled: true,\n $$fulfilling: null,\n });\n if (!window.NO_AUTH_GUARD) {\n let appRuntimeData: RuntimeMicroAppStandaloneData | void;\n try {\n // Note: the request maybe have fired already during bootstrap.\n appRuntimeData = await safeGetRuntimeMicroAppStandalone(\n storyboard.app.id\n );\n } catch (error) {\n // make it not crash when the backend service is not updated.\n // eslint-disable-next-line no-console\n console.warn(\n \"request standalone runtime api from micro-app-standalone failed: \",\n error,\n \", something might went wrong running standalone micro app\"\n );\n }\n if (appRuntimeData) {\n const { userConfig, injectMenus } = appRuntimeData;\n // Merge `app.defaultConfig` and `app.userConfig` to `app.config`.\n storyboard.app.userConfig = {\n ...storyboard.app.userConfig,\n ...userConfig,\n };\n\n // Initialize `overrideApp.config` in `injectMenus`\n initializeInjectMenus(injectMenus);\n\n // get inject menus (Actually, appRuntimeData contains both main and inject menus)\n storyboard.meta = {\n ...storyboard.meta,\n injectMenus,\n };\n }\n }\n } else {\n const { routes, meta, app } = await BootstrapV2Api_getAppStoryboardV2(\n storyboard.app.id,\n {}\n );\n Object.assign(storyboard, {\n routes,\n meta,\n app: { ...storyboard.app, ...app },\n $$fulfilled: true,\n $$fulfilling: null,\n });\n }\n\n registerAppI18n(storyboard);\n\n initializeAppConfig(storyboard.app);\n}\n\nfunction initializeAppConfig(app: MicroApp) {\n app.config = deepFreeze(merge({}, app.defaultConfig, app.userConfig));\n}\n\nfunction initializeInjectMenus(menus: MenuRawData[] | undefined) {\n if (!Array.isArray(menus)) {\n return;\n }\n for (const menu of menus) {\n if (menu.overrideApp) {\n initializeAppConfig(menu.overrideApp);\n }\n }\n}\n"],"mappings":"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"}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import EventTarget from "@ungap/event-target";
|
|
2
|
-
export var MediaBreakpoint
|
|
3
|
-
(function (MediaBreakpoint) {
|
|
2
|
+
export var MediaBreakpoint = /*#__PURE__*/function (MediaBreakpoint) {
|
|
4
3
|
MediaBreakpoint["xLarge"] = "xLarge";
|
|
5
4
|
MediaBreakpoint["large"] = "large";
|
|
6
5
|
MediaBreakpoint["medium"] = "medium";
|
|
7
6
|
MediaBreakpoint["small"] = "small";
|
|
8
7
|
MediaBreakpoint["xSmall"] = "xSmall";
|
|
9
|
-
|
|
8
|
+
return MediaBreakpoint;
|
|
9
|
+
}({});
|
|
10
10
|
export var mediaBreakpointMinWidthMap = new Map([[MediaBreakpoint.xLarge, "1920px"], [MediaBreakpoint.large, "1600px"], [MediaBreakpoint.medium, "1280px"], [MediaBreakpoint.small, "1024px"], [MediaBreakpoint.xSmall, 0]]);
|
|
11
11
|
export var mediaEventTarget = new EventTarget();
|
|
12
12
|
var breakpointMatchesMap = {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mediaQuery.js","names":["EventTarget","MediaBreakpoint","mediaBreakpointMinWidthMap","Map","xLarge","large","medium","small","xSmall","mediaEventTarget","breakpointMatchesMap","MEDIA","handleMatchesChange","data","breakpoint","changed","matches","dispatchEvent","CustomEvent","detail","forEach","minWidth","mediaQueryList","window","matchMedia","concat","addEventListener","event","addListener","getMedia"],"sources":["../../../src/internal/mediaQuery.ts"],"sourcesContent":["import EventTarget from \"@ungap/event-target\";\n\nexport interface Media {\n breakpoint?: MediaBreakpoint;\n}\n\nexport enum MediaBreakpoint {\n xLarge = \"xLarge\",\n large = \"large\",\n medium = \"medium\",\n small = \"small\",\n xSmall = \"xSmall\",\n}\n\nexport const mediaBreakpointMinWidthMap = new Map<\n MediaBreakpoint,\n string | number\n>([\n [MediaBreakpoint.xLarge, \"1920px\"],\n [MediaBreakpoint.large, \"1600px\"],\n [MediaBreakpoint.medium, \"1280px\"],\n [MediaBreakpoint.small, \"1024px\"],\n [MediaBreakpoint.xSmall, 0],\n]);\nexport const mediaEventTarget = new EventTarget();\n\nconst breakpointMatchesMap: Partial<Record<MediaBreakpoint, boolean>> = {};\nconst MEDIA: Media = {};\n\nfunction handleMatchesChange(\n data: { readonly matches: boolean; readonly media: string },\n breakpoint: MediaBreakpoint\n): void {\n let changed = false;\n breakpointMatchesMap[breakpoint] = data.matches;\n\n for (const [breakpoint] of mediaBreakpointMinWidthMap) {\n if (breakpointMatchesMap[breakpoint] && MEDIA.breakpoint !== breakpoint) {\n MEDIA.breakpoint = breakpoint;\n changed = true;\n break;\n }\n }\n\n if (changed) {\n mediaEventTarget.dispatchEvent(\n new CustomEvent(\"change\", { detail: MEDIA })\n );\n }\n}\n\nmediaBreakpointMinWidthMap.forEach((minWidth, breakpoint) => {\n const mediaQueryList = window.matchMedia(`(min-width: ${minWidth})`);\n\n handleMatchesChange(mediaQueryList, breakpoint);\n\n if (mediaQueryList.addEventListener) {\n mediaQueryList.addEventListener(\"change\", (event) => {\n handleMatchesChange(event, breakpoint);\n });\n } else {\n mediaQueryList.addListener((event) => {\n handleMatchesChange(event, breakpoint);\n });\n }\n});\n\nexport const getMedia = (): Media => MEDIA;\n"],"mappings":"AAAA,OAAOA,WAAW,MAAM,qBAAqB;AAM7C,WAAYC,eAAe
|
|
1
|
+
{"version":3,"file":"mediaQuery.js","names":["EventTarget","MediaBreakpoint","mediaBreakpointMinWidthMap","Map","xLarge","large","medium","small","xSmall","mediaEventTarget","breakpointMatchesMap","MEDIA","handleMatchesChange","data","breakpoint","changed","matches","dispatchEvent","CustomEvent","detail","forEach","minWidth","mediaQueryList","window","matchMedia","concat","addEventListener","event","addListener","getMedia"],"sources":["../../../src/internal/mediaQuery.ts"],"sourcesContent":["import EventTarget from \"@ungap/event-target\";\n\nexport interface Media {\n breakpoint?: MediaBreakpoint;\n}\n\nexport enum MediaBreakpoint {\n xLarge = \"xLarge\",\n large = \"large\",\n medium = \"medium\",\n small = \"small\",\n xSmall = \"xSmall\",\n}\n\nexport const mediaBreakpointMinWidthMap = new Map<\n MediaBreakpoint,\n string | number\n>([\n [MediaBreakpoint.xLarge, \"1920px\"],\n [MediaBreakpoint.large, \"1600px\"],\n [MediaBreakpoint.medium, \"1280px\"],\n [MediaBreakpoint.small, \"1024px\"],\n [MediaBreakpoint.xSmall, 0],\n]);\nexport const mediaEventTarget = new EventTarget();\n\nconst breakpointMatchesMap: Partial<Record<MediaBreakpoint, boolean>> = {};\nconst MEDIA: Media = {};\n\nfunction handleMatchesChange(\n data: { readonly matches: boolean; readonly media: string },\n breakpoint: MediaBreakpoint\n): void {\n let changed = false;\n breakpointMatchesMap[breakpoint] = data.matches;\n\n for (const [breakpoint] of mediaBreakpointMinWidthMap) {\n if (breakpointMatchesMap[breakpoint] && MEDIA.breakpoint !== breakpoint) {\n MEDIA.breakpoint = breakpoint;\n changed = true;\n break;\n }\n }\n\n if (changed) {\n mediaEventTarget.dispatchEvent(\n new CustomEvent(\"change\", { detail: MEDIA })\n );\n }\n}\n\nmediaBreakpointMinWidthMap.forEach((minWidth, breakpoint) => {\n const mediaQueryList = window.matchMedia(`(min-width: ${minWidth})`);\n\n handleMatchesChange(mediaQueryList, breakpoint);\n\n if (mediaQueryList.addEventListener) {\n mediaQueryList.addEventListener(\"change\", (event) => {\n handleMatchesChange(event, breakpoint);\n });\n } else {\n mediaQueryList.addListener((event) => {\n handleMatchesChange(event, breakpoint);\n });\n }\n});\n\nexport const getMedia = (): Media => MEDIA;\n"],"mappings":"AAAA,OAAOA,WAAW,MAAM,qBAAqB;AAM7C,WAAYC,eAAe,0BAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAA,OAAfA,eAAe;AAAA;AAQ3B,OAAO,IAAMC,0BAA0B,GAAG,IAAIC,GAAG,CAG/C,CACA,CAACF,eAAe,CAACG,MAAM,EAAE,QAAQ,CAAC,EAClC,CAACH,eAAe,CAACI,KAAK,EAAE,QAAQ,CAAC,EACjC,CAACJ,eAAe,CAACK,MAAM,EAAE,QAAQ,CAAC,EAClC,CAACL,eAAe,CAACM,KAAK,EAAE,QAAQ,CAAC,EACjC,CAACN,eAAe,CAACO,MAAM,EAAE,CAAC,CAAC,CAC5B,CAAC;AACF,OAAO,IAAMC,gBAAgB,GAAG,IAAIT,WAAW,EAAE;AAEjD,IAAMU,oBAA+D,GAAG,CAAC,CAAC;AAC1E,IAAMC,KAAY,GAAG,CAAC,CAAC;AAEvB,SAASC,mBAAmBA,CAC1BC,IAA2D,EAC3DC,UAA2B,EACrB;EACN,IAAIC,OAAO,GAAG,KAAK;EACnBL,oBAAoB,CAACI,UAAU,CAAC,GAAGD,IAAI,CAACG,OAAO;EAE/C,KAAK,IAAM,CAACF,WAAU,CAAC,IAAIZ,0BAA0B,EAAE;IACrD,IAAIQ,oBAAoB,CAACI,WAAU,CAAC,IAAIH,KAAK,CAACG,UAAU,KAAKA,WAAU,EAAE;MACvEH,KAAK,CAACG,UAAU,GAAGA,WAAU;MAC7BC,OAAO,GAAG,IAAI;MACd;IACF;EACF;EAEA,IAAIA,OAAO,EAAE;IACXN,gBAAgB,CAACQ,aAAa,CAC5B,IAAIC,WAAW,CAAC,QAAQ,EAAE;MAAEC,MAAM,EAAER;IAAM,CAAC,CAAC,CAC7C;EACH;AACF;AAEAT,0BAA0B,CAACkB,OAAO,CAAC,CAACC,QAAQ,EAAEP,UAAU,KAAK;EAC3D,IAAMQ,cAAc,GAAGC,MAAM,CAACC,UAAU,gBAAAC,MAAA,CAAgBJ,QAAQ,OAAI;EAEpET,mBAAmB,CAACU,cAAc,EAAER,UAAU,CAAC;EAE/C,IAAIQ,cAAc,CAACI,gBAAgB,EAAE;IACnCJ,cAAc,CAACI,gBAAgB,CAAC,QAAQ,EAAGC,KAAK,IAAK;MACnDf,mBAAmB,CAACe,KAAK,EAAEb,UAAU,CAAC;IACxC,CAAC,CAAC;EACJ,CAAC,MAAM;IACLQ,cAAc,CAACM,WAAW,CAAED,KAAK,IAAK;MACpCf,mBAAmB,CAACe,KAAK,EAAEb,UAAU,CAAC;IACxC,CAAC,CAAC;EACJ;AACF,CAAC,CAAC;AAEF,OAAO,IAAMe,QAAQ,GAAGA,CAAA,KAAalB,KAAK"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interfaces.js","names":["symbolAppId","symbolMenuI18nNamespace","symbolOverrideApp"],"sources":["../../../../src/internal/menu/interfaces.ts"],"sourcesContent":["import type { MetaI18n, MicroApp, ResolveConf } from \"@next-core/types\";\nimport {\n symbolAppId,\n symbolMenuI18nNamespace,\n symbolOverrideApp,\n} from \"./constants.js\";\n\n/** 原始菜单数据。 */\nexport interface MenuRawData {\n menuId: string;\n title: string;\n app: [\n {\n appId: string;\n }\n ];\n icon?: unknown;\n link?: string;\n titleDataSource?: TitleDataSource;\n items?: MenuItemRawData[];\n type?: \"main\" | \"inject\";\n injectMenuGroupId?: string;\n defaultCollapsed?: boolean;\n defaultCollapsedBreakpoint?: number;\n dynamicItems?: boolean;\n itemsResolve?: ResolveConf;\n i18n?: MetaI18n;\n overrideApp?: MicroApp;\n}\n\n/** 原始菜单项数据。 */\nexport type MenuItemRawData = Omit<SidebarMenuSimpleItem, \"type\"> & {\n children?: MenuItemRawData[];\n type?: \"default\" | \"group\";\n sort?: number;\n if?: string | boolean;\n defaultExpanded?: boolean;\n groupId?: string;\n};\n\ninterface TitleDataSource {\n objectId: string;\n instanceId: string;\n attributeId?: string;\n}\n\n/** 侧边栏基本菜单项的配置。 */\nexport interface SidebarMenuSimpleItem {\n /** 菜单项文本。 */\n text: string;\n\n /** 菜单项对应的系统内地址。 */\n // to?: LocationDescriptor;\n to?: unknown;\n\n /** 菜单项对应的外部链接地址。 */\n href?: string;\n\n /** 菜单项的图标。 */\n // icon?: MenuIcon;\n icon?: unknown;\n\n /** 菜单项链接打开的目标。 */\n target?: string;\n\n type?: \"default\";\n\n /** 高亮菜单项时是否使用精确匹配来对比当前地址和菜单项地址。 */\n exact?: boolean;\n\n /** 设置额外包含的匹配高亮菜单项的地址列表。 */\n activeIncludes?: string[];\n\n /** 设置需要被排除的匹配高亮菜单项的地址列表。 */\n activeExcludes?: string[];\n\n /** 设置匹配高亮菜单项时是否还对 search 参数进行比较。 */\n activeMatchSearch?: boolean;\n\n /** @internal */\n key?: string;\n}\n\nexport interface RuntimeMenuItemRawData extends MenuItemRawData {\n children?: RuntimeMenuItemRawData[];\n [symbolAppId]: string;\n [symbolMenuI18nNamespace]?: string;\n [symbolOverrideApp]?: MicroApp;\n}\n\nexport interface RuntimeMenuRawData extends MenuRawData {\n items: RuntimeMenuItemRawData[];\n // [symbolShouldCache]?: boolean;\n [symbolMenuI18nNamespace]?: string;\n [symbolOverrideApp]?: MicroApp;\n}\n"],"mappings":"AACA,SACEA,WAAW,EACXC,uBAAuB,EACvBC,iBAAiB,QACZ,gBAAgB;;AAEvB"}
|
|
1
|
+
{"version":3,"file":"interfaces.js","names":["symbolAppId","symbolMenuI18nNamespace","symbolOverrideApp"],"sources":["../../../../src/internal/menu/interfaces.ts"],"sourcesContent":["import type { MetaI18n, MicroApp, ResolveConf } from \"@next-core/types\";\nimport {\n symbolAppId,\n symbolMenuI18nNamespace,\n symbolOverrideApp,\n} from \"./constants.js\";\n\n/** 原始菜单数据。 */\nexport interface MenuRawData {\n menuId: string;\n title: string;\n app: [\n {\n appId: string;\n }\n ];\n icon?: unknown;\n link?: string;\n titleDataSource?: TitleDataSource;\n items?: MenuItemRawData[];\n type?: \"main\" | \"inject\";\n injectMenuGroupId?: string;\n defaultCollapsed?: boolean;\n defaultCollapsedBreakpoint?: number;\n dynamicItems?: boolean;\n itemsResolve?: ResolveConf;\n i18n?: MetaI18n;\n overrideApp?: MicroApp;\n}\n\n/** 原始菜单项数据。 */\nexport type MenuItemRawData = Omit<SidebarMenuSimpleItem, \"type\"> & {\n children?: MenuItemRawData[];\n type?: \"default\" | \"group\";\n sort?: number;\n if?: string | boolean;\n defaultExpanded?: boolean;\n groupId?: string;\n};\n\ninterface TitleDataSource {\n objectId: string;\n instanceId: string;\n attributeId?: string;\n}\n\n/** 侧边栏基本菜单项的配置。 */\nexport interface SidebarMenuSimpleItem {\n /** 菜单项文本。 */\n text: string;\n\n /** 菜单项对应的系统内地址。 */\n // to?: LocationDescriptor;\n to?: unknown;\n\n /** 菜单项对应的外部链接地址。 */\n href?: string;\n\n /** 菜单项的图标。 */\n // icon?: MenuIcon;\n icon?: unknown;\n\n /** 菜单项链接打开的目标。 */\n target?: string;\n\n type?: \"default\";\n\n /** 高亮菜单项时是否使用精确匹配来对比当前地址和菜单项地址。 */\n exact?: boolean;\n\n /** 设置额外包含的匹配高亮菜单项的地址列表。 */\n activeIncludes?: string[];\n\n /** 设置需要被排除的匹配高亮菜单项的地址列表。 */\n activeExcludes?: string[];\n\n /** 设置匹配高亮菜单项时是否还对 search 参数进行比较。 */\n activeMatchSearch?: boolean;\n\n /** @internal */\n key?: string;\n}\n\nexport interface RuntimeMenuItemRawData extends MenuItemRawData {\n children?: RuntimeMenuItemRawData[];\n [symbolAppId]: string;\n [symbolMenuI18nNamespace]?: string;\n [symbolOverrideApp]?: MicroApp;\n}\n\nexport interface RuntimeMenuRawData extends MenuRawData {\n items: RuntimeMenuItemRawData[];\n // [symbolShouldCache]?: boolean;\n [symbolMenuI18nNamespace]?: string;\n [symbolOverrideApp]?: MicroApp;\n}\n"],"mappings":"AACA,SACEA,WAAW,EACXC,uBAAuB,EACvBC,iBAAiB,QACZ,gBAAgB;;AAEvB;;AAuBA;;AAgBA"}
|
|
@@ -16,18 +16,19 @@ function _mergeMenu() {
|
|
|
16
16
|
var validMenuList = [];
|
|
17
17
|
var injectWithMenus = new Map();
|
|
18
18
|
var menuWithI18n = new WeakMap();
|
|
19
|
-
|
|
19
|
+
var _loop = function* () {
|
|
20
20
|
if (menu.i18n) {
|
|
21
|
-
(
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
menuWithI18n.set(menu, menuI18nNamespace);
|
|
29
|
-
})();
|
|
21
|
+
var menuI18nNamespace = getI18nNamespace("menu", "".concat(menu.menuId, "~").concat(menu.app[0].appId, "+").concat(menu.instanceId));
|
|
22
|
+
// Support any language in `menu.i18n`.
|
|
23
|
+
Object.entries(menu.i18n).forEach(_ref => {
|
|
24
|
+
var [lang, resources] = _ref;
|
|
25
|
+
i18n.addResourceBundle(lang, menuI18nNamespace, resources);
|
|
26
|
+
});
|
|
27
|
+
menuWithI18n.set(menu, menuI18nNamespace);
|
|
30
28
|
}
|
|
29
|
+
};
|
|
30
|
+
for (var menu of menuList) {
|
|
31
|
+
yield* _loop();
|
|
31
32
|
}
|
|
32
33
|
yield Promise.all(menuList.map(menu => loadDynamicMenuItems(menu, runtimeContext, menuWithI18n)));
|
|
33
34
|
for (var _menu of menuList) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mergeMenu.js","names":["i18n","getI18nNamespace","symbolAppId","symbolMenuI18nNamespace","symbolOverrideApp","loadDynamicMenuItems","mergeMenu","_x","_x2","_mergeMenu","apply","arguments","_asyncToGenerator","menuList","runtimeContext","mainMenu","find","menu","type","undefined","validMenuList","injectWithMenus","Map","menuWithI18n","WeakMap","menuI18nNamespace","concat","menuId","app","appId","instanceId","Object","entries","forEach","_ref","lang","resources","addResourceBundle","set","Promise","all","map","_menu$items","items","length","injectMenuGroupId","injectingMenus","get","push","_objectSpread","flatMap","processGroupInject","overrideApp","item","_processGroupInject","foundInjectingMenus","groupId","delete","children","injectingMenu"],"sources":["../../../../src/internal/menu/mergeMenu.ts"],"sourcesContent":["import { i18n } from \"@next-core/i18n\";\nimport { getI18nNamespace } from \"../registerAppI18n.js\";\nimport {\n symbolAppId,\n symbolMenuI18nNamespace,\n symbolOverrideApp,\n} from \"./constants.js\";\nimport type {\n MenuItemRawData,\n MenuRawData,\n RuntimeMenuItemRawData,\n RuntimeMenuRawData,\n} from \"./interfaces.js\";\nimport type { RuntimeContext } from \"../interfaces.js\";\nimport { loadDynamicMenuItems } from \"./loadDynamicMenuItems.js\";\n\nexport async function mergeMenu(\n menuList: MenuRawData[],\n runtimeContext: RuntimeContext\n): Promise<RuntimeMenuRawData | undefined> {\n const mainMenu = menuList.find((menu) => menu.type !== \"inject\");\n if (!mainMenu) {\n return undefined;\n }\n const validMenuList: MenuRawData[] = [];\n const injectWithMenus = new Map<string, MenuRawData[]>();\n const menuWithI18n = new WeakMap<MenuRawData, string>();\n\n for (const menu of menuList) {\n if (menu.i18n) {\n const menuI18nNamespace = getI18nNamespace(\n \"menu\",\n `${menu.menuId}~${menu.app[0].appId}+${\n (menu as { instanceId?: string }).instanceId\n }`\n );\n // Support any language in `menu.i18n`.\n Object.entries(menu.i18n).forEach(([lang, resources]) => {\n i18n.addResourceBundle(lang, menuI18nNamespace, resources);\n });\n menuWithI18n.set(menu, menuI18nNamespace);\n }\n }\n\n await Promise.all(\n menuList.map((menu) =>\n loadDynamicMenuItems(menu, runtimeContext, menuWithI18n)\n )\n );\n\n for (const menu of menuList) {\n if (menu.items?.length) {\n if (menu.type === \"inject\" && menu.injectMenuGroupId) {\n let injectingMenus = injectWithMenus.get(menu.injectMenuGroupId);\n if (!injectingMenus) {\n injectingMenus = [];\n injectWithMenus.set(menu.injectMenuGroupId, injectingMenus);\n }\n injectingMenus.push(menu);\n } else {\n validMenuList.push(menu);\n }\n }\n }\n\n return {\n ...mainMenu,\n items: validMenuList.flatMap(\n (menu) =>\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n processGroupInject(menu.items, menu, injectWithMenus, menuWithI18n)!\n ),\n [symbolMenuI18nNamespace]: menuWithI18n.get(mainMenu),\n [symbolOverrideApp]: mainMenu.overrideApp,\n };\n}\n\nfunction processGroupInject(\n items: MenuItemRawData[] | undefined,\n menu: MenuRawData,\n injectWithMenus: Map<string, MenuRawData[]>,\n menuWithI18n: WeakMap<MenuRawData, string>\n): RuntimeMenuItemRawData[] | undefined {\n return items?.map((item) => {\n const foundInjectingMenus =\n item.groupId && injectWithMenus.get(item.groupId);\n if (foundInjectingMenus) {\n // Each menu to be injected with should be injected only once.\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n injectWithMenus.delete(item.groupId!);\n }\n return {\n ...item,\n children: (\n processGroupInject(\n item.children,\n menu,\n injectWithMenus,\n menuWithI18n\n ) ?? ([] as RuntimeMenuItemRawData[])\n ).concat(\n foundInjectingMenus\n ? foundInjectingMenus.flatMap(\n (injectingMenu) =>\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n processGroupInject(\n injectingMenu.items,\n injectingMenu,\n injectWithMenus,\n menuWithI18n\n )!\n )\n : ([] as RuntimeMenuItemRawData[])\n ),\n [symbolAppId]: menu.app[0].appId,\n [symbolMenuI18nNamespace]: menuWithI18n.get(menu),\n [symbolOverrideApp]: menu.overrideApp,\n };\n });\n}\n"],"mappings":";;AAAA,SAASA,IAAI,QAAQ,iBAAiB;AACtC,SAASC,gBAAgB,QAAQ,uBAAuB;AACxD,SACEC,WAAW,EACXC,uBAAuB,EACvBC,iBAAiB,QACZ,gBAAgB;AAQvB,SAASC,oBAAoB,QAAQ,2BAA2B;AAEhE,gBAAsBC,SAASA,CAAAC,EAAA,EAAAC,GAAA;EAAA,OAAAC,UAAA,CAAAC,KAAA,OAAAC,SAAA;AAAA;AA2D9B,SAAAF,WAAA;EAAAA,UAAA,GAAAG,iBAAA,CA3DM,WACLC,QAAuB,EACvBC,cAA8B,EACW;IACzC,IAAMC,QAAQ,GAAGF,QAAQ,CAACG,IAAI,CAAEC,IAAI,IAAKA,IAAI,CAACC,IAAI,KAAK,QAAQ,CAAC;IAChE,IAAI,CAACH,QAAQ,EAAE;MACb,OAAOI,SAAS;IAClB;IACA,IAAMC,aAA4B,GAAG,EAAE;IACvC,IAAMC,eAAe,GAAG,IAAIC,GAAG,EAAyB;IACxD,IAAMC,YAAY,GAAG,IAAIC,OAAO,EAAuB;
|
|
1
|
+
{"version":3,"file":"mergeMenu.js","names":["i18n","getI18nNamespace","symbolAppId","symbolMenuI18nNamespace","symbolOverrideApp","loadDynamicMenuItems","mergeMenu","_x","_x2","_mergeMenu","apply","arguments","_asyncToGenerator","menuList","runtimeContext","mainMenu","find","menu","type","undefined","validMenuList","injectWithMenus","Map","menuWithI18n","WeakMap","_loop","menuI18nNamespace","concat","menuId","app","appId","instanceId","Object","entries","forEach","_ref","lang","resources","addResourceBundle","set","Promise","all","map","_menu$items","items","length","injectMenuGroupId","injectingMenus","get","push","_objectSpread","flatMap","processGroupInject","overrideApp","item","_processGroupInject","foundInjectingMenus","groupId","delete","children","injectingMenu"],"sources":["../../../../src/internal/menu/mergeMenu.ts"],"sourcesContent":["import { i18n } from \"@next-core/i18n\";\nimport { getI18nNamespace } from \"../registerAppI18n.js\";\nimport {\n symbolAppId,\n symbolMenuI18nNamespace,\n symbolOverrideApp,\n} from \"./constants.js\";\nimport type {\n MenuItemRawData,\n MenuRawData,\n RuntimeMenuItemRawData,\n RuntimeMenuRawData,\n} from \"./interfaces.js\";\nimport type { RuntimeContext } from \"../interfaces.js\";\nimport { loadDynamicMenuItems } from \"./loadDynamicMenuItems.js\";\n\nexport async function mergeMenu(\n menuList: MenuRawData[],\n runtimeContext: RuntimeContext\n): Promise<RuntimeMenuRawData | undefined> {\n const mainMenu = menuList.find((menu) => menu.type !== \"inject\");\n if (!mainMenu) {\n return undefined;\n }\n const validMenuList: MenuRawData[] = [];\n const injectWithMenus = new Map<string, MenuRawData[]>();\n const menuWithI18n = new WeakMap<MenuRawData, string>();\n\n for (const menu of menuList) {\n if (menu.i18n) {\n const menuI18nNamespace = getI18nNamespace(\n \"menu\",\n `${menu.menuId}~${menu.app[0].appId}+${\n (menu as { instanceId?: string }).instanceId\n }`\n );\n // Support any language in `menu.i18n`.\n Object.entries(menu.i18n).forEach(([lang, resources]) => {\n i18n.addResourceBundle(lang, menuI18nNamespace, resources);\n });\n menuWithI18n.set(menu, menuI18nNamespace);\n }\n }\n\n await Promise.all(\n menuList.map((menu) =>\n loadDynamicMenuItems(menu, runtimeContext, menuWithI18n)\n )\n );\n\n for (const menu of menuList) {\n if (menu.items?.length) {\n if (menu.type === \"inject\" && menu.injectMenuGroupId) {\n let injectingMenus = injectWithMenus.get(menu.injectMenuGroupId);\n if (!injectingMenus) {\n injectingMenus = [];\n injectWithMenus.set(menu.injectMenuGroupId, injectingMenus);\n }\n injectingMenus.push(menu);\n } else {\n validMenuList.push(menu);\n }\n }\n }\n\n return {\n ...mainMenu,\n items: validMenuList.flatMap(\n (menu) =>\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n processGroupInject(menu.items, menu, injectWithMenus, menuWithI18n)!\n ),\n [symbolMenuI18nNamespace]: menuWithI18n.get(mainMenu),\n [symbolOverrideApp]: mainMenu.overrideApp,\n };\n}\n\nfunction processGroupInject(\n items: MenuItemRawData[] | undefined,\n menu: MenuRawData,\n injectWithMenus: Map<string, MenuRawData[]>,\n menuWithI18n: WeakMap<MenuRawData, string>\n): RuntimeMenuItemRawData[] | undefined {\n return items?.map((item) => {\n const foundInjectingMenus =\n item.groupId && injectWithMenus.get(item.groupId);\n if (foundInjectingMenus) {\n // Each menu to be injected with should be injected only once.\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n injectWithMenus.delete(item.groupId!);\n }\n return {\n ...item,\n children: (\n processGroupInject(\n item.children,\n menu,\n injectWithMenus,\n menuWithI18n\n ) ?? ([] as RuntimeMenuItemRawData[])\n ).concat(\n foundInjectingMenus\n ? foundInjectingMenus.flatMap(\n (injectingMenu) =>\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n processGroupInject(\n injectingMenu.items,\n injectingMenu,\n injectWithMenus,\n menuWithI18n\n )!\n )\n : ([] as RuntimeMenuItemRawData[])\n ),\n [symbolAppId]: menu.app[0].appId,\n [symbolMenuI18nNamespace]: menuWithI18n.get(menu),\n [symbolOverrideApp]: menu.overrideApp,\n };\n });\n}\n"],"mappings":"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"}
|
|
@@ -13,6 +13,8 @@ import { computeRealValue } from "./compute/computeRealValue.js";
|
|
|
13
13
|
import { isStrictMode, warnAboutStrictMode } from "../isStrictMode.js";
|
|
14
14
|
import { customTemplates } from "../CustomTemplates.js";
|
|
15
15
|
import { registerAppI18n } from "./registerAppI18n.js";
|
|
16
|
+
import { loadNotificationService } from "../Notification.js";
|
|
17
|
+
import { loadDialogService } from "../Dialog.js";
|
|
16
18
|
export function renderUseBrick(_x, _x2) {
|
|
17
19
|
return _renderUseBrick.apply(this, arguments);
|
|
18
20
|
}
|
|
@@ -94,6 +96,9 @@ export function unmountUseBrick(_ref2, mountResult) {
|
|
|
94
96
|
var _rendererContext;
|
|
95
97
|
export function initializePreviewBootstrap(bootstrapData) {
|
|
96
98
|
_internalApiSetBootstrapData(bootstrapData);
|
|
99
|
+
// Todo: allow configuration of notification bricks.
|
|
100
|
+
loadNotificationService("shoelace.show-notification");
|
|
101
|
+
loadDialogService("shoelace.show-dialog");
|
|
97
102
|
}
|
|
98
103
|
export function renderPreviewBricks(_x3, _x4) {
|
|
99
104
|
return _renderPreviewBricks.apply(this, arguments);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"secret_internals.js","names":["flushStableLoadBricks","loadBricksImperatively","pick","_internalApiGetRuntimeContext","_internalApiGetStoryboardInBootstrapData","_internalApiSetBootstrapData","getBrickPackages","renderBrick","renderBricks","RendererContext","mountTree","unmountTree","httpErrorToString","applyMode","applyTheme","setMode","setTheme","RenderTag","computeRealValue","isStrictMode","warnAboutStrictMode","customTemplates","registerAppI18n","renderUseBrick","_x","_x2","_renderUseBrick","apply","arguments","_asyncToGenerator","useBrick","data","_runtimeContext$tplSt","_output$node","tplStateStoreScope","runtimeContext","_objectSpread","pendingPermissionsPreCheck","tplStateStoreMap","Map","rendererContext","renderRoot","tag","ROOT","createPortal","transform","strict","output","properties","Promise","all","blockingList","map","store","waitForAll","node","portal","Error","child","tagName","type","mountUseBrick","_ref","element","portalRoot","document","querySelector","createElement","appendChild","dispatchOnMount","initializeScrollIntoView","initializeMediaChange","unmountUseBrick","_ref2","mountResult","remove","dispatchOnUnmount","dispose","_rendererContext","initializePreviewBootstrap","bootstrapData","renderPreviewBricks","_x3","_x4","_renderPreviewBricks","bricks","mountPoints","options","length","undefined","previousRendererContext","container","main","failed","push","values","error","BRICK","textContent","return","menuRequests","sandbox","_options$theme","theme","dispatchBeforePageLoad","window","scrollTo","dispatchPageLoad","legacyDoTransform","to","noInject","loadBricks","updateStoryboard","appId","storyboardPatch","storyboard","Object","assign","$$fulfilling","$$fulfilled","$$registerCustomTemplateProcessed","updateStoryboardByRoute","newRoute","match","getKey","route","concat","path","exact","replaceRoute","routes","key","routeKey","unshift","updateStoryboardByTemplate","newTemplate","settings","tplName","name","define","proxy","state","updateTemplatePreviewSettings","templateId","_updatePreviewSettings","brick","updateStoryboardBySnippet","snippetData","_snippetData$bricks","snippetId","updateSnippetPreviewSettings","previewRouteIndex","findIndex","newPreviewRoute","menu","splice"],"sources":["../../../src/internal/secret_internals.ts"],"sourcesContent":["import type {\n BootstrapData,\n BrickConf,\n CustomTemplate,\n RouteConf,\n SiteTheme,\n Storyboard,\n UseSingleBrickConf,\n} from \"@next-core/types\";\nimport {\n flushStableLoadBricks,\n loadBricksImperatively,\n} from \"@next-core/loader\";\nimport { pick } from \"lodash\";\nimport {\n _internalApiGetRuntimeContext,\n _internalApiGetStoryboardInBootstrapData,\n _internalApiSetBootstrapData,\n getBrickPackages,\n} from \"./Runtime.js\";\nimport { RenderOutput, renderBrick, renderBricks } from \"./Renderer.js\";\nimport { RendererContext } from \"./RendererContext.js\";\nimport type { DataStore } from \"./data/DataStore.js\";\nimport type { RenderRoot, RuntimeContext } from \"./interfaces.js\";\nimport { mountTree, unmountTree } from \"./mount.js\";\nimport { httpErrorToString } from \"../handleHttpError.js\";\nimport { applyMode, applyTheme, setMode, setTheme } from \"../themeAndMode.js\";\nimport { RenderTag } from \"./enums.js\";\nimport { computeRealValue } from \"./compute/computeRealValue.js\";\nimport { isStrictMode, warnAboutStrictMode } from \"../isStrictMode.js\";\nimport { customTemplates } from \"../CustomTemplates.js\";\nimport { registerAppI18n } from \"./registerAppI18n.js\";\n\nexport interface RenderUseBrickResult {\n tagName: string | null;\n renderRoot: RenderRoot;\n rendererContext: RendererContext;\n}\n\nexport async function renderUseBrick(\n useBrick: UseSingleBrickConf,\n data: unknown\n): Promise<RenderUseBrickResult> {\n const tplStateStoreScope: DataStore<\"STATE\">[] = [];\n const runtimeContext: RuntimeContext = {\n ..._internalApiGetRuntimeContext()!,\n data,\n pendingPermissionsPreCheck: [],\n tplStateStoreScope,\n };\n\n runtimeContext.tplStateStoreMap ??= new Map();\n\n const rendererContext = new RendererContext(\"useBrick\");\n\n const renderRoot: RenderRoot = {\n tag: RenderTag.ROOT,\n // Will set during `mountUseBrick`\n createPortal: null!,\n };\n\n const transform = (useBrick as { transform?: Record<string, unknown> })\n .transform;\n const strict = isStrictMode();\n if (transform) {\n warnAboutStrictMode(\n strict,\n \"`useBrick.transform`\",\n 'please use \"properties\" instead, check your useBrick:',\n useBrick\n );\n }\n\n const output = await renderBrick(\n renderRoot,\n strict\n ? useBrick\n : {\n ...useBrick,\n properties: {\n ...useBrick.properties,\n ...transform,\n },\n },\n runtimeContext,\n rendererContext\n );\n\n flushStableLoadBricks();\n\n await Promise.all([\n ...output.blockingList,\n // Wait for local tpl state stores belong to current `useBrick` only.\n ...tplStateStoreScope.map((store) => store.waitForAll()),\n ...runtimeContext.pendingPermissionsPreCheck,\n ]);\n\n if (output.node?.portal) {\n throw new Error(\"The root brick of useBrick cannot be a portal brick\");\n }\n\n renderRoot.child = output.node;\n\n const tagName = output.node ? output.node.type : null;\n\n return { tagName, renderRoot, rendererContext };\n}\n\nexport interface MountUseBrickResult {\n portal?: HTMLElement;\n}\n\nexport function mountUseBrick(\n { renderRoot, rendererContext }: RenderUseBrickResult,\n element: HTMLElement\n): MountUseBrickResult {\n let portal: HTMLElement | undefined;\n renderRoot.createPortal = () => {\n const portalRoot = document.querySelector(\n \"#portal-mount-point\"\n ) as HTMLElement;\n portal = document.createElement(\"div\");\n portalRoot.appendChild(portal);\n return portal;\n };\n\n mountTree(renderRoot, element);\n\n rendererContext.dispatchOnMount();\n rendererContext.initializeScrollIntoView();\n rendererContext.initializeMediaChange();\n\n return {\n portal,\n };\n}\n\nexport function unmountUseBrick(\n { rendererContext }: RenderUseBrickResult,\n mountResult: MountUseBrickResult\n): void {\n // if (mountResult.mainBrick) {\n // mountResult.mainBrick.unmount();\n // }\n if (mountResult.portal) {\n unmountTree(mountResult.portal);\n mountResult.portal.remove();\n }\n rendererContext.dispatchOnUnmount();\n rendererContext.dispose();\n}\n\nlet _rendererContext: RendererContext;\n\nexport function initializePreviewBootstrap(\n bootstrapData: Partial<BootstrapData>\n) {\n _internalApiSetBootstrapData(bootstrapData);\n}\n\nexport async function renderPreviewBricks(\n bricks: BrickConf[],\n mountPoints: {\n main: HTMLElement;\n portal: HTMLElement;\n },\n options: {\n sandbox?: boolean;\n theme?: SiteTheme;\n } = {}\n) {\n const runtimeContext = {\n pendingPermissionsPreCheck: [],\n tplStateStoreMap: new Map<string, DataStore<\"STATE\">>(),\n } as Partial<RuntimeContext> as RuntimeContext;\n\n const previousRendererContext = _rendererContext;\n const rendererContext = (_rendererContext = new RendererContext(\"router\"));\n\n const renderRoot: RenderRoot = {\n tag: RenderTag.ROOT,\n container: mountPoints.main,\n createPortal: mountPoints.portal,\n };\n\n let failed = false;\n let output: RenderOutput;\n try {\n output = await renderBricks(\n renderRoot,\n bricks,\n runtimeContext,\n rendererContext\n );\n\n output.blockingList.push(\n ...[...runtimeContext.tplStateStoreMap.values()].map((store) =>\n store.waitForAll()\n ),\n ...runtimeContext.pendingPermissionsPreCheck\n );\n\n flushStableLoadBricks();\n\n await Promise.all(output.blockingList);\n } catch (error) {\n failed = true;\n output = {\n node: {\n tag: RenderTag.BRICK,\n type: \"div\",\n properties: {\n textContent: httpErrorToString(error),\n },\n return: renderRoot,\n runtimeContext: null!,\n },\n blockingList: [],\n menuRequests: [],\n };\n }\n\n renderRoot.child = output.node;\n\n previousRendererContext?.dispose();\n unmountTree(mountPoints.main);\n unmountTree(mountPoints.portal);\n\n if (options.sandbox) {\n setTheme(options.theme ?? \"light\");\n setMode(\"default\");\n\n if (!failed) {\n rendererContext.dispatchBeforePageLoad();\n }\n\n applyTheme();\n applyMode();\n }\n\n mountTree(renderRoot);\n\n if (options.sandbox) {\n window.scrollTo(0, 0);\n }\n\n if (!failed) {\n rendererContext.dispatchPageLoad();\n // rendererContext.dispatchAnchorLoad();\n rendererContext.dispatchOnMount();\n rendererContext.initializeScrollIntoView();\n rendererContext.initializeMediaChange();\n }\n}\n\nexport function legacyDoTransform(\n data: unknown,\n to: unknown,\n options?: unknown\n) {\n if (options) {\n throw new Error(\"Legacy doTransform does not support options in v3\");\n }\n return computeRealValue(\n to,\n {\n ..._internalApiGetRuntimeContext()!,\n data,\n },\n {\n noInject: true,\n }\n );\n}\n\n// istanbul ignore next\nexport function loadBricks(bricks: string[] | Set<string>) {\n return loadBricksImperatively(bricks, getBrickPackages());\n}\n\nexport function updateStoryboard(\n appId: string,\n storyboardPatch: Partial<Storyboard>\n): void {\n const storyboard = _internalApiGetStoryboardInBootstrapData(appId)!;\n Object.assign(storyboard, {\n ...storyboardPatch,\n $$fulfilling: null,\n $$fulfilled: true,\n $$registerCustomTemplateProcessed: false,\n });\n registerAppI18n(storyboard);\n}\n\nexport function updateStoryboardByRoute(appId: string, newRoute: RouteConf) {\n const storyboard = _internalApiGetStoryboardInBootstrapData(appId)!;\n let match = false;\n const getKey = (route: RouteConf): string => `${route.path}.${route.exact}`;\n const replaceRoute = (routes: RouteConf[], key: string): RouteConf[] => {\n return routes.map((route) => {\n const routeKey = getKey(route);\n if (route.type === \"routes\") {\n route.routes = replaceRoute(route.routes, key);\n return route;\n } else if (routeKey === key) {\n match = true;\n return newRoute;\n } else {\n return route;\n }\n });\n };\n storyboard.routes = replaceRoute(storyboard.routes, getKey(newRoute));\n if (!match) {\n storyboard.routes.unshift(newRoute);\n }\n}\n\nexport function updateStoryboardByTemplate(\n appId: string,\n newTemplate: CustomTemplate,\n settings: unknown\n): void {\n const tplName = `${appId}.${newTemplate.name}`;\n // customTemplateRegistry.delete(tplName);\n customTemplates.define(tplName, {\n bricks: newTemplate.bricks,\n proxy: newTemplate.proxy,\n state: newTemplate.state,\n });\n updateTemplatePreviewSettings(appId, newTemplate.name, settings);\n}\n\nexport function updateTemplatePreviewSettings(\n appId: string,\n templateId: string,\n settings?: unknown\n): void {\n _updatePreviewSettings(\n appId,\n `\\${APP.homepage}/_dev_only_/template-preview/${templateId}`,\n [\n {\n brick: templateId,\n ...pick(settings, \"properties\", \"events\", \"lifeCycle\", \"context\"),\n },\n ]\n );\n}\n\nexport function updateStoryboardBySnippet(\n appId: string,\n snippetData: {\n snippetId: string;\n bricks?: BrickConf[];\n }\n): void {\n _updatePreviewSettings(\n appId,\n `\\${APP.homepage}/_dev_only_/snippet-preview/${snippetData.snippetId}`,\n snippetData.bricks?.length ? snippetData.bricks : [{ brick: \"span\" }]\n );\n}\n\nexport const updateSnippetPreviewSettings = updateStoryboardBySnippet;\n\nfunction _updatePreviewSettings(\n appId: string,\n path: string,\n bricks: BrickConf[]\n) {\n const { routes } = _internalApiGetStoryboardInBootstrapData(appId)!;\n const previewRouteIndex = routes.findIndex((route) => route.path === path);\n const newPreviewRoute: RouteConf = {\n path,\n bricks,\n menu: false,\n exact: true,\n };\n if (previewRouteIndex === -1) {\n routes.unshift(newPreviewRoute);\n } else {\n routes.splice(previewRouteIndex, 1, newPreviewRoute);\n }\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"secret_internals.js","names":["flushStableLoadBricks","loadBricksImperatively","pick","_internalApiGetRuntimeContext","_internalApiGetStoryboardInBootstrapData","_internalApiSetBootstrapData","getBrickPackages","renderBrick","renderBricks","RendererContext","mountTree","unmountTree","httpErrorToString","applyMode","applyTheme","setMode","setTheme","RenderTag","computeRealValue","isStrictMode","warnAboutStrictMode","customTemplates","registerAppI18n","loadNotificationService","loadDialogService","renderUseBrick","_x","_x2","_renderUseBrick","apply","arguments","_asyncToGenerator","useBrick","data","_runtimeContext$tplSt","_output$node","tplStateStoreScope","runtimeContext","_objectSpread","pendingPermissionsPreCheck","tplStateStoreMap","Map","rendererContext","renderRoot","tag","ROOT","createPortal","transform","strict","output","properties","Promise","all","blockingList","map","store","waitForAll","node","portal","Error","child","tagName","type","mountUseBrick","_ref","element","portalRoot","document","querySelector","createElement","appendChild","dispatchOnMount","initializeScrollIntoView","initializeMediaChange","unmountUseBrick","_ref2","mountResult","remove","dispatchOnUnmount","dispose","_rendererContext","initializePreviewBootstrap","bootstrapData","renderPreviewBricks","_x3","_x4","_renderPreviewBricks","bricks","mountPoints","options","length","undefined","previousRendererContext","container","main","failed","push","values","error","BRICK","textContent","return","menuRequests","sandbox","_options$theme","theme","dispatchBeforePageLoad","window","scrollTo","dispatchPageLoad","legacyDoTransform","to","noInject","loadBricks","updateStoryboard","appId","storyboardPatch","storyboard","Object","assign","$$fulfilling","$$fulfilled","$$registerCustomTemplateProcessed","updateStoryboardByRoute","newRoute","match","getKey","route","concat","path","exact","replaceRoute","routes","key","routeKey","unshift","updateStoryboardByTemplate","newTemplate","settings","tplName","name","define","proxy","state","updateTemplatePreviewSettings","templateId","_updatePreviewSettings","brick","updateStoryboardBySnippet","snippetData","_snippetData$bricks","snippetId","updateSnippetPreviewSettings","previewRouteIndex","findIndex","newPreviewRoute","menu","splice"],"sources":["../../../src/internal/secret_internals.ts"],"sourcesContent":["import type {\n BootstrapData,\n BrickConf,\n CustomTemplate,\n RouteConf,\n SiteTheme,\n Storyboard,\n UseSingleBrickConf,\n} from \"@next-core/types\";\nimport {\n flushStableLoadBricks,\n loadBricksImperatively,\n} from \"@next-core/loader\";\nimport { pick } from \"lodash\";\nimport {\n _internalApiGetRuntimeContext,\n _internalApiGetStoryboardInBootstrapData,\n _internalApiSetBootstrapData,\n getBrickPackages,\n} from \"./Runtime.js\";\nimport { RenderOutput, renderBrick, renderBricks } from \"./Renderer.js\";\nimport { RendererContext } from \"./RendererContext.js\";\nimport type { DataStore } from \"./data/DataStore.js\";\nimport type { RenderRoot, RuntimeContext } from \"./interfaces.js\";\nimport { mountTree, unmountTree } from \"./mount.js\";\nimport { httpErrorToString } from \"../handleHttpError.js\";\nimport { applyMode, applyTheme, setMode, setTheme } from \"../themeAndMode.js\";\nimport { RenderTag } from \"./enums.js\";\nimport { computeRealValue } from \"./compute/computeRealValue.js\";\nimport { isStrictMode, warnAboutStrictMode } from \"../isStrictMode.js\";\nimport { customTemplates } from \"../CustomTemplates.js\";\nimport { registerAppI18n } from \"./registerAppI18n.js\";\nimport { loadNotificationService } from \"../Notification.js\";\nimport { loadDialogService } from \"../Dialog.js\";\n\nexport interface RenderUseBrickResult {\n tagName: string | null;\n renderRoot: RenderRoot;\n rendererContext: RendererContext;\n}\n\nexport async function renderUseBrick(\n useBrick: UseSingleBrickConf,\n data: unknown\n): Promise<RenderUseBrickResult> {\n const tplStateStoreScope: DataStore<\"STATE\">[] = [];\n const runtimeContext: RuntimeContext = {\n ..._internalApiGetRuntimeContext()!,\n data,\n pendingPermissionsPreCheck: [],\n tplStateStoreScope,\n };\n\n runtimeContext.tplStateStoreMap ??= new Map();\n\n const rendererContext = new RendererContext(\"useBrick\");\n\n const renderRoot: RenderRoot = {\n tag: RenderTag.ROOT,\n // Will set during `mountUseBrick`\n createPortal: null!,\n };\n\n const transform = (useBrick as { transform?: Record<string, unknown> })\n .transform;\n const strict = isStrictMode();\n if (transform) {\n warnAboutStrictMode(\n strict,\n \"`useBrick.transform`\",\n 'please use \"properties\" instead, check your useBrick:',\n useBrick\n );\n }\n\n const output = await renderBrick(\n renderRoot,\n strict\n ? useBrick\n : {\n ...useBrick,\n properties: {\n ...useBrick.properties,\n ...transform,\n },\n },\n runtimeContext,\n rendererContext\n );\n\n flushStableLoadBricks();\n\n await Promise.all([\n ...output.blockingList,\n // Wait for local tpl state stores belong to current `useBrick` only.\n ...tplStateStoreScope.map((store) => store.waitForAll()),\n ...runtimeContext.pendingPermissionsPreCheck,\n ]);\n\n if (output.node?.portal) {\n throw new Error(\"The root brick of useBrick cannot be a portal brick\");\n }\n\n renderRoot.child = output.node;\n\n const tagName = output.node ? output.node.type : null;\n\n return { tagName, renderRoot, rendererContext };\n}\n\nexport interface MountUseBrickResult {\n portal?: HTMLElement;\n}\n\nexport function mountUseBrick(\n { renderRoot, rendererContext }: RenderUseBrickResult,\n element: HTMLElement\n): MountUseBrickResult {\n let portal: HTMLElement | undefined;\n renderRoot.createPortal = () => {\n const portalRoot = document.querySelector(\n \"#portal-mount-point\"\n ) as HTMLElement;\n portal = document.createElement(\"div\");\n portalRoot.appendChild(portal);\n return portal;\n };\n\n mountTree(renderRoot, element);\n\n rendererContext.dispatchOnMount();\n rendererContext.initializeScrollIntoView();\n rendererContext.initializeMediaChange();\n\n return {\n portal,\n };\n}\n\nexport function unmountUseBrick(\n { rendererContext }: RenderUseBrickResult,\n mountResult: MountUseBrickResult\n): void {\n // if (mountResult.mainBrick) {\n // mountResult.mainBrick.unmount();\n // }\n if (mountResult.portal) {\n unmountTree(mountResult.portal);\n mountResult.portal.remove();\n }\n rendererContext.dispatchOnUnmount();\n rendererContext.dispose();\n}\n\nlet _rendererContext: RendererContext;\n\nexport function initializePreviewBootstrap(\n bootstrapData: Partial<BootstrapData>\n) {\n _internalApiSetBootstrapData(bootstrapData);\n // Todo: allow configuration of notification bricks.\n loadNotificationService(\"shoelace.show-notification\");\n loadDialogService(\"shoelace.show-dialog\");\n}\n\nexport async function renderPreviewBricks(\n bricks: BrickConf[],\n mountPoints: {\n main: HTMLElement;\n portal: HTMLElement;\n },\n options: {\n sandbox?: boolean;\n theme?: SiteTheme;\n } = {}\n) {\n const runtimeContext = {\n pendingPermissionsPreCheck: [],\n tplStateStoreMap: new Map<string, DataStore<\"STATE\">>(),\n } as Partial<RuntimeContext> as RuntimeContext;\n\n const previousRendererContext = _rendererContext;\n const rendererContext = (_rendererContext = new RendererContext(\"router\"));\n\n const renderRoot: RenderRoot = {\n tag: RenderTag.ROOT,\n container: mountPoints.main,\n createPortal: mountPoints.portal,\n };\n\n let failed = false;\n let output: RenderOutput;\n try {\n output = await renderBricks(\n renderRoot,\n bricks,\n runtimeContext,\n rendererContext\n );\n\n output.blockingList.push(\n ...[...runtimeContext.tplStateStoreMap.values()].map((store) =>\n store.waitForAll()\n ),\n ...runtimeContext.pendingPermissionsPreCheck\n );\n\n flushStableLoadBricks();\n\n await Promise.all(output.blockingList);\n } catch (error) {\n failed = true;\n output = {\n node: {\n tag: RenderTag.BRICK,\n type: \"div\",\n properties: {\n textContent: httpErrorToString(error),\n },\n return: renderRoot,\n runtimeContext: null!,\n },\n blockingList: [],\n menuRequests: [],\n };\n }\n\n renderRoot.child = output.node;\n\n previousRendererContext?.dispose();\n unmountTree(mountPoints.main);\n unmountTree(mountPoints.portal);\n\n if (options.sandbox) {\n setTheme(options.theme ?? \"light\");\n setMode(\"default\");\n\n if (!failed) {\n rendererContext.dispatchBeforePageLoad();\n }\n\n applyTheme();\n applyMode();\n }\n\n mountTree(renderRoot);\n\n if (options.sandbox) {\n window.scrollTo(0, 0);\n }\n\n if (!failed) {\n rendererContext.dispatchPageLoad();\n // rendererContext.dispatchAnchorLoad();\n rendererContext.dispatchOnMount();\n rendererContext.initializeScrollIntoView();\n rendererContext.initializeMediaChange();\n }\n}\n\nexport function legacyDoTransform(\n data: unknown,\n to: unknown,\n options?: unknown\n) {\n if (options) {\n throw new Error(\"Legacy doTransform does not support options in v3\");\n }\n return computeRealValue(\n to,\n {\n ..._internalApiGetRuntimeContext()!,\n data,\n },\n {\n noInject: true,\n }\n );\n}\n\n// istanbul ignore next\nexport function loadBricks(bricks: string[] | Set<string>) {\n return loadBricksImperatively(bricks, getBrickPackages());\n}\n\nexport function updateStoryboard(\n appId: string,\n storyboardPatch: Partial<Storyboard>\n): void {\n const storyboard = _internalApiGetStoryboardInBootstrapData(appId)!;\n Object.assign(storyboard, {\n ...storyboardPatch,\n $$fulfilling: null,\n $$fulfilled: true,\n $$registerCustomTemplateProcessed: false,\n });\n registerAppI18n(storyboard);\n}\n\nexport function updateStoryboardByRoute(appId: string, newRoute: RouteConf) {\n const storyboard = _internalApiGetStoryboardInBootstrapData(appId)!;\n let match = false;\n const getKey = (route: RouteConf): string => `${route.path}.${route.exact}`;\n const replaceRoute = (routes: RouteConf[], key: string): RouteConf[] => {\n return routes.map((route) => {\n const routeKey = getKey(route);\n if (route.type === \"routes\") {\n route.routes = replaceRoute(route.routes, key);\n return route;\n } else if (routeKey === key) {\n match = true;\n return newRoute;\n } else {\n return route;\n }\n });\n };\n storyboard.routes = replaceRoute(storyboard.routes, getKey(newRoute));\n if (!match) {\n storyboard.routes.unshift(newRoute);\n }\n}\n\nexport function updateStoryboardByTemplate(\n appId: string,\n newTemplate: CustomTemplate,\n settings: unknown\n): void {\n const tplName = `${appId}.${newTemplate.name}`;\n // customTemplateRegistry.delete(tplName);\n customTemplates.define(tplName, {\n bricks: newTemplate.bricks,\n proxy: newTemplate.proxy,\n state: newTemplate.state,\n });\n updateTemplatePreviewSettings(appId, newTemplate.name, settings);\n}\n\nexport function updateTemplatePreviewSettings(\n appId: string,\n templateId: string,\n settings?: unknown\n): void {\n _updatePreviewSettings(\n appId,\n `\\${APP.homepage}/_dev_only_/template-preview/${templateId}`,\n [\n {\n brick: templateId,\n ...pick(settings, \"properties\", \"events\", \"lifeCycle\", \"context\"),\n },\n ]\n );\n}\n\nexport function updateStoryboardBySnippet(\n appId: string,\n snippetData: {\n snippetId: string;\n bricks?: BrickConf[];\n }\n): void {\n _updatePreviewSettings(\n appId,\n `\\${APP.homepage}/_dev_only_/snippet-preview/${snippetData.snippetId}`,\n snippetData.bricks?.length ? snippetData.bricks : [{ brick: \"span\" }]\n );\n}\n\nexport const updateSnippetPreviewSettings = updateStoryboardBySnippet;\n\nfunction _updatePreviewSettings(\n appId: string,\n path: string,\n bricks: BrickConf[]\n) {\n const { routes } = _internalApiGetStoryboardInBootstrapData(appId)!;\n const previewRouteIndex = routes.findIndex((route) => route.path === path);\n const newPreviewRoute: RouteConf = {\n path,\n bricks,\n menu: false,\n exact: true,\n };\n if (previewRouteIndex === -1) {\n routes.unshift(newPreviewRoute);\n } else {\n routes.splice(previewRouteIndex, 1, newPreviewRoute);\n }\n}\n"],"mappings":";;AASA,SACEA,qBAAqB,EACrBC,sBAAsB,QACjB,mBAAmB;AAC1B,SAASC,IAAI,QAAQ,QAAQ;AAC7B,SACEC,6BAA6B,EAC7BC,wCAAwC,EACxCC,4BAA4B,EAC5BC,gBAAgB,QACX,cAAc;AACrB,SAAuBC,WAAW,EAAEC,YAAY,QAAQ,eAAe;AACvE,SAASC,eAAe,QAAQ,sBAAsB;AAGtD,SAASC,SAAS,EAAEC,WAAW,QAAQ,YAAY;AACnD,SAASC,iBAAiB,QAAQ,uBAAuB;AACzD,SAASC,SAAS,EAAEC,UAAU,EAAEC,OAAO,EAAEC,QAAQ,QAAQ,oBAAoB;AAC7E,SAASC,SAAS,QAAQ,YAAY;AACtC,SAASC,gBAAgB,QAAQ,+BAA+B;AAChE,SAASC,YAAY,EAAEC,mBAAmB,QAAQ,oBAAoB;AACtE,SAASC,eAAe,QAAQ,uBAAuB;AACvD,SAASC,eAAe,QAAQ,sBAAsB;AACtD,SAASC,uBAAuB,QAAQ,oBAAoB;AAC5D,SAASC,iBAAiB,QAAQ,cAAc;AAQhD,gBAAsBC,cAAcA,CAAAC,EAAA,EAAAC,GAAA;EAAA,OAAAC,eAAA,CAAAC,KAAA,OAAAC,SAAA;AAAA;AAmEnC,SAAAF,gBAAA;EAAAA,eAAA,GAAAG,iBAAA,CAnEM,WACLC,QAA4B,EAC5BC,IAAa,EACkB;IAAA,IAAAC,qBAAA,EAAAC,YAAA;IAC/B,IAAMC,kBAAwC,GAAG,EAAE;IACnD,IAAMC,cAA8B,GAAAC,aAAA,CAAAA,aAAA,KAC/BnC,6BAA6B,EAAE;MAClC8B,IAAI;MACJM,0BAA0B,EAAE,EAAE;MAC9BH;IAAkB,EACnB;IAED,CAAAF,qBAAA,GAAAG,cAAc,CAACG,gBAAgB,cAAAN,qBAAA,cAAAA,qBAAA,GAA/BG,cAAc,CAACG,gBAAgB,GAAK,IAAIC,GAAG,EAAE;IAE7C,IAAMC,eAAe,GAAG,IAAIjC,eAAe,CAAC,UAAU,CAAC;IAEvD,IAAMkC,UAAsB,GAAG;MAC7BC,GAAG,EAAE3B,SAAS,CAAC4B,IAAI;MACnB;MACAC,YAAY,EAAE;IAChB,CAAC;IAED,IAAMC,SAAS,GAAIf,QAAQ,CACxBe,SAAS;IACZ,IAAMC,MAAM,GAAG7B,YAAY,EAAE;IAC7B,IAAI4B,SAAS,EAAE;MACb3B,mBAAmB,CACjB4B,MAAM,EACN,sBAAsB,EACtB,uDAAuD,EACvDhB,QAAQ,CACT;IACH;IAEA,IAAMiB,MAAM,SAAS1C,WAAW,CAC9BoC,UAAU,EACVK,MAAM,GACFhB,QAAQ,GAAAM,aAAA,CAAAA,aAAA,KAEHN,QAAQ;MACXkB,UAAU,EAAAZ,aAAA,CAAAA,aAAA,KACLN,QAAQ,CAACkB,UAAU,GACnBH,SAAS;IACb,EACF,EACLV,cAAc,EACdK,eAAe,CAChB;IAED1C,qBAAqB,EAAE;IAEvB,MAAMmD,OAAO,CAACC,GAAG,CAAC,CAChB,GAAGH,MAAM,CAACI,YAAY;IACtB;IACA,GAAGjB,kBAAkB,CAACkB,GAAG,CAAEC,KAAK,IAAKA,KAAK,CAACC,UAAU,EAAE,CAAC,EACxD,GAAGnB,cAAc,CAACE,0BAA0B,CAC7C,CAAC;IAEF,KAAAJ,YAAA,GAAIc,MAAM,CAACQ,IAAI,cAAAtB,YAAA,eAAXA,YAAA,CAAauB,MAAM,EAAE;MACvB,MAAM,IAAIC,KAAK,CAAC,qDAAqD,CAAC;IACxE;IAEAhB,UAAU,CAACiB,KAAK,GAAGX,MAAM,CAACQ,IAAI;IAE9B,IAAMI,OAAO,GAAGZ,MAAM,CAACQ,IAAI,GAAGR,MAAM,CAACQ,IAAI,CAACK,IAAI,GAAG,IAAI;IAErD,OAAO;MAAED,OAAO;MAAElB,UAAU;MAAED;IAAgB,CAAC;EACjD,CAAC;EAAA,OAAAd,eAAA,CAAAC,KAAA,OAAAC,SAAA;AAAA;AAMD,OAAO,SAASiC,aAAaA,CAAAC,IAAA,EAE3BC,OAAoB,EACC;EAAA,IAFrB;IAAEtB,UAAU;IAAED;EAAsC,CAAC,GAAAsB,IAAA;EAGrD,IAAIN,MAA+B;EACnCf,UAAU,CAACG,YAAY,GAAG,MAAM;IAC9B,IAAMoB,UAAU,GAAGC,QAAQ,CAACC,aAAa,CACvC,qBAAqB,CACP;IAChBV,MAAM,GAAGS,QAAQ,CAACE,aAAa,CAAC,KAAK,CAAC;IACtCH,UAAU,CAACI,WAAW,CAACZ,MAAM,CAAC;IAC9B,OAAOA,MAAM;EACf,CAAC;EAEDhD,SAAS,CAACiC,UAAU,EAAEsB,OAAO,CAAC;EAE9BvB,eAAe,CAAC6B,eAAe,EAAE;EACjC7B,eAAe,CAAC8B,wBAAwB,EAAE;EAC1C9B,eAAe,CAAC+B,qBAAqB,EAAE;EAEvC,OAAO;IACLf;EACF,CAAC;AACH;AAEA,OAAO,SAASgB,eAAeA,CAAAC,KAAA,EAE7BC,WAAgC,EAC1B;EAAA,IAFN;IAAElC;EAAsC,CAAC,GAAAiC,KAAA;EAGzC;EACA;EACA;EACA,IAAIC,WAAW,CAAClB,MAAM,EAAE;IACtB/C,WAAW,CAACiE,WAAW,CAAClB,MAAM,CAAC;IAC/BkB,WAAW,CAAClB,MAAM,CAACmB,MAAM,EAAE;EAC7B;EACAnC,eAAe,CAACoC,iBAAiB,EAAE;EACnCpC,eAAe,CAACqC,OAAO,EAAE;AAC3B;AAEA,IAAIC,gBAAiC;AAErC,OAAO,SAASC,0BAA0BA,CACxCC,aAAqC,EACrC;EACA7E,4BAA4B,CAAC6E,aAAa,CAAC;EAC3C;EACA3D,uBAAuB,CAAC,4BAA4B,CAAC;EACrDC,iBAAiB,CAAC,sBAAsB,CAAC;AAC3C;AAEA,gBAAsB2D,mBAAmBA,CAAAC,GAAA,EAAAC,GAAA;EAAA,OAAAC,oBAAA,CAAAzD,KAAA,OAAAC,SAAA;AAAA;AA6FxC,SAAAwD,qBAAA;EAAAA,oBAAA,GAAAvD,iBAAA,CA7FM,WACLwD,MAAmB,EACnBC,WAGC,EAKD;IAAA,IAJAC,OAGC,GAAA3D,SAAA,CAAA4D,MAAA,QAAA5D,SAAA,QAAA6D,SAAA,GAAA7D,SAAA,MAAG,CAAC,CAAC;IAEN,IAAMO,cAAc,GAAG;MACrBE,0BAA0B,EAAE,EAAE;MAC9BC,gBAAgB,EAAE,IAAIC,GAAG;IAC3B,CAA8C;IAE9C,IAAMmD,uBAAuB,GAAGZ,gBAAgB;IAChD,IAAMtC,eAAe,GAAIsC,gBAAgB,GAAG,IAAIvE,eAAe,CAAC,QAAQ,CAAE;IAE1E,IAAMkC,UAAsB,GAAG;MAC7BC,GAAG,EAAE3B,SAAS,CAAC4B,IAAI;MACnBgD,SAAS,EAAEL,WAAW,CAACM,IAAI;MAC3BhD,YAAY,EAAE0C,WAAW,CAAC9B;IAC5B,CAAC;IAED,IAAIqC,MAAM,GAAG,KAAK;IAClB,IAAI9C,MAAoB;IACxB,IAAI;MACFA,MAAM,SAASzC,YAAY,CACzBmC,UAAU,EACV4C,MAAM,EACNlD,cAAc,EACdK,eAAe,CAChB;MAEDO,MAAM,CAACI,YAAY,CAAC2C,IAAI,CACtB,GAAG,CAAC,GAAG3D,cAAc,CAACG,gBAAgB,CAACyD,MAAM,EAAE,CAAC,CAAC3C,GAAG,CAAEC,KAAK,IACzDA,KAAK,CAACC,UAAU,EAAE,CACnB,EACD,GAAGnB,cAAc,CAACE,0BAA0B,CAC7C;MAEDvC,qBAAqB,EAAE;MAEvB,MAAMmD,OAAO,CAACC,GAAG,CAACH,MAAM,CAACI,YAAY,CAAC;IACxC,CAAC,CAAC,OAAO6C,KAAK,EAAE;MACdH,MAAM,GAAG,IAAI;MACb9C,MAAM,GAAG;QACPQ,IAAI,EAAE;UACJb,GAAG,EAAE3B,SAAS,CAACkF,KAAK;UACpBrC,IAAI,EAAE,KAAK;UACXZ,UAAU,EAAE;YACVkD,WAAW,EAAExF,iBAAiB,CAACsF,KAAK;UACtC,CAAC;UACDG,MAAM,EAAE1D,UAAU;UAClBN,cAAc,EAAE;QAClB,CAAC;QACDgB,YAAY,EAAE,EAAE;QAChBiD,YAAY,EAAE;MAChB,CAAC;IACH;IAEA3D,UAAU,CAACiB,KAAK,GAAGX,MAAM,CAACQ,IAAI;IAE9BmC,uBAAuB,aAAvBA,uBAAuB,uBAAvBA,uBAAuB,CAAEb,OAAO,EAAE;IAClCpE,WAAW,CAAC6E,WAAW,CAACM,IAAI,CAAC;IAC7BnF,WAAW,CAAC6E,WAAW,CAAC9B,MAAM,CAAC;IAE/B,IAAI+B,OAAO,CAACc,OAAO,EAAE;MAAA,IAAAC,cAAA;MACnBxF,QAAQ,EAAAwF,cAAA,GAACf,OAAO,CAACgB,KAAK,cAAAD,cAAA,cAAAA,cAAA,GAAI,OAAO,CAAC;MAClCzF,OAAO,CAAC,SAAS,CAAC;MAElB,IAAI,CAACgF,MAAM,EAAE;QACXrD,eAAe,CAACgE,sBAAsB,EAAE;MAC1C;MAEA5F,UAAU,EAAE;MACZD,SAAS,EAAE;IACb;IAEAH,SAAS,CAACiC,UAAU,CAAC;IAErB,IAAI8C,OAAO,CAACc,OAAO,EAAE;MACnBI,MAAM,CAACC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC;IACvB;IAEA,IAAI,CAACb,MAAM,EAAE;MACXrD,eAAe,CAACmE,gBAAgB,EAAE;MAClC;MACAnE,eAAe,CAAC6B,eAAe,EAAE;MACjC7B,eAAe,CAAC8B,wBAAwB,EAAE;MAC1C9B,eAAe,CAAC+B,qBAAqB,EAAE;IACzC;EACF,CAAC;EAAA,OAAAa,oBAAA,CAAAzD,KAAA,OAAAC,SAAA;AAAA;AAED,OAAO,SAASgF,iBAAiBA,CAC/B7E,IAAa,EACb8E,EAAW,EACXtB,OAAiB,EACjB;EACA,IAAIA,OAAO,EAAE;IACX,MAAM,IAAI9B,KAAK,CAAC,mDAAmD,CAAC;EACtE;EACA,OAAOzC,gBAAgB,CACrB6F,EAAE,EAAAzE,aAAA,CAAAA,aAAA,KAEGnC,6BAA6B,EAAE;IAClC8B;EAAI,IAEN;IACE+E,QAAQ,EAAE;EACZ,CAAC,CACF;AACH;;AAEA;AACA,OAAO,SAASC,UAAUA,CAAC1B,MAA8B,EAAE;EACzD,OAAOtF,sBAAsB,CAACsF,MAAM,EAAEjF,gBAAgB,EAAE,CAAC;AAC3D;AAEA,OAAO,SAAS4G,gBAAgBA,CAC9BC,KAAa,EACbC,eAAoC,EAC9B;EACN,IAAMC,UAAU,GAAGjH,wCAAwC,CAAC+G,KAAK,CAAE;EACnEG,MAAM,CAACC,MAAM,CAACF,UAAU,EAAA/E,aAAA,CAAAA,aAAA,KACnB8E,eAAe;IAClBI,YAAY,EAAE,IAAI;IAClBC,WAAW,EAAE,IAAI;IACjBC,iCAAiC,EAAE;EAAK,GACxC;EACFpG,eAAe,CAAC+F,UAAU,CAAC;AAC7B;AAEA,OAAO,SAASM,uBAAuBA,CAACR,KAAa,EAAES,QAAmB,EAAE;EAC1E,IAAMP,UAAU,GAAGjH,wCAAwC,CAAC+G,KAAK,CAAE;EACnE,IAAIU,KAAK,GAAG,KAAK;EACjB,IAAMC,MAAM,GAAIC,KAAgB,OAAAC,MAAA,CAAgBD,KAAK,CAACE,IAAI,OAAAD,MAAA,CAAID,KAAK,CAACG,KAAK,CAAE;EAC3E,IAAMC,YAAY,GAAGA,CAACC,MAAmB,EAAEC,GAAW,KAAkB;IACtE,OAAOD,MAAM,CAAC9E,GAAG,CAAEyE,KAAK,IAAK;MAC3B,IAAMO,QAAQ,GAAGR,MAAM,CAACC,KAAK,CAAC;MAC9B,IAAIA,KAAK,CAACjE,IAAI,KAAK,QAAQ,EAAE;QAC3BiE,KAAK,CAACK,MAAM,GAAGD,YAAY,CAACJ,KAAK,CAACK,MAAM,EAAEC,GAAG,CAAC;QAC9C,OAAON,KAAK;MACd,CAAC,MAAM,IAAIO,QAAQ,KAAKD,GAAG,EAAE;QAC3BR,KAAK,GAAG,IAAI;QACZ,OAAOD,QAAQ;MACjB,CAAC,MAAM;QACL,OAAOG,KAAK;MACd;IACF,CAAC,CAAC;EACJ,CAAC;EACDV,UAAU,CAACe,MAAM,GAAGD,YAAY,CAACd,UAAU,CAACe,MAAM,EAAEN,MAAM,CAACF,QAAQ,CAAC,CAAC;EACrE,IAAI,CAACC,KAAK,EAAE;IACVR,UAAU,CAACe,MAAM,CAACG,OAAO,CAACX,QAAQ,CAAC;EACrC;AACF;AAEA,OAAO,SAASY,0BAA0BA,CACxCrB,KAAa,EACbsB,WAA2B,EAC3BC,QAAiB,EACX;EACN,IAAMC,OAAO,MAAAX,MAAA,CAAMb,KAAK,OAAAa,MAAA,CAAIS,WAAW,CAACG,IAAI,CAAE;EAC9C;EACAvH,eAAe,CAACwH,MAAM,CAACF,OAAO,EAAE;IAC9BpD,MAAM,EAAEkD,WAAW,CAAClD,MAAM;IAC1BuD,KAAK,EAAEL,WAAW,CAACK,KAAK;IACxBC,KAAK,EAAEN,WAAW,CAACM;EACrB,CAAC,CAAC;EACFC,6BAA6B,CAAC7B,KAAK,EAAEsB,WAAW,CAACG,IAAI,EAAEF,QAAQ,CAAC;AAClE;AAEA,OAAO,SAASM,6BAA6BA,CAC3C7B,KAAa,EACb8B,UAAkB,EAClBP,QAAkB,EACZ;EACNQ,sBAAsB,CACpB/B,KAAK,iDAAAa,MAAA,CAC2CiB,UAAU,GAC1D,CAAA3G,aAAA;IAEI6G,KAAK,EAAEF;EAAU,GACd/I,IAAI,CAACwI,QAAQ,EAAE,YAAY,EAAE,QAAQ,EAAE,WAAW,EAAE,SAAS,CAAC,EAEpE,CACF;AACH;AAEA,OAAO,SAASU,yBAAyBA,CACvCjC,KAAa,EACbkC,WAGC,EACK;EAAA,IAAAC,mBAAA;EACNJ,sBAAsB,CACpB/B,KAAK,gDAAAa,MAAA,CAC0CqB,WAAW,CAACE,SAAS,GACpE,CAAAD,mBAAA,GAAAD,WAAW,CAAC9D,MAAM,cAAA+D,mBAAA,eAAlBA,mBAAA,CAAoB5D,MAAM,GAAG2D,WAAW,CAAC9D,MAAM,GAAG,CAAC;IAAE4D,KAAK,EAAE;EAAO,CAAC,CAAC,CACtE;AACH;AAEA,OAAO,IAAMK,4BAA4B,GAAGJ,yBAAyB;AAErE,SAASF,sBAAsBA,CAC7B/B,KAAa,EACbc,IAAY,EACZ1C,MAAmB,EACnB;EACA,IAAM;IAAE6C;EAAO,CAAC,GAAGhI,wCAAwC,CAAC+G,KAAK,CAAE;EACnE,IAAMsC,iBAAiB,GAAGrB,MAAM,CAACsB,SAAS,CAAE3B,KAAK,IAAKA,KAAK,CAACE,IAAI,KAAKA,IAAI,CAAC;EAC1E,IAAM0B,eAA0B,GAAG;IACjC1B,IAAI;IACJ1C,MAAM;IACNqE,IAAI,EAAE,KAAK;IACX1B,KAAK,EAAE;EACT,CAAC;EACD,IAAIuB,iBAAiB,KAAK,CAAC,CAAC,EAAE;IAC5BrB,MAAM,CAACG,OAAO,CAACoB,eAAe,CAAC;EACjC,CAAC,MAAM;IACLvB,MAAM,CAACyB,MAAM,CAACJ,iBAAiB,EAAE,CAAC,EAAEE,eAAe,CAAC;EACtD;AACF"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
declare function show(options: DialogOptions): void;
|
|
2
|
+
export declare function loadDialogService(tagName: string): void;
|
|
3
|
+
export interface DialogOptions {
|
|
4
|
+
type?: "success" | "error" | "warn" | "info" | "confirm";
|
|
5
|
+
title?: string | null;
|
|
6
|
+
content: string;
|
|
7
|
+
whiteSpace?: string;
|
|
8
|
+
onOk?: () => void;
|
|
9
|
+
onCancel?: () => void;
|
|
10
|
+
}
|
|
11
|
+
export declare const Dialog: Readonly<{
|
|
12
|
+
show: typeof show;
|
|
13
|
+
}>;
|
|
14
|
+
export {};
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
declare function show(options: NotificationOptions): void;
|
|
2
|
+
export declare function loadNotificationService(tagName: string): void;
|
|
3
|
+
export interface NotificationOptions {
|
|
4
|
+
type?: "success" | "error" | "warn" | "info";
|
|
5
|
+
message: string;
|
|
6
|
+
}
|
|
7
|
+
export declare const Notification: Readonly<{
|
|
8
|
+
show: typeof show;
|
|
9
|
+
}>;
|
|
10
|
+
export {};
|
package/dist/types/index.d.ts
CHANGED
|
@@ -7,10 +7,13 @@ export * from "./getPageInfo.js";
|
|
|
7
7
|
export * from "./handleHttpError.js";
|
|
8
8
|
export * from "./history.js";
|
|
9
9
|
export { createRuntime, getRuntime } from "./internal/Runtime.js";
|
|
10
|
-
|
|
10
|
+
import * as __secret_internals from "./internal/secret_internals.js";
|
|
11
|
+
export { __secret_internals };
|
|
11
12
|
export { getCssPropertyValue, getCurrentTheme, getCurrentMode, batchSetAppsLocalTheme, applyTheme, } from "./themeAndMode.js";
|
|
12
13
|
export { checkIfOfComputed, checkIfByTransform, } from "./internal/compute/checkIf.js";
|
|
13
14
|
export { registerWidgetFunctions } from "./internal/compute/WidgetFunctions.js";
|
|
14
15
|
export { registerWidgetI18n } from "./internal/compute/WidgetI18n.js";
|
|
15
16
|
export { StoryboardFunctionRegistryFactory } from "./StoryboardFunctionRegistry.js";
|
|
16
17
|
export { matchPath } from "./internal/matchPath.js";
|
|
18
|
+
export { Notification, type NotificationOptions } from "./Notification.js";
|
|
19
|
+
export { Dialog, type DialogOptions } from "./Dialog.js";
|
|
@@ -4,10 +4,7 @@ export declare function createRuntime(): Runtime;
|
|
|
4
4
|
export declare function getRuntime(): Runtime;
|
|
5
5
|
export declare class Runtime {
|
|
6
6
|
bootstrap(): Promise<void>;
|
|
7
|
-
getRecentApps(): {
|
|
8
|
-
currentApp: import("@next-core/types").MicroApp | undefined;
|
|
9
|
-
previousApp: import("@next-core/types").MicroApp | undefined;
|
|
10
|
-
};
|
|
7
|
+
getRecentApps(): {};
|
|
11
8
|
getCurrentApp(): import("@next-core/types").MicroApp | undefined;
|
|
12
9
|
getFeatureFlags(): FeatureFlags;
|
|
13
10
|
getMiscSettings(): {
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export declare enum K {
|
|
2
|
+
REQUEST_FAILED = "REQUEST_FAILED",
|
|
3
|
+
SOMETHING_WENT_WRONG = "SOMETHING_WENT_WRONG",
|
|
4
|
+
LOGIN_TIMEOUT_MESSAGE = "LOGIN_TIMEOUT_MESSAGE"
|
|
5
|
+
}
|
|
6
|
+
export declare const NS = "core/runtime";
|
|
7
|
+
export declare const locales: {
|
|
8
|
+
en: Locale;
|
|
9
|
+
zh: Locale;
|
|
10
|
+
};
|
|
11
|
+
type Locale = {
|
|
12
|
+
[key in K]: string;
|
|
13
|
+
};
|
|
14
|
+
export {};
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
// This file is read by tools that parse documentation comments conforming to the TSDoc standard.
|
|
2
|
+
// It should be published with your NPM package. It should not be tracked by Git.
|
|
3
|
+
{
|
|
4
|
+
"tsdocVersion": "0.12",
|
|
5
|
+
"toolPackages": [
|
|
6
|
+
{
|
|
7
|
+
"packageName": "@microsoft/api-extractor",
|
|
8
|
+
"packageVersion": "7.34.4"
|
|
9
|
+
}
|
|
10
|
+
]
|
|
11
|
+
}
|