@next-core/runtime 1.44.1 → 1.44.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (219) hide show
  1. package/dist/cjs/CustomProcessors.js.map +1 -1
  2. package/dist/cjs/CustomTemplates.js +7 -11
  3. package/dist/cjs/CustomTemplates.js.map +1 -1
  4. package/dist/cjs/createRoot.js +11 -5
  5. package/dist/cjs/createRoot.js.map +1 -1
  6. package/dist/cjs/getPageInfo.js.map +1 -1
  7. package/dist/cjs/handleHttpError.js.map +1 -1
  8. package/dist/cjs/internal/CustomTemplates/bindTemplateProxy.js +4 -5
  9. package/dist/cjs/internal/CustomTemplates/bindTemplateProxy.js.map +1 -1
  10. package/dist/cjs/internal/CustomTemplates/expandCustomTemplate.js +4 -7
  11. package/dist/cjs/internal/CustomTemplates/expandCustomTemplate.js.map +1 -1
  12. package/dist/cjs/internal/CustomTemplates/setupTemplateProxy.js +21 -24
  13. package/dist/cjs/internal/CustomTemplates/setupTemplateProxy.js.map +1 -1
  14. package/dist/cjs/internal/CustomTemplates/setupUseBrickInTemplate.js +4 -7
  15. package/dist/cjs/internal/CustomTemplates/setupUseBrickInTemplate.js.map +1 -1
  16. package/dist/cjs/internal/CustomTemplates/utils.js +3 -3
  17. package/dist/cjs/internal/CustomTemplates/utils.js.map +1 -1
  18. package/dist/cjs/internal/FormRenderer/expandFormRenderer.js +3 -3
  19. package/dist/cjs/internal/FormRenderer/expandFormRenderer.js.map +1 -1
  20. package/dist/cjs/internal/FormRenderer/utils.js +2 -2
  21. package/dist/cjs/internal/FormRenderer/utils.js.map +1 -1
  22. package/dist/cjs/internal/Renderer.js +11 -14
  23. package/dist/cjs/internal/Renderer.js.map +1 -1
  24. package/dist/cjs/internal/RendererContext.js +8 -10
  25. package/dist/cjs/internal/RendererContext.js.map +1 -1
  26. package/dist/cjs/internal/Router.js +3 -0
  27. package/dist/cjs/internal/Router.js.map +1 -1
  28. package/dist/cjs/internal/Runtime.js +14 -14
  29. package/dist/cjs/internal/Runtime.js.map +1 -1
  30. package/dist/cjs/internal/bindListeners.js +2 -3
  31. package/dist/cjs/internal/bindListeners.js.map +1 -1
  32. package/dist/cjs/internal/compute/WidgetFunctions.js.map +1 -1
  33. package/dist/cjs/internal/compute/evaluate.js +4 -4
  34. package/dist/cjs/internal/compute/evaluate.js.map +1 -1
  35. package/dist/cjs/internal/compute/getGeneralGlobals.js.map +1 -1
  36. package/dist/cjs/internal/compute/getStorageItem.js +1 -2
  37. package/dist/cjs/internal/compute/getStorageItem.js.map +1 -1
  38. package/dist/cjs/internal/compute/listenOnTrackingContext.js.map +1 -1
  39. package/dist/cjs/internal/compute/setRealProperties.js.map +1 -1
  40. package/dist/cjs/internal/data/DataStore.js.map +1 -1
  41. package/dist/cjs/internal/data/getProviderBrick.js.map +1 -1
  42. package/dist/cjs/internal/data/realTimeDataInspect.js.map +1 -1
  43. package/dist/cjs/internal/data/resolveData.js.map +1 -1
  44. package/dist/cjs/internal/data/resolveDataStore.js +2 -4
  45. package/dist/cjs/internal/data/resolveDataStore.js.map +1 -1
  46. package/dist/cjs/internal/hasInstalledApp.js.map +1 -1
  47. package/dist/cjs/internal/historyExtended.js.map +1 -1
  48. package/dist/cjs/internal/matchPath.js.map +1 -1
  49. package/dist/cjs/internal/matchRoutes.js.map +1 -1
  50. package/dist/cjs/internal/matchStoryboard.js +2 -2
  51. package/dist/cjs/internal/matchStoryboard.js.map +1 -1
  52. package/dist/cjs/internal/mediaQuery.js.map +1 -1
  53. package/dist/cjs/internal/mount.js.map +1 -1
  54. package/dist/cjs/internal/poll.js +3 -3
  55. package/dist/cjs/internal/poll.js.map +1 -1
  56. package/dist/cjs/internal/registerAppI18n.js.map +1 -1
  57. package/dist/cjs/internal/registerCustomTemplates.js.map +1 -1
  58. package/dist/cjs/internal/secret_internals.js +4 -4
  59. package/dist/cjs/internal/secret_internals.js.map +1 -1
  60. package/dist/cjs/internal/setupRootRuntimeContext.js +2 -3
  61. package/dist/cjs/internal/setupRootRuntimeContext.js.map +1 -1
  62. package/dist/cjs/isStrictMode.js.map +1 -1
  63. package/dist/cjs/setLoginStateCookie.js.map +1 -1
  64. package/dist/cjs/setWatermark.js +4 -4
  65. package/dist/cjs/setWatermark.js.map +1 -1
  66. package/dist/cjs/themeAndMode.js +1 -2
  67. package/dist/cjs/themeAndMode.js.map +1 -1
  68. package/dist/esm/CustomProcessors.js +5 -5
  69. package/dist/esm/CustomProcessors.js.map +1 -1
  70. package/dist/esm/CustomTemplates.js +48 -58
  71. package/dist/esm/CustomTemplates.js.map +1 -1
  72. package/dist/esm/Dialog.js +3 -3
  73. package/dist/esm/Dialog.js.map +1 -1
  74. package/dist/esm/Notification.js +2 -2
  75. package/dist/esm/Notification.js.map +1 -1
  76. package/dist/esm/StoryboardFunctionRegistry.js +18 -18
  77. package/dist/esm/StoryboardFunctionRegistry.js.map +1 -1
  78. package/dist/esm/createRoot.js +125 -123
  79. package/dist/esm/createRoot.js.map +1 -1
  80. package/dist/esm/fetchByProvider.js +3 -10
  81. package/dist/esm/fetchByProvider.js.map +1 -1
  82. package/dist/esm/getBasePath.js +2 -2
  83. package/dist/esm/getBasePath.js.map +1 -1
  84. package/dist/esm/getPageInfo.js +5 -5
  85. package/dist/esm/getPageInfo.js.map +1 -1
  86. package/dist/esm/getRealValue.js +7 -6
  87. package/dist/esm/getRealValue.js.map +1 -1
  88. package/dist/esm/getV2RuntimeFromDll.js +1 -1
  89. package/dist/esm/getV2RuntimeFromDll.js.map +1 -1
  90. package/dist/esm/handleHttpError.js +11 -11
  91. package/dist/esm/handleHttpError.js.map +1 -1
  92. package/dist/esm/history.js +4 -4
  93. package/dist/esm/history.js.map +1 -1
  94. package/dist/esm/internal/CustomTemplates/bindTemplateProxy.js +13 -17
  95. package/dist/esm/internal/CustomTemplates/bindTemplateProxy.js.map +1 -1
  96. package/dist/esm/internal/CustomTemplates/constants.js +5 -5
  97. package/dist/esm/internal/CustomTemplates/constants.js.map +1 -1
  98. package/dist/esm/internal/CustomTemplates/expandCustomTemplate.js +41 -42
  99. package/dist/esm/internal/CustomTemplates/expandCustomTemplate.js.map +1 -1
  100. package/dist/esm/internal/CustomTemplates/setupTemplateProxy.js +43 -46
  101. package/dist/esm/internal/CustomTemplates/setupTemplateProxy.js.map +1 -1
  102. package/dist/esm/internal/CustomTemplates/setupUseBrickInTemplate.js +16 -18
  103. package/dist/esm/internal/CustomTemplates/setupUseBrickInTemplate.js.map +1 -1
  104. package/dist/esm/internal/CustomTemplates/utils.js +8 -8
  105. package/dist/esm/internal/CustomTemplates/utils.js.map +1 -1
  106. package/dist/esm/internal/FormRenderer/constants.js +2 -2
  107. package/dist/esm/internal/FormRenderer/constants.js.map +1 -1
  108. package/dist/esm/internal/FormRenderer/expandFormRenderer.js +28 -23
  109. package/dist/esm/internal/FormRenderer/expandFormRenderer.js.map +1 -1
  110. package/dist/esm/internal/FormRenderer/getDefaultProperties.js +45 -22
  111. package/dist/esm/internal/FormRenderer/getDefaultProperties.js.map +1 -1
  112. package/dist/esm/internal/FormRenderer/utils.js +4 -4
  113. package/dist/esm/internal/FormRenderer/utils.js.map +1 -1
  114. package/dist/esm/internal/Renderer.js +517 -577
  115. package/dist/esm/internal/Renderer.js.map +1 -1
  116. package/dist/esm/internal/RendererContext.js +132 -148
  117. package/dist/esm/internal/RendererContext.js.map +1 -1
  118. package/dist/esm/internal/Router.js +325 -343
  119. package/dist/esm/internal/Router.js.map +1 -1
  120. package/dist/esm/internal/Runtime.js +53 -51
  121. package/dist/esm/internal/Runtime.js.map +1 -1
  122. package/dist/esm/internal/abortController.js +7 -6
  123. package/dist/esm/internal/abortController.js.map +1 -1
  124. package/dist/esm/internal/bindListeners.js +136 -156
  125. package/dist/esm/internal/bindListeners.js.map +1 -1
  126. package/dist/esm/internal/compute/StoryboardFunctions.js +1 -1
  127. package/dist/esm/internal/compute/StoryboardFunctions.js.map +1 -1
  128. package/dist/esm/internal/compute/WidgetFunctions.js +6 -6
  129. package/dist/esm/internal/compute/WidgetFunctions.js.map +1 -1
  130. package/dist/esm/internal/compute/WidgetI18n.js +4 -4
  131. package/dist/esm/internal/compute/WidgetI18n.js.map +1 -1
  132. package/dist/esm/internal/compute/checkIf.js +10 -23
  133. package/dist/esm/internal/compute/checkIf.js.map +1 -1
  134. package/dist/esm/internal/compute/computeRealProperties.js +22 -35
  135. package/dist/esm/internal/compute/computeRealProperties.js.map +1 -1
  136. package/dist/esm/internal/compute/computeRealValue.js +42 -49
  137. package/dist/esm/internal/compute/computeRealValue.js.map +1 -1
  138. package/dist/esm/internal/compute/evaluate.js +71 -75
  139. package/dist/esm/internal/compute/evaluate.js.map +1 -1
  140. package/dist/esm/internal/compute/getGeneralGlobals.js +5 -5
  141. package/dist/esm/internal/compute/getGeneralGlobals.js.map +1 -1
  142. package/dist/esm/internal/compute/getNextStateOfUseBrick.js +1 -1
  143. package/dist/esm/internal/compute/getStorageItem.js +2 -3
  144. package/dist/esm/internal/compute/getStorageItem.js.map +1 -1
  145. package/dist/esm/internal/compute/getTracks.js +5 -5
  146. package/dist/esm/internal/compute/getTracks.js.map +1 -1
  147. package/dist/esm/internal/compute/listenOnTrackingContext.js +8 -11
  148. package/dist/esm/internal/compute/listenOnTrackingContext.js.map +1 -1
  149. package/dist/esm/internal/compute/markAsComputed.js +2 -2
  150. package/dist/esm/internal/compute/markAsComputed.js.map +1 -1
  151. package/dist/esm/internal/compute/setProperties.js +1 -1
  152. package/dist/esm/internal/compute/setProperties.js.map +1 -1
  153. package/dist/esm/internal/compute/setRealProperties.js +3 -3
  154. package/dist/esm/internal/compute/setRealProperties.js.map +1 -1
  155. package/dist/esm/internal/customizeColorTheme.js +15 -13
  156. package/dist/esm/internal/customizeColorTheme.js.map +1 -1
  157. package/dist/esm/internal/data/DataStore.js +161 -177
  158. package/dist/esm/internal/data/DataStore.js.map +1 -1
  159. package/dist/esm/internal/data/getProviderBrick.js +21 -28
  160. package/dist/esm/internal/data/getProviderBrick.js.map +1 -1
  161. package/dist/esm/internal/data/realTimeDataInspect.js +5 -5
  162. package/dist/esm/internal/data/realTimeDataInspect.js.map +1 -1
  163. package/dist/esm/internal/data/resolveData.js +89 -103
  164. package/dist/esm/internal/data/resolveData.js.map +1 -1
  165. package/dist/esm/internal/data/resolveDataStore.js +53 -67
  166. package/dist/esm/internal/data/resolveDataStore.js.map +1 -1
  167. package/dist/esm/internal/devtools.js +9 -9
  168. package/dist/esm/internal/devtools.js.map +1 -1
  169. package/dist/esm/internal/enums.js +1 -1
  170. package/dist/esm/internal/fulfilStoryboard.js +15 -28
  171. package/dist/esm/internal/fulfilStoryboard.js.map +1 -1
  172. package/dist/esm/internal/hasInstalledApp.js +3 -3
  173. package/dist/esm/internal/hasInstalledApp.js.map +1 -1
  174. package/dist/esm/internal/historyExtended.js +40 -37
  175. package/dist/esm/internal/historyExtended.js.map +1 -1
  176. package/dist/esm/internal/i18n.js +5 -5
  177. package/dist/esm/internal/i18n.js.map +1 -1
  178. package/dist/esm/internal/injected.js +1 -1
  179. package/dist/esm/internal/injected.js.map +1 -1
  180. package/dist/esm/internal/insertPreviewRoutes.js +3 -3
  181. package/dist/esm/internal/insertPreviewRoutes.js.map +1 -1
  182. package/dist/esm/internal/matchPath.js +17 -17
  183. package/dist/esm/internal/matchPath.js.map +1 -1
  184. package/dist/esm/internal/matchRoutes.js +18 -25
  185. package/dist/esm/internal/matchRoutes.js.map +1 -1
  186. package/dist/esm/internal/matchStoryboard.js +6 -6
  187. package/dist/esm/internal/matchStoryboard.js.map +1 -1
  188. package/dist/esm/internal/mediaQuery.js +11 -11
  189. package/dist/esm/internal/mediaQuery.js.map +1 -1
  190. package/dist/esm/internal/mount.js +7 -7
  191. package/dist/esm/internal/mount.js.map +1 -1
  192. package/dist/esm/internal/poll.js +53 -60
  193. package/dist/esm/internal/poll.js.map +1 -1
  194. package/dist/esm/internal/proxyFactories.js +4 -4
  195. package/dist/esm/internal/proxyFactories.js.map +1 -1
  196. package/dist/esm/internal/registerAppI18n.js +6 -6
  197. package/dist/esm/internal/registerAppI18n.js.map +1 -1
  198. package/dist/esm/internal/registerCustomTemplates.js +3 -3
  199. package/dist/esm/internal/registerCustomTemplates.js.map +1 -1
  200. package/dist/esm/internal/secret_internals.js +140 -146
  201. package/dist/esm/internal/secret_internals.js.map +1 -1
  202. package/dist/esm/internal/setupRootRuntimeContext.js +6 -7
  203. package/dist/esm/internal/setupRootRuntimeContext.js.map +1 -1
  204. package/dist/esm/internal/sse.js +24 -53
  205. package/dist/esm/internal/sse.js.map +1 -1
  206. package/dist/esm/internal/test_only.js +1 -1
  207. package/dist/esm/isStrictMode.js +3 -3
  208. package/dist/esm/isStrictMode.js.map +1 -1
  209. package/dist/esm/setAppVariable.js +1 -1
  210. package/dist/esm/setAppVariable.js.map +1 -1
  211. package/dist/esm/setLoginStateCookie.js +5 -5
  212. package/dist/esm/setLoginStateCookie.js.map +1 -1
  213. package/dist/esm/setUIVersion.js +1 -1
  214. package/dist/esm/setWatermark.js +13 -13
  215. package/dist/esm/setWatermark.js.map +1 -1
  216. package/dist/esm/themeAndMode.js +14 -13
  217. package/dist/esm/themeAndMode.js.map +1 -1
  218. package/dist/types/tsdoc-metadata.json +1 -1
  219. package/package.json +12 -12
