@next-core/runtime 1.44.2 → 1.44.4
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/CustomProcessors.js.map +1 -1
- package/dist/cjs/CustomTemplates.js +7 -11
- package/dist/cjs/CustomTemplates.js.map +1 -1
- package/dist/cjs/createRoot.js +4 -4
- package/dist/cjs/createRoot.js.map +1 -1
- package/dist/cjs/getPageInfo.js.map +1 -1
- package/dist/cjs/handleHttpError.js.map +1 -1
- package/dist/cjs/internal/CustomTemplates/bindTemplateProxy.js +4 -5
- package/dist/cjs/internal/CustomTemplates/bindTemplateProxy.js.map +1 -1
- package/dist/cjs/internal/CustomTemplates/expandCustomTemplate.js +4 -7
- package/dist/cjs/internal/CustomTemplates/expandCustomTemplate.js.map +1 -1
- package/dist/cjs/internal/CustomTemplates/setupTemplateProxy.js +21 -24
- package/dist/cjs/internal/CustomTemplates/setupTemplateProxy.js.map +1 -1
- package/dist/cjs/internal/CustomTemplates/setupUseBrickInTemplate.js +4 -7
- package/dist/cjs/internal/CustomTemplates/setupUseBrickInTemplate.js.map +1 -1
- package/dist/cjs/internal/CustomTemplates/utils.js +3 -3
- package/dist/cjs/internal/CustomTemplates/utils.js.map +1 -1
- package/dist/cjs/internal/FormRenderer/expandFormRenderer.js +3 -3
- package/dist/cjs/internal/FormRenderer/expandFormRenderer.js.map +1 -1
- package/dist/cjs/internal/FormRenderer/utils.js +2 -2
- package/dist/cjs/internal/FormRenderer/utils.js.map +1 -1
- package/dist/cjs/internal/Renderer.js +8 -14
- package/dist/cjs/internal/Renderer.js.map +1 -1
- package/dist/cjs/internal/RendererContext.js +8 -10
- package/dist/cjs/internal/RendererContext.js.map +1 -1
- package/dist/cjs/internal/Router.js.map +1 -1
- package/dist/cjs/internal/Runtime.js +19 -16
- package/dist/cjs/internal/Runtime.js.map +1 -1
- package/dist/cjs/internal/bindListeners.js +2 -3
- package/dist/cjs/internal/bindListeners.js.map +1 -1
- package/dist/cjs/internal/compute/WidgetFunctions.js.map +1 -1
- package/dist/cjs/internal/compute/evaluate.js +4 -4
- package/dist/cjs/internal/compute/evaluate.js.map +1 -1
- package/dist/cjs/internal/compute/getGeneralGlobals.js.map +1 -1
- package/dist/cjs/internal/compute/getStorageItem.js +1 -2
- package/dist/cjs/internal/compute/getStorageItem.js.map +1 -1
- package/dist/cjs/internal/compute/listenOnTrackingContext.js.map +1 -1
- package/dist/cjs/internal/compute/setRealProperties.js.map +1 -1
- package/dist/cjs/internal/data/DataStore.js.map +1 -1
- package/dist/cjs/internal/data/getProviderBrick.js.map +1 -1
- package/dist/cjs/internal/data/realTimeDataInspect.js.map +1 -1
- package/dist/cjs/internal/data/resolveData.js.map +1 -1
- package/dist/cjs/internal/data/resolveDataStore.js +2 -4
- package/dist/cjs/internal/data/resolveDataStore.js.map +1 -1
- package/dist/cjs/internal/hasInstalledApp.js.map +1 -1
- package/dist/cjs/internal/historyExtended.js.map +1 -1
- package/dist/cjs/internal/matchPath.js.map +1 -1
- package/dist/cjs/internal/matchRoutes.js.map +1 -1
- package/dist/cjs/internal/matchStoryboard.js +2 -2
- package/dist/cjs/internal/matchStoryboard.js.map +1 -1
- package/dist/cjs/internal/mediaQuery.js.map +1 -1
- package/dist/cjs/internal/mount.js.map +1 -1
- package/dist/cjs/internal/poll.js +3 -3
- package/dist/cjs/internal/poll.js.map +1 -1
- package/dist/cjs/internal/registerAppI18n.js.map +1 -1
- package/dist/cjs/internal/registerCustomTemplates.js.map +1 -1
- package/dist/cjs/internal/secret_internals.js +4 -4
- package/dist/cjs/internal/secret_internals.js.map +1 -1
- package/dist/cjs/internal/setupRootRuntimeContext.js +2 -3
- package/dist/cjs/internal/setupRootRuntimeContext.js.map +1 -1
- package/dist/cjs/isStrictMode.js.map +1 -1
- package/dist/cjs/setLoginStateCookie.js.map +1 -1
- package/dist/cjs/setWatermark.js +4 -4
- package/dist/cjs/setWatermark.js.map +1 -1
- package/dist/cjs/themeAndMode.js +1 -2
- package/dist/cjs/themeAndMode.js.map +1 -1
- package/dist/esm/CustomProcessors.js +5 -5
- package/dist/esm/CustomProcessors.js.map +1 -1
- package/dist/esm/CustomTemplates.js +48 -58
- package/dist/esm/CustomTemplates.js.map +1 -1
- package/dist/esm/Dialog.js +3 -3
- package/dist/esm/Dialog.js.map +1 -1
- package/dist/esm/Notification.js +2 -2
- package/dist/esm/Notification.js.map +1 -1
- package/dist/esm/StoryboardFunctionRegistry.js +18 -18
- package/dist/esm/StoryboardFunctionRegistry.js.map +1 -1
- package/dist/esm/createRoot.js +125 -129
- package/dist/esm/createRoot.js.map +1 -1
- package/dist/esm/fetchByProvider.js +3 -10
- package/dist/esm/fetchByProvider.js.map +1 -1
- package/dist/esm/getBasePath.js +2 -2
- package/dist/esm/getBasePath.js.map +1 -1
- package/dist/esm/getPageInfo.js +5 -5
- package/dist/esm/getPageInfo.js.map +1 -1
- package/dist/esm/getRealValue.js +7 -6
- package/dist/esm/getRealValue.js.map +1 -1
- package/dist/esm/getV2RuntimeFromDll.js +1 -1
- package/dist/esm/getV2RuntimeFromDll.js.map +1 -1
- package/dist/esm/handleHttpError.js +11 -11
- package/dist/esm/handleHttpError.js.map +1 -1
- package/dist/esm/history.js +4 -4
- package/dist/esm/history.js.map +1 -1
- package/dist/esm/internal/CustomTemplates/bindTemplateProxy.js +13 -17
- package/dist/esm/internal/CustomTemplates/bindTemplateProxy.js.map +1 -1
- package/dist/esm/internal/CustomTemplates/constants.js +5 -5
- package/dist/esm/internal/CustomTemplates/constants.js.map +1 -1
- package/dist/esm/internal/CustomTemplates/expandCustomTemplate.js +41 -42
- package/dist/esm/internal/CustomTemplates/expandCustomTemplate.js.map +1 -1
- package/dist/esm/internal/CustomTemplates/setupTemplateProxy.js +43 -46
- package/dist/esm/internal/CustomTemplates/setupTemplateProxy.js.map +1 -1
- package/dist/esm/internal/CustomTemplates/setupUseBrickInTemplate.js +16 -18
- package/dist/esm/internal/CustomTemplates/setupUseBrickInTemplate.js.map +1 -1
- package/dist/esm/internal/CustomTemplates/utils.js +8 -8
- package/dist/esm/internal/CustomTemplates/utils.js.map +1 -1
- package/dist/esm/internal/FormRenderer/constants.js +2 -2
- package/dist/esm/internal/FormRenderer/constants.js.map +1 -1
- package/dist/esm/internal/FormRenderer/expandFormRenderer.js +28 -23
- package/dist/esm/internal/FormRenderer/expandFormRenderer.js.map +1 -1
- package/dist/esm/internal/FormRenderer/getDefaultProperties.js +45 -22
- package/dist/esm/internal/FormRenderer/getDefaultProperties.js.map +1 -1
- package/dist/esm/internal/FormRenderer/utils.js +4 -4
- package/dist/esm/internal/FormRenderer/utils.js.map +1 -1
- package/dist/esm/internal/Renderer.js +517 -580
- package/dist/esm/internal/Renderer.js.map +1 -1
- package/dist/esm/internal/RendererContext.js +132 -148
- package/dist/esm/internal/RendererContext.js.map +1 -1
- package/dist/esm/internal/Router.js +325 -346
- package/dist/esm/internal/Router.js.map +1 -1
- package/dist/esm/internal/Runtime.js +58 -53
- package/dist/esm/internal/Runtime.js.map +1 -1
- package/dist/esm/internal/abortController.js +7 -6
- package/dist/esm/internal/abortController.js.map +1 -1
- package/dist/esm/internal/bindListeners.js +136 -156
- package/dist/esm/internal/bindListeners.js.map +1 -1
- package/dist/esm/internal/compute/StoryboardFunctions.js +1 -1
- package/dist/esm/internal/compute/StoryboardFunctions.js.map +1 -1
- package/dist/esm/internal/compute/WidgetFunctions.js +6 -6
- package/dist/esm/internal/compute/WidgetFunctions.js.map +1 -1
- package/dist/esm/internal/compute/WidgetI18n.js +4 -4
- package/dist/esm/internal/compute/WidgetI18n.js.map +1 -1
- package/dist/esm/internal/compute/checkIf.js +10 -23
- package/dist/esm/internal/compute/checkIf.js.map +1 -1
- package/dist/esm/internal/compute/computeRealProperties.js +22 -35
- package/dist/esm/internal/compute/computeRealProperties.js.map +1 -1
- package/dist/esm/internal/compute/computeRealValue.js +42 -49
- package/dist/esm/internal/compute/computeRealValue.js.map +1 -1
- package/dist/esm/internal/compute/evaluate.js +71 -75
- package/dist/esm/internal/compute/evaluate.js.map +1 -1
- package/dist/esm/internal/compute/getGeneralGlobals.js +5 -5
- package/dist/esm/internal/compute/getGeneralGlobals.js.map +1 -1
- package/dist/esm/internal/compute/getNextStateOfUseBrick.js +1 -1
- package/dist/esm/internal/compute/getStorageItem.js +2 -3
- package/dist/esm/internal/compute/getStorageItem.js.map +1 -1
- package/dist/esm/internal/compute/getTracks.js +5 -5
- package/dist/esm/internal/compute/getTracks.js.map +1 -1
- package/dist/esm/internal/compute/listenOnTrackingContext.js +8 -11
- package/dist/esm/internal/compute/listenOnTrackingContext.js.map +1 -1
- package/dist/esm/internal/compute/markAsComputed.js +2 -2
- package/dist/esm/internal/compute/markAsComputed.js.map +1 -1
- package/dist/esm/internal/compute/setProperties.js +1 -1
- package/dist/esm/internal/compute/setProperties.js.map +1 -1
- package/dist/esm/internal/compute/setRealProperties.js +3 -3
- package/dist/esm/internal/compute/setRealProperties.js.map +1 -1
- package/dist/esm/internal/customizeColorTheme.js +15 -13
- package/dist/esm/internal/customizeColorTheme.js.map +1 -1
- package/dist/esm/internal/data/DataStore.js +161 -177
- package/dist/esm/internal/data/DataStore.js.map +1 -1
- package/dist/esm/internal/data/getProviderBrick.js +21 -28
- package/dist/esm/internal/data/getProviderBrick.js.map +1 -1
- package/dist/esm/internal/data/realTimeDataInspect.js +5 -5
- package/dist/esm/internal/data/realTimeDataInspect.js.map +1 -1
- package/dist/esm/internal/data/resolveData.js +89 -103
- package/dist/esm/internal/data/resolveData.js.map +1 -1
- package/dist/esm/internal/data/resolveDataStore.js +53 -67
- package/dist/esm/internal/data/resolveDataStore.js.map +1 -1
- package/dist/esm/internal/devtools.js +9 -9
- package/dist/esm/internal/devtools.js.map +1 -1
- package/dist/esm/internal/enums.js +1 -1
- package/dist/esm/internal/fulfilStoryboard.js +15 -28
- package/dist/esm/internal/fulfilStoryboard.js.map +1 -1
- package/dist/esm/internal/hasInstalledApp.js +3 -3
- package/dist/esm/internal/hasInstalledApp.js.map +1 -1
- package/dist/esm/internal/historyExtended.js +40 -37
- package/dist/esm/internal/historyExtended.js.map +1 -1
- package/dist/esm/internal/i18n.js +5 -5
- package/dist/esm/internal/i18n.js.map +1 -1
- package/dist/esm/internal/injected.js +1 -1
- package/dist/esm/internal/injected.js.map +1 -1
- package/dist/esm/internal/insertPreviewRoutes.js +3 -3
- package/dist/esm/internal/insertPreviewRoutes.js.map +1 -1
- package/dist/esm/internal/matchPath.js +17 -17
- package/dist/esm/internal/matchPath.js.map +1 -1
- package/dist/esm/internal/matchRoutes.js +18 -25
- package/dist/esm/internal/matchRoutes.js.map +1 -1
- package/dist/esm/internal/matchStoryboard.js +6 -6
- package/dist/esm/internal/matchStoryboard.js.map +1 -1
- package/dist/esm/internal/mediaQuery.js +11 -11
- package/dist/esm/internal/mediaQuery.js.map +1 -1
- package/dist/esm/internal/mount.js +7 -7
- package/dist/esm/internal/mount.js.map +1 -1
- package/dist/esm/internal/poll.js +53 -60
- package/dist/esm/internal/poll.js.map +1 -1
- package/dist/esm/internal/proxyFactories.js +4 -4
- package/dist/esm/internal/proxyFactories.js.map +1 -1
- package/dist/esm/internal/registerAppI18n.js +6 -6
- package/dist/esm/internal/registerAppI18n.js.map +1 -1
- package/dist/esm/internal/registerCustomTemplates.js +3 -3
- package/dist/esm/internal/registerCustomTemplates.js.map +1 -1
- package/dist/esm/internal/secret_internals.js +140 -146
- package/dist/esm/internal/secret_internals.js.map +1 -1
- package/dist/esm/internal/setupRootRuntimeContext.js +6 -7
- package/dist/esm/internal/setupRootRuntimeContext.js.map +1 -1
- package/dist/esm/internal/sse.js +24 -53
- package/dist/esm/internal/sse.js.map +1 -1
- package/dist/esm/internal/test_only.js +1 -1
- package/dist/esm/isStrictMode.js +3 -3
- package/dist/esm/isStrictMode.js.map +1 -1
- package/dist/esm/setAppVariable.js +1 -1
- package/dist/esm/setAppVariable.js.map +1 -1
- package/dist/esm/setLoginStateCookie.js +5 -5
- package/dist/esm/setLoginStateCookie.js.map +1 -1
- package/dist/esm/setUIVersion.js +1 -1
- package/dist/esm/setWatermark.js +13 -13
- package/dist/esm/setWatermark.js.map +1 -1
- package/dist/esm/themeAndMode.js +14 -13
- package/dist/esm/themeAndMode.js.map +1 -1
- package/dist/types/tsdoc-metadata.json +1 -1
- package/package.json +12 -12
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handleHttpError.js","names":["HttpAbortError","HttpFetchError","HttpResponseError","i18n","getRuntime","getHistory","K","NS","Dialog","setLoginStateCookie","httpErrorToString","error","Event","target","HTMLScriptElement","src","t","
|
|
1
|
+
{"version":3,"file":"handleHttpError.js","names":["HttpAbortError","HttpFetchError","HttpResponseError","i18n","getRuntime","getHistory","K","NS","Dialog","setLoginStateCookie","httpErrorToString","error","Event","target","HTMLScriptElement","src","t","NETWORK_ERROR","responseJson","msg","toString","isUnauthenticatedError","response","status","code","unauthenticatedConfirming","lastErrorMessage","handleHttpError","window","NO_AUTH_GUARD","show","type","content","LOGIN_TIMEOUT_MESSAGE","then","redirectToLogin","console","message","title","REQUEST_FAILED","contentStyle","whiteSpace","wordBreak","undefined","ssoEnabled","getFeatureFlags","history","location","push","from","state"],"sources":["../../src/handleHttpError.ts"],"sourcesContent":["import {\n HttpAbortError,\n HttpFetchError,\n HttpResponseError,\n} from \"@next-core/http\";\nimport { i18n } from \"@next-core/i18n\";\nimport { getRuntime } from \"./internal/Runtime.js\";\nimport { getHistory } from \"./history.js\";\nimport { K, NS } from \"./internal/i18n.js\";\nimport { Dialog } from \"./Dialog.js\";\nimport { setLoginStateCookie } from \"./setLoginStateCookie.js\";\n\n/**\n * 将 http 请求错误转换为可读的字符串。\n *\n * @remarks\n *\n * 将依次尝试读取返回的 JSON 格式数据的字符串类型的 `error` 和 `msg` 字段,如果没有找到则返回 `error.toString()` 的结果。\n *\n * @param error - 错误对象。\n *\n * @returns 转换为字符串的错误信息。\n */\nexport function httpErrorToString(error: unknown): string {\n if (error instanceof Event && error.target instanceof HTMLScriptElement) {\n return error.target.src;\n }\n if (error instanceof HttpFetchError) {\n return i18n.t(`${NS}:${K.NETWORK_ERROR}`);\n }\n if (error instanceof HttpResponseError) {\n if (error.responseJson) {\n if (typeof error.responseJson.error === \"string\") {\n return error.responseJson.error;\n } else if (typeof error.responseJson.msg === \"string\") {\n return error.responseJson.msg;\n }\n }\n }\n if (error == null) {\n return \"Unknown error\";\n }\n return error.toString();\n}\n\nexport function isUnauthenticatedError(error: unknown): boolean {\n return (\n error instanceof HttpResponseError &&\n error.response.status === 401 &&\n !!error.responseJson &&\n error.responseJson.code === 100003\n );\n}\n\nlet unauthenticatedConfirming = false;\n\nlet lastErrorMessage: string | undefined;\n\n/**\n * 处理 http 请求错误(使用 AntDesign 模态框弹出错误信息)。\n *\n * @param error - 错误对象。\n */\nexport function handleHttpError(error: unknown) {\n // Do nothing if aborted http requests\n if (error instanceof HttpAbortError) {\n return;\n }\n\n // Redirect to login page if not logged in.\n if (isUnauthenticatedError(error) && !window.NO_AUTH_GUARD) {\n if (unauthenticatedConfirming) {\n return;\n }\n unauthenticatedConfirming = true;\n Dialog.show({\n type: \"confirm\",\n content: i18n.t(`${NS}:${K.LOGIN_TIMEOUT_MESSAGE}`),\n }).then(\n () => {\n redirectToLogin();\n unauthenticatedConfirming = false;\n },\n () => {\n unauthenticatedConfirming = false;\n }\n );\n return;\n }\n\n // eslint-disable-next-line no-console\n console.error(error);\n\n const message = httpErrorToString(error);\n if (message !== lastErrorMessage) {\n lastErrorMessage = message;\n Dialog.show({\n type: \"error\",\n title: i18n.t(`${NS}:${K.REQUEST_FAILED}`),\n content: message,\n contentStyle: {\n whiteSpace: \"pre-wrap\",\n wordBreak: \"break-word\",\n },\n }).then(() => {\n lastErrorMessage = undefined;\n });\n }\n return;\n}\n\nfunction redirectToLogin() {\n const ssoEnabled = getRuntime().getFeatureFlags()[\"sso-enabled\"];\n const history = getHistory();\n setLoginStateCookie(history.location);\n history.push(ssoEnabled ? \"/sso-auth/login\" : \"/auth/login\", {\n from: {\n ...history.location,\n state: undefined,\n },\n });\n}\n"],"mappings":"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","ignoreList":[]}
|
package/dist/esm/history.js
CHANGED
|
@@ -2,11 +2,11 @@ import { createBrowserHistory } from "history";
|
|
|
2
2
|
import { getBasePath } from "./getBasePath.js";
|
|
3
3
|
import { getUserConfirmation, historyExtended } from "./internal/historyExtended.js";
|
|
4
4
|
import { getV2RuntimeFromDll } from "./getV2RuntimeFromDll.js";
|
|
5
|
-
|
|
5
|
+
let history;
|
|
6
6
|
export function createHistory() {
|
|
7
7
|
if (!history) {
|
|
8
8
|
// https://github.com/remix-run/history/issues/810
|
|
9
|
-
|
|
9
|
+
const browserHistory = createBrowserHistory({
|
|
10
10
|
basename: getBasePath().replace(/\/$/, ""),
|
|
11
11
|
getUserConfirmation
|
|
12
12
|
});
|
|
@@ -23,10 +23,10 @@ function getHistoryV3() {
|
|
|
23
23
|
* When using v3 bricks in v2 container, return history from v2 container.
|
|
24
24
|
*/
|
|
25
25
|
function getHistoryV2Factory() {
|
|
26
|
-
|
|
26
|
+
const v2Kit = getV2RuntimeFromDll();
|
|
27
27
|
if (v2Kit) {
|
|
28
28
|
return v2Kit.getHistory;
|
|
29
29
|
}
|
|
30
30
|
}
|
|
31
|
-
export
|
|
31
|
+
export const getHistory = getHistoryV2Factory() || getHistoryV3;
|
|
32
32
|
//# sourceMappingURL=history.js.map
|
package/dist/esm/history.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"history.js","names":["createBrowserHistory","getBasePath","getUserConfirmation","historyExtended","getV2RuntimeFromDll","history","createHistory","browserHistory","basename","replace","Object","assign","getHistoryV3","getHistoryV2Factory","v2Kit","getHistory"],"sources":["../../src/history.ts"],"sourcesContent":["import { History, Location, createBrowserHistory } from \"history\";\nimport { getBasePath } from \"./getBasePath.js\";\nimport {\n type ExtendedHistory,\n getUserConfirmation,\n historyExtended,\n NextHistoryState,\n} from \"./internal/historyExtended.js\";\nimport { getV2RuntimeFromDll } from \"./getV2RuntimeFromDll.js\";\n\nexport type NextHistory = History<NextHistoryState> & ExtendedHistory;\n\nlet history: NextHistory;\n\nexport function createHistory(): NextHistory {\n if (!history) {\n // https://github.com/remix-run/history/issues/810\n const browserHistory = createBrowserHistory<NextHistoryState>({\n basename: getBasePath().replace(/\\/$/, \"\"),\n getUserConfirmation,\n });\n Object.assign(browserHistory, historyExtended(browserHistory));\n history = browserHistory as NextHistory;\n }\n return history;\n}\n\nfunction getHistoryV3(): NextHistory {\n return history;\n}\n\n/**\n * When using v3 bricks in v2 container, return history from v2 container.\n */\nfunction getHistoryV2Factory() {\n const v2Kit = getV2RuntimeFromDll();\n if (v2Kit) {\n return v2Kit.getHistory;\n }\n}\n\nexport const getHistory = getHistoryV2Factory() || getHistoryV3;\n\nexport type NextLocation = Location<NextHistoryState>;\n\nexport type { NextHistoryState };\n"],"mappings":"AAAA,SAA4BA,oBAAoB,QAAQ,SAAS;AACjE,SAASC,WAAW,QAAQ,kBAAkB;AAC9C,SAEEC,mBAAmB,EACnBC,eAAe,QAEV,+BAA+B;AACtC,SAASC,mBAAmB,QAAQ,0BAA0B;AAI9D,IAAIC,OAAoB;AAExB,OAAO,SAASC,aAAaA,CAAA,EAAgB;EAC3C,IAAI,CAACD,OAAO,EAAE;IACZ;IACA,
|
|
1
|
+
{"version":3,"file":"history.js","names":["createBrowserHistory","getBasePath","getUserConfirmation","historyExtended","getV2RuntimeFromDll","history","createHistory","browserHistory","basename","replace","Object","assign","getHistoryV3","getHistoryV2Factory","v2Kit","getHistory"],"sources":["../../src/history.ts"],"sourcesContent":["import { History, Location, createBrowserHistory } from \"history\";\nimport { getBasePath } from \"./getBasePath.js\";\nimport {\n type ExtendedHistory,\n getUserConfirmation,\n historyExtended,\n NextHistoryState,\n} from \"./internal/historyExtended.js\";\nimport { getV2RuntimeFromDll } from \"./getV2RuntimeFromDll.js\";\n\nexport type NextHistory = History<NextHistoryState> & ExtendedHistory;\n\nlet history: NextHistory;\n\nexport function createHistory(): NextHistory {\n if (!history) {\n // https://github.com/remix-run/history/issues/810\n const browserHistory = createBrowserHistory<NextHistoryState>({\n basename: getBasePath().replace(/\\/$/, \"\"),\n getUserConfirmation,\n });\n Object.assign(browserHistory, historyExtended(browserHistory));\n history = browserHistory as NextHistory;\n }\n return history;\n}\n\nfunction getHistoryV3(): NextHistory {\n return history;\n}\n\n/**\n * When using v3 bricks in v2 container, return history from v2 container.\n */\nfunction getHistoryV2Factory() {\n const v2Kit = getV2RuntimeFromDll();\n if (v2Kit) {\n return v2Kit.getHistory;\n }\n}\n\nexport const getHistory = getHistoryV2Factory() || getHistoryV3;\n\nexport type NextLocation = Location<NextHistoryState>;\n\nexport type { NextHistoryState };\n"],"mappings":"AAAA,SAA4BA,oBAAoB,QAAQ,SAAS;AACjE,SAASC,WAAW,QAAQ,kBAAkB;AAC9C,SAEEC,mBAAmB,EACnBC,eAAe,QAEV,+BAA+B;AACtC,SAASC,mBAAmB,QAAQ,0BAA0B;AAI9D,IAAIC,OAAoB;AAExB,OAAO,SAASC,aAAaA,CAAA,EAAgB;EAC3C,IAAI,CAACD,OAAO,EAAE;IACZ;IACA,MAAME,cAAc,GAAGP,oBAAoB,CAAmB;MAC5DQ,QAAQ,EAAEP,WAAW,CAAC,CAAC,CAACQ,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC;MAC1CP;IACF,CAAC,CAAC;IACFQ,MAAM,CAACC,MAAM,CAACJ,cAAc,EAAEJ,eAAe,CAACI,cAAc,CAAC,CAAC;IAC9DF,OAAO,GAAGE,cAA6B;EACzC;EACA,OAAOF,OAAO;AAChB;AAEA,SAASO,YAAYA,CAAA,EAAgB;EACnC,OAAOP,OAAO;AAChB;;AAEA;AACA;AACA;AACA,SAASQ,mBAAmBA,CAAA,EAAG;EAC7B,MAAMC,KAAK,GAAGV,mBAAmB,CAAC,CAAC;EACnC,IAAIU,KAAK,EAAE;IACT,OAAOA,KAAK,CAACC,UAAU;EACzB;AACF;AAEA,OAAO,MAAMA,UAAU,GAAGF,mBAAmB,CAAC,CAAC,IAAID,YAAY","ignoreList":[]}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { getTplStateStore } from "./utils.js";
|
|
2
2
|
export function bindTemplateProxy(brick) {
|
|
3
3
|
var _tplHostMetadata$prox;
|
|
4
|
-
|
|
4
|
+
const {
|
|
5
5
|
ref,
|
|
6
6
|
runtimeContext,
|
|
7
7
|
element
|
|
@@ -11,18 +11,18 @@ export function bindTemplateProxy(brick) {
|
|
|
11
11
|
if (!ref || !runtimeContext.tplStateStoreId) {
|
|
12
12
|
return;
|
|
13
13
|
}
|
|
14
|
-
|
|
14
|
+
const {
|
|
15
15
|
hostBrick
|
|
16
16
|
} = getTplStateStore(runtimeContext, "bindTemplateProxy");
|
|
17
17
|
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
18
|
-
|
|
18
|
+
const tplHostMetadata = hostBrick.tplHostMetadata;
|
|
19
19
|
tplHostMetadata.internalBricksByRef.set(ref, brick);
|
|
20
|
-
|
|
20
|
+
const events = (_tplHostMetadata$prox = tplHostMetadata.proxy) === null || _tplHostMetadata$prox === void 0 ? void 0 : _tplHostMetadata$prox.events;
|
|
21
21
|
if (events) {
|
|
22
|
-
|
|
22
|
+
for (const [from, to] of Object.entries(events)) {
|
|
23
23
|
if (to.ref === ref) {
|
|
24
|
-
var
|
|
25
|
-
|
|
24
|
+
var _ref;
|
|
25
|
+
const listener = e => {
|
|
26
26
|
if (e.bubbles) {
|
|
27
27
|
e.stopPropagation();
|
|
28
28
|
}
|
|
@@ -33,19 +33,16 @@ export function bindTemplateProxy(brick) {
|
|
|
33
33
|
composed: e.composed
|
|
34
34
|
}));
|
|
35
35
|
};
|
|
36
|
-
|
|
36
|
+
const eventType = to.refEvent ?? from;
|
|
37
37
|
element.addEventListener(eventType, listener);
|
|
38
|
-
(_ref
|
|
38
|
+
(_ref = element).$$proxyListeners ?? (_ref.$$proxyListeners = []);
|
|
39
39
|
element.$$proxyListeners.push([eventType, listener]);
|
|
40
40
|
}
|
|
41
|
-
};
|
|
42
|
-
for (var [from, to] of Object.entries(events)) {
|
|
43
|
-
_loop(from);
|
|
44
41
|
}
|
|
45
42
|
}
|
|
46
43
|
}
|
|
47
44
|
export function unbindTemplateProxy(brick) {
|
|
48
|
-
|
|
45
|
+
const {
|
|
49
46
|
ref,
|
|
50
47
|
runtimeContext,
|
|
51
48
|
element
|
|
@@ -53,14 +50,13 @@ export function unbindTemplateProxy(brick) {
|
|
|
53
50
|
if (!(runtimeContext !== null && runtimeContext !== void 0 && runtimeContext.tplStateStoreId) || !ref) {
|
|
54
51
|
return;
|
|
55
52
|
}
|
|
56
|
-
|
|
53
|
+
const {
|
|
57
54
|
hostBrick
|
|
58
55
|
} = getTplStateStore(runtimeContext, "unbindTemplateProxy");
|
|
59
56
|
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
60
|
-
|
|
57
|
+
const tplHostMetadata = hostBrick.tplHostMetadata;
|
|
61
58
|
tplHostMetadata.internalBricksByRef.delete(ref);
|
|
62
|
-
for (
|
|
63
|
-
var _$$proxyListeners;
|
|
59
|
+
for (const [type, fn] of element.$$proxyListeners ?? []) {
|
|
64
60
|
element.removeEventListener(type, fn);
|
|
65
61
|
}
|
|
66
62
|
delete element.$$proxyListeners;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bindTemplateProxy.js","names":["getTplStateStore","bindTemplateProxy","brick","_tplHostMetadata$prox","ref","runtimeContext","element","tplStateStoreId","hostBrick","tplHostMetadata","internalBricksByRef","set","events","proxy","
|
|
1
|
+
{"version":3,"file":"bindTemplateProxy.js","names":["getTplStateStore","bindTemplateProxy","brick","_tplHostMetadata$prox","ref","runtimeContext","element","tplStateStoreId","hostBrick","tplHostMetadata","internalBricksByRef","set","events","proxy","from","to","Object","entries","_ref","listener","e","bubbles","stopPropagation","dispatchEvent","CustomEvent","detail","cancelable","composed","eventType","refEvent","addEventListener","$$proxyListeners","push","unbindTemplateProxy","delete","type","fn","removeEventListener"],"sources":["../../../../src/internal/CustomTemplates/bindTemplateProxy.ts"],"sourcesContent":["import type { RuntimeBrick } from \"../interfaces.js\";\nimport { getTplStateStore } from \"./utils.js\";\n\nexport function bindTemplateProxy(brick: RuntimeBrick) {\n const { ref, runtimeContext, element } = brick;\n\n // Error recovering brick may have no runtimeContext.\n if (!ref || !runtimeContext.tplStateStoreId) {\n return;\n }\n\n const { hostBrick } = getTplStateStore(runtimeContext, \"bindTemplateProxy\");\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const tplHostMetadata = hostBrick!.tplHostMetadata!;\n\n tplHostMetadata.internalBricksByRef.set(ref, brick);\n\n const events = tplHostMetadata.proxy?.events;\n if (events) {\n for (const [from, to] of Object.entries(events)) {\n if (to.ref === ref) {\n const listener = (e: Event) => {\n if (e.bubbles) {\n e.stopPropagation();\n }\n hostBrick!.element!.dispatchEvent(\n new CustomEvent(from, {\n detail: (e as CustomEvent).detail,\n bubbles: e.bubbles,\n cancelable: e.cancelable,\n composed: e.composed,\n })\n );\n };\n const eventType = to.refEvent ?? from;\n element!.addEventListener(eventType, listener);\n element!.$$proxyListeners ??= [];\n element!.$$proxyListeners.push([eventType, listener]);\n }\n }\n }\n}\n\nexport function unbindTemplateProxy(brick: RuntimeBrick) {\n const { ref, runtimeContext, element } = brick;\n\n if (!runtimeContext?.tplStateStoreId || !ref) {\n return;\n }\n\n const { hostBrick } = getTplStateStore(runtimeContext, \"unbindTemplateProxy\");\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const tplHostMetadata = hostBrick!.tplHostMetadata!;\n\n tplHostMetadata.internalBricksByRef.delete(ref);\n\n for (const [type, fn] of element!.$$proxyListeners ?? []) {\n element!.removeEventListener(type, fn);\n }\n delete element!.$$proxyListeners;\n}\n"],"mappings":"AACA,SAASA,gBAAgB,QAAQ,YAAY;AAE7C,OAAO,SAASC,iBAAiBA,CAACC,KAAmB,EAAE;EAAA,IAAAC,qBAAA;EACrD,MAAM;IAAEC,GAAG;IAAEC,cAAc;IAAEC;EAAQ,CAAC,GAAGJ,KAAK;;EAE9C;EACA,IAAI,CAACE,GAAG,IAAI,CAACC,cAAc,CAACE,eAAe,EAAE;IAC3C;EACF;EAEA,MAAM;IAAEC;EAAU,CAAC,GAAGR,gBAAgB,CAACK,cAAc,EAAE,mBAAmB,CAAC;EAC3E;EACA,MAAMI,eAAe,GAAGD,SAAS,CAAEC,eAAgB;EAEnDA,eAAe,CAACC,mBAAmB,CAACC,GAAG,CAACP,GAAG,EAAEF,KAAK,CAAC;EAEnD,MAAMU,MAAM,IAAAT,qBAAA,GAAGM,eAAe,CAACI,KAAK,cAAAV,qBAAA,uBAArBA,qBAAA,CAAuBS,MAAM;EAC5C,IAAIA,MAAM,EAAE;IACV,KAAK,MAAM,CAACE,IAAI,EAAEC,EAAE,CAAC,IAAIC,MAAM,CAACC,OAAO,CAACL,MAAM,CAAC,EAAE;MAC/C,IAAIG,EAAE,CAACX,GAAG,KAAKA,GAAG,EAAE;QAAA,IAAAc,IAAA;QAClB,MAAMC,QAAQ,GAAIC,CAAQ,IAAK;UAC7B,IAAIA,CAAC,CAACC,OAAO,EAAE;YACbD,CAAC,CAACE,eAAe,CAAC,CAAC;UACrB;UACAd,SAAS,CAAEF,OAAO,CAAEiB,aAAa,CAC/B,IAAIC,WAAW,CAACV,IAAI,EAAE;YACpBW,MAAM,EAAGL,CAAC,CAAiBK,MAAM;YACjCJ,OAAO,EAAED,CAAC,CAACC,OAAO;YAClBK,UAAU,EAAEN,CAAC,CAACM,UAAU;YACxBC,QAAQ,EAAEP,CAAC,CAACO;UACd,CAAC,CACH,CAAC;QACH,CAAC;QACD,MAAMC,SAAS,GAAGb,EAAE,CAACc,QAAQ,IAAIf,IAAI;QACrCR,OAAO,CAAEwB,gBAAgB,CAACF,SAAS,EAAET,QAAQ,CAAC;QAC9C,CAAAD,IAAA,GAAAZ,OAAO,EAAEyB,gBAAgB,KAAzBb,IAAA,CAASa,gBAAgB,GAAK,EAAE;QAChCzB,OAAO,CAAEyB,gBAAgB,CAACC,IAAI,CAAC,CAACJ,SAAS,EAAET,QAAQ,CAAC,CAAC;MACvD;IACF;EACF;AACF;AAEA,OAAO,SAASc,mBAAmBA,CAAC/B,KAAmB,EAAE;EACvD,MAAM;IAAEE,GAAG;IAAEC,cAAc;IAAEC;EAAQ,CAAC,GAAGJ,KAAK;EAE9C,IAAI,EAACG,cAAc,aAAdA,cAAc,eAAdA,cAAc,CAAEE,eAAe,KAAI,CAACH,GAAG,EAAE;IAC5C;EACF;EAEA,MAAM;IAAEI;EAAU,CAAC,GAAGR,gBAAgB,CAACK,cAAc,EAAE,qBAAqB,CAAC;EAC7E;EACA,MAAMI,eAAe,GAAGD,SAAS,CAAEC,eAAgB;EAEnDA,eAAe,CAACC,mBAAmB,CAACwB,MAAM,CAAC9B,GAAG,CAAC;EAE/C,KAAK,MAAM,CAAC+B,IAAI,EAAEC,EAAE,CAAC,IAAI9B,OAAO,CAAEyB,gBAAgB,IAAI,EAAE,EAAE;IACxDzB,OAAO,CAAE+B,mBAAmB,CAACF,IAAI,EAAEC,EAAE,CAAC;EACxC;EACA,OAAO9B,OAAO,CAAEyB,gBAAgB;AAClC","ignoreList":[]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
export
|
|
2
|
-
export
|
|
3
|
-
export
|
|
4
|
-
export
|
|
5
|
-
export
|
|
1
|
+
export const symbolForAsyncComputedPropsFromHost = Symbol.for("tpl.asyncComputedPropsFromHost");
|
|
2
|
+
export const symbolForTplStateStoreId = Symbol.for("tpl.stateStoreId");
|
|
3
|
+
export const symbolForTPlExternalForEachItem = Symbol.for("tpl.externalForEachItem");
|
|
4
|
+
export const symbolForTPlExternalForEachIndex = Symbol.for("tpl.externalForEachIndex");
|
|
5
|
+
export const symbolForTPlExternalNoForEach = Symbol.for("tpl.externalNoForEach");
|
|
6
6
|
//# sourceMappingURL=constants.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","names":["symbolForAsyncComputedPropsFromHost","Symbol","for","symbolForTplStateStoreId","symbolForTPlExternalForEachItem","symbolForTPlExternalForEachIndex","symbolForTPlExternalNoForEach"],"sources":["../../../../src/internal/CustomTemplates/constants.ts"],"sourcesContent":["import type { BrickConf } from \"@next-core/types\";\nimport type { AsyncPropertyEntry } from \"../interfaces.js\";\n\nexport const symbolForAsyncComputedPropsFromHost = Symbol.for(\n \"tpl.asyncComputedPropsFromHost\"\n);\nexport const symbolForTplStateStoreId = Symbol.for(\"tpl.stateStoreId\");\nexport const symbolForTPlExternalForEachItem = Symbol.for(\n \"tpl.externalForEachItem\"\n);\nexport const symbolForTPlExternalForEachIndex = Symbol.for(\n \"tpl.externalForEachIndex\"\n);\nexport const symbolForTPlExternalNoForEach = Symbol.for(\n \"tpl.externalNoForEach\"\n);\n\nexport type RuntimeBrickConfWithTplSymbols = BrickConf &\n RuntimeBrickConfOfTplSymbols;\n\nexport interface RuntimeBrickConfOfTplSymbols {\n [symbolForAsyncComputedPropsFromHost]?: AsyncPropertyEntry[];\n [symbolForTplStateStoreId]?: string;\n [symbolForTPlExternalForEachItem]?: unknown;\n [symbolForTPlExternalForEachIndex]?: number;\n [symbolForTPlExternalNoForEach]?: boolean;\n}\n"],"mappings":"AAGA,OAAO,
|
|
1
|
+
{"version":3,"file":"constants.js","names":["symbolForAsyncComputedPropsFromHost","Symbol","for","symbolForTplStateStoreId","symbolForTPlExternalForEachItem","symbolForTPlExternalForEachIndex","symbolForTPlExternalNoForEach"],"sources":["../../../../src/internal/CustomTemplates/constants.ts"],"sourcesContent":["import type { BrickConf } from \"@next-core/types\";\nimport type { AsyncPropertyEntry } from \"../interfaces.js\";\n\nexport const symbolForAsyncComputedPropsFromHost = Symbol.for(\n \"tpl.asyncComputedPropsFromHost\"\n);\nexport const symbolForTplStateStoreId = Symbol.for(\"tpl.stateStoreId\");\nexport const symbolForTPlExternalForEachItem = Symbol.for(\n \"tpl.externalForEachItem\"\n);\nexport const symbolForTPlExternalForEachIndex = Symbol.for(\n \"tpl.externalForEachIndex\"\n);\nexport const symbolForTPlExternalNoForEach = Symbol.for(\n \"tpl.externalNoForEach\"\n);\n\nexport type RuntimeBrickConfWithTplSymbols = BrickConf &\n RuntimeBrickConfOfTplSymbols;\n\nexport interface RuntimeBrickConfOfTplSymbols {\n [symbolForAsyncComputedPropsFromHost]?: AsyncPropertyEntry[];\n [symbolForTplStateStoreId]?: string;\n [symbolForTPlExternalForEachItem]?: unknown;\n [symbolForTPlExternalForEachIndex]?: number;\n [symbolForTPlExternalNoForEach]?: boolean;\n}\n"],"mappings":"AAGA,OAAO,MAAMA,mCAAmC,GAAGC,MAAM,CAACC,GAAG,CAC3D,gCACF,CAAC;AACD,OAAO,MAAMC,wBAAwB,GAAGF,MAAM,CAACC,GAAG,CAAC,kBAAkB,CAAC;AACtE,OAAO,MAAME,+BAA+B,GAAGH,MAAM,CAACC,GAAG,CACvD,yBACF,CAAC;AACD,OAAO,MAAMG,gCAAgC,GAAGJ,MAAM,CAACC,GAAG,CACxD,0BACF,CAAC;AACD,OAAO,MAAMI,6BAA6B,GAAGL,MAAM,CAACC,GAAG,CACrD,uBACF,CAAC","ignoreList":[]}
|
|
@@ -1,7 +1,3 @@
|
|
|
1
|
-
import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
|
|
2
|
-
import _objectSpread from "@babel/runtime/helpers/objectSpread2";
|
|
3
|
-
var _excluded = ["slots", "children"],
|
|
4
|
-
_excluded2 = ["properties", "slots", "children"];
|
|
5
1
|
import { uniqueId } from "lodash";
|
|
6
2
|
import { customTemplates } from "../../CustomTemplates.js";
|
|
7
3
|
import { DataStore } from "../data/DataStore.js";
|
|
@@ -11,21 +7,22 @@ import { childrenToSlots } from "../Renderer.js";
|
|
|
11
7
|
import { hooks } from "../Runtime.js";
|
|
12
8
|
export function expandCustomTemplate(tplTagName, brickConf, hostBrick, asyncHostPropertyEntries, rendererContext) {
|
|
13
9
|
var _hooks$flowApi;
|
|
14
|
-
|
|
15
|
-
|
|
10
|
+
const tplStateStoreId = uniqueId("tpl-state-");
|
|
11
|
+
const runtimeContext = {
|
|
12
|
+
...hostBrick.runtimeContext,
|
|
16
13
|
tplStateStoreId
|
|
17
|
-
}
|
|
14
|
+
};
|
|
18
15
|
|
|
19
16
|
// There is a boundary for `forEachItem` and `FORM_STATE` between template internals and externals.
|
|
20
17
|
delete runtimeContext.forEachItem;
|
|
21
18
|
delete runtimeContext.forEachIndex;
|
|
22
19
|
delete runtimeContext.formStateStoreId;
|
|
23
|
-
|
|
20
|
+
const tplStateStore = new DataStore("STATE", hostBrick, rendererContext, tplStateStoreId);
|
|
24
21
|
runtimeContext.tplStateStoreMap.set(tplStateStoreId, tplStateStore);
|
|
25
22
|
if (runtimeContext.tplStateStoreScope) {
|
|
26
23
|
runtimeContext.tplStateStoreScope.push(tplStateStore);
|
|
27
24
|
}
|
|
28
|
-
|
|
25
|
+
const {
|
|
29
26
|
bricks,
|
|
30
27
|
proxy,
|
|
31
28
|
state,
|
|
@@ -33,14 +30,15 @@ export function expandCustomTemplate(tplTagName, brickConf, hostBrick, asyncHost
|
|
|
33
30
|
} = customTemplates.get(tplTagName);
|
|
34
31
|
hooks === null || hooks === void 0 || (_hooks$flowApi = hooks.flowApi) === null || _hooks$flowApi === void 0 || _hooks$flowApi.collectWidgetContract(contracts);
|
|
35
32
|
tplStateStore.define(state, runtimeContext, asyncHostPropertyEntries);
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
33
|
+
const {
|
|
34
|
+
slots: originalExternalSlots,
|
|
35
|
+
children: externalChildren,
|
|
36
|
+
...restBrickConf
|
|
37
|
+
} = brickConf;
|
|
38
|
+
const newBrickConf = {
|
|
39
|
+
...restBrickConf,
|
|
42
40
|
brick: tplTagName
|
|
43
|
-
}
|
|
41
|
+
};
|
|
44
42
|
hostBrick.tplHostMetadata = {
|
|
45
43
|
internalBricksByRef: new Map(),
|
|
46
44
|
tplStateStoreId,
|
|
@@ -48,14 +46,14 @@ export function expandCustomTemplate(tplTagName, brickConf, hostBrick, asyncHost
|
|
|
48
46
|
};
|
|
49
47
|
|
|
50
48
|
// Reversed proxies are used for expand storyboard before rendering page.
|
|
51
|
-
|
|
49
|
+
const reversedProxies = {
|
|
52
50
|
properties: new Map(),
|
|
53
51
|
slots: new Map()
|
|
54
52
|
// mergeBases: new Map(),
|
|
55
53
|
};
|
|
56
54
|
if (proxy !== null && proxy !== void 0 && proxy.properties) {
|
|
57
|
-
for (
|
|
58
|
-
|
|
55
|
+
for (const [from, to] of Object.entries(proxy.properties)) {
|
|
56
|
+
let proxies = reversedProxies.properties.get(to.ref);
|
|
59
57
|
if (!proxies) {
|
|
60
58
|
proxies = [];
|
|
61
59
|
reversedProxies.properties.set(to.ref, proxies);
|
|
@@ -67,19 +65,19 @@ export function expandCustomTemplate(tplTagName, brickConf, hostBrick, asyncHost
|
|
|
67
65
|
}
|
|
68
66
|
}
|
|
69
67
|
if (proxy !== null && proxy !== void 0 && proxy.slots) {
|
|
70
|
-
for (
|
|
71
|
-
|
|
72
|
-
if (!
|
|
73
|
-
|
|
74
|
-
reversedProxies.slots.set(
|
|
68
|
+
for (const [from, to] of Object.entries(proxy.slots)) {
|
|
69
|
+
let proxies = reversedProxies.slots.get(to.ref);
|
|
70
|
+
if (!proxies) {
|
|
71
|
+
proxies = [];
|
|
72
|
+
reversedProxies.slots.set(to.ref, proxies);
|
|
75
73
|
}
|
|
76
|
-
|
|
77
|
-
from
|
|
78
|
-
to
|
|
74
|
+
proxies.push({
|
|
75
|
+
from,
|
|
76
|
+
to
|
|
79
77
|
});
|
|
80
78
|
}
|
|
81
79
|
}
|
|
82
|
-
|
|
80
|
+
const hostContext = {
|
|
83
81
|
reversedProxies,
|
|
84
82
|
asyncHostPropertyEntries,
|
|
85
83
|
externalSlots: childrenToSlots(externalChildren, originalExternalSlots),
|
|
@@ -100,24 +98,25 @@ function expandBrickInTemplate(brickConfInTemplate, hostContext) {
|
|
|
100
98
|
if (brickConfInTemplate.if === null) {
|
|
101
99
|
delete brickConfInTemplate.if;
|
|
102
100
|
}
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
var [slotName, slotConf] = _ref;
|
|
101
|
+
const {
|
|
102
|
+
properties,
|
|
103
|
+
slots: slotsInTemplate,
|
|
104
|
+
children: childrenInTemplate,
|
|
105
|
+
...restBrickConfInTemplate
|
|
106
|
+
} = brickConfInTemplate;
|
|
107
|
+
const transpiledSlots = childrenToSlots(childrenInTemplate, slotsInTemplate);
|
|
108
|
+
const slots = Object.fromEntries(Object.entries(transpiledSlots ?? {}).map(_ref => {
|
|
109
|
+
let [slotName, slotConf] = _ref;
|
|
113
110
|
return [slotName, {
|
|
114
111
|
type: "bricks",
|
|
115
|
-
bricks: (
|
|
112
|
+
bricks: (slotConf.bricks ?? []).map(item => expandBrickInTemplate(item, hostContext))
|
|
116
113
|
}];
|
|
117
114
|
}));
|
|
118
|
-
return
|
|
115
|
+
return {
|
|
116
|
+
...restBrickConfInTemplate,
|
|
119
117
|
properties: setupUseBrickInTemplate(properties, hostContext),
|
|
120
|
-
slots
|
|
121
|
-
|
|
118
|
+
slots,
|
|
119
|
+
...setupTemplateProxy(hostContext, restBrickConfInTemplate.ref, slots)
|
|
120
|
+
};
|
|
122
121
|
}
|
|
123
122
|
//# sourceMappingURL=expandCustomTemplate.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"expandCustomTemplate.js","names":["uniqueId","customTemplates","DataStore","setupTemplateProxy","setupUseBrickInTemplate","childrenToSlots","hooks","expandCustomTemplate","tplTagName","brickConf","hostBrick","asyncHostPropertyEntries","rendererContext","_hooks$flowApi","tplStateStoreId","runtimeContext","
|
|
1
|
+
{"version":3,"file":"expandCustomTemplate.js","names":["uniqueId","customTemplates","DataStore","setupTemplateProxy","setupUseBrickInTemplate","childrenToSlots","hooks","expandCustomTemplate","tplTagName","brickConf","hostBrick","asyncHostPropertyEntries","rendererContext","_hooks$flowApi","tplStateStoreId","runtimeContext","forEachItem","forEachIndex","formStateStoreId","tplStateStore","tplStateStoreMap","set","tplStateStoreScope","push","bricks","proxy","state","contracts","get","flowApi","collectWidgetContract","define","slots","originalExternalSlots","children","externalChildren","restBrickConf","newBrickConf","brick","tplHostMetadata","internalBricksByRef","Map","reversedProxies","properties","from","to","Object","entries","proxies","ref","hostContext","externalSlots","__temporary_tpl_tag_name","type","map","item","expandBrickInTemplate","brickConfInTemplate","if","slotsInTemplate","childrenInTemplate","restBrickConfInTemplate","transpiledSlots","fromEntries","_ref","slotName","slotConf"],"sources":["../../../../src/internal/CustomTemplates/expandCustomTemplate.ts"],"sourcesContent":["import type {\n BrickConf,\n BrickConfInTemplate,\n SlotsConfInTemplate,\n SlotsConfOfBricks,\n UseSingleBrickConf,\n} from \"@next-core/types\";\nimport { uniqueId } from \"lodash\";\nimport { customTemplates } from \"../../CustomTemplates.js\";\nimport { DataStore } from \"../data/DataStore.js\";\nimport { RuntimeBrickConfWithTplSymbols } from \"./constants.js\";\nimport { setupTemplateProxy } from \"./setupTemplateProxy.js\";\nimport type {\n AsyncPropertyEntry,\n RuntimeBrick,\n TemplateHostBrick,\n TemplateHostContext,\n} from \"../interfaces.js\";\nimport { setupUseBrickInTemplate } from \"./setupUseBrickInTemplate.js\";\nimport { childrenToSlots } from \"../Renderer.js\";\nimport { hooks } from \"../Runtime.js\";\nimport type { RendererContext } from \"../RendererContext.js\";\n\nexport function expandCustomTemplate<T extends BrickConf | UseSingleBrickConf>(\n tplTagName: string,\n brickConf: T,\n hostBrick: RuntimeBrick,\n asyncHostPropertyEntries: AsyncPropertyEntry[],\n rendererContext: RendererContext\n): T {\n const tplStateStoreId = uniqueId(\"tpl-state-\");\n const runtimeContext = {\n ...hostBrick.runtimeContext,\n tplStateStoreId,\n };\n\n // There is a boundary for `forEachItem` and `FORM_STATE` between template internals and externals.\n delete runtimeContext.forEachItem;\n delete runtimeContext.forEachIndex;\n delete runtimeContext.formStateStoreId;\n\n const tplStateStore = new DataStore(\n \"STATE\",\n hostBrick,\n rendererContext,\n tplStateStoreId\n );\n runtimeContext.tplStateStoreMap.set(tplStateStoreId, tplStateStore);\n if (runtimeContext.tplStateStoreScope) {\n runtimeContext.tplStateStoreScope.push(tplStateStore);\n }\n\n const { bricks, proxy, state, contracts } = customTemplates.get(tplTagName)!;\n hooks?.flowApi?.collectWidgetContract(contracts);\n tplStateStore.define(state, runtimeContext, asyncHostPropertyEntries);\n\n const {\n slots: originalExternalSlots,\n children: externalChildren,\n ...restBrickConf\n } = brickConf;\n\n const newBrickConf = {\n ...restBrickConf,\n brick: tplTagName,\n } as T;\n\n hostBrick.tplHostMetadata = {\n internalBricksByRef: new Map(),\n tplStateStoreId,\n proxy,\n };\n\n // Reversed proxies are used for expand storyboard before rendering page.\n const reversedProxies: TemplateHostContext[\"reversedProxies\"] = {\n properties: new Map(),\n slots: new Map(),\n // mergeBases: new Map(),\n };\n\n if (proxy?.properties) {\n for (const [from, to] of Object.entries(proxy.properties)) {\n let proxies = reversedProxies.properties.get(to.ref);\n if (!proxies) {\n proxies = [];\n reversedProxies.properties.set(to.ref, proxies);\n }\n proxies.push({\n from,\n to,\n });\n }\n }\n\n if (proxy?.slots) {\n for (const [from, to] of Object.entries(proxy.slots)) {\n let proxies = reversedProxies.slots.get(to.ref);\n if (!proxies) {\n proxies = [];\n reversedProxies.slots.set(to.ref, proxies);\n }\n proxies.push({\n from,\n to,\n });\n }\n }\n\n const hostContext: TemplateHostContext = {\n reversedProxies,\n asyncHostPropertyEntries,\n externalSlots: childrenToSlots(externalChildren, originalExternalSlots) as\n | SlotsConfOfBricks\n | undefined,\n tplStateStoreId,\n hostBrick: hostBrick as TemplateHostBrick,\n __temporary_tpl_tag_name: tplTagName,\n };\n\n newBrickConf.slots = {\n \"\": {\n type: \"bricks\",\n bricks: bricks.map((item) => expandBrickInTemplate(item, hostContext)),\n },\n };\n\n return newBrickConf;\n}\n\nfunction expandBrickInTemplate(\n brickConfInTemplate: BrickConfInTemplate,\n hostContext: TemplateHostContext\n): RuntimeBrickConfWithTplSymbols {\n // Ignore `if: null` to make `looseCheckIf` working.\n if (brickConfInTemplate.if === null) {\n delete brickConfInTemplate.if;\n }\n const {\n properties,\n slots: slotsInTemplate,\n children: childrenInTemplate,\n ...restBrickConfInTemplate\n } = brickConfInTemplate;\n\n const transpiledSlots = childrenToSlots(\n childrenInTemplate,\n slotsInTemplate\n ) as SlotsConfInTemplate | undefined;\n\n const slots: SlotsConfOfBricks = Object.fromEntries(\n Object.entries(transpiledSlots ?? {}).map(([slotName, slotConf]) => [\n slotName,\n {\n type: \"bricks\",\n bricks: (slotConf.bricks ?? []).map((item) =>\n expandBrickInTemplate(item, hostContext)\n ),\n },\n ])\n );\n\n return {\n ...restBrickConfInTemplate,\n properties: setupUseBrickInTemplate(properties, hostContext),\n slots,\n ...setupTemplateProxy(hostContext, restBrickConfInTemplate.ref, slots),\n };\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,30 +1,27 @@
|
|
|
1
|
-
import _objectSpread from "@babel/runtime/helpers/objectSpread2";
|
|
2
|
-
import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
|
|
3
|
-
import _toPropertyKey from "@babel/runtime/helpers/toPropertyKey";
|
|
4
1
|
import { hasOwnProperty } from "@next-core/utils/general";
|
|
5
2
|
import { clamp } from "lodash";
|
|
6
3
|
import { symbolForAsyncComputedPropsFromHost, symbolForTPlExternalForEachIndex, symbolForTPlExternalForEachItem, symbolForTPlExternalNoForEach, symbolForTplStateStoreId } from "./constants.js";
|
|
7
4
|
import { computePropertyValue } from "../compute/computeRealProperties.js";
|
|
8
5
|
import { childrenToSlots } from "../Renderer.js";
|
|
9
6
|
export function setupTemplateProxy(hostContext, ref, slots) {
|
|
10
|
-
|
|
7
|
+
const {
|
|
11
8
|
reversedProxies,
|
|
12
9
|
asyncHostPropertyEntries,
|
|
13
10
|
externalSlots,
|
|
14
11
|
tplStateStoreId,
|
|
15
12
|
hostBrick
|
|
16
13
|
} = hostContext;
|
|
17
|
-
|
|
14
|
+
let asyncComputedProps;
|
|
18
15
|
if (ref && reversedProxies) {
|
|
19
|
-
|
|
16
|
+
const propertyProxies = reversedProxies.properties.get(ref);
|
|
20
17
|
if (propertyProxies) {
|
|
21
|
-
|
|
18
|
+
const getComputedProps = asyncHostProps => {
|
|
22
19
|
return propertyProxies.map(_ref => {
|
|
23
|
-
|
|
20
|
+
let {
|
|
24
21
|
from,
|
|
25
22
|
to
|
|
26
23
|
} = _ref;
|
|
27
|
-
|
|
24
|
+
const filtered = asyncHostProps.filter(entry => entry[0] === from);
|
|
28
25
|
if (filtered.length > 0 && to.refProperty) {
|
|
29
26
|
return [to.refProperty, computePropertyValue(filtered, from), true];
|
|
30
27
|
}
|
|
@@ -32,53 +29,50 @@ export function setupTemplateProxy(hostContext, ref, slots) {
|
|
|
32
29
|
};
|
|
33
30
|
asyncComputedProps = getComputedProps(asyncHostPropertyEntries);
|
|
34
31
|
}
|
|
35
|
-
|
|
32
|
+
const slotProxies = reversedProxies.slots.get(ref);
|
|
36
33
|
if (slotProxies && externalSlots) {
|
|
37
34
|
// Use an approach like template-literal's quasis:
|
|
38
35
|
// `quasi0${0}quais1${1}quasi2...`
|
|
39
36
|
// Every quasi (indexed by `refPosition`) can be slotted with multiple bricks.
|
|
40
|
-
|
|
41
|
-
for (
|
|
37
|
+
const quasisMap = new Map();
|
|
38
|
+
for (const {
|
|
42
39
|
from,
|
|
43
40
|
to
|
|
44
41
|
} of slotProxies) {
|
|
45
|
-
var _externalSlots$from
|
|
46
|
-
|
|
42
|
+
var _externalSlots$from;
|
|
43
|
+
const insertBricks = ((_externalSlots$from = externalSlots[from]) === null || _externalSlots$from === void 0 ? void 0 : _externalSlots$from.bricks) ?? [];
|
|
47
44
|
if (!insertBricks.length) {
|
|
48
45
|
continue;
|
|
49
46
|
}
|
|
50
|
-
|
|
51
|
-
|
|
47
|
+
const refToSlot = to.refSlot ?? from;
|
|
48
|
+
let expandableSlot = quasisMap.get(refToSlot);
|
|
52
49
|
if (!expandableSlot) {
|
|
53
50
|
expandableSlot = [];
|
|
54
51
|
// The size of quasis should be the existed slotted bricks' size plus one.
|
|
55
|
-
|
|
56
|
-
for (
|
|
52
|
+
const size = hasOwnProperty(slots, refToSlot) ? slots[refToSlot].bricks.length + 1 : 1;
|
|
53
|
+
for (let i = 0; i < size; i += 1) {
|
|
57
54
|
expandableSlot.push([]);
|
|
58
55
|
}
|
|
59
56
|
quasisMap.set(refToSlot, expandableSlot);
|
|
60
57
|
}
|
|
61
|
-
|
|
58
|
+
const refPosition = to.refPosition ?? -1;
|
|
62
59
|
// External bricks of a template, should not access the template internal forEach `ITEM`.
|
|
63
60
|
// For some existing templates who is *USING* this bug, we keep the old behavior.
|
|
64
|
-
|
|
61
|
+
const hostHasForEach = hasOwnProperty(hostBrick.runtimeContext, "forEachItem");
|
|
65
62
|
expandableSlot[clamp(refPosition < 0 ? expandableSlot.length + refPosition : refPosition, 0, expandableSlot.length - 1)].push(...((hostContext.__temporary_tpl_tag_name === "base-layout-v3.tpl-scroll-load-list" || hostContext.__temporary_tpl_tag_name === "shrcb-homepage.tpl-custom-scroll-load-list") && !hostHasForEach ? insertBricks : setupTemplateExternalBricks(insertBricks, hostHasForEach, hostBrick.runtimeContext.forEachItem, hostBrick.runtimeContext.forEachIndex)));
|
|
66
63
|
}
|
|
67
|
-
|
|
64
|
+
for (const [slotName, quasis] of quasisMap.entries()) {
|
|
68
65
|
if (!hasOwnProperty(slots, slotName)) {
|
|
69
66
|
slots[slotName] = {
|
|
70
67
|
type: "bricks",
|
|
71
68
|
bricks: []
|
|
72
69
|
};
|
|
73
70
|
}
|
|
74
|
-
|
|
71
|
+
const slotConf = slots[slotName];
|
|
75
72
|
slotConf.bricks = quasis.flatMap((bricks, index) => index < slotConf.bricks.length ? bricks.concat(slotConf.bricks[index]) : bricks);
|
|
76
73
|
if (slotConf.bricks.length === 0) {
|
|
77
74
|
delete slots[slotName];
|
|
78
75
|
}
|
|
79
|
-
};
|
|
80
|
-
for (var [slotName, quasis] of quasisMap.entries()) {
|
|
81
|
-
_loop();
|
|
82
76
|
}
|
|
83
77
|
}
|
|
84
78
|
}
|
|
@@ -91,24 +85,25 @@ export function setupTemplateProxy(hostContext, ref, slots) {
|
|
|
91
85
|
// External bricks of a template, have the same forEachItem context as their host.
|
|
92
86
|
function setupTemplateExternalBricks(bricks, hasForEach, forEachItem, forEachIndex) {
|
|
93
87
|
return bricks.map(_ref2 => {
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
88
|
+
let {
|
|
89
|
+
children,
|
|
90
|
+
slots,
|
|
91
|
+
[symbolForTPlExternalForEachItem]: a,
|
|
92
|
+
[symbolForTPlExternalForEachIndex]: b,
|
|
93
|
+
[symbolForTPlExternalNoForEach]: c,
|
|
94
|
+
...brick
|
|
95
|
+
} = _ref2;
|
|
96
|
+
return {
|
|
97
|
+
...brick,
|
|
98
|
+
...(hasForEach ? {
|
|
99
|
+
[symbolForTPlExternalForEachItem]: forEachItem,
|
|
100
|
+
[symbolForTPlExternalForEachIndex]: forEachIndex
|
|
101
|
+
} : {
|
|
102
|
+
[symbolForTPlExternalNoForEach]: true
|
|
103
|
+
}),
|
|
109
104
|
// Keep `:forEach` bricks as original, since they have their own forEachItem context.
|
|
110
|
-
slots: brick.brick === ":forEach" ? childrenToSlots(children, slots) : Object.fromEntries(Object.entries(
|
|
111
|
-
|
|
105
|
+
slots: brick.brick === ":forEach" ? childrenToSlots(children, slots) : Object.fromEntries(Object.entries(childrenToSlots(children, slots) ?? {}).map(_ref3 => {
|
|
106
|
+
let [slotName, slotConf] = _ref3;
|
|
112
107
|
return [slotName, slotConf.type === "routes" ? {
|
|
113
108
|
type: "routes",
|
|
114
109
|
routes: setupTemplateExternalRoutes(slotConf.routes, hasForEach, forEachItem, forEachIndex)
|
|
@@ -117,14 +112,16 @@ function setupTemplateExternalBricks(bricks, hasForEach, forEachItem, forEachInd
|
|
|
117
112
|
bricks: setupTemplateExternalBricks(slotConf.bricks, hasForEach, forEachItem, forEachIndex)
|
|
118
113
|
}];
|
|
119
114
|
}))
|
|
120
|
-
}
|
|
115
|
+
};
|
|
121
116
|
});
|
|
122
117
|
}
|
|
123
118
|
function setupTemplateExternalRoutes(routes, hasForEach, forEachItem, forEachIndex) {
|
|
124
|
-
return routes.map(route => route.type === "routes" ?
|
|
119
|
+
return routes.map(route => route.type === "routes" ? {
|
|
120
|
+
...route,
|
|
125
121
|
routes: setupTemplateExternalRoutes(route.routes, hasForEach, forEachItem, forEachIndex)
|
|
126
|
-
}
|
|
122
|
+
} : route.type === "redirect" ? route : {
|
|
123
|
+
...route,
|
|
127
124
|
bricks: setupTemplateExternalBricks(route.bricks, hasForEach, forEachItem, forEachIndex)
|
|
128
|
-
})
|
|
125
|
+
});
|
|
129
126
|
}
|
|
130
127
|
//# sourceMappingURL=setupTemplateProxy.js.map
|