@@ -1 +1 @@
1
- {"version":3,"file":"setupTemplateProxy.js","names":["_general","require","_lodash","_constants","_computeRealProperties","_Renderer","setupTemplateProxy","hostContext","ref","slots","reversedProxies","asyncHostPropertyEntries","externalSlots","tplStateStoreId","hostBrick","asyncComputedProps","propertyProxies","properties","get","getComputedProps","asyncHostProps","map","from","to","filtered","filter","entry","length","refProperty","computePropertyValue","Boolean","slotProxies","quasisMap","Map","_externalSlots$from$b","_externalSlots$from","_to$refSlot","_to$refPosition","insertBricks","bricks","refToSlot","refSlot","expandableSlot","size","hasOwnProperty","i","push","set","refPosition","hostHasForEach","runtimeContext","clamp","__temporary_tpl_tag_name","setupTemplateExternalBricks","forEachItem","forEachIndex","slotName","quasis","entries","type","slotConf","flatMap","index","concat","symbolForAsyncComputedPropsFromHost","symbolForTplStateStoreId","hasForEach","children","symbolForTPlExternalForEachItem","a","symbolForTPlExternalForEachIndex","b","symbolForTPlExternalNoForEach","c","brick","_childrenToSlots","childrenToSlots","Object","fromEntries","routes","setupTemplateExternalRoutes","route"],"sources":["../../../../src/internal/CustomTemplates/setupTemplateProxy.ts"],"sourcesContent":["import type { BrickConf, RouteConf, SlotsConfOfBricks } from \"@next-core/types\";\nimport { hasOwnProperty } from \"@next-core/utils/general\";\nimport { clamp } from \"lodash\";\nimport {\n symbolForAsyncComputedPropsFromHost,\n symbolForTPlExternalForEachIndex,\n symbolForTPlExternalForEachItem,\n symbolForTPlExternalNoForEach,\n symbolForTplStateStoreId,\n type RuntimeBrickConfWithTplSymbols,\n} from \"./constants.js\";\nimport type { AsyncPropertyEntry, TemplateHostContext } from \"../interfaces.js\";\nimport { computePropertyValue } from \"../compute/computeRealProperties.js\";\nimport { childrenToSlots } from \"../Renderer.js\";\n\nexport function setupTemplateProxy(\n hostContext: TemplateHostContext,\n ref: string | undefined,\n slots: SlotsConfOfBricks\n) {\n const {\n reversedProxies,\n asyncHostPropertyEntries,\n externalSlots,\n tplStateStoreId,\n hostBrick,\n } = hostContext;\n\n let asyncComputedProps: AsyncPropertyEntry[] | undefined;\n\n if (ref && reversedProxies) {\n const propertyProxies = reversedProxies.properties.get(ref);\n if (propertyProxies) {\n const getComputedProps = (\n asyncHostProps: AsyncPropertyEntry[]\n ): AsyncPropertyEntry[] => {\n return propertyProxies!\n .map(({ from, to }) => {\n const filtered = asyncHostProps.filter(\n (entry) => entry[0] === from\n );\n if (filtered.length > 0 && to.refProperty) {\n return [\n to.refProperty,\n computePropertyValue(filtered, from),\n true,\n ];\n }\n })\n .filter(Boolean) as [string, Promise<unknown>][];\n };\n\n asyncComputedProps = getComputedProps(asyncHostPropertyEntries);\n }\n\n const slotProxies = reversedProxies.slots.get(ref);\n if (slotProxies && externalSlots) {\n // Use an approach like template-literal's quasis:\n // `quasi0${0}quais1${1}quasi2...`\n // Every quasi (indexed by `refPosition`) can be slotted with multiple bricks.\n const quasisMap = new Map<string, BrickConf[][]>();\n\n for (const { from, to } of slotProxies) {\n const insertBricks = externalSlots[from]?.bricks ?? [];\n if (!insertBricks.length) {\n continue;\n }\n const refToSlot = to.refSlot ?? from;\n let expandableSlot = quasisMap.get(refToSlot);\n if (!expandableSlot) {\n expandableSlot = [];\n // The size of quasis should be the existed slotted bricks' size plus one.\n const size = hasOwnProperty(slots, refToSlot)\n ? slots[refToSlot].bricks.length + 1\n : 1;\n for (let i = 0; i < size; i += 1) {\n expandableSlot.push([]);\n }\n quasisMap.set(refToSlot, expandableSlot);\n }\n const refPosition = to.refPosition ?? -1;\n // External bricks of a template, should not access the template internal forEach `ITEM`.\n // For some existing templates who is *USING* this bug, we keep the old behavior.\n const hostHasForEach = hasOwnProperty(\n hostBrick.runtimeContext,\n \"forEachItem\"\n );\n expandableSlot[\n clamp(\n refPosition < 0 ? expandableSlot.length + refPosition : refPosition,\n 0,\n expandableSlot.length - 1\n )\n ].push(\n ...((hostContext.__temporary_tpl_tag_name ===\n \"base-layout-v3.tpl-scroll-load-list\" ||\n hostContext.__temporary_tpl_tag_name ===\n \"shrcb-homepage.tpl-custom-scroll-load-list\") &&\n !hostHasForEach\n ? insertBricks\n : setupTemplateExternalBricks(\n insertBricks,\n hostHasForEach,\n hostBrick.runtimeContext.forEachItem,\n hostBrick.runtimeContext.forEachIndex!\n ))\n );\n }\n\n for (const [slotName, quasis] of quasisMap.entries()) {\n if (!hasOwnProperty(slots, slotName)) {\n slots[slotName] = {\n type: \"bricks\",\n bricks: [],\n };\n }\n const slotConf = slots[slotName];\n slotConf.bricks = quasis.flatMap((bricks, index) =>\n index < slotConf.bricks.length\n ? bricks.concat(slotConf.bricks[index])\n : bricks\n );\n\n if (slotConf.bricks.length === 0) {\n delete slots[slotName];\n }\n }\n }\n }\n\n return {\n [symbolForAsyncComputedPropsFromHost]: asyncComputedProps,\n [symbolForTplStateStoreId]: tplStateStoreId,\n };\n}\n\n// External bricks of a template, have the same forEachItem context as their host.\nfunction setupTemplateExternalBricks(\n bricks: BrickConf[],\n hasForEach: boolean,\n forEachItem: unknown,\n forEachIndex: number\n): BrickConf[] {\n return (bricks as RuntimeBrickConfWithTplSymbols[]).map(\n ({\n children,\n slots,\n [symbolForTPlExternalForEachItem]: a,\n [symbolForTPlExternalForEachIndex]: b,\n [symbolForTPlExternalNoForEach]: c,\n ...brick\n }) => ({\n ...brick,\n ...(hasForEach\n ? {\n [symbolForTPlExternalForEachItem]: forEachItem,\n [symbolForTPlExternalForEachIndex]: forEachIndex,\n }\n : {\n [symbolForTPlExternalNoForEach]: true,\n }),\n // Keep `:forEach` bricks as original, since they have their own forEachItem context.\n slots:\n brick.brick === \":forEach\"\n ? childrenToSlots(children, slots)\n : Object.fromEntries(\n Object.entries(childrenToSlots(children, slots) ?? {}).map(\n ([slotName, slotConf]) => [\n slotName,\n slotConf.type === \"routes\"\n ? {\n type: \"routes\",\n routes: setupTemplateExternalRoutes(\n slotConf.routes,\n hasForEach,\n forEachItem,\n forEachIndex\n ),\n }\n : {\n type: \"bricks\",\n bricks: setupTemplateExternalBricks(\n slotConf.bricks,\n hasForEach,\n forEachItem,\n forEachIndex\n ),\n },\n ]\n )\n ),\n })\n );\n}\n\nfunction setupTemplateExternalRoutes(\n routes: RouteConf[],\n hasForEach: boolean,\n forEachItem: unknown,\n forEachIndex: number\n): RouteConf[] {\n return routes.map((route) =>\n route.type === \"routes\"\n ? {\n ...route,\n routes: setupTemplateExternalRoutes(\n route.routes,\n hasForEach,\n forEachItem,\n forEachIndex\n ),\n }\n : route.type === \"redirect\"\n ? route\n : {\n ...route,\n bricks: setupTemplateExternalBricks(\n route.bricks,\n hasForEach,\n forEachItem,\n forEachIndex\n ),\n }\n );\n}\n"],"mappings":";;;;;;AACA,IAAAA,QAAA,GAAAC,OAAA;AACA,IAAAC,OAAA,GAAAD,OAAA;AACA,IAAAE,UAAA,GAAAF,OAAA;AASA,IAAAG,sBAAA,GAAAH,OAAA;AACA,IAAAI,SAAA,GAAAJ,OAAA;AAEO,SAASK,kBAAkBA,CAChCC,WAAgC,EAChCC,GAAuB,EACvBC,KAAwB,EACxB;EACA,MAAM;IACJC,eAAe;IACfC,wBAAwB;IACxBC,aAAa;IACbC,eAAe;IACfC;EACF,CAAC,GAAGP,WAAW;EAEf,IAAIQ,kBAAoD;EAExD,IAAIP,GAAG,IAAIE,eAAe,EAAE;IAC1B,MAAMM,eAAe,GAAGN,eAAe,CAACO,UAAU,CAACC,GAAG,CAACV,GAAG,CAAC;IAC3D,IAAIQ,eAAe,EAAE;MACnB,MAAMG,gBAAgB,GACpBC,cAAoC,IACX;QACzB,OAAOJ,eAAe,CACnBK,GAAG,CAAC,CAAC;UAAEC,IAAI;UAAEC;QAAG,CAAC,KAAK;UACrB,MAAMC,QAAQ,GAAGJ,cAAc,CAACK,MAAM,CACnCC,KAAK,IAAKA,KAAK,CAAC,CAAC,CAAC,KAAKJ,IAC1B,CAAC;UACD,IAAIE,QAAQ,CAACG,MAAM,GAAG,CAAC,IAAIJ,EAAE,CAACK,WAAW,EAAE;YACzC,OAAO,CACLL,EAAE,CAACK,WAAW,EACd,IAAAC,2CAAoB,EAACL,QAAQ,EAAEF,IAAI,CAAC,EACpC,IAAI,CACL;UACH;QACF,CAAC,CAAC,CACDG,MAAM,CAACK,OAAO,CAAC;MACpB,CAAC;MAEDf,kBAAkB,GAAGI,gBAAgB,CAACR,wBAAwB,CAAC;IACjE;IAEA,MAAMoB,WAAW,GAAGrB,eAAe,CAACD,KAAK,CAACS,GAAG,CAACV,GAAG,CAAC;IAClD,IAAIuB,WAAW,IAAInB,aAAa,EAAE;MAChC;MACA;MACA;MACA,MAAMoB,SAAS,GAAG,IAAIC,GAAG,CAAwB,CAAC;MAElD,KAAK,MAAM;QAAEX,IAAI;QAAEC;MAAG,CAAC,IAAIQ,WAAW,EAAE;QAAA,IAAAG,qBAAA,EAAAC,mBAAA,EAAAC,WAAA,EAAAC,eAAA;QACtC,MAAMC,YAAY,IAAAJ,qBAAA,IAAAC,mBAAA,GAAGvB,aAAa,CAACU,IAAI,CAAC,cAAAa,mBAAA,uBAAnBA,mBAAA,CAAqBI,MAAM,cAAAL,qBAAA,cAAAA,qBAAA,GAAI,EAAE;QACtD,IAAI,CAACI,YAAY,CAACX,MAAM,EAAE;UACxB;QACF;QACA,MAAMa,SAAS,IAAAJ,WAAA,GAAGb,EAAE,CAACkB,OAAO,cAAAL,WAAA,cAAAA,WAAA,GAAId,IAAI;QACpC,IAAIoB,cAAc,GAAGV,SAAS,CAACd,GAAG,CAACsB,SAAS,CAAC;QAC7C,IAAI,CAACE,cAAc,EAAE;UACnBA,cAAc,GAAG,EAAE;UACnB;UACA,MAAMC,IAAI,GAAG,IAAAC,uBAAc,EAACnC,KAAK,EAAE+B,SAAS,CAAC,GACzC/B,KAAK,CAAC+B,SAAS,CAAC,CAACD,MAAM,CAACZ,MAAM,GAAG,CAAC,GAClC,CAAC;UACL,KAAK,IAAIkB,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGF,IAAI,EAAEE,CAAC,IAAI,CAAC,EAAE;YAChCH,cAAc,CAACI,IAAI,CAAC,EAAE,CAAC;UACzB;UACAd,SAAS,CAACe,GAAG,CAACP,SAAS,EAAEE,cAAc,CAAC;QAC1C;QACA,MAAMM,WAAW,IAAAX,eAAA,GAAGd,EAAE,CAACyB,WAAW,cAAAX,eAAA,cAAAA,eAAA,GAAI,CAAC,CAAC;QACxC;QACA;QACA,MAAMY,cAAc,GAAG,IAAAL,uBAAc,EACnC9B,SAAS,CAACoC,cAAc,EACxB,aACF,CAAC;QACDR,cAAc,CACZ,IAAAS,aAAK,EACHH,WAAW,GAAG,CAAC,GAAGN,cAAc,CAACf,MAAM,GAAGqB,WAAW,GAAGA,WAAW,EACnE,CAAC,EACDN,cAAc,CAACf,MAAM,GAAG,CAC1B,CAAC,CACF,CAACmB,IAAI,CACJ,IAAI,CAACvC,WAAW,CAAC6C,wBAAwB,KACvC,qCAAqC,IACrC7C,WAAW,CAAC6C,wBAAwB,KAClC,4CAA4C,KAChD,CAACH,cAAc,GACXX,YAAY,GACZe,2BAA2B,CACzBf,YAAY,EACZW,cAAc,EACdnC,SAAS,CAACoC,cAAc,CAACI,WAAW,EACpCxC,SAAS,CAACoC,cAAc,CAACK,YAC3B,CAAC,CACP,CAAC;MACH;MAEA,KAAK,MAAM,CAACC,QAAQ,EAAEC,MAAM,CAAC,IAAIzB,SAAS,CAAC0B,OAAO,CAAC,CAAC,EAAE;QACpD,IAAI,CAAC,IAAAd,uBAAc,EAACnC,KAAK,EAAE+C,QAAQ,CAAC,EAAE;UACpC/C,KAAK,CAAC+C,QAAQ,CAAC,GAAG;YAChBG,IAAI,EAAE,QAAQ;YACdpB,MAAM,EAAE;UACV,CAAC;QACH;QACA,MAAMqB,QAAQ,GAAGnD,KAAK,CAAC+C,QAAQ,CAAC;QAChCI,QAAQ,CAACrB,MAAM,GAAGkB,MAAM,CAACI,OAAO,CAAC,CAACtB,MAAM,EAAEuB,KAAK,KAC7CA,KAAK,GAAGF,QAAQ,CAACrB,MAAM,CAACZ,MAAM,GAC1BY,MAAM,CAACwB,MAAM,CAACH,QAAQ,CAACrB,MAAM,CAACuB,KAAK,CAAC,CAAC,GACrCvB,MACN,CAAC;QAED,IAAIqB,QAAQ,CAACrB,MAAM,CAACZ,MAAM,KAAK,CAAC,EAAE;UAChC,OAAOlB,KAAK,CAAC+C,QAAQ,CAAC;QACxB;MACF;IACF;EACF;EAEA,OAAO;IACL,CAACQ,8CAAmC,GAAGjD,kBAAkB;IACzD,CAACkD,mCAAwB,GAAGpD;EAC9B,CAAC;AACH;;AAEA;AACA,SAASwC,2BAA2BA,CAClCd,MAAmB,EACnB2B,UAAmB,EACnBZ,WAAoB,EACpBC,YAAoB,EACP;EACb,OAAQhB,MAAM,CAAsClB,GAAG,CACrD,CAAC;IACC8C,QAAQ;IACR1D,KAAK;IACL,CAAC2D,0CAA+B,GAAGC,CAAC;IACpC,CAACC,2CAAgC,GAAGC,CAAC;IACrC,CAACC,wCAA6B,GAAGC,CAAC;IAClC,GAAGC;EACL,CAAC;IAAA,IAAAC,gBAAA;IAAA,OAAM;MACL,GAAGD,KAAK;MACR,IAAIR,UAAU,GACV;QACE,CAACE,0CAA+B,GAAGd,WAAW;QAC9C,CAACgB,2CAAgC,GAAGf;MACtC,CAAC,GACD;QACE,CAACiB,wCAA6B,GAAG;MACnC,CAAC,CAAC;MACN;MACA/D,KAAK,EACHiE,KAAK,CAACA,KAAK,KAAK,UAAU,GACtB,IAAAE,yBAAe,EAACT,QAAQ,EAAE1D,KAAK,CAAC,GAChCoE,MAAM,CAACC,WAAW,CAChBD,MAAM,CAACnB,OAAO,EAAAiB,gBAAA,GAAC,IAAAC,yBAAe,EAACT,QAAQ,EAAE1D,KAAK,CAAC,cAAAkE,gBAAA,cAAAA,gBAAA,GAAI,CAAC,CAAC,CAAC,CAACtD,GAAG,CACxD,CAAC,CAACmC,QAAQ,EAAEI,QAAQ,CAAC,KAAK,CACxBJ,QAAQ,EACRI,QAAQ,CAACD,IAAI,KAAK,QAAQ,GACtB;QACEA,IAAI,EAAE,QAAQ;QACdoB,MAAM,EAAEC,2BAA2B,CACjCpB,QAAQ,CAACmB,MAAM,EACfb,UAAU,EACVZ,WAAW,EACXC,YACF;MACF,CAAC,GACD;QACEI,IAAI,EAAE,QAAQ;QACdpB,MAAM,EAAEc,2BAA2B,CACjCO,QAAQ,CAACrB,MAAM,EACf2B,UAAU,EACVZ,WAAW,EACXC,YACF;MACF,CAAC,CAET,CACF;IACR,CAAC;EAAA,CACH,CAAC;AACH;AAEA,SAASyB,2BAA2BA,CAClCD,MAAmB,EACnBb,UAAmB,EACnBZ,WAAoB,EACpBC,YAAoB,EACP;EACb,OAAOwB,MAAM,CAAC1D,GAAG,CAAE4D,KAAK,IACtBA,KAAK,CAACtB,IAAI,KAAK,QAAQ,GACnB;IACE,GAAGsB,KAAK;IACRF,MAAM,EAAEC,2BAA2B,CACjCC,KAAK,CAACF,MAAM,EACZb,UAAU,EACVZ,WAAW,EACXC,YACF;EACF,CAAC,GACD0B,KAAK,CAACtB,IAAI,KAAK,UAAU,GACvBsB,KAAK,GACL;IACE,GAAGA,KAAK;IACR1C,MAAM,EAAEc,2BAA2B,CACjC4B,KAAK,CAAC1C,MAAM,EACZ2B,UAAU,EACVZ,WAAW,EACXC,YACF;EACF,CACR,CAAC;AACH","ignoreList":[]}
1
+ {"version":3,"file":"setupTemplateProxy.js","names":["_general","require","_lodash","_constants","_computeRealProperties","_Renderer","setupTemplateProxy","hostContext","ref","slots","reversedProxies","asyncHostPropertyEntries","externalSlots","tplStateStoreId","hostBrick","asyncComputedProps","propertyProxies","properties","get","getComputedProps","asyncHostProps","map","from","to","filtered","filter","entry","length","refProperty","computePropertyValue","Boolean","slotProxies","quasisMap","Map","_externalSlots$from","insertBricks","bricks","refToSlot","refSlot","expandableSlot","size","hasOwnProperty","i","push","set","refPosition","hostHasForEach","runtimeContext","clamp","__temporary_tpl_tag_name","setupTemplateExternalBricks","forEachItem","forEachIndex","slotName","quasis","entries","type","slotConf","flatMap","index","concat","symbolForAsyncComputedPropsFromHost","symbolForTplStateStoreId","hasForEach","children","symbolForTPlExternalForEachItem","a","symbolForTPlExternalForEachIndex","b","symbolForTPlExternalNoForEach","c","brick","childrenToSlots","Object","fromEntries","routes","setupTemplateExternalRoutes","route"],"sources":["../../../../src/internal/CustomTemplates/setupTemplateProxy.ts"],"sourcesContent":["import type { BrickConf, RouteConf, SlotsConfOfBricks } from \"@next-core/types\";\nimport { hasOwnProperty } from \"@next-core/utils/general\";\nimport { clamp } from \"lodash\";\nimport {\n symbolForAsyncComputedPropsFromHost,\n symbolForTPlExternalForEachIndex,\n symbolForTPlExternalForEachItem,\n symbolForTPlExternalNoForEach,\n symbolForTplStateStoreId,\n type RuntimeBrickConfWithTplSymbols,\n} from \"./constants.js\";\nimport type { AsyncPropertyEntry, TemplateHostContext } from \"../interfaces.js\";\nimport { computePropertyValue } from \"../compute/computeRealProperties.js\";\nimport { childrenToSlots } from \"../Renderer.js\";\n\nexport function setupTemplateProxy(\n hostContext: TemplateHostContext,\n ref: string | undefined,\n slots: SlotsConfOfBricks\n) {\n const {\n reversedProxies,\n asyncHostPropertyEntries,\n externalSlots,\n tplStateStoreId,\n hostBrick,\n } = hostContext;\n\n let asyncComputedProps: AsyncPropertyEntry[] | undefined;\n\n if (ref && reversedProxies) {\n const propertyProxies = reversedProxies.properties.get(ref);\n if (propertyProxies) {\n const getComputedProps = (\n asyncHostProps: AsyncPropertyEntry[]\n ): AsyncPropertyEntry[] => {\n return propertyProxies!\n .map(({ from, to }) => {\n const filtered = asyncHostProps.filter(\n (entry) => entry[0] === from\n );\n if (filtered.length > 0 && to.refProperty) {\n return [\n to.refProperty,\n computePropertyValue(filtered, from),\n true,\n ];\n }\n })\n .filter(Boolean) as [string, Promise<unknown>][];\n };\n\n asyncComputedProps = getComputedProps(asyncHostPropertyEntries);\n }\n\n const slotProxies = reversedProxies.slots.get(ref);\n if (slotProxies && externalSlots) {\n // Use an approach like template-literal's quasis:\n // `quasi0${0}quais1${1}quasi2...`\n // Every quasi (indexed by `refPosition`) can be slotted with multiple bricks.\n const quasisMap = new Map<string, BrickConf[][]>();\n\n for (const { from, to } of slotProxies) {\n const insertBricks = externalSlots[from]?.bricks ?? [];\n if (!insertBricks.length) {\n continue;\n }\n const refToSlot = to.refSlot ?? from;\n let expandableSlot = quasisMap.get(refToSlot);\n if (!expandableSlot) {\n expandableSlot = [];\n // The size of quasis should be the existed slotted bricks' size plus one.\n const size = hasOwnProperty(slots, refToSlot)\n ? slots[refToSlot].bricks.length + 1\n : 1;\n for (let i = 0; i < size; i += 1) {\n expandableSlot.push([]);\n }\n quasisMap.set(refToSlot, expandableSlot);\n }\n const refPosition = to.refPosition ?? -1;\n // External bricks of a template, should not access the template internal forEach `ITEM`.\n // For some existing templates who is *USING* this bug, we keep the old behavior.\n const hostHasForEach = hasOwnProperty(\n hostBrick.runtimeContext,\n \"forEachItem\"\n );\n expandableSlot[\n clamp(\n refPosition < 0 ? expandableSlot.length + refPosition : refPosition,\n 0,\n expandableSlot.length - 1\n )\n ].push(\n ...((hostContext.__temporary_tpl_tag_name ===\n \"base-layout-v3.tpl-scroll-load-list\" ||\n hostContext.__temporary_tpl_tag_name ===\n \"shrcb-homepage.tpl-custom-scroll-load-list\") &&\n !hostHasForEach\n ? insertBricks\n : setupTemplateExternalBricks(\n insertBricks,\n hostHasForEach,\n hostBrick.runtimeContext.forEachItem,\n hostBrick.runtimeContext.forEachIndex!\n ))\n );\n }\n\n for (const [slotName, quasis] of quasisMap.entries()) {\n if (!hasOwnProperty(slots, slotName)) {\n slots[slotName] = {\n type: \"bricks\",\n bricks: [],\n };\n }\n const slotConf = slots[slotName];\n slotConf.bricks = quasis.flatMap((bricks, index) =>\n index < slotConf.bricks.length\n ? bricks.concat(slotConf.bricks[index])\n : bricks\n );\n\n if (slotConf.bricks.length === 0) {\n delete slots[slotName];\n }\n }\n }\n }\n\n return {\n [symbolForAsyncComputedPropsFromHost]: asyncComputedProps,\n [symbolForTplStateStoreId]: tplStateStoreId,\n };\n}\n\n// External bricks of a template, have the same forEachItem context as their host.\nfunction setupTemplateExternalBricks(\n bricks: BrickConf[],\n hasForEach: boolean,\n forEachItem: unknown,\n forEachIndex: number\n): BrickConf[] {\n return (bricks as RuntimeBrickConfWithTplSymbols[]).map(\n ({\n children,\n slots,\n [symbolForTPlExternalForEachItem]: a,\n [symbolForTPlExternalForEachIndex]: b,\n [symbolForTPlExternalNoForEach]: c,\n ...brick\n }) => ({\n ...brick,\n ...(hasForEach\n ? {\n [symbolForTPlExternalForEachItem]: forEachItem,\n [symbolForTPlExternalForEachIndex]: forEachIndex,\n }\n : {\n [symbolForTPlExternalNoForEach]: true,\n }),\n // Keep `:forEach` bricks as original, since they have their own forEachItem context.\n slots:\n brick.brick === \":forEach\"\n ? childrenToSlots(children, slots)\n : Object.fromEntries(\n Object.entries(childrenToSlots(children, slots) ?? {}).map(\n ([slotName, slotConf]) => [\n slotName,\n slotConf.type === \"routes\"\n ? {\n type: \"routes\",\n routes: setupTemplateExternalRoutes(\n slotConf.routes,\n hasForEach,\n forEachItem,\n forEachIndex\n ),\n }\n : {\n type: \"bricks\",\n bricks: setupTemplateExternalBricks(\n slotConf.bricks,\n hasForEach,\n forEachItem,\n forEachIndex\n ),\n },\n ]\n )\n ),\n })\n );\n}\n\nfunction setupTemplateExternalRoutes(\n routes: RouteConf[],\n hasForEach: boolean,\n forEachItem: unknown,\n forEachIndex: number\n): RouteConf[] {\n return routes.map((route) =>\n route.type === \"routes\"\n ? {\n ...route,\n routes: setupTemplateExternalRoutes(\n route.routes,\n hasForEach,\n forEachItem,\n forEachIndex\n ),\n }\n : route.type === \"redirect\"\n ? route\n : {\n ...route,\n bricks: setupTemplateExternalBricks(\n route.bricks,\n hasForEach,\n forEachItem,\n forEachIndex\n ),\n }\n );\n}\n"],"mappings":"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","ignoreList":[]}
@@ -25,13 +25,10 @@ function setupUseBrickInTemplate(props, hostContext) {
25
25
  ...restConf
26
26
  } = item;
27
27
  const transpiledSlots = (0, _Renderer.childrenToSlots)(children, originalSlots);
28
- const slots = Object.fromEntries(Object.entries(transpiledSlots !== null && transpiledSlots !== void 0 ? transpiledSlots : {}).map(([slotName, slotConf]) => {
29
- var _slotConf$bricks;
30
- return [slotName, {
31
- type: "bricks",
32
- bricks: ((_slotConf$bricks = slotConf.bricks) !== null && _slotConf$bricks !== void 0 ? _slotConf$bricks : []).map(setup)
33
- }];
34
- }));
28
+ const slots = Object.fromEntries(Object.entries(transpiledSlots ?? {}).map(([slotName, slotConf]) => [slotName, {
29
+ type: "bricks",
30
+ bricks: (slotConf.bricks ?? []).map(setup)
31
+ }]));
35
32
  return {
36
33
  ...restConf,
37
34
  properties: walk(properties),
@@ -1 +1 @@
1
- {"version":3,"file":"setupUseBrickInTemplate.js","names":["_general","require","_setupTemplateProxy","_Renderer","setupUseBrickInTemplate","props","hostContext","walk","isObject","Array","isArray","map","Object","fromEntries","entries","key","value","setup","concat","getOwnPropertySymbols","k","item","properties","slots","originalSlots","children","restConf","transpiledSlots","childrenToSlots","slotName","slotConf","_slotConf$bricks","type","bricks","setupTemplateProxy","ref"],"sources":["../../../../src/internal/CustomTemplates/setupUseBrickInTemplate.ts"],"sourcesContent":["import type { UseBrickSlotsConf, UseSingleBrickConf } from \"@next-core/types\";\nimport { isObject } from \"@next-core/utils/general\";\nimport type { TemplateHostContext } from \"../interfaces.js\";\nimport { setupTemplateProxy } from \"./setupTemplateProxy.js\";\nimport { childrenToSlots } from \"../Renderer.js\";\n\nexport function setupUseBrickInTemplate<T>(\n props: T,\n hostContext: TemplateHostContext\n): T {\n function walk<P>(props: P): P {\n if (!isObject(props) || typeof props === \"function\") {\n return props;\n }\n\n if (Array.isArray(props)) {\n return props.map(walk) as P;\n }\n\n return Object.fromEntries(\n Object.entries(props)\n .map(([key, value]) =>\n isObject(value) && key === \"useBrick\"\n ? Array.isArray(value)\n ? [key, value.map(setup)]\n : [key, setup(value as UseSingleBrickConf)]\n : [key, walk(value)]\n )\n .concat(\n Object.getOwnPropertySymbols(props).map((k) => [\n k,\n (props as Record<string | symbol, unknown>)[k],\n ])\n )\n ) as P;\n }\n\n function setup(item: UseSingleBrickConf): UseSingleBrickConf {\n const { properties, slots: originalSlots, children, ...restConf } = item;\n\n const transpiledSlots = childrenToSlots(children, originalSlots) as\n | UseBrickSlotsConf\n | undefined;\n\n const slots = Object.fromEntries(\n Object.entries(transpiledSlots ?? {}).map(([slotName, slotConf]) => [\n slotName,\n {\n type: \"bricks\",\n bricks: (slotConf.bricks ?? []).map(setup),\n },\n ])\n ) as UseBrickSlotsConf;\n\n return {\n ...restConf,\n properties: walk(properties),\n slots,\n ...setupTemplateProxy(hostContext, restConf.ref, slots),\n };\n }\n\n return walk(props);\n}\n"],"mappings":";;;;;;AACA,IAAAA,QAAA,GAAAC,OAAA;AAEA,IAAAC,mBAAA,GAAAD,OAAA;AACA,IAAAE,SAAA,GAAAF,OAAA;AAEO,SAASG,uBAAuBA,CACrCC,KAAQ,EACRC,WAAgC,EAC7B;EACH,SAASC,IAAIA,CAAIF,KAAQ,EAAK;IAC5B,IAAI,CAAC,IAAAG,iBAAQ,EAACH,KAAK,CAAC,IAAI,OAAOA,KAAK,KAAK,UAAU,EAAE;MACnD,OAAOA,KAAK;IACd;IAEA,IAAII,KAAK,CAACC,OAAO,CAACL,KAAK,CAAC,EAAE;MACxB,OAAOA,KAAK,CAACM,GAAG,CAACJ,IAAI,CAAC;IACxB;IAEA,OAAOK,MAAM,CAACC,WAAW,CACvBD,MAAM,CAACE,OAAO,CAACT,KAAK,CAAC,CAClBM,GAAG,CAAC,CAAC,CAACI,GAAG,EAAEC,KAAK,CAAC,KAChB,IAAAR,iBAAQ,EAACQ,KAAK,CAAC,IAAID,GAAG,KAAK,UAAU,GACjCN,KAAK,CAACC,OAAO,CAACM,KAAK,CAAC,GAClB,CAACD,GAAG,EAAEC,KAAK,CAACL,GAAG,CAACM,KAAK,CAAC,CAAC,GACvB,CAACF,GAAG,EAAEE,KAAK,CAACD,KAA2B,CAAC,CAAC,GAC3C,CAACD,GAAG,EAAER,IAAI,CAACS,KAAK,CAAC,CACvB,CAAC,CACAE,MAAM,CACLN,MAAM,CAACO,qBAAqB,CAACd,KAAK,CAAC,CAACM,GAAG,CAAES,CAAC,IAAK,CAC7CA,CAAC,EACAf,KAAK,CAAsCe,CAAC,CAAC,CAC/C,CACH,CACJ,CAAC;EACH;EAEA,SAASH,KAAKA,CAACI,IAAwB,EAAsB;IAC3D,MAAM;MAAEC,UAAU;MAAEC,KAAK,EAAEC,aAAa;MAAEC,QAAQ;MAAE,GAAGC;IAAS,CAAC,GAAGL,IAAI;IAExE,MAAMM,eAAe,GAAG,IAAAC,yBAAe,EAACH,QAAQ,EAAED,aAAa,CAElD;IAEb,MAAMD,KAAK,GAAGX,MAAM,CAACC,WAAW,CAC9BD,MAAM,CAACE,OAAO,CAACa,eAAe,aAAfA,eAAe,cAAfA,eAAe,GAAI,CAAC,CAAC,CAAC,CAAChB,GAAG,CAAC,CAAC,CAACkB,QAAQ,EAAEC,QAAQ,CAAC;MAAA,IAAAC,gBAAA;MAAA,OAAK,CAClEF,QAAQ,EACR;QACEG,IAAI,EAAE,QAAQ;QACdC,MAAM,EAAE,EAAAF,gBAAA,GAACD,QAAQ,CAACG,MAAM,cAAAF,gBAAA,cAAAA,gBAAA,GAAI,EAAE,EAAEpB,GAAG,CAACM,KAAK;MAC3C,CAAC,CACF;IAAA,EACH,CAAsB;IAEtB,OAAO;MACL,GAAGS,QAAQ;MACXJ,UAAU,EAAEf,IAAI,CAACe,UAAU,CAAC;MAC5BC,KAAK;MACL,GAAG,IAAAW,sCAAkB,EAAC5B,WAAW,EAAEoB,QAAQ,CAACS,GAAG,EAAEZ,KAAK;IACxD,CAAC;EACH;EAEA,OAAOhB,IAAI,CAACF,KAAK,CAAC;AACpB","ignoreList":[]}
1
+ {"version":3,"file":"setupUseBrickInTemplate.js","names":["_general","require","_setupTemplateProxy","_Renderer","setupUseBrickInTemplate","props","hostContext","walk","isObject","Array","isArray","map","Object","fromEntries","entries","key","value","setup","concat","getOwnPropertySymbols","k","item","properties","slots","originalSlots","children","restConf","transpiledSlots","childrenToSlots","slotName","slotConf","type","bricks","setupTemplateProxy","ref"],"sources":["../../../../src/internal/CustomTemplates/setupUseBrickInTemplate.ts"],"sourcesContent":["import type { UseBrickSlotsConf, UseSingleBrickConf } from \"@next-core/types\";\nimport { isObject } from \"@next-core/utils/general\";\nimport type { TemplateHostContext } from \"../interfaces.js\";\nimport { setupTemplateProxy } from \"./setupTemplateProxy.js\";\nimport { childrenToSlots } from \"../Renderer.js\";\n\nexport function setupUseBrickInTemplate<T>(\n props: T,\n hostContext: TemplateHostContext\n): T {\n function walk<P>(props: P): P {\n if (!isObject(props) || typeof props === \"function\") {\n return props;\n }\n\n if (Array.isArray(props)) {\n return props.map(walk) as P;\n }\n\n return Object.fromEntries(\n Object.entries(props)\n .map(([key, value]) =>\n isObject(value) && key === \"useBrick\"\n ? Array.isArray(value)\n ? [key, value.map(setup)]\n : [key, setup(value as UseSingleBrickConf)]\n : [key, walk(value)]\n )\n .concat(\n Object.getOwnPropertySymbols(props).map((k) => [\n k,\n (props as Record<string | symbol, unknown>)[k],\n ])\n )\n ) as P;\n }\n\n function setup(item: UseSingleBrickConf): UseSingleBrickConf {\n const { properties, slots: originalSlots, children, ...restConf } = item;\n\n const transpiledSlots = childrenToSlots(children, originalSlots) as\n | UseBrickSlotsConf\n | undefined;\n\n const slots = Object.fromEntries(\n Object.entries(transpiledSlots ?? {}).map(([slotName, slotConf]) => [\n slotName,\n {\n type: \"bricks\",\n bricks: (slotConf.bricks ?? []).map(setup),\n },\n ])\n ) as UseBrickSlotsConf;\n\n return {\n ...restConf,\n properties: walk(properties),\n slots,\n ...setupTemplateProxy(hostContext, restConf.ref, slots),\n };\n }\n\n return walk(props);\n}\n"],"mappings":";;;;;;AACA,IAAAA,QAAA,GAAAC,OAAA;AAEA,IAAAC,mBAAA,GAAAD,OAAA;AACA,IAAAE,SAAA,GAAAF,OAAA;AAEO,SAASG,uBAAuBA,CACrCC,KAAQ,EACRC,WAAgC,EAC7B;EACH,SAASC,IAAIA,CAAIF,KAAQ,EAAK;IAC5B,IAAI,CAAC,IAAAG,iBAAQ,EAACH,KAAK,CAAC,IAAI,OAAOA,KAAK,KAAK,UAAU,EAAE;MACnD,OAAOA,KAAK;IACd;IAEA,IAAII,KAAK,CAACC,OAAO,CAACL,KAAK,CAAC,EAAE;MACxB,OAAOA,KAAK,CAACM,GAAG,CAACJ,IAAI,CAAC;IACxB;IAEA,OAAOK,MAAM,CAACC,WAAW,CACvBD,MAAM,CAACE,OAAO,CAACT,KAAK,CAAC,CAClBM,GAAG,CAAC,CAAC,CAACI,GAAG,EAAEC,KAAK,CAAC,KAChB,IAAAR,iBAAQ,EAACQ,KAAK,CAAC,IAAID,GAAG,KAAK,UAAU,GACjCN,KAAK,CAACC,OAAO,CAACM,KAAK,CAAC,GAClB,CAACD,GAAG,EAAEC,KAAK,CAACL,GAAG,CAACM,KAAK,CAAC,CAAC,GACvB,CAACF,GAAG,EAAEE,KAAK,CAACD,KAA2B,CAAC,CAAC,GAC3C,CAACD,GAAG,EAAER,IAAI,CAACS,KAAK,CAAC,CACvB,CAAC,CACAE,MAAM,CACLN,MAAM,CAACO,qBAAqB,CAACd,KAAK,CAAC,CAACM,GAAG,CAAES,CAAC,IAAK,CAC7CA,CAAC,EACAf,KAAK,CAAsCe,CAAC,CAAC,CAC/C,CACH,CACJ,CAAC;EACH;EAEA,SAASH,KAAKA,CAACI,IAAwB,EAAsB;IAC3D,MAAM;MAAEC,UAAU;MAAEC,KAAK,EAAEC,aAAa;MAAEC,QAAQ;MAAE,GAAGC;IAAS,CAAC,GAAGL,IAAI;IAExE,MAAMM,eAAe,GAAG,IAAAC,yBAAe,EAACH,QAAQ,EAAED,aAAa,CAElD;IAEb,MAAMD,KAAK,GAAGX,MAAM,CAACC,WAAW,CAC9BD,MAAM,CAACE,OAAO,CAACa,eAAe,IAAI,CAAC,CAAC,CAAC,CAAChB,GAAG,CAAC,CAAC,CAACkB,QAAQ,EAAEC,QAAQ,CAAC,KAAK,CAClED,QAAQ,EACR;MACEE,IAAI,EAAE,QAAQ;MACdC,MAAM,EAAE,CAACF,QAAQ,CAACE,MAAM,IAAI,EAAE,EAAErB,GAAG,CAACM,KAAK;IAC3C,CAAC,CACF,CACH,CAAsB;IAEtB,OAAO;MACL,GAAGS,QAAQ;MACXJ,UAAU,EAAEf,IAAI,CAACe,UAAU,CAAC;MAC5BC,KAAK;MACL,GAAG,IAAAU,sCAAkB,EAAC3B,WAAW,EAAEoB,QAAQ,CAACQ,GAAG,EAAEX,KAAK;IACxD,CAAC;EACH;EAEA,OAAOhB,IAAI,CAACF,KAAK,CAAC;AACpB","ignoreList":[]}
@@ -12,11 +12,11 @@ function getTplStateStore({
12
12
  tplStateStoreMap
13
13
  }, using, extraInfo) {
14
14
  if (!tplStateStoreId) {
15
- throw new Error(`Using "${using}" outside of a custom template${extraInfo !== null && extraInfo !== void 0 ? extraInfo : ""}`);
15
+ throw new Error(`Using "${using}" outside of a custom template${extraInfo ?? ""}`);
16
16
  }
17
17
  const store = tplStateStoreMap.get(tplStateStoreId);
18
18
  if (!store) {
19
- throw new Error(`Template state store is not found when using "${using}"${extraInfo !== null && extraInfo !== void 0 ? extraInfo : ""}.\nThis is a bug of Brick Next, please report it.`);
19
+ throw new Error(`Template state store is not found when using "${using}"${extraInfo ?? ""}.\nThis is a bug of Brick Next, please report it.`);
20
20
  }
21
21
  return store;
22
22
  }
@@ -24,7 +24,7 @@ function getTplHostElement(runtimeContext, using, extraInfo) {
24
24
  const store = getTplStateStore(runtimeContext, using, extraInfo);
25
25
  const hostElement = store.hostBrick.element;
26
26
  if (!hostElement) {
27
- throw new Error(`Template host element is gone when using "${using}"${extraInfo !== null && extraInfo !== void 0 ? extraInfo : ""}.\nThis is a bug of Brick Next, please report it.`);
27
+ throw new Error(`Template host element is gone when using "${using}"${extraInfo ?? ""}.\nThis is a bug of Brick Next, please report it.`);
28
28
  }
29
29
  return hostElement;
30
30
  }
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","names":["_CustomTemplates","require","getTplStateStore","tplStateStoreId","tplStateStoreMap","using","extraInfo","Error","store","get","getTplHostElement","runtimeContext","hostElement","hostBrick","element","getTagNameOfCustomTemplate","brick","appId","includes","startsWith","tagName","customTemplates"],"sources":["../../../../src/internal/CustomTemplates/utils.ts"],"sourcesContent":["import type { DataStore } from \"../data/DataStore.js\";\nimport type { RuntimeBrickElement, RuntimeContext } from \"../interfaces.js\";\nimport { customTemplates } from \"../../CustomTemplates.js\";\n\ntype MinimalTplStateStoreContext = Pick<\n RuntimeContext,\n \"tplStateStoreId\" | \"tplStateStoreMap\"\n>;\n\nexport function getTplStateStore(\n { tplStateStoreId, tplStateStoreMap }: MinimalTplStateStoreContext,\n using: string,\n extraInfo?: string\n): DataStore<\"STATE\"> {\n if (!tplStateStoreId) {\n throw new Error(\n `Using \"${using}\" outside of a custom template${extraInfo ?? \"\"}`\n );\n }\n const store = tplStateStoreMap.get(tplStateStoreId);\n if (!store) {\n throw new Error(\n `Template state store is not found when using \"${using}\"${\n extraInfo ?? \"\"\n }.\\nThis is a bug of Brick Next, please report it.`\n );\n }\n return store;\n}\n\nexport function getTplHostElement(\n runtimeContext: MinimalTplStateStoreContext,\n using: string,\n extraInfo?: string\n): RuntimeBrickElement {\n const store = getTplStateStore(runtimeContext, using, extraInfo);\n const hostElement = store.hostBrick!.element;\n if (!hostElement) {\n throw new Error(\n `Template host element is gone when using \"${using}\"${\n extraInfo ?? \"\"\n }.\\nThis is a bug of Brick Next, please report it.`\n );\n }\n return hostElement;\n}\n\nexport function getTagNameOfCustomTemplate(\n brick: string,\n appId?: string\n): false | string {\n // When a template is registered by an app, it's namespace maybe missed.\n if (!brick.includes(\".\") && brick.startsWith(\"tpl-\") && appId) {\n const tagName = `${appId}.${brick}`;\n if (customTemplates.get(tagName)) {\n return tagName;\n }\n }\n if (customTemplates.get(brick)) {\n return brick;\n }\n return false;\n}\n"],"mappings":";;;;;;;;AAEA,IAAAA,gBAAA,GAAAC,OAAA;AAOO,SAASC,gBAAgBA,CAC9B;EAAEC,eAAe;EAAEC;AAA8C,CAAC,EAClEC,KAAa,EACbC,SAAkB,EACE;EACpB,IAAI,CAACH,eAAe,EAAE;IACpB,MAAM,IAAII,KAAK,CACZ,UAASF,KAAM,iCAAgCC,SAAS,aAATA,SAAS,cAATA,SAAS,GAAI,EAAG,EAClE,CAAC;EACH;EACA,MAAME,KAAK,GAAGJ,gBAAgB,CAACK,GAAG,CAACN,eAAe,CAAC;EACnD,IAAI,CAACK,KAAK,EAAE;IACV,MAAM,IAAID,KAAK,CACZ,iDAAgDF,KAAM,IACrDC,SAAS,aAATA,SAAS,cAATA,SAAS,GAAI,EACd,mDACH,CAAC;EACH;EACA,OAAOE,KAAK;AACd;AAEO,SAASE,iBAAiBA,CAC/BC,cAA2C,EAC3CN,KAAa,EACbC,SAAkB,EACG;EACrB,MAAME,KAAK,GAAGN,gBAAgB,CAACS,cAAc,EAAEN,KAAK,EAAEC,SAAS,CAAC;EAChE,MAAMM,WAAW,GAAGJ,KAAK,CAACK,SAAS,CAAEC,OAAO;EAC5C,IAAI,CAACF,WAAW,EAAE;IAChB,MAAM,IAAIL,KAAK,CACZ,6CAA4CF,KAAM,IACjDC,SAAS,aAATA,SAAS,cAATA,SAAS,GAAI,EACd,mDACH,CAAC;EACH;EACA,OAAOM,WAAW;AACpB;AAEO,SAASG,0BAA0BA,CACxCC,KAAa,EACbC,KAAc,EACE;EAChB;EACA,IAAI,CAACD,KAAK,CAACE,QAAQ,CAAC,GAAG,CAAC,IAAIF,KAAK,CAACG,UAAU,CAAC,MAAM,CAAC,IAAIF,KAAK,EAAE;IAC7D,MAAMG,OAAO,GAAI,GAAEH,KAAM,IAAGD,KAAM,EAAC;IACnC,IAAIK,gCAAe,CAACZ,GAAG,CAACW,OAAO,CAAC,EAAE;MAChC,OAAOA,OAAO;IAChB;EACF;EACA,IAAIC,gCAAe,CAACZ,GAAG,CAACO,KAAK,CAAC,EAAE;IAC9B,OAAOA,KAAK;EACd;EACA,OAAO,KAAK;AACd","ignoreList":[]}
1
+ {"version":3,"file":"utils.js","names":["_CustomTemplates","require","getTplStateStore","tplStateStoreId","tplStateStoreMap","using","extraInfo","Error","store","get","getTplHostElement","runtimeContext","hostElement","hostBrick","element","getTagNameOfCustomTemplate","brick","appId","includes","startsWith","tagName","customTemplates"],"sources":["../../../../src/internal/CustomTemplates/utils.ts"],"sourcesContent":["import type { DataStore } from \"../data/DataStore.js\";\nimport type { RuntimeBrickElement, RuntimeContext } from \"../interfaces.js\";\nimport { customTemplates } from \"../../CustomTemplates.js\";\n\ntype MinimalTplStateStoreContext = Pick<\n RuntimeContext,\n \"tplStateStoreId\" | \"tplStateStoreMap\"\n>;\n\nexport function getTplStateStore(\n { tplStateStoreId, tplStateStoreMap }: MinimalTplStateStoreContext,\n using: string,\n extraInfo?: string\n): DataStore<\"STATE\"> {\n if (!tplStateStoreId) {\n throw new Error(\n `Using \"${using}\" outside of a custom template${extraInfo ?? \"\"}`\n );\n }\n const store = tplStateStoreMap.get(tplStateStoreId);\n if (!store) {\n throw new Error(\n `Template state store is not found when using \"${using}\"${\n extraInfo ?? \"\"\n }.\\nThis is a bug of Brick Next, please report it.`\n );\n }\n return store;\n}\n\nexport function getTplHostElement(\n runtimeContext: MinimalTplStateStoreContext,\n using: string,\n extraInfo?: string\n): RuntimeBrickElement {\n const store = getTplStateStore(runtimeContext, using, extraInfo);\n const hostElement = store.hostBrick!.element;\n if (!hostElement) {\n throw new Error(\n `Template host element is gone when using \"${using}\"${\n extraInfo ?? \"\"\n }.\\nThis is a bug of Brick Next, please report it.`\n );\n }\n return hostElement;\n}\n\nexport function getTagNameOfCustomTemplate(\n brick: string,\n appId?: string\n): false | string {\n // When a template is registered by an app, it's namespace maybe missed.\n if (!brick.includes(\".\") && brick.startsWith(\"tpl-\") && appId) {\n const tagName = `${appId}.${brick}`;\n if (customTemplates.get(tagName)) {\n return tagName;\n }\n }\n if (customTemplates.get(brick)) {\n return brick;\n }\n return false;\n}\n"],"mappings":";;;;;;;;AAEA,IAAAA,gBAAA,GAAAC,OAAA;AAOO,SAASC,gBAAgBA,CAC9B;EAAEC,eAAe;EAAEC;AAA8C,CAAC,EAClEC,KAAa,EACbC,SAAkB,EACE;EACpB,IAAI,CAACH,eAAe,EAAE;IACpB,MAAM,IAAII,KAAK,CACb,UAAUF,KAAK,iCAAiCC,SAAS,IAAI,EAAE,EACjE,CAAC;EACH;EACA,MAAME,KAAK,GAAGJ,gBAAgB,CAACK,GAAG,CAACN,eAAe,CAAC;EACnD,IAAI,CAACK,KAAK,EAAE;IACV,MAAM,IAAID,KAAK,CACb,iDAAiDF,KAAK,IACpDC,SAAS,IAAI,EAAE,mDAEnB,CAAC;EACH;EACA,OAAOE,KAAK;AACd;AAEO,SAASE,iBAAiBA,CAC/BC,cAA2C,EAC3CN,KAAa,EACbC,SAAkB,EACG;EACrB,MAAME,KAAK,GAAGN,gBAAgB,CAACS,cAAc,EAAEN,KAAK,EAAEC,SAAS,CAAC;EAChE,MAAMM,WAAW,GAAGJ,KAAK,CAACK,SAAS,CAAEC,OAAO;EAC5C,IAAI,CAACF,WAAW,EAAE;IAChB,MAAM,IAAIL,KAAK,CACb,6CAA6CF,KAAK,IAChDC,SAAS,IAAI,EAAE,mDAEnB,CAAC;EACH;EACA,OAAOM,WAAW;AACpB;AAEO,SAASG,0BAA0BA,CACxCC,KAAa,EACbC,KAAc,EACE;EAChB;EACA,IAAI,CAACD,KAAK,CAACE,QAAQ,CAAC,GAAG,CAAC,IAAIF,KAAK,CAACG,UAAU,CAAC,MAAM,CAAC,IAAIF,KAAK,EAAE;IAC7D,MAAMG,OAAO,GAAG,GAAGH,KAAK,IAAID,KAAK,EAAE;IACnC,IAAIK,gCAAe,CAACZ,GAAG,CAACW,OAAO,CAAC,EAAE;MAChC,OAAOA,OAAO;IAChB;EACF;EACA,IAAIC,gCAAe,CAACZ,GAAG,CAACO,KAAK,CAAC,EAAE;IAC9B,OAAOA,KAAK;EACd;EACA,OAAO,KAAK;AACd","ignoreList":[]}
@@ -11,7 +11,7 @@ var _getDefaultProperties = require("./getDefaultProperties.js");
11
11
  var _constants = require("./constants.js");
12
12
  const formContainers = ["forms.general-form", "form.general-form", "eo-form"];
13
13
  function expandFormRenderer(formData, hostBrickConf, hostBrick, asyncHostPropertyEntries, rendererContext) {
14
- var _normalizedFormData$c, _hostBrickConf$proper;
14
+ var _hostBrickConf$proper;
15
15
  const normalizedFormData = typeof formData === "string" ? JSON.parse(formData) : formData;
16
16
  const formStateStoreId = (0, _lodash.uniqueId)("form-state-");
17
17
  const runtimeContext = {
@@ -30,7 +30,7 @@ function expandFormRenderer(formData, hostBrickConf, hostBrick, asyncHostPropert
30
30
  }
31
31
 
32
32
  // Always add a state of `params`.
33
- const context = (_normalizedFormData$c = normalizedFormData.context) !== null && _normalizedFormData$c !== void 0 ? _normalizedFormData$c : [];
33
+ const context = normalizedFormData.context ?? [];
34
34
  if (!context.some(ctx => ctx.name === "params")) {
35
35
  context.push({
36
36
  name: "params"
@@ -110,7 +110,7 @@ function formSchemasToBricks(schemas, fields, formStateStoreId) {
110
110
  }
111
111
  }
112
112
  function mergeEvents(targetEvents, sourceEvents) {
113
- const events = targetEvents !== null && targetEvents !== void 0 ? targetEvents : {};
113
+ const events = targetEvents ?? {};
114
114
  for (const [eventType, handlers] of Object.entries(sourceEvents)) {
115
115
  events[eventType] = (0, _general.hasOwnProperty)(events, eventType) ? [events[eventType], handlers].flat() : handlers;
116
116
  }
@@ -1 +1 @@
1
- {"version":3,"file":"expandFormRenderer.js","names":["_general","require","_lodash","_DataStore","_getDefaultProperties","_constants","formContainers","expandFormRenderer","formData","hostBrickConf","hostBrick","asyncHostPropertyEntries","rendererContext","_normalizedFormData$c","_hostBrickConf$proper","normalizedFormData","JSON","parse","formStateStoreId","uniqueId","runtimeContext","forEachItem","forEachIndex","tplStateStoreId","formStateStore","DataStore","undefined","formStateStoreMap","set","formStateStoreScope","push","context","some","ctx","name","define","formConf","formSchemaToBrick","formSchema","fields","includes","brick","events","mergeEvents","renderRoot","properties","slots","children","style","padding","schema","id","bricks","mountPoint","instanceId","iid","field","find","item","fieldId","defaults","getDefaultProperties","brickConf","slot","formSchemasToBricks","symbolForFormStateStoreId","hasOwnProperty","if","schemas","Array","isArray","map","targetEvents","sourceEvents","eventType","handlers","Object","entries","flat"],"sources":["../../../../src/internal/FormRenderer/expandFormRenderer.ts"],"sourcesContent":["import type { BrickConf, BrickEventsMap } from \"@next-core/types\";\nimport { hasOwnProperty } from \"@next-core/utils/general\";\nimport { uniqueId } from \"lodash\";\nimport { DataStore } from \"../data/DataStore.js\";\nimport type { AsyncPropertyEntry, RuntimeBrick } from \"../interfaces.js\";\nimport type {\n FieldProperties,\n FormDataProperties,\n FormSchemaProperties,\n} from \"./interfaces.js\";\nimport { getDefaultProperties } from \"./getDefaultProperties.js\";\nimport { symbolForFormStateStoreId } from \"./constants.js\";\nimport type { RendererContext } from \"../RendererContext.js\";\n\nconst formContainers = [\"forms.general-form\", \"form.general-form\", \"eo-form\"];\n\nexport function expandFormRenderer(\n formData: unknown,\n hostBrickConf: BrickConf,\n hostBrick: RuntimeBrick,\n asyncHostPropertyEntries: AsyncPropertyEntry[],\n rendererContext: RendererContext\n): BrickConf {\n const normalizedFormData = (\n typeof formData === \"string\" ? JSON.parse(formData) : formData\n ) as FormDataProperties;\n\n const formStateStoreId = uniqueId(\"form-state-\");\n const runtimeContext = {\n ...hostBrick.runtimeContext,\n formStateStoreId,\n };\n\n // There is a boundary for `forEachItem` and `STATE` between form internals and externals.\n delete runtimeContext.forEachItem;\n delete runtimeContext.forEachIndex;\n delete runtimeContext.tplStateStoreId;\n\n const formStateStore = new DataStore(\n \"FORM_STATE\",\n undefined,\n rendererContext,\n formStateStoreId\n );\n runtimeContext.formStateStoreMap.set(formStateStoreId, formStateStore);\n if (runtimeContext.formStateStoreScope) {\n runtimeContext.formStateStoreScope.push(formStateStore);\n }\n\n // Always add a state of `params`.\n const context = normalizedFormData.context ?? [];\n if (!context.some((ctx) => ctx.name === \"params\")) {\n context.push({ name: \"params\" });\n }\n\n formStateStore.define(context, runtimeContext, asyncHostPropertyEntries);\n\n const formConf = formSchemaToBrick(\n normalizedFormData.formSchema,\n normalizedFormData.fields,\n formStateStoreId\n );\n\n if (formContainers.includes(formConf.brick) && hostBrickConf.events) {\n formConf.events = mergeEvents(formConf.events, hostBrickConf.events);\n }\n\n const renderRoot =\n typeof hostBrickConf.properties?.renderRoot !== \"boolean\" ||\n hostBrickConf.properties.renderRoot;\n\n if (renderRoot) {\n return {\n ...hostBrickConf,\n slots: undefined,\n children: [\n {\n brick: \"eo-micro-view\",\n properties: { style: { padding: \"12px\" } },\n children: [formConf],\n },\n ],\n };\n }\n\n return {\n ...hostBrickConf,\n slots: undefined,\n children: [formConf],\n };\n}\n\nfunction formSchemaToBrick(\n schema: FormSchemaProperties,\n fields: FieldProperties[],\n formStateStoreId: string\n): BrickConf {\n const { id, bricks, events, context, mountPoint, instanceId: iid } = schema;\n let { brick, properties } = schema;\n\n // 根据字段类型获取默认配置\n const field = fields.find((item: FieldProperties) => item.fieldId === id);\n if (field) {\n const defaults = getDefaultProperties(field);\n if (!brick) {\n brick = defaults.brick;\n }\n properties = {\n ...defaults.properties,\n ...properties,\n };\n }\n\n const brickConf = {\n brick,\n properties,\n iid,\n slot: mountPoint,\n events,\n context,\n children: formSchemasToBricks(bricks, fields, formStateStoreId),\n [symbolForFormStateStoreId]: formStateStoreId,\n } as BrickConf;\n\n if (hasOwnProperty(schema, \"if\")) {\n brickConf.if = schema.if;\n }\n\n return brickConf;\n}\n\nfunction formSchemasToBricks(\n schemas: FormSchemaProperties[] | undefined,\n fields: FieldProperties[],\n formStateStoreId: string\n): BrickConf[] | undefined {\n if (Array.isArray(schemas)) {\n return schemas.map((schema) =>\n formSchemaToBrick(schema, fields, formStateStoreId)\n );\n }\n}\n\nfunction mergeEvents(\n targetEvents: BrickEventsMap | undefined,\n sourceEvents: BrickEventsMap\n): BrickEventsMap {\n const events = targetEvents ?? {};\n\n for (const [eventType, handlers] of Object.entries(sourceEvents)) {\n events[eventType] = hasOwnProperty(events, eventType)\n ? [events[eventType], handlers].flat()\n : handlers;\n }\n\n return events;\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"expandFormRenderer.js","names":["_general","require","_lodash","_DataStore","_getDefaultProperties","_constants","formContainers","expandFormRenderer","formData","hostBrickConf","hostBrick","asyncHostPropertyEntries","rendererContext","_hostBrickConf$proper","normalizedFormData","JSON","parse","formStateStoreId","uniqueId","runtimeContext","forEachItem","forEachIndex","tplStateStoreId","formStateStore","DataStore","undefined","formStateStoreMap","set","formStateStoreScope","push","context","some","ctx","name","define","formConf","formSchemaToBrick","formSchema","fields","includes","brick","events","mergeEvents","renderRoot","properties","slots","children","style","padding","schema","id","bricks","mountPoint","instanceId","iid","field","find","item","fieldId","defaults","getDefaultProperties","brickConf","slot","formSchemasToBricks","symbolForFormStateStoreId","hasOwnProperty","if","schemas","Array","isArray","map","targetEvents","sourceEvents","eventType","handlers","Object","entries","flat"],"sources":["../../../../src/internal/FormRenderer/expandFormRenderer.ts"],"sourcesContent":["import type { BrickConf, BrickEventsMap } from \"@next-core/types\";\nimport { hasOwnProperty } from \"@next-core/utils/general\";\nimport { uniqueId } from \"lodash\";\nimport { DataStore } from \"../data/DataStore.js\";\nimport type { AsyncPropertyEntry, RuntimeBrick } from \"../interfaces.js\";\nimport type {\n FieldProperties,\n FormDataProperties,\n FormSchemaProperties,\n} from \"./interfaces.js\";\nimport { getDefaultProperties } from \"./getDefaultProperties.js\";\nimport { symbolForFormStateStoreId } from \"./constants.js\";\nimport type { RendererContext } from \"../RendererContext.js\";\n\nconst formContainers = [\"forms.general-form\", \"form.general-form\", \"eo-form\"];\n\nexport function expandFormRenderer(\n formData: unknown,\n hostBrickConf: BrickConf,\n hostBrick: RuntimeBrick,\n asyncHostPropertyEntries: AsyncPropertyEntry[],\n rendererContext: RendererContext\n): BrickConf {\n const normalizedFormData = (\n typeof formData === \"string\" ? JSON.parse(formData) : formData\n ) as FormDataProperties;\n\n const formStateStoreId = uniqueId(\"form-state-\");\n const runtimeContext = {\n ...hostBrick.runtimeContext,\n formStateStoreId,\n };\n\n // There is a boundary for `forEachItem` and `STATE` between form internals and externals.\n delete runtimeContext.forEachItem;\n delete runtimeContext.forEachIndex;\n delete runtimeContext.tplStateStoreId;\n\n const formStateStore = new DataStore(\n \"FORM_STATE\",\n undefined,\n rendererContext,\n formStateStoreId\n );\n runtimeContext.formStateStoreMap.set(formStateStoreId, formStateStore);\n if (runtimeContext.formStateStoreScope) {\n runtimeContext.formStateStoreScope.push(formStateStore);\n }\n\n // Always add a state of `params`.\n const context = normalizedFormData.context ?? [];\n if (!context.some((ctx) => ctx.name === \"params\")) {\n context.push({ name: \"params\" });\n }\n\n formStateStore.define(context, runtimeContext, asyncHostPropertyEntries);\n\n const formConf = formSchemaToBrick(\n normalizedFormData.formSchema,\n normalizedFormData.fields,\n formStateStoreId\n );\n\n if (formContainers.includes(formConf.brick) && hostBrickConf.events) {\n formConf.events = mergeEvents(formConf.events, hostBrickConf.events);\n }\n\n const renderRoot =\n typeof hostBrickConf.properties?.renderRoot !== \"boolean\" ||\n hostBrickConf.properties.renderRoot;\n\n if (renderRoot) {\n return {\n ...hostBrickConf,\n slots: undefined,\n children: [\n {\n brick: \"eo-micro-view\",\n properties: { style: { padding: \"12px\" } },\n children: [formConf],\n },\n ],\n };\n }\n\n return {\n ...hostBrickConf,\n slots: undefined,\n children: [formConf],\n };\n}\n\nfunction formSchemaToBrick(\n schema: FormSchemaProperties,\n fields: FieldProperties[],\n formStateStoreId: string\n): BrickConf {\n const { id, bricks, events, context, mountPoint, instanceId: iid } = schema;\n let { brick, properties } = schema;\n\n // 根据字段类型获取默认配置\n const field = fields.find((item: FieldProperties) => item.fieldId === id);\n if (field) {\n const defaults = getDefaultProperties(field);\n if (!brick) {\n brick = defaults.brick;\n }\n properties = {\n ...defaults.properties,\n ...properties,\n };\n }\n\n const brickConf = {\n brick,\n properties,\n iid,\n slot: mountPoint,\n events,\n context,\n children: formSchemasToBricks(bricks, fields, formStateStoreId),\n [symbolForFormStateStoreId]: formStateStoreId,\n } as BrickConf;\n\n if (hasOwnProperty(schema, \"if\")) {\n brickConf.if = schema.if;\n }\n\n return brickConf;\n}\n\nfunction formSchemasToBricks(\n schemas: FormSchemaProperties[] | undefined,\n fields: FieldProperties[],\n formStateStoreId: string\n): BrickConf[] | undefined {\n if (Array.isArray(schemas)) {\n return schemas.map((schema) =>\n formSchemaToBrick(schema, fields, formStateStoreId)\n );\n }\n}\n\nfunction mergeEvents(\n targetEvents: BrickEventsMap | undefined,\n sourceEvents: BrickEventsMap\n): BrickEventsMap {\n const events = targetEvents ?? {};\n\n for (const [eventType, handlers] of Object.entries(sourceEvents)) {\n events[eventType] = hasOwnProperty(events, eventType)\n ? [events[eventType], handlers].flat()\n : handlers;\n }\n\n return events;\n}\n"],"mappings":"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","ignoreList":[]}
@@ -9,11 +9,11 @@ function getFormStateStore({
9
9
  formStateStoreMap
10
10
  }, using, extraInfo) {
11
11
  if (!formStateStoreId) {
12
- throw new Error(`Using "${using}" outside of form renderer${extraInfo !== null && extraInfo !== void 0 ? extraInfo : ""}`);
12
+ throw new Error(`Using "${using}" outside of form renderer${extraInfo ?? ""}`);
13
13
  }
14
14
  const store = formStateStoreMap.get(formStateStoreId);
15
15
  if (!store) {
16
- throw new Error(`Form state store is not found when using "${using}"${extraInfo !== null && extraInfo !== void 0 ? extraInfo : ""}.\nThis is a bug of Brick Next, please report it.`);
16
+ throw new Error(`Form state store is not found when using "${using}"${extraInfo ?? ""}.\nThis is a bug of Brick Next, please report it.`);
17
17
  }
18
18
  return store;
19
19
  }
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","names":["getFormStateStore","formStateStoreId","formStateStoreMap","using","extraInfo","Error","store","get"],"sources":["../../../../src/internal/FormRenderer/utils.ts"],"sourcesContent":["import type { DataStore } from \"../data/DataStore.js\";\nimport type { RuntimeContext } from \"../interfaces.js\";\n\ntype MinimalTplStateStoreContext = Pick<\n RuntimeContext,\n \"formStateStoreId\" | \"formStateStoreMap\"\n>;\n\nexport function getFormStateStore(\n { formStateStoreId, formStateStoreMap }: MinimalTplStateStoreContext,\n using: string,\n extraInfo?: string\n): DataStore<\"FORM_STATE\"> {\n if (!formStateStoreId) {\n throw new Error(\n `Using \"${using}\" outside of form renderer${extraInfo ?? \"\"}`\n );\n }\n const store = formStateStoreMap.get(formStateStoreId);\n if (!store) {\n throw new Error(\n `Form state store is not found when using \"${using}\"${\n extraInfo ?? \"\"\n }.\\nThis is a bug of Brick Next, please report it.`\n );\n }\n return store;\n}\n"],"mappings":";;;;;;AAQO,SAASA,iBAAiBA,CAC/B;EAAEC,gBAAgB;EAAEC;AAA+C,CAAC,EACpEC,KAAa,EACbC,SAAkB,EACO;EACzB,IAAI,CAACH,gBAAgB,EAAE;IACrB,MAAM,IAAII,KAAK,CACZ,UAASF,KAAM,6BAA4BC,SAAS,aAATA,SAAS,cAATA,SAAS,GAAI,EAAG,EAC9D,CAAC;EACH;EACA,MAAME,KAAK,GAAGJ,iBAAiB,CAACK,GAAG,CAACN,gBAAgB,CAAC;EACrD,IAAI,CAACK,KAAK,EAAE;IACV,MAAM,IAAID,KAAK,CACZ,6CAA4CF,KAAM,IACjDC,SAAS,aAATA,SAAS,cAATA,SAAS,GAAI,EACd,mDACH,CAAC;EACH;EACA,OAAOE,KAAK;AACd","ignoreList":[]}
1
+ {"version":3,"file":"utils.js","names":["getFormStateStore","formStateStoreId","formStateStoreMap","using","extraInfo","Error","store","get"],"sources":["../../../../src/internal/FormRenderer/utils.ts"],"sourcesContent":["import type { DataStore } from \"../data/DataStore.js\";\nimport type { RuntimeContext } from \"../interfaces.js\";\n\ntype MinimalTplStateStoreContext = Pick<\n RuntimeContext,\n \"formStateStoreId\" | \"formStateStoreMap\"\n>;\n\nexport function getFormStateStore(\n { formStateStoreId, formStateStoreMap }: MinimalTplStateStoreContext,\n using: string,\n extraInfo?: string\n): DataStore<\"FORM_STATE\"> {\n if (!formStateStoreId) {\n throw new Error(\n `Using \"${using}\" outside of form renderer${extraInfo ?? \"\"}`\n );\n }\n const store = formStateStoreMap.get(formStateStoreId);\n if (!store) {\n throw new Error(\n `Form state store is not found when using \"${using}\"${\n extraInfo ?? \"\"\n }.\\nThis is a bug of Brick Next, please report it.`\n );\n }\n return store;\n}\n"],"mappings":";;;;;;AAQO,SAASA,iBAAiBA,CAC/B;EAAEC,gBAAgB;EAAEC;AAA+C,CAAC,EACpEC,KAAa,EACbC,SAAkB,EACO;EACzB,IAAI,CAACH,gBAAgB,EAAE;IACrB,MAAM,IAAII,KAAK,CACb,UAAUF,KAAK,6BAA6BC,SAAS,IAAI,EAAE,EAC7D,CAAC;EACH;EACA,MAAME,KAAK,GAAGJ,iBAAiB,CAACK,GAAG,CAACN,gBAAgB,CAAC;EACrD,IAAI,CAACK,KAAK,EAAE;IACV,MAAM,IAAID,KAAK,CACb,6CAA6CF,KAAK,IAChDC,SAAS,IAAI,EAAE,mDAEnB,CAAC;EACH;EACA,OAAOE,KAAK;AACd","ignoreList":[]}
@@ -115,7 +115,7 @@ async function renderRoutes(returnNode, routes, _runtimeContext, rendererContext
115
115
  async function renderBricks(returnNode, bricks, runtimeContext, rendererContext, parentRoutes, menuRequestReturnNode, slotId, tplStack, keyPath) {
116
116
  (0, _setupRootRuntimeContext.setupRootRuntimeContext)(bricks, runtimeContext, true);
117
117
  const output = getEmptyRenderOutput();
118
- const kPath = keyPath !== null && keyPath !== void 0 ? keyPath : [];
118
+ const kPath = keyPath ?? [];
119
119
  // 多个构件并行异步转换,但转换的结果按原顺序串行合并。
120
120
  const rendered = await Promise.all(bricks.map((brickConf, index) => renderBrick(returnNode, brickConf, runtimeContext, rendererContext, parentRoutes, menuRequestReturnNode, slotId, kPath.concat(index), tplStack && new Map(tplStack))));
121
121
  rendered.forEach((item, index) => {
@@ -140,6 +140,9 @@ async function renderBrick(returnNode, brickConf, _runtimeContext, rendererConte
140
140
  type: "div",
141
141
  properties: {
142
142
  textContent: (0, _handleHttpError.httpErrorToString)(error),
143
+ dataset: {
144
+ errorBoundary: ""
145
+ },
143
146
  style: {
144
147
  color: "var(--color-error)"
145
148
  }
@@ -227,7 +230,6 @@ async function legacyRenderBrick(returnNode, brickConf, _runtimeContext, rendere
227
230
  }
228
231
  const brickName = brickConf.brick;
229
232
  if (brickName.startsWith(":")) {
230
- var _brickConf$lifeCycle;
231
233
  ensureValidControlBrick(brickName);
232
234
  const {
233
235
  dataSource
@@ -264,19 +266,18 @@ async function legacyRenderBrick(returnNode, brickConf, _runtimeContext, rendere
264
266
  }
265
267
  };
266
268
  const renderControlNode = async runtimeContext => {
267
- var _rawOutput$node;
268
269
  const rawOutput = await lowerLevelRenderControlNode(runtimeContext);
269
- (_rawOutput$node = rawOutput.node) !== null && _rawOutput$node !== void 0 ? _rawOutput$node : rawOutput.node = {
270
+ rawOutput.node ?? (rawOutput.node = {
270
271
  tag: _enums.RenderTag.PLACEHOLDER,
271
272
  return: returnNode
272
- };
273
+ });
273
274
  return rawOutput;
274
275
  };
275
276
  const controlledOutput = await renderControlNode(runtimeContext);
276
277
  const {
277
278
  onMount,
278
279
  onUnmount
279
- } = (_brickConf$lifeCycle = brickConf.lifeCycle) !== null && _brickConf$lifeCycle !== void 0 ? _brickConf$lifeCycle : {};
280
+ } = brickConf.lifeCycle ?? {};
280
281
  const {
281
282
  contextNames,
282
283
  stateNames
@@ -353,8 +354,7 @@ async function legacyRenderBrick(returnNode, brickConf, _runtimeContext, rendere
353
354
  }
354
355
  const tplTagName = (0, _utils.getTagNameOfCustomTemplate)(brickName, (_runtimeContext$app = runtimeContext.app) === null || _runtimeContext$app === void 0 ? void 0 : _runtimeContext$app.id);
355
356
  if (tplTagName) {
356
- var _tplStack$get;
357
- const tplCount = (_tplStack$get = tplStack.get(tplTagName)) !== null && _tplStack$get !== void 0 ? _tplStack$get : 0;
357
+ const tplCount = tplStack.get(tplTagName) ?? 0;
358
358
  if (tplCount >= 10) {
359
359
  throw new Error(`Maximum custom template stack overflowed: "${tplTagName}"`);
360
360
  }
@@ -373,11 +373,10 @@ async function legacyRenderBrick(returnNode, brickConf, _runtimeContext, rendere
373
373
  let formData;
374
374
  let confProps;
375
375
  if (brickName === _constants2.FORM_RENDERER) {
376
- var _brickConf$properties;
377
376
  ({
378
377
  formData,
379
378
  ...confProps
380
- } = (_brickConf$properties = brickConf.properties) !== null && _brickConf$properties !== void 0 ? _brickConf$properties : {});
379
+ } = brickConf.properties ?? {});
381
380
  } else {
382
381
  confProps = brickConf.properties;
383
382
  }
@@ -391,8 +390,7 @@ async function legacyRenderBrick(returnNode, brickConf, _runtimeContext, rendere
391
390
  if (isScript || brickName === "link") {
392
391
  const props = await (0, _computeRealProperties.constructAsyncProperties)(asyncPropertyEntries);
393
392
  if (isScript ? props.src : props.rel === "stylesheet" && props.href) {
394
- var _window$PUBLIC_ROOT;
395
- const prefix = (_window$PUBLIC_ROOT = window.PUBLIC_ROOT) !== null && _window$PUBLIC_ROOT !== void 0 ? _window$PUBLIC_ROOT : "";
393
+ const prefix = window.PUBLIC_ROOT ?? "";
396
394
  if (isScript) {
397
395
  const {
398
396
  src,
@@ -696,8 +694,7 @@ function childrenToSlots(children, originalSlots) {
696
694
  if (Array.isArray(children) && !newSlots) {
697
695
  newSlots = {};
698
696
  for (const child of children) {
699
- var _child$slot;
700
- const slot = (_child$slot = child.slot) !== null && _child$slot !== void 0 ? _child$slot : "";
697
+ const slot = child.slot ?? "";
701
698
  if (!(0, _general.hasOwnProperty)(newSlots, slot)) {
702
699
  newSlots[slot] = {
703
700
  type: "bricks",