@next-core/runtime 1.11.1 → 1.12.1

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 (191) hide show
  1. package/dist/cjs/CustomProcessors.js.map +1 -1
  2. package/dist/cjs/CustomTemplates.js.map +1 -1
  3. package/dist/cjs/Dialog.js.map +1 -1
  4. package/dist/cjs/Notification.js.map +1 -1
  5. package/dist/cjs/StoryboardFunctionRegistry.js.map +1 -1
  6. package/dist/cjs/auth.js +17 -47
  7. package/dist/cjs/auth.js.map +1 -1
  8. package/dist/cjs/createRoot.js.map +1 -1
  9. package/dist/cjs/getPageInfo.js.map +1 -1
  10. package/dist/cjs/handleHttpError.js.map +1 -1
  11. package/dist/cjs/history.js.map +1 -1
  12. package/dist/cjs/index.js +8 -0
  13. package/dist/cjs/index.js.map +1 -1
  14. package/dist/cjs/internal/CustomTemplates/bindTemplateProxy.js.map +1 -1
  15. package/dist/cjs/internal/CustomTemplates/constants.js.map +1 -1
  16. package/dist/cjs/internal/CustomTemplates/expandCustomTemplate.js.map +1 -1
  17. package/dist/cjs/internal/CustomTemplates/setupTemplateProxy.js.map +1 -1
  18. package/dist/cjs/internal/CustomTemplates/setupUseBrickInTemplate.js.map +1 -1
  19. package/dist/cjs/internal/CustomTemplates/utils.js.map +1 -1
  20. package/dist/cjs/internal/FormRenderer/expandFormRenderer.js.map +1 -1
  21. package/dist/cjs/internal/FormRenderer/getDefaultProperties.js.map +1 -1
  22. package/dist/cjs/internal/FormRenderer/utils.js.map +1 -1
  23. package/dist/cjs/internal/Renderer.js +4 -4
  24. package/dist/cjs/internal/Renderer.js.map +1 -1
  25. package/dist/cjs/internal/RendererContext.js.map +1 -1
  26. package/dist/cjs/internal/Router.js +4 -6
  27. package/dist/cjs/internal/Router.js.map +1 -1
  28. package/dist/cjs/internal/Runtime.js +2 -0
  29. package/dist/cjs/internal/Runtime.js.map +1 -1
  30. package/dist/cjs/internal/abortController.js.map +1 -1
  31. package/dist/cjs/internal/bindListeners.js.map +1 -1
  32. package/dist/cjs/internal/compute/StoryboardFunctions.js.map +1 -1
  33. package/dist/cjs/internal/compute/WidgetFunctions.js.map +1 -1
  34. package/dist/cjs/internal/compute/checkIf.js.map +1 -1
  35. package/dist/cjs/internal/compute/computeRealProperties.js.map +1 -1
  36. package/dist/cjs/internal/compute/computeRealValue.js.map +1 -1
  37. package/dist/cjs/internal/compute/evaluate.js +10 -5
  38. package/dist/cjs/internal/compute/evaluate.js.map +1 -1
  39. package/dist/cjs/internal/compute/getGeneralGlobals.js +3 -2
  40. package/dist/cjs/internal/compute/getGeneralGlobals.js.map +1 -1
  41. package/dist/cjs/internal/compute/getNextStateOfUseBrick.js.map +1 -1
  42. package/dist/cjs/internal/compute/getTracks.js.map +1 -1
  43. package/dist/cjs/internal/compute/images.js.map +1 -1
  44. package/dist/cjs/internal/compute/listenOnTrackingContext.js.map +1 -1
  45. package/dist/cjs/internal/compute/markAsComputed.js.map +1 -1
  46. package/dist/cjs/internal/compute/setRealProperties.js.map +1 -1
  47. package/dist/cjs/internal/data/DataStore.js.map +1 -1
  48. package/dist/cjs/internal/data/getProviderBrick.js.map +1 -1
  49. package/dist/cjs/internal/data/resolveData.js.map +1 -1
  50. package/dist/cjs/internal/data/resolveDataStore.js.map +1 -1
  51. package/dist/cjs/internal/hasInstalledApp.js.map +1 -1
  52. package/dist/cjs/internal/historyExtended.js.map +1 -1
  53. package/dist/cjs/internal/insertPreviewRoutes.js.map +1 -1
  54. package/dist/cjs/internal/matchPath.js.map +1 -1
  55. package/dist/cjs/internal/matchRoutes.js +2 -2
  56. package/dist/cjs/internal/matchRoutes.js.map +1 -1
  57. package/dist/cjs/internal/matchStoryboard.js.map +1 -1
  58. package/dist/cjs/internal/mediaQuery.js.map +1 -1
  59. package/dist/cjs/internal/mount.js.map +1 -1
  60. package/dist/cjs/internal/poll.js.map +1 -1
  61. package/dist/cjs/internal/proxyFactories.js.map +1 -1
  62. package/dist/cjs/internal/secret_internals.js +2 -0
  63. package/dist/cjs/internal/secret_internals.js.map +1 -1
  64. package/dist/cjs/internal/test_only.js +22 -0
  65. package/dist/cjs/internal/test_only.js.map +1 -0
  66. package/dist/cjs/isStrictMode.js.map +1 -1
  67. package/dist/cjs/themeAndMode.js.map +1 -1
  68. package/dist/esm/CustomProcessors.js.map +1 -1
  69. package/dist/esm/CustomTemplates.js.map +1 -1
  70. package/dist/esm/Dialog.js.map +1 -1
  71. package/dist/esm/Notification.js.map +1 -1
  72. package/dist/esm/StoryboardFunctionRegistry.js.map +1 -1
  73. package/dist/esm/auth.js +20 -46
  74. package/dist/esm/auth.js.map +1 -1
  75. package/dist/esm/createRoot.js.map +1 -1
  76. package/dist/esm/getPageInfo.js.map +1 -1
  77. package/dist/esm/handleHttpError.js.map +1 -1
  78. package/dist/esm/history.js.map +1 -1
  79. package/dist/esm/index.js +1 -0
  80. package/dist/esm/index.js.map +1 -1
  81. package/dist/esm/internal/CustomTemplates/bindTemplateProxy.js.map +1 -1
  82. package/dist/esm/internal/CustomTemplates/constants.js.map +1 -1
  83. package/dist/esm/internal/CustomTemplates/expandCustomTemplate.js.map +1 -1
  84. package/dist/esm/internal/CustomTemplates/setupTemplateProxy.js.map +1 -1
  85. package/dist/esm/internal/CustomTemplates/setupUseBrickInTemplate.js.map +1 -1
  86. package/dist/esm/internal/CustomTemplates/utils.js.map +1 -1
  87. package/dist/esm/internal/FormRenderer/expandFormRenderer.js.map +1 -1
  88. package/dist/esm/internal/FormRenderer/getDefaultProperties.js.map +1 -1
  89. package/dist/esm/internal/FormRenderer/utils.js.map +1 -1
  90. package/dist/esm/internal/Renderer.js +5 -5
  91. package/dist/esm/internal/Renderer.js.map +1 -1
  92. package/dist/esm/internal/RendererContext.js.map +1 -1
  93. package/dist/esm/internal/Router.js +4 -6
  94. package/dist/esm/internal/Router.js.map +1 -1
  95. package/dist/esm/internal/Runtime.js +2 -0
  96. package/dist/esm/internal/Runtime.js.map +1 -1
  97. package/dist/esm/internal/abortController.js.map +1 -1
  98. package/dist/esm/internal/bindListeners.js.map +1 -1
  99. package/dist/esm/internal/compute/StoryboardFunctions.js.map +1 -1
  100. package/dist/esm/internal/compute/WidgetFunctions.js.map +1 -1
  101. package/dist/esm/internal/compute/checkIf.js.map +1 -1
  102. package/dist/esm/internal/compute/computeRealProperties.js.map +1 -1
  103. package/dist/esm/internal/compute/computeRealValue.js.map +1 -1
  104. package/dist/esm/internal/compute/evaluate.js +11 -6
  105. package/dist/esm/internal/compute/evaluate.js.map +1 -1
  106. package/dist/esm/internal/compute/getGeneralGlobals.js +3 -2
  107. package/dist/esm/internal/compute/getGeneralGlobals.js.map +1 -1
  108. package/dist/esm/internal/compute/getNextStateOfUseBrick.js.map +1 -1
  109. package/dist/esm/internal/compute/getTracks.js.map +1 -1
  110. package/dist/esm/internal/compute/images.js.map +1 -1
  111. package/dist/esm/internal/compute/listenOnTrackingContext.js.map +1 -1
  112. package/dist/esm/internal/compute/markAsComputed.js.map +1 -1
  113. package/dist/esm/internal/compute/setRealProperties.js.map +1 -1
  114. package/dist/esm/internal/data/DataStore.js.map +1 -1
  115. package/dist/esm/internal/data/getProviderBrick.js.map +1 -1
  116. package/dist/esm/internal/data/resolveData.js.map +1 -1
  117. package/dist/esm/internal/data/resolveDataStore.js.map +1 -1
  118. package/dist/esm/internal/hasInstalledApp.js.map +1 -1
  119. package/dist/esm/internal/historyExtended.js.map +1 -1
  120. package/dist/esm/internal/insertPreviewRoutes.js.map +1 -1
  121. package/dist/esm/internal/matchPath.js.map +1 -1
  122. package/dist/esm/internal/matchRoutes.js +2 -2
  123. package/dist/esm/internal/matchRoutes.js.map +1 -1
  124. package/dist/esm/internal/matchStoryboard.js.map +1 -1
  125. package/dist/esm/internal/mediaQuery.js.map +1 -1
  126. package/dist/esm/internal/mount.js.map +1 -1
  127. package/dist/esm/internal/poll.js.map +1 -1
  128. package/dist/esm/internal/proxyFactories.js.map +1 -1
  129. package/dist/esm/internal/secret_internals.js +2 -0
  130. package/dist/esm/internal/secret_internals.js.map +1 -1
  131. package/dist/esm/internal/test_only.js +15 -0
  132. package/dist/esm/internal/test_only.js.map +1 -0
  133. package/dist/esm/isStrictMode.js.map +1 -1
  134. package/dist/esm/themeAndMode.js.map +1 -1
  135. package/dist/types/auth.d.ts +8 -19
  136. package/dist/types/index.d.ts +2 -1
  137. package/dist/types/internal/Runtime.d.ts +26 -2
  138. package/dist/types/internal/secret_internals.d.ts +2 -0
  139. package/dist/types/internal/test_only.d.ts +5 -0
  140. package/dist/types/tsdoc-metadata.json +1 -1
  141. package/package.json +13 -14
  142. package/dist/cjs/internal/checkPermissions.js +0 -102
  143. package/dist/cjs/internal/checkPermissions.js.map +0 -1
  144. package/dist/cjs/internal/menu/computeMenuData.js +0 -37
  145. package/dist/cjs/internal/menu/computeMenuData.js.map +0 -1
  146. package/dist/cjs/internal/menu/constants.js +0 -13
  147. package/dist/cjs/internal/menu/constants.js.map +0 -1
  148. package/dist/cjs/internal/menu/fetchMenuById.js +0 -102
  149. package/dist/cjs/internal/menu/fetchMenuById.js.map +0 -1
  150. package/dist/cjs/internal/menu/fetchMenuTitle.js +0 -37
  151. package/dist/cjs/internal/menu/fetchMenuTitle.js.map +0 -1
  152. package/dist/cjs/internal/menu/getMenusOfStandaloneApp.js +0 -27
  153. package/dist/cjs/internal/menu/getMenusOfStandaloneApp.js.map +0 -1
  154. package/dist/cjs/internal/menu/interfaces.js +0 -4
  155. package/dist/cjs/internal/menu/interfaces.js.map +0 -1
  156. package/dist/cjs/internal/menu/loadDynamicMenuItems.js +0 -28
  157. package/dist/cjs/internal/menu/loadDynamicMenuItems.js.map +0 -1
  158. package/dist/cjs/internal/menu/mergeMenu.js +0 -74
  159. package/dist/cjs/internal/menu/mergeMenu.js.map +0 -1
  160. package/dist/cjs/internal/menu/reorderMenuItems.js +0 -20
  161. package/dist/cjs/internal/menu/reorderMenuItems.js.map +0 -1
  162. package/dist/esm/internal/checkPermissions.js +0 -107
  163. package/dist/esm/internal/checkPermissions.js.map +0 -1
  164. package/dist/esm/internal/menu/computeMenuData.js +0 -38
  165. package/dist/esm/internal/menu/computeMenuData.js.map +0 -1
  166. package/dist/esm/internal/menu/constants.js +0 -4
  167. package/dist/esm/internal/menu/constants.js.map +0 -1
  168. package/dist/esm/internal/menu/fetchMenuById.js +0 -104
  169. package/dist/esm/internal/menu/fetchMenuById.js.map +0 -1
  170. package/dist/esm/internal/menu/fetchMenuTitle.js +0 -38
  171. package/dist/esm/internal/menu/fetchMenuTitle.js.map +0 -1
  172. package/dist/esm/internal/menu/getMenusOfStandaloneApp.js +0 -19
  173. package/dist/esm/internal/menu/getMenusOfStandaloneApp.js.map +0 -1
  174. package/dist/esm/internal/menu/interfaces.js +0 -8
  175. package/dist/esm/internal/menu/interfaces.js.map +0 -1
  176. package/dist/esm/internal/menu/loadDynamicMenuItems.js +0 -28
  177. package/dist/esm/internal/menu/loadDynamicMenuItems.js.map +0 -1
  178. package/dist/esm/internal/menu/mergeMenu.js +0 -78
  179. package/dist/esm/internal/menu/mergeMenu.js.map +0 -1
  180. package/dist/esm/internal/menu/reorderMenuItems.js +0 -14
  181. package/dist/esm/internal/menu/reorderMenuItems.js.map +0 -1
  182. package/dist/types/internal/checkPermissions.d.ts +0 -17
  183. package/dist/types/internal/menu/computeMenuData.d.ts +0 -7
  184. package/dist/types/internal/menu/constants.d.ts +0 -3
  185. package/dist/types/internal/menu/fetchMenuById.d.ts +0 -3
  186. package/dist/types/internal/menu/fetchMenuTitle.d.ts +0 -2
  187. package/dist/types/internal/menu/getMenusOfStandaloneApp.d.ts +0 -2
  188. package/dist/types/internal/menu/interfaces.d.ts +0 -74
  189. package/dist/types/internal/menu/loadDynamicMenuItems.d.ts +0 -3
  190. package/dist/types/internal/menu/mergeMenu.d.ts +0 -3
  191. package/dist/types/internal/menu/reorderMenuItems.d.ts +0 -2
@@ -1 +1 @@
1
- {"version":3,"file":"mediaQuery.js","names":["_eventTarget","_interopRequireDefault","require","MediaBreakpoint","exports","mediaBreakpointMinWidthMap","Map","xLarge","large","medium","small","xSmall","mediaEventTarget","EventTarget","breakpointMatchesMap","MEDIA","handleMatchesChange","data","breakpoint","changed","matches","dispatchEvent","CustomEvent","detail","forEach","minWidth","mediaQueryList","window","matchMedia","addEventListener","event","addListener","getMedia"],"sources":["../../../src/internal/mediaQuery.ts"],"sourcesContent":["import EventTarget from \"@ungap/event-target\";\n\nexport interface Media {\n breakpoint?: MediaBreakpoint;\n}\n\nexport enum MediaBreakpoint {\n xLarge = \"xLarge\",\n large = \"large\",\n medium = \"medium\",\n small = \"small\",\n xSmall = \"xSmall\",\n}\n\nexport const mediaBreakpointMinWidthMap = new Map<\n MediaBreakpoint,\n string | number\n>([\n [MediaBreakpoint.xLarge, \"1920px\"],\n [MediaBreakpoint.large, \"1600px\"],\n [MediaBreakpoint.medium, \"1280px\"],\n [MediaBreakpoint.small, \"1024px\"],\n [MediaBreakpoint.xSmall, 0],\n]);\nexport const mediaEventTarget = new EventTarget();\n\nconst breakpointMatchesMap: Partial<Record<MediaBreakpoint, boolean>> = {};\nconst MEDIA: Media = {};\n\nfunction handleMatchesChange(\n data: { readonly matches: boolean; readonly media: string },\n breakpoint: MediaBreakpoint\n): void {\n let changed = false;\n breakpointMatchesMap[breakpoint] = data.matches;\n\n for (const [breakpoint] of mediaBreakpointMinWidthMap) {\n if (breakpointMatchesMap[breakpoint] && MEDIA.breakpoint !== breakpoint) {\n MEDIA.breakpoint = breakpoint;\n changed = true;\n break;\n }\n }\n\n if (changed) {\n mediaEventTarget.dispatchEvent(\n new CustomEvent(\"change\", { detail: MEDIA })\n );\n }\n}\n\nmediaBreakpointMinWidthMap.forEach((minWidth, breakpoint) => {\n const mediaQueryList = window.matchMedia(`(min-width: ${minWidth})`);\n\n handleMatchesChange(mediaQueryList, breakpoint);\n\n if (mediaQueryList.addEventListener) {\n mediaQueryList.addEventListener(\"change\", (event) => {\n handleMatchesChange(event, breakpoint);\n });\n } else {\n mediaQueryList.addListener((event) => {\n handleMatchesChange(event, breakpoint);\n });\n }\n});\n\nexport const getMedia = (): Media => MEDIA;\n"],"mappings":";;;;;;;AAAA,IAAAA,YAAA,GAAAC,sBAAA,CAAAC,OAAA;AAA8C,IAMlCC,eAAe,0BAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAA,OAAfA,eAAe;AAAA;AAAAC,OAAA,CAAAD,eAAA,GAAAA,eAAA;AAQpB,MAAME,0BAA0B,GAAG,IAAIC,GAAG,CAG/C,CACA,CAACH,eAAe,CAACI,MAAM,EAAE,QAAQ,CAAC,EAClC,CAACJ,eAAe,CAACK,KAAK,EAAE,QAAQ,CAAC,EACjC,CAACL,eAAe,CAACM,MAAM,EAAE,QAAQ,CAAC,EAClC,CAACN,eAAe,CAACO,KAAK,EAAE,QAAQ,CAAC,EACjC,CAACP,eAAe,CAACQ,MAAM,EAAE,CAAC,CAAC,CAC5B,CAAC;AAACP,OAAA,CAAAC,0BAAA,GAAAA,0BAAA;AACI,MAAMO,gBAAgB,GAAG,IAAIC,oBAAW,EAAE;AAACT,OAAA,CAAAQ,gBAAA,GAAAA,gBAAA;AAElD,MAAME,oBAA+D,GAAG,CAAC,CAAC;AAC1E,MAAMC,KAAY,GAAG,CAAC,CAAC;AAEvB,SAASC,mBAAmBA,CAC1BC,IAA2D,EAC3DC,UAA2B,EACrB;EACN,IAAIC,OAAO,GAAG,KAAK;EACnBL,oBAAoB,CAACI,UAAU,CAAC,GAAGD,IAAI,CAACG,OAAO;EAE/C,KAAK,MAAM,CAACF,UAAU,CAAC,IAAIb,0BAA0B,EAAE;IACrD,IAAIS,oBAAoB,CAACI,UAAU,CAAC,IAAIH,KAAK,CAACG,UAAU,KAAKA,UAAU,EAAE;MACvEH,KAAK,CAACG,UAAU,GAAGA,UAAU;MAC7BC,OAAO,GAAG,IAAI;MACd;IACF;EACF;EAEA,IAAIA,OAAO,EAAE;IACXP,gBAAgB,CAACS,aAAa,CAC5B,IAAIC,WAAW,CAAC,QAAQ,EAAE;MAAEC,MAAM,EAAER;IAAM,CAAC,CAAC,CAC7C;EACH;AACF;AAEAV,0BAA0B,CAACmB,OAAO,CAAC,CAACC,QAAQ,EAAEP,UAAU,KAAK;EAC3D,MAAMQ,cAAc,GAAGC,MAAM,CAACC,UAAU,CAAE,eAAcH,QAAS,GAAE,CAAC;EAEpET,mBAAmB,CAACU,cAAc,EAAER,UAAU,CAAC;EAE/C,IAAIQ,cAAc,CAACG,gBAAgB,EAAE;IACnCH,cAAc,CAACG,gBAAgB,CAAC,QAAQ,EAAGC,KAAK,IAAK;MACnDd,mBAAmB,CAACc,KAAK,EAAEZ,UAAU,CAAC;IACxC,CAAC,CAAC;EACJ,CAAC,MAAM;IACLQ,cAAc,CAACK,WAAW,CAAED,KAAK,IAAK;MACpCd,mBAAmB,CAACc,KAAK,EAAEZ,UAAU,CAAC;IACxC,CAAC,CAAC;EACJ;AACF,CAAC,CAAC;AAEK,MAAMc,QAAQ,GAAGA,CAAA,KAAajB,KAAK;AAACX,OAAA,CAAA4B,QAAA,GAAAA,QAAA"}
1
+ {"version":3,"file":"mediaQuery.js","names":["_eventTarget","_interopRequireDefault","require","MediaBreakpoint","exports","mediaBreakpointMinWidthMap","Map","xLarge","large","medium","small","xSmall","mediaEventTarget","EventTarget","breakpointMatchesMap","MEDIA","handleMatchesChange","data","breakpoint","changed","matches","dispatchEvent","CustomEvent","detail","forEach","minWidth","mediaQueryList","window","matchMedia","addEventListener","event","addListener","getMedia"],"sources":["../../../src/internal/mediaQuery.ts"],"sourcesContent":["import EventTarget from \"@ungap/event-target\";\n\nexport interface Media {\n breakpoint?: MediaBreakpoint;\n}\n\nexport enum MediaBreakpoint {\n xLarge = \"xLarge\",\n large = \"large\",\n medium = \"medium\",\n small = \"small\",\n xSmall = \"xSmall\",\n}\n\nexport const mediaBreakpointMinWidthMap = new Map<\n MediaBreakpoint,\n string | number\n>([\n [MediaBreakpoint.xLarge, \"1920px\"],\n [MediaBreakpoint.large, \"1600px\"],\n [MediaBreakpoint.medium, \"1280px\"],\n [MediaBreakpoint.small, \"1024px\"],\n [MediaBreakpoint.xSmall, 0],\n]);\nexport const mediaEventTarget = new EventTarget();\n\nconst breakpointMatchesMap: Partial<Record<MediaBreakpoint, boolean>> = {};\nconst MEDIA: Media = {};\n\nfunction handleMatchesChange(\n data: { readonly matches: boolean; readonly media: string },\n breakpoint: MediaBreakpoint\n): void {\n let changed = false;\n breakpointMatchesMap[breakpoint] = data.matches;\n\n for (const [breakpoint] of mediaBreakpointMinWidthMap) {\n if (breakpointMatchesMap[breakpoint] && MEDIA.breakpoint !== breakpoint) {\n MEDIA.breakpoint = breakpoint;\n changed = true;\n break;\n }\n }\n\n if (changed) {\n mediaEventTarget.dispatchEvent(\n new CustomEvent(\"change\", { detail: MEDIA })\n );\n }\n}\n\nmediaBreakpointMinWidthMap.forEach((minWidth, breakpoint) => {\n const mediaQueryList = window.matchMedia(`(min-width: ${minWidth})`);\n\n handleMatchesChange(mediaQueryList, breakpoint);\n\n if (mediaQueryList.addEventListener) {\n mediaQueryList.addEventListener(\"change\", (event) => {\n handleMatchesChange(event, breakpoint);\n });\n } else {\n mediaQueryList.addListener((event) => {\n handleMatchesChange(event, breakpoint);\n });\n }\n});\n\nexport const getMedia = (): Media => MEDIA;\n"],"mappings":";;;;;;;AAAA,IAAAA,YAAA,GAAAC,sBAAA,CAAAC,OAAA;AAA8C,IAMlCC,eAAe,0BAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAA,OAAfA,eAAe;AAAA;AAAAC,OAAA,CAAAD,eAAA,GAAAA,eAAA;AAQpB,MAAME,0BAA0B,GAAG,IAAIC,GAAG,CAG/C,CACA,CAACH,eAAe,CAACI,MAAM,EAAE,QAAQ,CAAC,EAClC,CAACJ,eAAe,CAACK,KAAK,EAAE,QAAQ,CAAC,EACjC,CAACL,eAAe,CAACM,MAAM,EAAE,QAAQ,CAAC,EAClC,CAACN,eAAe,CAACO,KAAK,EAAE,QAAQ,CAAC,EACjC,CAACP,eAAe,CAACQ,MAAM,EAAE,CAAC,CAAC,CAC5B,CAAC;AAACP,OAAA,CAAAC,0BAAA,GAAAA,0BAAA;AACI,MAAMO,gBAAgB,GAAG,IAAIC,oBAAW,CAAC,CAAC;AAACT,OAAA,CAAAQ,gBAAA,GAAAA,gBAAA;AAElD,MAAME,oBAA+D,GAAG,CAAC,CAAC;AAC1E,MAAMC,KAAY,GAAG,CAAC,CAAC;AAEvB,SAASC,mBAAmBA,CAC1BC,IAA2D,EAC3DC,UAA2B,EACrB;EACN,IAAIC,OAAO,GAAG,KAAK;EACnBL,oBAAoB,CAACI,UAAU,CAAC,GAAGD,IAAI,CAACG,OAAO;EAE/C,KAAK,MAAM,CAACF,UAAU,CAAC,IAAIb,0BAA0B,EAAE;IACrD,IAAIS,oBAAoB,CAACI,UAAU,CAAC,IAAIH,KAAK,CAACG,UAAU,KAAKA,UAAU,EAAE;MACvEH,KAAK,CAACG,UAAU,GAAGA,UAAU;MAC7BC,OAAO,GAAG,IAAI;MACd;IACF;EACF;EAEA,IAAIA,OAAO,EAAE;IACXP,gBAAgB,CAACS,aAAa,CAC5B,IAAIC,WAAW,CAAC,QAAQ,EAAE;MAAEC,MAAM,EAAER;IAAM,CAAC,CAC7C,CAAC;EACH;AACF;AAEAV,0BAA0B,CAACmB,OAAO,CAAC,CAACC,QAAQ,EAAEP,UAAU,KAAK;EAC3D,MAAMQ,cAAc,GAAGC,MAAM,CAACC,UAAU,CAAE,eAAcH,QAAS,GAAE,CAAC;EAEpET,mBAAmB,CAACU,cAAc,EAAER,UAAU,CAAC;EAE/C,IAAIQ,cAAc,CAACG,gBAAgB,EAAE;IACnCH,cAAc,CAACG,gBAAgB,CAAC,QAAQ,EAAGC,KAAK,IAAK;MACnDd,mBAAmB,CAACc,KAAK,EAAEZ,UAAU,CAAC;IACxC,CAAC,CAAC;EACJ,CAAC,MAAM;IACLQ,cAAc,CAACK,WAAW,CAAED,KAAK,IAAK;MACpCd,mBAAmB,CAACc,KAAK,EAAEZ,UAAU,CAAC;IACxC,CAAC,CAAC;EACJ;AACF,CAAC,CAAC;AAEK,MAAMc,QAAQ,GAAGA,CAAA,KAAajB,KAAK;AAACX,OAAA,CAAA4B,QAAA,GAAAA,QAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"mount.js","names":["_bindTemplateProxy","require","_utils","_bindListeners","_setRealProperties","_enums","unmountTree","mountPoint","innerHTML","mountTree","root","initializedElement","current","child","portalElements","tagName","type","includes","customElements","get","console","error","warn","element","document","createElement","slotId","setAttribute","iid","dataset","setRealProperties","properties","bindListeners","events","runtimeContext","tplHostMetadata","$$tplStateStore","getTplStateStore","tplStateStoreId","tplStateStoreMap","bindTemplateProxy","portal","push","return","childElements","sibling","_currentReturn","currentReturn","tag","RenderTag","ROOT","_currentReturn$contai","container","append","undefined","length","createPortal"],"sources":["../../../src/internal/mount.ts"],"sourcesContent":["import { bindTemplateProxy } from \"./CustomTemplates/bindTemplateProxy.js\";\nimport { getTplStateStore } from \"./CustomTemplates/utils.js\";\nimport { bindListeners } from \"./bindListeners.js\";\nimport { setRealProperties } from \"./compute/setRealProperties.js\";\nimport { RenderTag } from \"./enums.js\";\nimport type {\n RenderNode,\n RenderRoot,\n RuntimeBrickElement,\n} from \"./interfaces.js\";\n\nexport function unmountTree(mountPoint: HTMLElement) {\n mountPoint.innerHTML = \"\";\n}\n\nexport function mountTree(\n root: RenderRoot,\n initializedElement?: RuntimeBrickElement\n): void {\n let current = root.child;\n const portalElements: RuntimeBrickElement[] = [];\n while (current) {\n const tagName = current.type;\n\n if (tagName.includes(\"-\") && !customElements.get(tagName)) {\n // eslint-disable-next-line no-console\n console.error(`Undefined custom element: ${tagName}`);\n }\n\n // istanbul ignore if\n if (tagName === \"basic-bricks.script-brick\") {\n // eslint-disable-next-line no-console\n console.warn(\n \"`basic-bricks.script-brick` is deprecated, please take caution when using it\"\n );\n }\n\n const element: RuntimeBrickElement =\n initializedElement && current === root.child\n ? initializedElement\n : document.createElement(tagName);\n current.element = element;\n\n if (current.slotId) {\n element.setAttribute(\"slot\", current.slotId);\n }\n if (current.iid) {\n element.dataset.iid = current.iid;\n }\n setRealProperties(element, current.properties);\n bindListeners(element, current.events, current.runtimeContext);\n if (current.tplHostMetadata) {\n // 先设置属性,再设置 `$$tplStateStore`,这样,当触发属性设置时,\n // 避免初始化的一次 state update 操作及其 onChange 事件。\n element.$$tplStateStore = getTplStateStore(\n {\n tplStateStoreId: current.tplHostMetadata.tplStateStoreId,\n tplStateStoreMap: current.runtimeContext.tplStateStoreMap,\n },\n \"mount\"\n );\n }\n bindTemplateProxy(current);\n\n if (current.portal) {\n portalElements.push(element);\n } else if (current.return) {\n if (!current.return.childElements) {\n current.return.childElements = [];\n }\n current.return.childElements.push(element);\n }\n\n if (current.child) {\n current = current.child;\n } else if (current.sibling) {\n current = current.sibling;\n } else {\n let currentReturn: RenderNode | null | undefined = current.return;\n while (currentReturn) {\n // Append elements inside out\n if (currentReturn.childElements) {\n if (currentReturn.tag === RenderTag.ROOT) {\n currentReturn.container?.append(...currentReturn.childElements);\n } else {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n currentReturn.element!.append(...currentReturn.childElements);\n }\n currentReturn.childElements = undefined;\n }\n\n if (currentReturn.tag === RenderTag.ROOT && portalElements.length > 0) {\n const portal =\n typeof currentReturn.createPortal === \"function\"\n ? currentReturn.createPortal()\n : currentReturn.createPortal;\n portal.append(...portalElements);\n }\n\n if (currentReturn.sibling) {\n break;\n }\n currentReturn = currentReturn.return;\n }\n current = currentReturn?.sibling;\n }\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"mount.js","names":["_bindTemplateProxy","require","_utils","_bindListeners","_setRealProperties","_enums","unmountTree","mountPoint","innerHTML","mountTree","root","initializedElement","current","child","portalElements","tagName","type","includes","customElements","get","console","error","warn","element","document","createElement","slotId","setAttribute","iid","dataset","setRealProperties","properties","bindListeners","events","runtimeContext","tplHostMetadata","$$tplStateStore","getTplStateStore","tplStateStoreId","tplStateStoreMap","bindTemplateProxy","portal","push","return","childElements","sibling","_currentReturn","currentReturn","tag","RenderTag","ROOT","_currentReturn$contai","container","append","undefined","length","createPortal"],"sources":["../../../src/internal/mount.ts"],"sourcesContent":["import { bindTemplateProxy } from \"./CustomTemplates/bindTemplateProxy.js\";\nimport { getTplStateStore } from \"./CustomTemplates/utils.js\";\nimport { bindListeners } from \"./bindListeners.js\";\nimport { setRealProperties } from \"./compute/setRealProperties.js\";\nimport { RenderTag } from \"./enums.js\";\nimport type {\n RenderNode,\n RenderRoot,\n RuntimeBrickElement,\n} from \"./interfaces.js\";\n\nexport function unmountTree(mountPoint: HTMLElement) {\n mountPoint.innerHTML = \"\";\n}\n\nexport function mountTree(\n root: RenderRoot,\n initializedElement?: RuntimeBrickElement\n): void {\n let current = root.child;\n const portalElements: RuntimeBrickElement[] = [];\n while (current) {\n const tagName = current.type;\n\n if (tagName.includes(\"-\") && !customElements.get(tagName)) {\n // eslint-disable-next-line no-console\n console.error(`Undefined custom element: ${tagName}`);\n }\n\n // istanbul ignore if\n if (tagName === \"basic-bricks.script-brick\") {\n // eslint-disable-next-line no-console\n console.warn(\n \"`basic-bricks.script-brick` is deprecated, please take caution when using it\"\n );\n }\n\n const element: RuntimeBrickElement =\n initializedElement && current === root.child\n ? initializedElement\n : document.createElement(tagName);\n current.element = element;\n\n if (current.slotId) {\n element.setAttribute(\"slot\", current.slotId);\n }\n if (current.iid) {\n element.dataset.iid = current.iid;\n }\n setRealProperties(element, current.properties);\n bindListeners(element, current.events, current.runtimeContext);\n if (current.tplHostMetadata) {\n // 先设置属性,再设置 `$$tplStateStore`,这样,当触发属性设置时,\n // 避免初始化的一次 state update 操作及其 onChange 事件。\n element.$$tplStateStore = getTplStateStore(\n {\n tplStateStoreId: current.tplHostMetadata.tplStateStoreId,\n tplStateStoreMap: current.runtimeContext.tplStateStoreMap,\n },\n \"mount\"\n );\n }\n bindTemplateProxy(current);\n\n if (current.portal) {\n portalElements.push(element);\n } else if (current.return) {\n if (!current.return.childElements) {\n current.return.childElements = [];\n }\n current.return.childElements.push(element);\n }\n\n if (current.child) {\n current = current.child;\n } else if (current.sibling) {\n current = current.sibling;\n } else {\n let currentReturn: RenderNode | null | undefined = current.return;\n while (currentReturn) {\n // Append elements inside out\n if (currentReturn.childElements) {\n if (currentReturn.tag === RenderTag.ROOT) {\n currentReturn.container?.append(...currentReturn.childElements);\n } else {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n currentReturn.element!.append(...currentReturn.childElements);\n }\n currentReturn.childElements = undefined;\n }\n\n if (currentReturn.tag === RenderTag.ROOT && portalElements.length > 0) {\n const portal =\n typeof currentReturn.createPortal === \"function\"\n ? currentReturn.createPortal()\n : currentReturn.createPortal;\n portal.append(...portalElements);\n }\n\n if (currentReturn.sibling) {\n break;\n }\n currentReturn = currentReturn.return;\n }\n current = currentReturn?.sibling;\n }\n }\n}\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"poll.js","names":["_Runtime","require","timeoutIdList","Set","startPoll","task","progress","success","error","finally","finallyCallback","interval","leadingRequestDelay","continueOnError","delegateLoadingBar","expectPollEnd","expectPollStopImmediately","currentRenderId","_internalApiGetRenderId","currentTimeoutId","poll","delete","shouldStop","result","window","dispatchEvent","Event","delayedPoll","e","delay","setTimeout","add","clearPollTimeout","timeoutId","clearTimeout","clear"],"sources":["../../../src/internal/poll.ts"],"sourcesContent":["import type { ProviderPollOptions } from \"@next-core/types\";\nimport { _internalApiGetRenderId } from \"./Runtime.js\";\n\nexport type PollableCallbackFunction = (result?: unknown) => unknown;\n\nexport interface PollableCallback {\n progress?: PollableCallbackFunction;\n success?: PollableCallbackFunction;\n error?: PollableCallbackFunction;\n finally?: PollableCallbackFunction;\n}\n\nconst timeoutIdList = new Set<number>();\n\nexport function startPoll(\n task: () => unknown,\n { progress, success, error, finally: finallyCallback }: PollableCallback,\n {\n interval,\n leadingRequestDelay,\n continueOnError,\n delegateLoadingBar,\n expectPollEnd,\n expectPollStopImmediately,\n }: ProviderPollOptions\n): void {\n const currentRenderId = _internalApiGetRenderId();\n let currentTimeoutId: number;\n async function poll(): Promise<void> {\n timeoutIdList.delete(currentTimeoutId);\n let shouldStop: boolean | undefined;\n try {\n shouldStop = expectPollStopImmediately?.();\n // Stop polling immediately when the expectation is match before task.\n if (!shouldStop) {\n const result = await task();\n // Stop polling immediately when the expectation is match or a different router\n // is rendering after the task processed.\n shouldStop =\n expectPollStopImmediately?.() ||\n currentRenderId !== _internalApiGetRenderId();\n if (!shouldStop) {\n progress?.(result);\n if (expectPollEnd?.(result)) {\n if (delegateLoadingBar) {\n window.dispatchEvent(new Event(\"request.end\"));\n }\n success?.(result);\n finallyCallback?.();\n } else {\n delayedPoll(interval ?? 3000);\n }\n }\n }\n } catch (e) {\n // Stop polling immediately when the expectation is match or a different router\n // is rendering after the task processed.\n shouldStop =\n expectPollStopImmediately?.() ||\n currentRenderId !== _internalApiGetRenderId();\n if (!shouldStop) {\n error?.(e);\n if (continueOnError) {\n delayedPoll(interval ?? 3000);\n } else {\n finallyCallback?.();\n }\n }\n } finally {\n // Manually dispatch an event of `request.end` when the polling is stopped immediately.\n if (delegateLoadingBar && shouldStop) {\n window.dispatchEvent(new Event(\"request.end\"));\n }\n }\n }\n\n function delayedPoll(delay: number): void {\n currentTimeoutId = setTimeout(poll, delay) as unknown as number;\n timeoutIdList.add(currentTimeoutId);\n }\n\n delayedPoll(leadingRequestDelay ?? 0);\n\n if (delegateLoadingBar) {\n window.dispatchEvent(new Event(\"request.start\"));\n }\n}\n\nexport function clearPollTimeout(): void {\n for (const timeoutId of timeoutIdList) {\n clearTimeout(timeoutId);\n }\n timeoutIdList.clear();\n}\n"],"mappings":";;;;;;;AACA,IAAAA,QAAA,GAAAC,OAAA;AAWA,MAAMC,aAAa,GAAG,IAAIC,GAAG,EAAU;AAEhC,SAASC,SAASA,CACvBC,IAAmB,EACnB;EAAEC,QAAQ;EAAEC,OAAO;EAAEC,KAAK;EAAEC,OAAO,EAAEC;AAAkC,CAAC,EACxE;EACEC,QAAQ;EACRC,mBAAmB;EACnBC,eAAe;EACfC,kBAAkB;EAClBC,aAAa;EACbC;AACmB,CAAC,EAChB;EACN,MAAMC,eAAe,GAAG,IAAAC,gCAAuB,GAAE;EACjD,IAAIC,gBAAwB;EAC5B,eAAeC,IAAIA,CAAA,EAAkB;IACnClB,aAAa,CAACmB,MAAM,CAACF,gBAAgB,CAAC;IACtC,IAAIG,UAA+B;IACnC,IAAI;MACFA,UAAU,GAAGN,yBAAyB,aAAzBA,yBAAyB,uBAAzBA,yBAAyB,EAAI;MAC1C;MACA,IAAI,CAACM,UAAU,EAAE;QACf,MAAMC,MAAM,GAAG,MAAMlB,IAAI,EAAE;QAC3B;QACA;QACAiB,UAAU,GACR,CAAAN,yBAAyB,aAAzBA,yBAAyB,uBAAzBA,yBAAyB,EAAI,KAC7BC,eAAe,KAAK,IAAAC,gCAAuB,GAAE;QAC/C,IAAI,CAACI,UAAU,EAAE;UACfhB,QAAQ,aAARA,QAAQ,uBAARA,QAAQ,CAAGiB,MAAM,CAAC;UAClB,IAAIR,aAAa,aAAbA,aAAa,eAAbA,aAAa,CAAGQ,MAAM,CAAC,EAAE;YAC3B,IAAIT,kBAAkB,EAAE;cACtBU,MAAM,CAACC,aAAa,CAAC,IAAIC,KAAK,CAAC,aAAa,CAAC,CAAC;YAChD;YACAnB,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAGgB,MAAM,CAAC;YACjBb,eAAe,aAAfA,eAAe,uBAAfA,eAAe,EAAI;UACrB,CAAC,MAAM;YACLiB,WAAW,CAAChB,QAAQ,aAARA,QAAQ,cAARA,QAAQ,GAAI,IAAI,CAAC;UAC/B;QACF;MACF;IACF,CAAC,CAAC,OAAOiB,CAAC,EAAE;MACV;MACA;MACAN,UAAU,GACR,CAAAN,yBAAyB,aAAzBA,yBAAyB,uBAAzBA,yBAAyB,EAAI,KAC7BC,eAAe,KAAK,IAAAC,gCAAuB,GAAE;MAC/C,IAAI,CAACI,UAAU,EAAE;QACfd,KAAK,aAALA,KAAK,uBAALA,KAAK,CAAGoB,CAAC,CAAC;QACV,IAAIf,eAAe,EAAE;UACnBc,WAAW,CAAChB,QAAQ,aAARA,QAAQ,cAARA,QAAQ,GAAI,IAAI,CAAC;QAC/B,CAAC,MAAM;UACLD,eAAe,aAAfA,eAAe,uBAAfA,eAAe,EAAI;QACrB;MACF;IACF,CAAC,SAAS;MACR;MACA,IAAII,kBAAkB,IAAIQ,UAAU,EAAE;QACpCE,MAAM,CAACC,aAAa,CAAC,IAAIC,KAAK,CAAC,aAAa,CAAC,CAAC;MAChD;IACF;EACF;EAEA,SAASC,WAAWA,CAACE,KAAa,EAAQ;IACxCV,gBAAgB,GAAGW,UAAU,CAACV,IAAI,EAAES,KAAK,CAAsB;IAC/D3B,aAAa,CAAC6B,GAAG,CAACZ,gBAAgB,CAAC;EACrC;EAEAQ,WAAW,CAACf,mBAAmB,aAAnBA,mBAAmB,cAAnBA,mBAAmB,GAAI,CAAC,CAAC;EAErC,IAAIE,kBAAkB,EAAE;IACtBU,MAAM,CAACC,aAAa,CAAC,IAAIC,KAAK,CAAC,eAAe,CAAC,CAAC;EAClD;AACF;AAEO,SAASM,gBAAgBA,CAAA,EAAS;EACvC,KAAK,MAAMC,SAAS,IAAI/B,aAAa,EAAE;IACrCgC,YAAY,CAACD,SAAS,CAAC;EACzB;EACA/B,aAAa,CAACiC,KAAK,EAAE;AACvB"}
1
+ {"version":3,"file":"poll.js","names":["_Runtime","require","timeoutIdList","Set","startPoll","task","progress","success","error","finally","finallyCallback","interval","leadingRequestDelay","continueOnError","delegateLoadingBar","expectPollEnd","expectPollStopImmediately","currentRenderId","_internalApiGetRenderId","currentTimeoutId","poll","delete","shouldStop","result","window","dispatchEvent","Event","delayedPoll","e","delay","setTimeout","add","clearPollTimeout","timeoutId","clearTimeout","clear"],"sources":["../../../src/internal/poll.ts"],"sourcesContent":["import type { ProviderPollOptions } from \"@next-core/types\";\nimport { _internalApiGetRenderId } from \"./Runtime.js\";\n\nexport type PollableCallbackFunction = (result?: unknown) => unknown;\n\nexport interface PollableCallback {\n progress?: PollableCallbackFunction;\n success?: PollableCallbackFunction;\n error?: PollableCallbackFunction;\n finally?: PollableCallbackFunction;\n}\n\nconst timeoutIdList = new Set<number>();\n\nexport function startPoll(\n task: () => unknown,\n { progress, success, error, finally: finallyCallback }: PollableCallback,\n {\n interval,\n leadingRequestDelay,\n continueOnError,\n delegateLoadingBar,\n expectPollEnd,\n expectPollStopImmediately,\n }: ProviderPollOptions\n): void {\n const currentRenderId = _internalApiGetRenderId();\n let currentTimeoutId: number;\n async function poll(): Promise<void> {\n timeoutIdList.delete(currentTimeoutId);\n let shouldStop: boolean | undefined;\n try {\n shouldStop = expectPollStopImmediately?.();\n // Stop polling immediately when the expectation is match before task.\n if (!shouldStop) {\n const result = await task();\n // Stop polling immediately when the expectation is match or a different router\n // is rendering after the task processed.\n shouldStop =\n expectPollStopImmediately?.() ||\n currentRenderId !== _internalApiGetRenderId();\n if (!shouldStop) {\n progress?.(result);\n if (expectPollEnd?.(result)) {\n if (delegateLoadingBar) {\n window.dispatchEvent(new Event(\"request.end\"));\n }\n success?.(result);\n finallyCallback?.();\n } else {\n delayedPoll(interval ?? 3000);\n }\n }\n }\n } catch (e) {\n // Stop polling immediately when the expectation is match or a different router\n // is rendering after the task processed.\n shouldStop =\n expectPollStopImmediately?.() ||\n currentRenderId !== _internalApiGetRenderId();\n if (!shouldStop) {\n error?.(e);\n if (continueOnError) {\n delayedPoll(interval ?? 3000);\n } else {\n finallyCallback?.();\n }\n }\n } finally {\n // Manually dispatch an event of `request.end` when the polling is stopped immediately.\n if (delegateLoadingBar && shouldStop) {\n window.dispatchEvent(new Event(\"request.end\"));\n }\n }\n }\n\n function delayedPoll(delay: number): void {\n currentTimeoutId = setTimeout(poll, delay) as unknown as number;\n timeoutIdList.add(currentTimeoutId);\n }\n\n delayedPoll(leadingRequestDelay ?? 0);\n\n if (delegateLoadingBar) {\n window.dispatchEvent(new Event(\"request.start\"));\n }\n}\n\nexport function clearPollTimeout(): void {\n for (const timeoutId of timeoutIdList) {\n clearTimeout(timeoutId);\n }\n timeoutIdList.clear();\n}\n"],"mappings":";;;;;;;AACA,IAAAA,QAAA,GAAAC,OAAA;AAWA,MAAMC,aAAa,GAAG,IAAIC,GAAG,CAAS,CAAC;AAEhC,SAASC,SAASA,CACvBC,IAAmB,EACnB;EAAEC,QAAQ;EAAEC,OAAO;EAAEC,KAAK;EAAEC,OAAO,EAAEC;AAAkC,CAAC,EACxE;EACEC,QAAQ;EACRC,mBAAmB;EACnBC,eAAe;EACfC,kBAAkB;EAClBC,aAAa;EACbC;AACmB,CAAC,EAChB;EACN,MAAMC,eAAe,GAAG,IAAAC,gCAAuB,EAAC,CAAC;EACjD,IAAIC,gBAAwB;EAC5B,eAAeC,IAAIA,CAAA,EAAkB;IACnClB,aAAa,CAACmB,MAAM,CAACF,gBAAgB,CAAC;IACtC,IAAIG,UAA+B;IACnC,IAAI;MACFA,UAAU,GAAGN,yBAAyB,aAAzBA,yBAAyB,uBAAzBA,yBAAyB,CAAG,CAAC;MAC1C;MACA,IAAI,CAACM,UAAU,EAAE;QACf,MAAMC,MAAM,GAAG,MAAMlB,IAAI,CAAC,CAAC;QAC3B;QACA;QACAiB,UAAU,GACR,CAAAN,yBAAyB,aAAzBA,yBAAyB,uBAAzBA,yBAAyB,CAAG,CAAC,KAC7BC,eAAe,KAAK,IAAAC,gCAAuB,EAAC,CAAC;QAC/C,IAAI,CAACI,UAAU,EAAE;UACfhB,QAAQ,aAARA,QAAQ,uBAARA,QAAQ,CAAGiB,MAAM,CAAC;UAClB,IAAIR,aAAa,aAAbA,aAAa,eAAbA,aAAa,CAAGQ,MAAM,CAAC,EAAE;YAC3B,IAAIT,kBAAkB,EAAE;cACtBU,MAAM,CAACC,aAAa,CAAC,IAAIC,KAAK,CAAC,aAAa,CAAC,CAAC;YAChD;YACAnB,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAGgB,MAAM,CAAC;YACjBb,eAAe,aAAfA,eAAe,uBAAfA,eAAe,CAAG,CAAC;UACrB,CAAC,MAAM;YACLiB,WAAW,CAAChB,QAAQ,aAARA,QAAQ,cAARA,QAAQ,GAAI,IAAI,CAAC;UAC/B;QACF;MACF;IACF,CAAC,CAAC,OAAOiB,CAAC,EAAE;MACV;MACA;MACAN,UAAU,GACR,CAAAN,yBAAyB,aAAzBA,yBAAyB,uBAAzBA,yBAAyB,CAAG,CAAC,KAC7BC,eAAe,KAAK,IAAAC,gCAAuB,EAAC,CAAC;MAC/C,IAAI,CAACI,UAAU,EAAE;QACfd,KAAK,aAALA,KAAK,uBAALA,KAAK,CAAGoB,CAAC,CAAC;QACV,IAAIf,eAAe,EAAE;UACnBc,WAAW,CAAChB,QAAQ,aAARA,QAAQ,cAARA,QAAQ,GAAI,IAAI,CAAC;QAC/B,CAAC,MAAM;UACLD,eAAe,aAAfA,eAAe,uBAAfA,eAAe,CAAG,CAAC;QACrB;MACF;IACF,CAAC,SAAS;MACR;MACA,IAAII,kBAAkB,IAAIQ,UAAU,EAAE;QACpCE,MAAM,CAACC,aAAa,CAAC,IAAIC,KAAK,CAAC,aAAa,CAAC,CAAC;MAChD;IACF;EACF;EAEA,SAASC,WAAWA,CAACE,KAAa,EAAQ;IACxCV,gBAAgB,GAAGW,UAAU,CAACV,IAAI,EAAES,KAAK,CAAsB;IAC/D3B,aAAa,CAAC6B,GAAG,CAACZ,gBAAgB,CAAC;EACrC;EAEAQ,WAAW,CAACf,mBAAmB,aAAnBA,mBAAmB,cAAnBA,mBAAmB,GAAI,CAAC,CAAC;EAErC,IAAIE,kBAAkB,EAAE;IACtBU,MAAM,CAACC,aAAa,CAAC,IAAIC,KAAK,CAAC,eAAe,CAAC,CAAC;EAClD;AACF;AAEO,SAASM,gBAAgBA,CAAA,EAAS;EACvC,KAAK,MAAMC,SAAS,IAAI/B,aAAa,EAAE;IACrCgC,YAAY,CAACD,SAAS,CAAC;EACzB;EACA/B,aAAa,CAACiC,KAAK,CAAC,CAAC;AACvB"}
@@ -1 +1 @@
1
- {"version":3,"file":"proxyFactories.js","names":["_devtools","require","THROW","Error","readOnlyHandler","set","defineProperty","deleteProperty","setPrototypeOf","getReadOnlyProxy","object","Proxy","getDynamicReadOnlyProxy","get","ownKeys","getDevHook","target","Object","fromEntries","map","key","freeze"],"sources":["../../../src/internal/proxyFactories.ts"],"sourcesContent":["import { getDevHook } from \"./devtools.js\";\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nconst THROW = (): any => {\n throw new Error(\"Can't modify read-only proxy object\");\n};\n\nconst readOnlyHandler: ProxyHandler<object> = {\n set: THROW,\n defineProperty: THROW,\n deleteProperty: THROW,\n setPrototypeOf: THROW,\n};\n\nexport function getReadOnlyProxy<T extends object>(object: T): T {\n return new Proxy<T>(object, readOnlyHandler);\n}\n\n// First, we want to make accessing property of globals lazy,\n// So we use *Proxy* to make a dynamic accessor for each of these globals.\n// But we also want to keep them working in devtools.\nexport function getDynamicReadOnlyProxy({\n get,\n ownKeys,\n}: Required<Pick<ProxyHandler<object>, \"get\" | \"ownKeys\">>): unknown {\n if (getDevHook()) {\n // In devtools, we extract them at beginning.\n const target = Object.fromEntries(\n (ownKeys(null!) as string[]).map((key) => [key, get(null!, key, null)])\n );\n return getReadOnlyProxy(target);\n }\n return new Proxy(Object.freeze({}), { get });\n}\n"],"mappings":";;;;;;;AAAA,IAAAA,SAAA,GAAAC,OAAA;AAEA;AACA,MAAMC,KAAK,GAAGA,CAAA,KAAW;EACvB,MAAM,IAAIC,KAAK,CAAC,qCAAqC,CAAC;AACxD,CAAC;AAED,MAAMC,eAAqC,GAAG;EAC5CC,GAAG,EAAEH,KAAK;EACVI,cAAc,EAAEJ,KAAK;EACrBK,cAAc,EAAEL,KAAK;EACrBM,cAAc,EAAEN;AAClB,CAAC;AAEM,SAASO,gBAAgBA,CAAmBC,MAAS,EAAK;EAC/D,OAAO,IAAIC,KAAK,CAAID,MAAM,EAAEN,eAAe,CAAC;AAC9C;;AAEA;AACA;AACA;AACO,SAASQ,uBAAuBA,CAAC;EACtCC,GAAG;EACHC;AACuD,CAAC,EAAW;EACnE,IAAI,IAAAC,oBAAU,GAAE,EAAE;IAChB;IACA,MAAMC,MAAM,GAAGC,MAAM,CAACC,WAAW,CAC9BJ,OAAO,CAAC,IAAI,CAAE,CAAcK,GAAG,CAAEC,GAAG,IAAK,CAACA,GAAG,EAAEP,GAAG,CAAC,IAAI,EAAGO,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC,CACxE;IACD,OAAOX,gBAAgB,CAACO,MAAM,CAAC;EACjC;EACA,OAAO,IAAIL,KAAK,CAACM,MAAM,CAACI,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE;IAAER;EAAI,CAAC,CAAC;AAC9C"}
1
+ {"version":3,"file":"proxyFactories.js","names":["_devtools","require","THROW","Error","readOnlyHandler","set","defineProperty","deleteProperty","setPrototypeOf","getReadOnlyProxy","object","Proxy","getDynamicReadOnlyProxy","get","ownKeys","getDevHook","target","Object","fromEntries","map","key","freeze"],"sources":["../../../src/internal/proxyFactories.ts"],"sourcesContent":["import { getDevHook } from \"./devtools.js\";\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nconst THROW = (): any => {\n throw new Error(\"Can't modify read-only proxy object\");\n};\n\nconst readOnlyHandler: ProxyHandler<object> = {\n set: THROW,\n defineProperty: THROW,\n deleteProperty: THROW,\n setPrototypeOf: THROW,\n};\n\nexport function getReadOnlyProxy<T extends object>(object: T): T {\n return new Proxy<T>(object, readOnlyHandler);\n}\n\n// First, we want to make accessing property of globals lazy,\n// So we use *Proxy* to make a dynamic accessor for each of these globals.\n// But we also want to keep them working in devtools.\nexport function getDynamicReadOnlyProxy({\n get,\n ownKeys,\n}: Required<Pick<ProxyHandler<object>, \"get\" | \"ownKeys\">>): unknown {\n if (getDevHook()) {\n // In devtools, we extract them at beginning.\n const target = Object.fromEntries(\n (ownKeys(null!) as string[]).map((key) => [key, get(null!, key, null)])\n );\n return getReadOnlyProxy(target);\n }\n return new Proxy(Object.freeze({}), { get });\n}\n"],"mappings":";;;;;;;AAAA,IAAAA,SAAA,GAAAC,OAAA;AAEA;AACA,MAAMC,KAAK,GAAGA,CAAA,KAAW;EACvB,MAAM,IAAIC,KAAK,CAAC,qCAAqC,CAAC;AACxD,CAAC;AAED,MAAMC,eAAqC,GAAG;EAC5CC,GAAG,EAAEH,KAAK;EACVI,cAAc,EAAEJ,KAAK;EACrBK,cAAc,EAAEL,KAAK;EACrBM,cAAc,EAAEN;AAClB,CAAC;AAEM,SAASO,gBAAgBA,CAAmBC,MAAS,EAAK;EAC/D,OAAO,IAAIC,KAAK,CAAID,MAAM,EAAEN,eAAe,CAAC;AAC9C;;AAEA;AACA;AACA;AACO,SAASQ,uBAAuBA,CAAC;EACtCC,GAAG;EACHC;AACuD,CAAC,EAAW;EACnE,IAAI,IAAAC,oBAAU,EAAC,CAAC,EAAE;IAChB;IACA,MAAMC,MAAM,GAAGC,MAAM,CAACC,WAAW,CAC9BJ,OAAO,CAAC,IAAK,CAAC,CAAcK,GAAG,CAAEC,GAAG,IAAK,CAACA,GAAG,EAAEP,GAAG,CAAC,IAAI,EAAGO,GAAG,EAAE,IAAI,CAAC,CAAC,CACxE,CAAC;IACD,OAAOX,gBAAgB,CAACO,MAAM,CAAC;EACjC;EACA,OAAO,IAAIL,KAAK,CAACM,MAAM,CAACI,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE;IAAER;EAAI,CAAC,CAAC;AAC9C"}
@@ -102,6 +102,8 @@ function unmountUseBrick({
102
102
  rendererContext.dispatchOnUnmount();
103
103
  rendererContext.dispose();
104
104
  }
105
+
106
+ /** For v2 compatibility of `doTransform` from brick-kit. */
105
107
  function legacyDoTransform(data, to, options) {
106
108
  if (options) {
107
109
  throw new Error("Legacy doTransform does not support options in v3");
@@ -1 +1 @@
1
- {"version":3,"file":"secret_internals.js","names":["_loader","require","_lodash","_Runtime","_Renderer","_RendererContext","_mount","_enums","_computeRealValue","_isStrictMode","_CustomTemplates","_registerAppI18n","renderUseBrick","useBrick","data","_runtimeContext$tplSt","_runtimeContext$formS","_output$node","tplStateStoreScope","formStateStoreScope","runtimeContext","_internalApiGetRuntimeContext","pendingPermissionsPreCheck","tplStateStoreMap","Map","formStateStoreMap","rendererContext","RendererContext","renderRoot","tag","RenderTag","ROOT","createPortal","transform","strict","isStrictMode","warnAboutStrictMode","output","renderBrick","properties","flushStableLoadBricks","Promise","all","blockingList","map","store","waitForAll","node","portal","Error","child","tagName","type","mountUseBrick","element","portalRoot","document","querySelector","createElement","appendChild","mountTree","dispatchOnMount","initializeScrollIntoView","initializeMediaChange","unmountUseBrick","mountResult","unmountTree","remove","dispatchOnUnmount","dispose","legacyDoTransform","to","options","computeRealValue","noInject","updateStoryboard","appId","storyboardPatch","storyboard","_internalApiGetStoryboardInBootstrapData","Object","assign","$$fulfilling","$$fulfilled","$$registerCustomTemplateProcessed","registerAppI18n","updateStoryboardByRoute","newRoute","match","getKey","route","path","exact","replaceRoute","routes","key","routeKey","unshift","updateStoryboardByTemplate","newTemplate","settings","tplName","name","customTemplates","define","bricks","proxy","state","updateTemplatePreviewSettings","templateId","_updatePreviewSettings","brick","pick","updateStoryboardBySnippet","snippetData","_snippetData$bricks","snippetId","length","updateSnippetPreviewSettings","exports","previewRouteIndex","findIndex","newPreviewRoute","menu","splice"],"sources":["../../../src/internal/secret_internals.ts"],"sourcesContent":["import type {\n BrickConf,\n CustomTemplate,\n RouteConf,\n Storyboard,\n UseSingleBrickConf,\n} from \"@next-core/types\";\nimport { flushStableLoadBricks } from \"@next-core/loader\";\nimport { pick } from \"lodash\";\nimport {\n _internalApiGetRuntimeContext,\n _internalApiGetStoryboardInBootstrapData,\n} from \"./Runtime.js\";\nimport { renderBrick } from \"./Renderer.js\";\nimport { RendererContext } from \"./RendererContext.js\";\nimport type { DataStore } from \"./data/DataStore.js\";\nimport type { RenderRoot, RuntimeContext } from \"./interfaces.js\";\nimport { mountTree, unmountTree } from \"./mount.js\";\nimport { RenderTag } from \"./enums.js\";\nimport { computeRealValue } from \"./compute/computeRealValue.js\";\nimport { isStrictMode, warnAboutStrictMode } from \"../isStrictMode.js\";\nimport { customTemplates } from \"../CustomTemplates.js\";\nimport { registerAppI18n } from \"./registerAppI18n.js\";\n\nexport interface RenderUseBrickResult {\n tagName: string | null;\n renderRoot: RenderRoot;\n rendererContext: RendererContext;\n}\n\nexport async function renderUseBrick(\n useBrick: UseSingleBrickConf,\n data: unknown\n): Promise<RenderUseBrickResult> {\n const tplStateStoreScope: DataStore<\"STATE\">[] = [];\n const formStateStoreScope: DataStore<\"FORM_STATE\">[] = [];\n const runtimeContext: RuntimeContext = {\n ..._internalApiGetRuntimeContext()!,\n data,\n pendingPermissionsPreCheck: [],\n tplStateStoreScope,\n formStateStoreScope,\n };\n\n runtimeContext.tplStateStoreMap ??= new Map();\n runtimeContext.formStateStoreMap ??= new Map();\n\n const rendererContext = new RendererContext(\"fragment\");\n\n const renderRoot: RenderRoot = {\n tag: RenderTag.ROOT,\n // Will set during `mountUseBrick`\n createPortal: null!,\n };\n\n const transform = (useBrick as { transform?: Record<string, unknown> })\n .transform;\n const strict = isStrictMode();\n if (transform) {\n warnAboutStrictMode(\n strict,\n \"`useBrick.transform`\",\n 'please use \"properties\" instead, check your useBrick:',\n useBrick\n );\n }\n\n const output = await renderBrick(\n renderRoot,\n strict\n ? useBrick\n : {\n ...useBrick,\n properties: {\n ...useBrick.properties,\n ...transform,\n },\n },\n runtimeContext,\n rendererContext\n );\n\n flushStableLoadBricks();\n\n await Promise.all([\n ...output.blockingList,\n // Wait for local tpl state stores belong to current `useBrick` only.\n ...[...tplStateStoreScope, ...formStateStoreScope].map((store) =>\n store.waitForAll()\n ),\n ...runtimeContext.pendingPermissionsPreCheck,\n ]);\n\n if (output.node?.portal) {\n throw new Error(\"The root brick of useBrick cannot be a portal brick\");\n }\n\n renderRoot.child = output.node;\n\n const tagName = output.node ? output.node.type : null;\n\n return { tagName, renderRoot, rendererContext };\n}\n\nexport interface MountUseBrickResult {\n portal?: HTMLElement;\n}\n\nexport function mountUseBrick(\n { renderRoot, rendererContext }: RenderUseBrickResult,\n element: HTMLElement\n): MountUseBrickResult {\n let portal: HTMLElement | undefined;\n renderRoot.createPortal = () => {\n const portalRoot = document.querySelector(\n \"#portal-mount-point\"\n ) as HTMLElement;\n portal = document.createElement(\"div\");\n portalRoot.appendChild(portal);\n return portal;\n };\n\n mountTree(renderRoot, element);\n\n rendererContext.dispatchOnMount();\n rendererContext.initializeScrollIntoView();\n rendererContext.initializeMediaChange();\n\n return {\n portal,\n };\n}\n\nexport function unmountUseBrick(\n { rendererContext }: RenderUseBrickResult,\n mountResult: MountUseBrickResult\n): void {\n // if (mountResult.mainBrick) {\n // mountResult.mainBrick.unmount();\n // }\n if (mountResult.portal) {\n unmountTree(mountResult.portal);\n mountResult.portal.remove();\n }\n rendererContext.dispatchOnUnmount();\n rendererContext.dispose();\n}\n\nexport function legacyDoTransform(\n data: unknown,\n to: unknown,\n options?: unknown\n) {\n if (options) {\n throw new Error(\"Legacy doTransform does not support options in v3\");\n }\n return computeRealValue(\n to,\n {\n ..._internalApiGetRuntimeContext()!,\n data,\n },\n {\n noInject: true,\n }\n );\n}\n\nexport function updateStoryboard(\n appId: string,\n storyboardPatch: Partial<Storyboard>\n): void {\n const storyboard = _internalApiGetStoryboardInBootstrapData(appId)!;\n Object.assign(storyboard, {\n ...storyboardPatch,\n $$fulfilling: null,\n $$fulfilled: true,\n $$registerCustomTemplateProcessed: false,\n });\n registerAppI18n(storyboard);\n}\n\nexport function updateStoryboardByRoute(appId: string, newRoute: RouteConf) {\n const storyboard = _internalApiGetStoryboardInBootstrapData(appId)!;\n let match = false;\n const getKey = (route: RouteConf): string => `${route.path}.${route.exact}`;\n const replaceRoute = (routes: RouteConf[], key: string): RouteConf[] => {\n return routes.map((route) => {\n const routeKey = getKey(route);\n if (route.type === \"routes\") {\n route.routes = replaceRoute(route.routes, key);\n return route;\n } else if (routeKey === key) {\n match = true;\n return newRoute;\n } else {\n return route;\n }\n });\n };\n storyboard.routes = replaceRoute(storyboard.routes, getKey(newRoute));\n if (!match) {\n storyboard.routes.unshift(newRoute);\n }\n}\n\nexport function updateStoryboardByTemplate(\n appId: string,\n newTemplate: CustomTemplate,\n settings: unknown\n): void {\n const tplName = `${appId}.${newTemplate.name}`;\n // customTemplateRegistry.delete(tplName);\n customTemplates.define(tplName, {\n bricks: newTemplate.bricks,\n proxy: newTemplate.proxy,\n state: newTemplate.state,\n });\n updateTemplatePreviewSettings(appId, newTemplate.name, settings);\n}\n\nexport function updateTemplatePreviewSettings(\n appId: string,\n templateId: string,\n settings?: unknown\n): void {\n _updatePreviewSettings(\n appId,\n `\\${APP.homepage}/_dev_only_/template-preview/${templateId}`,\n [\n {\n brick: templateId,\n ...pick(settings, \"properties\", \"events\", \"lifeCycle\", \"context\"),\n },\n ]\n );\n}\n\nexport function updateStoryboardBySnippet(\n appId: string,\n snippetData: {\n snippetId: string;\n bricks?: BrickConf[];\n }\n): void {\n _updatePreviewSettings(\n appId,\n `\\${APP.homepage}/_dev_only_/snippet-preview/${snippetData.snippetId}`,\n snippetData.bricks?.length ? snippetData.bricks : [{ brick: \"span\" }]\n );\n}\n\nexport const updateSnippetPreviewSettings = updateStoryboardBySnippet;\n\nfunction _updatePreviewSettings(\n appId: string,\n path: string,\n bricks: BrickConf[]\n) {\n const { routes } = _internalApiGetStoryboardInBootstrapData(appId)!;\n const previewRouteIndex = routes.findIndex((route) => route.path === path);\n const newPreviewRoute: RouteConf = {\n path,\n bricks,\n menu: false,\n exact: true,\n };\n if (previewRouteIndex === -1) {\n routes.unshift(newPreviewRoute);\n } else {\n routes.splice(previewRouteIndex, 1, newPreviewRoute);\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"secret_internals.js","names":["_loader","require","_lodash","_Runtime","_Renderer","_RendererContext","_mount","_enums","_computeRealValue","_isStrictMode","_CustomTemplates","_registerAppI18n","renderUseBrick","useBrick","data","_runtimeContext$tplSt","_runtimeContext$formS","_output$node","tplStateStoreScope","formStateStoreScope","runtimeContext","_internalApiGetRuntimeContext","pendingPermissionsPreCheck","tplStateStoreMap","Map","formStateStoreMap","rendererContext","RendererContext","renderRoot","tag","RenderTag","ROOT","createPortal","transform","strict","isStrictMode","warnAboutStrictMode","output","renderBrick","properties","flushStableLoadBricks","Promise","all","blockingList","map","store","waitForAll","node","portal","Error","child","tagName","type","mountUseBrick","element","portalRoot","document","querySelector","createElement","appendChild","mountTree","dispatchOnMount","initializeScrollIntoView","initializeMediaChange","unmountUseBrick","mountResult","unmountTree","remove","dispatchOnUnmount","dispose","legacyDoTransform","to","options","computeRealValue","noInject","updateStoryboard","appId","storyboardPatch","storyboard","_internalApiGetStoryboardInBootstrapData","Object","assign","$$fulfilling","$$fulfilled","$$registerCustomTemplateProcessed","registerAppI18n","updateStoryboardByRoute","newRoute","match","getKey","route","path","exact","replaceRoute","routes","key","routeKey","unshift","updateStoryboardByTemplate","newTemplate","settings","tplName","name","customTemplates","define","bricks","proxy","state","updateTemplatePreviewSettings","templateId","_updatePreviewSettings","brick","pick","updateStoryboardBySnippet","snippetData","_snippetData$bricks","snippetId","length","updateSnippetPreviewSettings","exports","previewRouteIndex","findIndex","newPreviewRoute","menu","splice"],"sources":["../../../src/internal/secret_internals.ts"],"sourcesContent":["import type {\n BrickConf,\n CustomTemplate,\n RouteConf,\n Storyboard,\n UseSingleBrickConf,\n} from \"@next-core/types\";\nimport { flushStableLoadBricks } from \"@next-core/loader\";\nimport { pick } from \"lodash\";\nimport {\n _internalApiGetRuntimeContext,\n _internalApiGetStoryboardInBootstrapData,\n} from \"./Runtime.js\";\nimport { renderBrick } from \"./Renderer.js\";\nimport { RendererContext } from \"./RendererContext.js\";\nimport type { DataStore } from \"./data/DataStore.js\";\nimport type { RenderRoot, RuntimeContext } from \"./interfaces.js\";\nimport { mountTree, unmountTree } from \"./mount.js\";\nimport { RenderTag } from \"./enums.js\";\nimport { computeRealValue } from \"./compute/computeRealValue.js\";\nimport { isStrictMode, warnAboutStrictMode } from \"../isStrictMode.js\";\nimport { customTemplates } from \"../CustomTemplates.js\";\nimport { registerAppI18n } from \"./registerAppI18n.js\";\n\nexport type { RuntimeContext } from \"./interfaces.js\";\n\nexport interface RenderUseBrickResult {\n tagName: string | null;\n renderRoot: RenderRoot;\n rendererContext: RendererContext;\n}\n\nexport async function renderUseBrick(\n useBrick: UseSingleBrickConf,\n data: unknown\n): Promise<RenderUseBrickResult> {\n const tplStateStoreScope: DataStore<\"STATE\">[] = [];\n const formStateStoreScope: DataStore<\"FORM_STATE\">[] = [];\n const runtimeContext: RuntimeContext = {\n ..._internalApiGetRuntimeContext()!,\n data,\n pendingPermissionsPreCheck: [],\n tplStateStoreScope,\n formStateStoreScope,\n };\n\n runtimeContext.tplStateStoreMap ??= new Map();\n runtimeContext.formStateStoreMap ??= new Map();\n\n const rendererContext = new RendererContext(\"fragment\");\n\n const renderRoot: RenderRoot = {\n tag: RenderTag.ROOT,\n // Will set during `mountUseBrick`\n createPortal: null!,\n };\n\n const transform = (useBrick as { transform?: Record<string, unknown> })\n .transform;\n const strict = isStrictMode();\n if (transform) {\n warnAboutStrictMode(\n strict,\n \"`useBrick.transform`\",\n 'please use \"properties\" instead, check your useBrick:',\n useBrick\n );\n }\n\n const output = await renderBrick(\n renderRoot,\n strict\n ? useBrick\n : {\n ...useBrick,\n properties: {\n ...useBrick.properties,\n ...transform,\n },\n },\n runtimeContext,\n rendererContext\n );\n\n flushStableLoadBricks();\n\n await Promise.all([\n ...output.blockingList,\n // Wait for local tpl state stores belong to current `useBrick` only.\n ...[...tplStateStoreScope, ...formStateStoreScope].map((store) =>\n store.waitForAll()\n ),\n ...runtimeContext.pendingPermissionsPreCheck,\n ]);\n\n if (output.node?.portal) {\n throw new Error(\"The root brick of useBrick cannot be a portal brick\");\n }\n\n renderRoot.child = output.node;\n\n const tagName = output.node ? output.node.type : null;\n\n return { tagName, renderRoot, rendererContext };\n}\n\nexport interface MountUseBrickResult {\n portal?: HTMLElement;\n}\n\nexport function mountUseBrick(\n { renderRoot, rendererContext }: RenderUseBrickResult,\n element: HTMLElement\n): MountUseBrickResult {\n let portal: HTMLElement | undefined;\n renderRoot.createPortal = () => {\n const portalRoot = document.querySelector(\n \"#portal-mount-point\"\n ) as HTMLElement;\n portal = document.createElement(\"div\");\n portalRoot.appendChild(portal);\n return portal;\n };\n\n mountTree(renderRoot, element);\n\n rendererContext.dispatchOnMount();\n rendererContext.initializeScrollIntoView();\n rendererContext.initializeMediaChange();\n\n return {\n portal,\n };\n}\n\nexport function unmountUseBrick(\n { rendererContext }: RenderUseBrickResult,\n mountResult: MountUseBrickResult\n): void {\n // if (mountResult.mainBrick) {\n // mountResult.mainBrick.unmount();\n // }\n if (mountResult.portal) {\n unmountTree(mountResult.portal);\n mountResult.portal.remove();\n }\n rendererContext.dispatchOnUnmount();\n rendererContext.dispose();\n}\n\n/** For v2 compatibility of `doTransform` from brick-kit. */\nexport function legacyDoTransform(\n data: unknown,\n to: unknown,\n options?: unknown\n) {\n if (options) {\n throw new Error(\"Legacy doTransform does not support options in v3\");\n }\n return computeRealValue(\n to,\n {\n ..._internalApiGetRuntimeContext()!,\n data,\n },\n {\n noInject: true,\n }\n );\n}\n\nexport function updateStoryboard(\n appId: string,\n storyboardPatch: Partial<Storyboard>\n): void {\n const storyboard = _internalApiGetStoryboardInBootstrapData(appId)!;\n Object.assign(storyboard, {\n ...storyboardPatch,\n $$fulfilling: null,\n $$fulfilled: true,\n $$registerCustomTemplateProcessed: false,\n });\n registerAppI18n(storyboard);\n}\n\nexport function updateStoryboardByRoute(appId: string, newRoute: RouteConf) {\n const storyboard = _internalApiGetStoryboardInBootstrapData(appId)!;\n let match = false;\n const getKey = (route: RouteConf): string => `${route.path}.${route.exact}`;\n const replaceRoute = (routes: RouteConf[], key: string): RouteConf[] => {\n return routes.map((route) => {\n const routeKey = getKey(route);\n if (route.type === \"routes\") {\n route.routes = replaceRoute(route.routes, key);\n return route;\n } else if (routeKey === key) {\n match = true;\n return newRoute;\n } else {\n return route;\n }\n });\n };\n storyboard.routes = replaceRoute(storyboard.routes, getKey(newRoute));\n if (!match) {\n storyboard.routes.unshift(newRoute);\n }\n}\n\nexport function updateStoryboardByTemplate(\n appId: string,\n newTemplate: CustomTemplate,\n settings: unknown\n): void {\n const tplName = `${appId}.${newTemplate.name}`;\n // customTemplateRegistry.delete(tplName);\n customTemplates.define(tplName, {\n bricks: newTemplate.bricks,\n proxy: newTemplate.proxy,\n state: newTemplate.state,\n });\n updateTemplatePreviewSettings(appId, newTemplate.name, settings);\n}\n\nexport function updateTemplatePreviewSettings(\n appId: string,\n templateId: string,\n settings?: unknown\n): void {\n _updatePreviewSettings(\n appId,\n `\\${APP.homepage}/_dev_only_/template-preview/${templateId}`,\n [\n {\n brick: templateId,\n ...pick(settings, \"properties\", \"events\", \"lifeCycle\", \"context\"),\n },\n ]\n );\n}\n\nexport function updateStoryboardBySnippet(\n appId: string,\n snippetData: {\n snippetId: string;\n bricks?: BrickConf[];\n }\n): void {\n _updatePreviewSettings(\n appId,\n `\\${APP.homepage}/_dev_only_/snippet-preview/${snippetData.snippetId}`,\n snippetData.bricks?.length ? snippetData.bricks : [{ brick: \"span\" }]\n );\n}\n\nexport const updateSnippetPreviewSettings = updateStoryboardBySnippet;\n\nfunction _updatePreviewSettings(\n appId: string,\n path: string,\n bricks: BrickConf[]\n) {\n const { routes } = _internalApiGetStoryboardInBootstrapData(appId)!;\n const previewRouteIndex = routes.findIndex((route) => route.path === path);\n const newPreviewRoute: RouteConf = {\n path,\n bricks,\n menu: false,\n exact: true,\n };\n if (previewRouteIndex === -1) {\n routes.unshift(newPreviewRoute);\n } else {\n routes.splice(previewRouteIndex, 1, newPreviewRoute);\n }\n}\n"],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.__test_only = void 0;
7
+ var _Runtime = require("./Runtime.js");
8
+ var _resolveData = require("./data/resolveData.js");
9
+ var _computeRealValue = require("./compute/computeRealValue.js");
10
+ // istanbul ignore file
11
+
12
+ let __test_only;
13
+ exports.__test_only = __test_only;
14
+ if (process.env.NODE_ENV === "test") {
15
+ exports.__test_only = __test_only = {
16
+ setBootstrapData: _Runtime._test_only_setBootstrapData,
17
+ getStoryboardByAppId: _Runtime._internalApiGetStoryboardInBootstrapData,
18
+ resolveData: _resolveData.resolveData,
19
+ asyncComputeRealValue: _computeRealValue.asyncComputeRealValue
20
+ };
21
+ }
22
+ //# sourceMappingURL=test_only.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"test_only.js","names":["_Runtime","require","_resolveData","_computeRealValue","__test_only","exports","process","env","NODE_ENV","setBootstrapData","_test_only_setBootstrapData","getStoryboardByAppId","_internalApiGetStoryboardInBootstrapData","resolveData","asyncComputeRealValue"],"sources":["../../../src/internal/test_only.ts"],"sourcesContent":["// istanbul ignore file\nimport type { BootstrapData } from \"@next-core/types\";\nimport {\n RuntimeHooksMenuHelpers,\n _internalApiGetStoryboardInBootstrapData,\n _test_only_setBootstrapData,\n} from \"./Runtime.js\";\nimport { resolveData } from \"./data/resolveData.js\";\nimport { asyncComputeRealValue } from \"./compute/computeRealValue.js\";\n\nexport let __test_only: RuntimeHooksMenuHelpers & {\n setBootstrapData(data: BootstrapData): void;\n};\n\nif (process.env.NODE_ENV === \"test\") {\n __test_only = {\n setBootstrapData: _test_only_setBootstrapData,\n getStoryboardByAppId: _internalApiGetStoryboardInBootstrapData,\n resolveData,\n asyncComputeRealValue,\n };\n}\n"],"mappings":";;;;;;AAEA,IAAAA,QAAA,GAAAC,OAAA;AAKA,IAAAC,YAAA,GAAAD,OAAA;AACA,IAAAE,iBAAA,GAAAF,OAAA;AARA;;AAUO,IAAIG,WAEV;AAACC,OAAA,CAAAD,WAAA,GAAAA,WAAA;AAEF,IAAIE,OAAO,CAACC,GAAG,CAACC,QAAQ,KAAK,MAAM,EAAE;EACnCH,OAAA,CAAAD,WAAA,GAAAA,WAAW,GAAG;IACZK,gBAAgB,EAAEC,oCAA2B;IAC7CC,oBAAoB,EAAEC,iDAAwC;IAC9DC,WAAW,EAAXA,wBAAW;IACXC,qBAAqB,EAArBA;EACF,CAAC;AACH"}
@@ -1 +1 @@
1
- {"version":3,"file":"isStrictMode.js","names":["_index","require","isStrictMode","runtimeContext","_ref","_getRuntime","flags","getRuntime","getFeatureFlags","warnAboutStrictMode","strict","message","extraLogs","punctuation","length","console","error","warn"],"sources":["../../src/isStrictMode.ts"],"sourcesContent":["import { getRuntime } from \"./index.js\";\nimport type { RuntimeContext } from \"./internal/interfaces.js\";\n\nexport function isStrictMode(runtimeContext?: RuntimeContext) {\n return !!(\n runtimeContext ? runtimeContext.flags : getRuntime()?.getFeatureFlags()\n )?.[\"brick-next-v3-strict-mode\"];\n}\n\nexport function warnAboutStrictMode(\n strict: boolean,\n message: string,\n ...extraLogs: unknown[]\n) {\n const punctuation = extraLogs.length === 0 ? \"\" : \",\";\n if (strict) {\n // eslint-disable-next-line no-console\n console.error(\n `${message} is dropped in v3 strict mode${punctuation}`,\n ...extraLogs\n );\n } else {\n // eslint-disable-next-line no-console\n console.warn(\n `${message} is deprecated in v3 and will be dropped in strict mode${punctuation}`,\n ...extraLogs\n );\n }\n}\n"],"mappings":";;;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAGO,SAASC,YAAYA,CAACC,cAA+B,EAAE;EAAA,IAAAC,IAAA,EAAAC,WAAA;EAC5D,OAAO,CAAC,GAAAD,IAAA,GACND,cAAc,GAAGA,cAAc,CAACG,KAAK,IAAAD,WAAA,GAAG,IAAAE,iBAAU,GAAE,cAAAF,WAAA,uBAAZA,WAAA,CAAcG,eAAe,EAAE,cAAAJ,IAAA,eADhEA,IAAA,CAEL,2BAA2B,CAAC;AAClC;AAEO,SAASK,mBAAmBA,CACjCC,MAAe,EACfC,OAAe,EACf,GAAGC,SAAoB,EACvB;EACA,MAAMC,WAAW,GAAGD,SAAS,CAACE,MAAM,KAAK,CAAC,GAAG,EAAE,GAAG,GAAG;EACrD,IAAIJ,MAAM,EAAE;IACV;IACAK,OAAO,CAACC,KAAK,CACV,GAAEL,OAAQ,gCAA+BE,WAAY,EAAC,EACvD,GAAGD,SAAS,CACb;EACH,CAAC,MAAM;IACL;IACAG,OAAO,CAACE,IAAI,CACT,GAAEN,OAAQ,0DAAyDE,WAAY,EAAC,EACjF,GAAGD,SAAS,CACb;EACH;AACF"}
1
+ {"version":3,"file":"isStrictMode.js","names":["_index","require","isStrictMode","runtimeContext","_ref","_getRuntime","flags","getRuntime","getFeatureFlags","warnAboutStrictMode","strict","message","extraLogs","punctuation","length","console","error","warn"],"sources":["../../src/isStrictMode.ts"],"sourcesContent":["import { getRuntime } from \"./index.js\";\nimport type { RuntimeContext } from \"./internal/interfaces.js\";\n\nexport function isStrictMode(runtimeContext?: RuntimeContext) {\n return !!(\n runtimeContext ? runtimeContext.flags : getRuntime()?.getFeatureFlags()\n )?.[\"brick-next-v3-strict-mode\"];\n}\n\nexport function warnAboutStrictMode(\n strict: boolean,\n message: string,\n ...extraLogs: unknown[]\n) {\n const punctuation = extraLogs.length === 0 ? \"\" : \",\";\n if (strict) {\n // eslint-disable-next-line no-console\n console.error(\n `${message} is dropped in v3 strict mode${punctuation}`,\n ...extraLogs\n );\n } else {\n // eslint-disable-next-line no-console\n console.warn(\n `${message} is deprecated in v3 and will be dropped in strict mode${punctuation}`,\n ...extraLogs\n );\n }\n}\n"],"mappings":";;;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAGO,SAASC,YAAYA,CAACC,cAA+B,EAAE;EAAA,IAAAC,IAAA,EAAAC,WAAA;EAC5D,OAAO,CAAC,GAAAD,IAAA,GACND,cAAc,GAAGA,cAAc,CAACG,KAAK,IAAAD,WAAA,GAAG,IAAAE,iBAAU,EAAC,CAAC,cAAAF,WAAA,uBAAZA,WAAA,CAAcG,eAAe,CAAC,CAAC,cAAAJ,IAAA,eADhEA,IAAA,CAEL,2BAA2B,CAAC;AAClC;AAEO,SAASK,mBAAmBA,CACjCC,MAAe,EACfC,OAAe,EACf,GAAGC,SAAoB,EACvB;EACA,MAAMC,WAAW,GAAGD,SAAS,CAACE,MAAM,KAAK,CAAC,GAAG,EAAE,GAAG,GAAG;EACrD,IAAIJ,MAAM,EAAE;IACV;IACAK,OAAO,CAACC,KAAK,CACV,GAAEL,OAAQ,gCAA+BE,WAAY,EAAC,EACvD,GAAGD,SACL,CAAC;EACH,CAAC,MAAM;IACL;IACAG,OAAO,CAACE,IAAI,CACT,GAAEN,OAAQ,0DAAyDE,WAAY,EAAC,EACjF,GAAGD,SACL,CAAC;EACH;AACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"themeAndMode.js","names":["_general","require","theme","storage","JsonStorage","localStorage","LOCAL_STORAGE_APPS_THEME_KEY","setTheme","value","Error","getTheme","getCurrentTheme","document","documentElement","dataset","applyTheme","window","dispatchEvent","CustomEvent","detail","batchSetAppsLocalTheme","appsTheme","setItem","getLocalAppsTheme","_result","result","getItem","console","error","mode","setMode","getMode","getCurrentMode","applyMode","getCssPropertyValue","name","el","_window$getComputedSt","getComputedStyle","getPropertyValue"],"sources":["../../src/themeAndMode.ts"],"sourcesContent":["import type { SiteMode, SiteTheme } from \"@next-core/types\";\nimport { JsonStorage } from \"@next-core/utils/general\";\n\ninterface AppThemes {\n [appId: string]: SiteTheme;\n}\n\n// Themes.\nlet theme: SiteTheme = \"light\";\nconst storage = new JsonStorage<Record<string, AppThemes>>(localStorage);\nconst LOCAL_STORAGE_APPS_THEME_KEY = \"apps-theme\";\n\nexport function setTheme(value: SiteTheme): void {\n if (value !== \"dark\" && value !== \"light\" && value !== \"dark-v2\") {\n throw new Error(`Unsupported theme: ${value}`);\n }\n theme = value;\n}\n\nexport function getTheme(): SiteTheme {\n return theme;\n}\n\nexport function getCurrentTheme(): SiteTheme {\n return document.documentElement.dataset.theme as SiteTheme;\n}\n\nexport function applyTheme(value?: SiteTheme): void {\n if (value) {\n setTheme(value);\n } else {\n value = getTheme();\n }\n if (value !== getCurrentTheme()) {\n document.documentElement.dataset.theme = value;\n window.dispatchEvent(\n new CustomEvent<SiteTheme>(\"theme.change\", {\n detail: value,\n })\n );\n }\n}\n\nexport function batchSetAppsLocalTheme(appsTheme: AppThemes): void {\n storage.setItem(LOCAL_STORAGE_APPS_THEME_KEY, {\n ...getLocalAppsTheme(),\n ...appsTheme,\n });\n}\n\nexport function getLocalAppsTheme(): AppThemes {\n let result: AppThemes | undefined;\n try {\n result = storage.getItem(LOCAL_STORAGE_APPS_THEME_KEY);\n } catch {\n // eslint-disable-next-line no-console\n console.error(\"JSON parse error inside `getLocalAppsTheme()`\");\n }\n\n return result ?? {};\n}\n\n// Modes.\nlet mode: SiteMode = \"default\";\n\nexport function setMode(value: SiteMode): void {\n if (value !== \"dashboard\" && value !== \"default\") {\n throw new Error(`Unsupported mode: ${value}`);\n }\n mode = value;\n}\n\nexport function getMode(): SiteMode {\n return mode;\n}\n\nexport function getCurrentMode(): SiteMode {\n return document.documentElement.dataset.mode as SiteMode;\n}\n\nexport function applyMode(value?: SiteMode): void {\n if (value) {\n setMode(value);\n } else {\n value = getMode();\n }\n if (value !== getCurrentMode()) {\n document.documentElement.dataset.mode = value;\n window.dispatchEvent(\n new CustomEvent<SiteMode>(\"mode.change\", {\n detail: value,\n })\n );\n }\n}\n\nexport function getCssPropertyValue(\n name: string,\n el = document.documentElement\n): string {\n if (!el) return \"\";\n return window.getComputedStyle(el)?.getPropertyValue(name) || \"\";\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"themeAndMode.js","names":["_general","require","theme","storage","JsonStorage","localStorage","LOCAL_STORAGE_APPS_THEME_KEY","setTheme","value","Error","getTheme","getCurrentTheme","document","documentElement","dataset","applyTheme","window","dispatchEvent","CustomEvent","detail","batchSetAppsLocalTheme","appsTheme","setItem","getLocalAppsTheme","_result","result","getItem","console","error","mode","setMode","getMode","getCurrentMode","applyMode","getCssPropertyValue","name","el","_window$getComputedSt","getComputedStyle","getPropertyValue"],"sources":["../../src/themeAndMode.ts"],"sourcesContent":["import type { SiteMode, SiteTheme } from \"@next-core/types\";\nimport { JsonStorage } from \"@next-core/utils/general\";\n\ninterface AppThemes {\n [appId: string]: SiteTheme;\n}\n\n// Themes.\nlet theme: SiteTheme = \"light\";\nconst storage = new JsonStorage<Record<string, AppThemes>>(localStorage);\nconst LOCAL_STORAGE_APPS_THEME_KEY = \"apps-theme\";\n\nexport function setTheme(value: SiteTheme): void {\n if (value !== \"dark\" && value !== \"light\" && value !== \"dark-v2\") {\n throw new Error(`Unsupported theme: ${value}`);\n }\n theme = value;\n}\n\nexport function getTheme(): SiteTheme {\n return theme;\n}\n\nexport function getCurrentTheme(): SiteTheme {\n return document.documentElement.dataset.theme as SiteTheme;\n}\n\nexport function applyTheme(value?: SiteTheme): void {\n if (value) {\n setTheme(value);\n } else {\n value = getTheme();\n }\n if (value !== getCurrentTheme()) {\n document.documentElement.dataset.theme = value;\n window.dispatchEvent(\n new CustomEvent<SiteTheme>(\"theme.change\", {\n detail: value,\n })\n );\n }\n}\n\nexport function batchSetAppsLocalTheme(appsTheme: AppThemes): void {\n storage.setItem(LOCAL_STORAGE_APPS_THEME_KEY, {\n ...getLocalAppsTheme(),\n ...appsTheme,\n });\n}\n\nexport function getLocalAppsTheme(): AppThemes {\n let result: AppThemes | undefined;\n try {\n result = storage.getItem(LOCAL_STORAGE_APPS_THEME_KEY);\n } catch {\n // eslint-disable-next-line no-console\n console.error(\"JSON parse error inside `getLocalAppsTheme()`\");\n }\n\n return result ?? {};\n}\n\n// Modes.\nlet mode: SiteMode = \"default\";\n\nexport function setMode(value: SiteMode): void {\n if (value !== \"dashboard\" && value !== \"default\") {\n throw new Error(`Unsupported mode: ${value}`);\n }\n mode = value;\n}\n\nexport function getMode(): SiteMode {\n return mode;\n}\n\nexport function getCurrentMode(): SiteMode {\n return document.documentElement.dataset.mode as SiteMode;\n}\n\nexport function applyMode(value?: SiteMode): void {\n if (value) {\n setMode(value);\n } else {\n value = getMode();\n }\n if (value !== getCurrentMode()) {\n document.documentElement.dataset.mode = value;\n window.dispatchEvent(\n new CustomEvent<SiteMode>(\"mode.change\", {\n detail: value,\n })\n );\n }\n}\n\nexport function getCssPropertyValue(\n name: string,\n el = document.documentElement\n): string {\n if (!el) return \"\";\n return window.getComputedStyle(el)?.getPropertyValue(name) || \"\";\n}\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"CustomProcessors.js","names":["CustomProcessorRegistry","constructor","_classPrivateFieldInitSpec","_registry","writable","value","Map","define","processorFullName","processorFunc","namespace","processorName","split","pkg","_classPrivateFieldGet","get","set","has","Error","concat","customProcessors"],"sources":["../../src/CustomProcessors.ts"],"sourcesContent":["class CustomProcessorRegistry {\n readonly #registry = new Map<string, Map<string, Function>>();\n\n define(processorFullName: string, processorFunc: Function) {\n // `namespace` should be the camelCase of the package name.\n const [namespace, processorName] = processorFullName.split(\".\");\n let pkg = this.#registry.get(namespace);\n if (!pkg) {\n pkg = new Map();\n this.#registry.set(namespace, pkg);\n }\n if (pkg.has(processorName)) {\n // eslint-disable-next-line no-console\n throw new Error(\n `Custom processor of \"${processorFullName}\" already registered`\n );\n }\n pkg.set(processorName, processorFunc);\n }\n\n get(namespace: string) {\n return this.#registry.get(namespace);\n }\n}\n\nexport const customProcessors = new CustomProcessorRegistry();\n"],"mappings":";;;AAAA,MAAMA,uBAAuB,CAAC;EAAAC,YAAA;IAAAC,0BAAA,OAAAC,SAAA;MAAAC,QAAA;MAAAC,KAAA,EACP,IAAIC,GAAG;IAAiC;EAAA;EAE7DC,MAAMA,CAACC,iBAAyB,EAAEC,aAAuB,EAAE;IACzD;IACA,IAAM,CAACC,SAAS,EAAEC,aAAa,CAAC,GAAGH,iBAAiB,CAACI,KAAK,CAAC,GAAG,CAAC;IAC/D,IAAIC,GAAG,GAAGC,qBAAA,KAAI,EAAAX,SAAA,EAAWY,GAAG,CAACL,SAAS,CAAC;IACvC,IAAI,CAACG,GAAG,EAAE;MACRA,GAAG,GAAG,IAAIP,GAAG,EAAE;MACfQ,qBAAA,KAAI,EAAAX,SAAA,EAAWa,GAAG,CAACN,SAAS,EAAEG,GAAG,CAAC;IACpC;IACA,IAAIA,GAAG,CAACI,GAAG,CAACN,aAAa,CAAC,EAAE;MAC1B;MACA,MAAM,IAAIO,KAAK,0BAAAC,MAAA,CACWX,iBAAiB,2BAC1C;IACH;IACAK,GAAG,CAACG,GAAG,CAACL,aAAa,EAAEF,aAAa,CAAC;EACvC;EAEAM,GAAGA,CAACL,SAAiB,EAAE;IACrB,OAAOI,qBAAA,KAAI,EAAAX,SAAA,EAAWY,GAAG,CAACL,SAAS,CAAC;EACtC;AACF;AAEA,OAAO,IAAMU,gBAAgB,GAAG,IAAIpB,uBAAuB,EAAE"}
1
+ {"version":3,"file":"CustomProcessors.js","names":["CustomProcessorRegistry","constructor","_classPrivateFieldInitSpec","_registry","writable","value","Map","define","processorFullName","processorFunc","namespace","processorName","split","pkg","_classPrivateFieldGet","get","set","has","Error","concat","customProcessors"],"sources":["../../src/CustomProcessors.ts"],"sourcesContent":["class CustomProcessorRegistry {\n readonly #registry = new Map<string, Map<string, Function>>();\n\n define(processorFullName: string, processorFunc: Function) {\n // `namespace` should be the camelCase of the package name.\n const [namespace, processorName] = processorFullName.split(\".\");\n let pkg = this.#registry.get(namespace);\n if (!pkg) {\n pkg = new Map();\n this.#registry.set(namespace, pkg);\n }\n if (pkg.has(processorName)) {\n // eslint-disable-next-line no-console\n throw new Error(\n `Custom processor of \"${processorFullName}\" already registered`\n );\n }\n pkg.set(processorName, processorFunc);\n }\n\n get(namespace: string) {\n return this.#registry.get(namespace);\n }\n}\n\nexport const customProcessors = new CustomProcessorRegistry();\n"],"mappings":";;;AAAA,MAAMA,uBAAuB,CAAC;EAAAC,YAAA;IAAAC,0BAAA,OAAAC,SAAA;MAAAC,QAAA;MAAAC,KAAA,EACP,IAAIC,GAAG,CAAgC;IAAC;EAAA;EAE7DC,MAAMA,CAACC,iBAAyB,EAAEC,aAAuB,EAAE;IACzD;IACA,IAAM,CAACC,SAAS,EAAEC,aAAa,CAAC,GAAGH,iBAAiB,CAACI,KAAK,CAAC,GAAG,CAAC;IAC/D,IAAIC,GAAG,GAAGC,qBAAA,KAAI,EAAAX,SAAA,EAAWY,GAAG,CAACL,SAAS,CAAC;IACvC,IAAI,CAACG,GAAG,EAAE;MACRA,GAAG,GAAG,IAAIP,GAAG,CAAC,CAAC;MACfQ,qBAAA,KAAI,EAAAX,SAAA,EAAWa,GAAG,CAACN,SAAS,EAAEG,GAAG,CAAC;IACpC;IACA,IAAIA,GAAG,CAACI,GAAG,CAACN,aAAa,CAAC,EAAE;MAC1B;MACA,MAAM,IAAIO,KAAK,0BAAAC,MAAA,CACWX,iBAAiB,0BAC3C,CAAC;IACH;IACAK,GAAG,CAACG,GAAG,CAACL,aAAa,EAAEF,aAAa,CAAC;EACvC;EAEAM,GAAGA,CAACL,SAAiB,EAAE;IACrB,OAAOI,qBAAA,KAAI,EAAAX,SAAA,EAAWY,GAAG,CAACL,SAAS,CAAC;EACtC;AACF;AAEA,OAAO,IAAMU,gBAAgB,GAAG,IAAIpB,uBAAuB,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"CustomTemplates.js","names":["uniq","isStrictMode","warnAboutStrictMode","allowedNativeProps","Set","_registry","WeakMap","CustomTemplateRegistry","constructor","_classPrivateFieldInitSpec","writable","value","Map","define","tagName","_constructor$proxy$pr","_constructor$proxy","_compatibleConstructo","_compatibleConstructo2","registered","_classPrivateFieldGet","has","console","warn","concat","customElements","get","strict","proxyProperties","proxy","properties","validProxyProps","legacyTplVariables","key","Object","entries","asVariable","push","mergeProperty","refTransform","error","ref","compatibleConstructor","_objectSpread","fromEntries","state","map","item","expose","tpl","name","set","exposedStates","getExposedStates","proxyMethods","methods","props","entry","nativeProps","filter","prop","HTMLElement","prototype","length","Error","p","join","TplElement","$$typeof","_dev_only_definedProperties","_dev_only_definedMethods","$$getElementByRef","_this$$$tplStateStore","_this$$$tplStateStore2","_this$$$tplStateStore3","_this$$$tplStateStore4","$$tplStateStore","hostBrick","tplHostMetadata","internalBricksByRef","element","connectedCallback","shadowRoot","attachShadow","mode","fragment","document","createDocumentFragment","style","createElement","textContent","slot","appendChild","disconnectedCallback","_loop","propName","some","defineProperty","getValue","_this$$$tplStateStore5","updateValue","enumerable","_ret","_loop2","from","to","_to$refProperty","refProperty","_this$$$getElementByR","call","_to$refProperty2","_loop3","_from","_to","_to$refMethod","refMethod","arguments","customTemplates","_state$filter$map"],"sources":["../../src/CustomTemplates.ts"],"sourcesContent":["import type {\n ContextConf,\n CustomTemplate,\n CustomTemplateConstructor,\n CustomTemplateProxyBasicProperty,\n} from \"@next-core/types\";\nimport { uniq } from \"lodash\";\nimport type { RuntimeBrickElement } from \"./internal/interfaces.js\";\nimport { isStrictMode, warnAboutStrictMode } from \"./isStrictMode.js\";\n\n// Note: `prefix` is a native prop on Element, but it's only used in XML documents.\nconst allowedNativeProps = new Set([\"prefix\"]);\n\ninterface LegacyTplPropProxy extends CustomTemplateProxyBasicProperty {\n asVariable?: boolean;\n mergeProperty?: unknown;\n refTransform?: unknown;\n}\n\nclass CustomTemplateRegistry {\n readonly #registry = new Map<string, CustomTemplate>();\n\n define(tagName: string, constructor: CustomTemplateConstructor): void {\n let registered = this.#registry.has(tagName);\n if (registered) {\n // When open launchpad, the storyboard will be updated.\n // However, we can't *undefine* a custom element.\n // Just ignore re-registering custom templates.\n // eslint-disable-next-line no-console\n console.warn(`Custom template of \"${tagName}\" already registered.`);\n } else {\n registered = !!customElements.get(tagName);\n if (registered) {\n // eslint-disable-next-line no-console\n console.warn(\n `Custom template of \"${tagName}\" already defined by customElements.`\n );\n }\n }\n\n // Transform legacy `proxy.properties[].asVariable` as states.\n const strict = isStrictMode();\n const proxyProperties = (constructor.proxy?.properties ?? {}) as {\n [name: string]: LegacyTplPropProxy;\n };\n const validProxyProps: [string, CustomTemplateProxyBasicProperty][] = [];\n const legacyTplVariables: string[] = [];\n for (const [key, value] of Object.entries(proxyProperties)) {\n if (value.asVariable) {\n warnAboutStrictMode(strict, \"Template `asVariable`\", tagName, key);\n // istanbul ignore next\n if (!strict) {\n // For existed TPL usage, treat it as a STATE.\n legacyTplVariables.push(key);\n }\n } else if (value.mergeProperty || value.refTransform) {\n // eslint-disable-next-line no-console\n console.error(\n \"Template `mergeProperty` and `refTransform` are dropped in v3:\",\n tagName,\n key\n );\n } else if (value.ref) {\n validProxyProps.push([key, value]);\n }\n // Else: documentation only, for exposed states.\n }\n\n const compatibleConstructor = {\n ...constructor,\n proxy: {\n ...constructor.proxy,\n properties: Object.fromEntries(validProxyProps),\n },\n state: (constructor.state\n ? strict\n ? constructor.state\n : constructor.state.map((item) => ({\n // Make `expose` defaults to true in non-strict mode.\n expose: true,\n ...item,\n }))\n : []\n ).concat(legacyTplVariables.map((tpl) => ({ name: tpl, expose: true }))),\n };\n\n // Now we allow re-register custom template\n this.#registry.set(tagName, {\n ...compatibleConstructor,\n name: tagName,\n });\n\n const exposedStates = getExposedStates(compatibleConstructor.state);\n const proxyMethods = Object.entries(\n compatibleConstructor.proxy?.methods ?? {}\n );\n\n const props = exposedStates.concat(\n validProxyProps.map((entry) => entry[0])\n );\n const methods = proxyMethods.map((entry) => entry[0]);\n\n const nativeProps = props\n .concat(methods)\n .filter(\n (prop) => prop in HTMLElement.prototype && !allowedNativeProps.has(prop)\n );\n if (nativeProps.length > 0) {\n warnAboutStrictMode(\n strict,\n \"Using native HTMLElement properties as template properties or methods\",\n tagName,\n ...nativeProps\n );\n // istanbul ignore next\n if (strict) {\n throw new Error(\n `In custom template \"${tagName}\", ${nativeProps\n .map((p) => `\"${p}\"`)\n .join(\n \", \"\n )} are native HTMLElement properties, and should be avoid to be used as brick properties or methods.`\n );\n }\n }\n\n if (registered) {\n return;\n }\n\n class TplElement extends HTMLElement {\n get $$typeof() {\n return \"custom-template\" as const;\n }\n\n static get _dev_only_definedProperties(): string[] {\n return props;\n }\n\n static get _dev_only_definedMethods(): string[] {\n return methods;\n }\n\n $$getElementByRef(this: RuntimeBrickElement, ref: string) {\n return this.$$tplStateStore?.hostBrick?.tplHostMetadata?.internalBricksByRef.get(\n ref\n )?.element;\n }\n\n connectedCallback() {\n let shadowRoot = this.shadowRoot;\n if (!shadowRoot) {\n shadowRoot = this.attachShadow({ mode: \"open\" });\n }\n const fragment = document.createDocumentFragment();\n const style = document.createElement(\"style\");\n style.textContent = \":host{display:block}:host([hidden]){display:none}\";\n const slot = document.createElement(\"slot\");\n fragment.appendChild(style);\n fragment.appendChild(slot);\n shadowRoot.appendChild(fragment);\n }\n\n disconnectedCallback() {\n if (this.shadowRoot) {\n this.shadowRoot.textContent = \"\";\n }\n }\n }\n\n for (const propName of exposedStates) {\n if (validProxyProps.some((entry) => entry[0] === propName)) {\n // eslint-disable-next-line no-console\n console.error(\n `Cannot define an exposed state that is also a proxy property: \"${propName}\" in ${tagName}`\n );\n continue;\n }\n Object.defineProperty(TplElement.prototype, propName, {\n get(this: RuntimeBrickElement) {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n return this.$$tplStateStore!.getValue(propName);\n },\n set(this: RuntimeBrickElement, value: unknown) {\n // 在 mount 过程中,先设置属性,再设置 `$$tplStateStore`,这样,当触发属性设置时,\n // 避免初始化的一次 state update 操作及其 onChange 事件。\n this.$$tplStateStore?.updateValue(propName, value, \"replace\");\n },\n enumerable: true,\n });\n }\n\n for (const [from, to] of validProxyProps) {\n Object.defineProperty(TplElement.prototype, from, {\n get(this: TplElement) {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const element = this.$$getElementByRef!(to.ref) as unknown as Record<\n string,\n unknown\n >;\n return element[to.refProperty ?? from];\n },\n set(this: TplElement, value: unknown) {\n // 同上 exposedState.set\n const element = this.$$getElementByRef?.(to.ref) as unknown as Record<\n string,\n unknown\n >;\n if (element) {\n element[to.refProperty ?? from] = value;\n }\n },\n enumerable: true,\n });\n }\n\n for (const [from, to] of proxyMethods) {\n Object.defineProperty(TplElement.prototype, from, {\n value(this: TplElement, ...args: unknown[]) {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const element = this.$$getElementByRef!(to.ref) as unknown as Record<\n string,\n Function\n >;\n element[to.refMethod ?? from](...args);\n },\n enumerable: true,\n });\n }\n\n customElements.define(tagName, TplElement);\n }\n\n get(tagName: string) {\n return this.#registry.get(tagName);\n }\n}\n\nexport const customTemplates = new CustomTemplateRegistry();\n\nfunction getExposedStates(state: ContextConf[] | undefined): string[] {\n // Allow duplicated state names which maybe mutually exclusive.\n return uniq(\n state?.filter((item) => item.expose).map((item) => item.name) ?? []\n );\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"CustomTemplates.js","names":["uniq","isStrictMode","warnAboutStrictMode","allowedNativeProps","Set","_registry","WeakMap","CustomTemplateRegistry","constructor","_classPrivateFieldInitSpec","writable","value","Map","define","tagName","_constructor$proxy$pr","_constructor$proxy","_compatibleConstructo","_compatibleConstructo2","registered","_classPrivateFieldGet","has","console","warn","concat","customElements","get","strict","proxyProperties","proxy","properties","validProxyProps","legacyTplVariables","key","Object","entries","asVariable","push","mergeProperty","refTransform","error","ref","compatibleConstructor","_objectSpread","fromEntries","state","map","item","expose","tpl","name","set","exposedStates","getExposedStates","proxyMethods","methods","props","entry","nativeProps","filter","prop","HTMLElement","prototype","length","Error","p","join","TplElement","$$typeof","_dev_only_definedProperties","_dev_only_definedMethods","$$getElementByRef","_this$$$tplStateStore","_this$$$tplStateStore2","_this$$$tplStateStore3","_this$$$tplStateStore4","$$tplStateStore","hostBrick","tplHostMetadata","internalBricksByRef","element","connectedCallback","shadowRoot","attachShadow","mode","fragment","document","createDocumentFragment","style","createElement","textContent","slot","appendChild","disconnectedCallback","_loop","propName","some","defineProperty","getValue","_this$$$tplStateStore5","updateValue","enumerable","_ret","_loop2","from","to","_to$refProperty","refProperty","_this$$$getElementByR","call","_to$refProperty2","_loop3","_from","_to","_to$refMethod","refMethod","arguments","customTemplates","_state$filter$map"],"sources":["../../src/CustomTemplates.ts"],"sourcesContent":["import type {\n ContextConf,\n CustomTemplate,\n CustomTemplateConstructor,\n CustomTemplateProxyBasicProperty,\n} from \"@next-core/types\";\nimport { uniq } from \"lodash\";\nimport type { RuntimeBrickElement } from \"./internal/interfaces.js\";\nimport { isStrictMode, warnAboutStrictMode } from \"./isStrictMode.js\";\n\n// Note: `prefix` is a native prop on Element, but it's only used in XML documents.\nconst allowedNativeProps = new Set([\"prefix\"]);\n\ninterface LegacyTplPropProxy extends CustomTemplateProxyBasicProperty {\n asVariable?: boolean;\n mergeProperty?: unknown;\n refTransform?: unknown;\n}\n\nclass CustomTemplateRegistry {\n readonly #registry = new Map<string, CustomTemplate>();\n\n define(tagName: string, constructor: CustomTemplateConstructor): void {\n let registered = this.#registry.has(tagName);\n if (registered) {\n // When open launchpad, the storyboard will be updated.\n // However, we can't *undefine* a custom element.\n // Just ignore re-registering custom templates.\n // eslint-disable-next-line no-console\n console.warn(`Custom template of \"${tagName}\" already registered.`);\n } else {\n registered = !!customElements.get(tagName);\n if (registered) {\n // eslint-disable-next-line no-console\n console.warn(\n `Custom template of \"${tagName}\" already defined by customElements.`\n );\n }\n }\n\n // Transform legacy `proxy.properties[].asVariable` as states.\n const strict = isStrictMode();\n const proxyProperties = (constructor.proxy?.properties ?? {}) as {\n [name: string]: LegacyTplPropProxy;\n };\n const validProxyProps: [string, CustomTemplateProxyBasicProperty][] = [];\n const legacyTplVariables: string[] = [];\n for (const [key, value] of Object.entries(proxyProperties)) {\n if (value.asVariable) {\n warnAboutStrictMode(strict, \"Template `asVariable`\", tagName, key);\n // istanbul ignore next\n if (!strict) {\n // For existed TPL usage, treat it as a STATE.\n legacyTplVariables.push(key);\n }\n } else if (value.mergeProperty || value.refTransform) {\n // eslint-disable-next-line no-console\n console.error(\n \"Template `mergeProperty` and `refTransform` are dropped in v3:\",\n tagName,\n key\n );\n } else if (value.ref) {\n validProxyProps.push([key, value]);\n }\n // Else: documentation only, for exposed states.\n }\n\n const compatibleConstructor = {\n ...constructor,\n proxy: {\n ...constructor.proxy,\n properties: Object.fromEntries(validProxyProps),\n },\n state: (constructor.state\n ? strict\n ? constructor.state\n : constructor.state.map((item) => ({\n // Make `expose` defaults to true in non-strict mode.\n expose: true,\n ...item,\n }))\n : []\n ).concat(legacyTplVariables.map((tpl) => ({ name: tpl, expose: true }))),\n };\n\n // Now we allow re-register custom template\n this.#registry.set(tagName, {\n ...compatibleConstructor,\n name: tagName,\n });\n\n const exposedStates = getExposedStates(compatibleConstructor.state);\n const proxyMethods = Object.entries(\n compatibleConstructor.proxy?.methods ?? {}\n );\n\n const props = exposedStates.concat(\n validProxyProps.map((entry) => entry[0])\n );\n const methods = proxyMethods.map((entry) => entry[0]);\n\n const nativeProps = props\n .concat(methods)\n .filter(\n (prop) => prop in HTMLElement.prototype && !allowedNativeProps.has(prop)\n );\n if (nativeProps.length > 0) {\n warnAboutStrictMode(\n strict,\n \"Using native HTMLElement properties as template properties or methods\",\n tagName,\n ...nativeProps\n );\n // istanbul ignore next\n if (strict) {\n throw new Error(\n `In custom template \"${tagName}\", ${nativeProps\n .map((p) => `\"${p}\"`)\n .join(\n \", \"\n )} are native HTMLElement properties, and should be avoid to be used as brick properties or methods.`\n );\n }\n }\n\n if (registered) {\n return;\n }\n\n class TplElement extends HTMLElement {\n get $$typeof() {\n return \"custom-template\" as const;\n }\n\n static get _dev_only_definedProperties(): string[] {\n return props;\n }\n\n static get _dev_only_definedMethods(): string[] {\n return methods;\n }\n\n $$getElementByRef(this: RuntimeBrickElement, ref: string) {\n return this.$$tplStateStore?.hostBrick?.tplHostMetadata?.internalBricksByRef.get(\n ref\n )?.element;\n }\n\n connectedCallback() {\n let shadowRoot = this.shadowRoot;\n if (!shadowRoot) {\n shadowRoot = this.attachShadow({ mode: \"open\" });\n }\n const fragment = document.createDocumentFragment();\n const style = document.createElement(\"style\");\n style.textContent = \":host{display:block}:host([hidden]){display:none}\";\n const slot = document.createElement(\"slot\");\n fragment.appendChild(style);\n fragment.appendChild(slot);\n shadowRoot.appendChild(fragment);\n }\n\n disconnectedCallback() {\n if (this.shadowRoot) {\n this.shadowRoot.textContent = \"\";\n }\n }\n }\n\n for (const propName of exposedStates) {\n if (validProxyProps.some((entry) => entry[0] === propName)) {\n // eslint-disable-next-line no-console\n console.error(\n `Cannot define an exposed state that is also a proxy property: \"${propName}\" in ${tagName}`\n );\n continue;\n }\n Object.defineProperty(TplElement.prototype, propName, {\n get(this: RuntimeBrickElement) {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n return this.$$tplStateStore!.getValue(propName);\n },\n set(this: RuntimeBrickElement, value: unknown) {\n // 在 mount 过程中,先设置属性,再设置 `$$tplStateStore`,这样,当触发属性设置时,\n // 避免初始化的一次 state update 操作及其 onChange 事件。\n this.$$tplStateStore?.updateValue(propName, value, \"replace\");\n },\n enumerable: true,\n });\n }\n\n for (const [from, to] of validProxyProps) {\n Object.defineProperty(TplElement.prototype, from, {\n get(this: TplElement) {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const element = this.$$getElementByRef!(to.ref) as unknown as Record<\n string,\n unknown\n >;\n return element[to.refProperty ?? from];\n },\n set(this: TplElement, value: unknown) {\n // 同上 exposedState.set\n const element = this.$$getElementByRef?.(to.ref) as unknown as Record<\n string,\n unknown\n >;\n if (element) {\n element[to.refProperty ?? from] = value;\n }\n },\n enumerable: true,\n });\n }\n\n for (const [from, to] of proxyMethods) {\n Object.defineProperty(TplElement.prototype, from, {\n value(this: TplElement, ...args: unknown[]) {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const element = this.$$getElementByRef!(to.ref) as unknown as Record<\n string,\n Function\n >;\n element[to.refMethod ?? from](...args);\n },\n enumerable: true,\n });\n }\n\n customElements.define(tagName, TplElement);\n }\n\n get(tagName: string) {\n return this.#registry.get(tagName);\n }\n}\n\nexport const customTemplates = new CustomTemplateRegistry();\n\nfunction getExposedStates(state: ContextConf[] | undefined): string[] {\n // Allow duplicated state names which maybe mutually exclusive.\n return uniq(\n state?.filter((item) => item.expose).map((item) => item.name) ?? []\n );\n}\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"Dialog.js","names":["brick","show","options","resolve","type","confirm","content","Promise","setTimeout","reject","alert","loadDialogService","tagName","loader","then","document","createElement","error","console","Dialog","Object","freeze"],"sources":["../../src/Dialog.ts"],"sourcesContent":["let brick: {\n resolve(options: DialogOptions): Promise<void>;\n};\n\nfunction show(options: DialogOptions): Promise<void> {\n if (brick) {\n return brick.resolve(options);\n } else {\n if (options.type === \"confirm\") {\n if (confirm(options.content)) {\n return new Promise((resolve) =>\n setTimeout(() => {\n resolve();\n }, 1)\n );\n } else {\n return new Promise((resolve, reject) =>\n setTimeout(() => {\n reject();\n }, 1)\n );\n }\n } else {\n alert(options.content);\n return new Promise((resolve) =>\n setTimeout(() => {\n resolve();\n }, 1000)\n );\n }\n }\n}\n\nexport function loadDialogService(\n tagName: string,\n loader: (bricks: string[]) => Promise<void>\n) {\n loader([tagName]).then(\n () => {\n brick = document.createElement(tagName) as any;\n },\n (error: unknown) => {\n // eslint-disable-next-line no-console\n console.error(\"Load dialog service failed:\", error);\n }\n );\n}\n\nexport interface DialogOptions {\n type?: \"success\" | \"error\" | \"warn\" | \"info\" | \"confirm\";\n title?: string | null;\n content: string;\n contentStyle?: object;\n}\n\nexport const Dialog = Object.freeze({\n show,\n});\n"],"mappings":"AAAA,IAAIA,KAEH;AAED,SAASC,IAAIA,CAACC,OAAsB,EAAiB;EACnD,IAAIF,KAAK,EAAE;IACT,OAAOA,KAAK,CAACG,OAAO,CAACD,OAAO,CAAC;EAC/B,CAAC,MAAM;IACL,IAAIA,OAAO,CAACE,IAAI,KAAK,SAAS,EAAE;MAC9B,IAAIC,OAAO,CAACH,OAAO,CAACI,OAAO,CAAC,EAAE;QAC5B,OAAO,IAAIC,OAAO,CAAEJ,OAAO,IACzBK,UAAU,CAAC,MAAM;UACfL,OAAO,EAAE;QACX,CAAC,EAAE,CAAC,CAAC,CACN;MACH,CAAC,MAAM;QACL,OAAO,IAAII,OAAO,CAAC,CAACJ,OAAO,EAAEM,MAAM,KACjCD,UAAU,CAAC,MAAM;UACfC,MAAM,EAAE;QACV,CAAC,EAAE,CAAC,CAAC,CACN;MACH;IACF,CAAC,MAAM;MACLC,KAAK,CAACR,OAAO,CAACI,OAAO,CAAC;MACtB,OAAO,IAAIC,OAAO,CAAEJ,OAAO,IACzBK,UAAU,CAAC,MAAM;QACfL,OAAO,EAAE;MACX,CAAC,EAAE,IAAI,CAAC,CACT;IACH;EACF;AACF;AAEA,OAAO,SAASQ,iBAAiBA,CAC/BC,OAAe,EACfC,MAA2C,EAC3C;EACAA,MAAM,CAAC,CAACD,OAAO,CAAC,CAAC,CAACE,IAAI,CACpB,MAAM;IACJd,KAAK,GAAGe,QAAQ,CAACC,aAAa,CAACJ,OAAO,CAAQ;EAChD,CAAC,EACAK,KAAc,IAAK;IAClB;IACAC,OAAO,CAACD,KAAK,CAAC,6BAA6B,EAAEA,KAAK,CAAC;EACrD,CAAC,CACF;AACH;AASA,OAAO,IAAME,MAAM,GAAGC,MAAM,CAACC,MAAM,CAAC;EAClCpB;AACF,CAAC,CAAC"}
1
+ {"version":3,"file":"Dialog.js","names":["brick","show","options","resolve","type","confirm","content","Promise","setTimeout","reject","alert","loadDialogService","tagName","loader","then","document","createElement","error","console","Dialog","Object","freeze"],"sources":["../../src/Dialog.ts"],"sourcesContent":["let brick: {\n resolve(options: DialogOptions): Promise<void>;\n};\n\nfunction show(options: DialogOptions): Promise<void> {\n if (brick) {\n return brick.resolve(options);\n } else {\n if (options.type === \"confirm\") {\n if (confirm(options.content)) {\n return new Promise((resolve) =>\n setTimeout(() => {\n resolve();\n }, 1)\n );\n } else {\n return new Promise((resolve, reject) =>\n setTimeout(() => {\n reject();\n }, 1)\n );\n }\n } else {\n alert(options.content);\n return new Promise((resolve) =>\n setTimeout(() => {\n resolve();\n }, 1000)\n );\n }\n }\n}\n\nexport function loadDialogService(\n tagName: string,\n loader: (bricks: string[]) => Promise<void>\n) {\n loader([tagName]).then(\n () => {\n brick = document.createElement(tagName) as any;\n },\n (error: unknown) => {\n // eslint-disable-next-line no-console\n console.error(\"Load dialog service failed:\", error);\n }\n );\n}\n\nexport interface DialogOptions {\n type?: \"success\" | \"error\" | \"warn\" | \"info\" | \"confirm\";\n title?: string | null;\n content: string;\n contentStyle?: object;\n}\n\nexport const Dialog = Object.freeze({\n show,\n});\n"],"mappings":"AAAA,IAAIA,KAEH;AAED,SAASC,IAAIA,CAACC,OAAsB,EAAiB;EACnD,IAAIF,KAAK,EAAE;IACT,OAAOA,KAAK,CAACG,OAAO,CAACD,OAAO,CAAC;EAC/B,CAAC,MAAM;IACL,IAAIA,OAAO,CAACE,IAAI,KAAK,SAAS,EAAE;MAC9B,IAAIC,OAAO,CAACH,OAAO,CAACI,OAAO,CAAC,EAAE;QAC5B,OAAO,IAAIC,OAAO,CAAEJ,OAAO,IACzBK,UAAU,CAAC,MAAM;UACfL,OAAO,CAAC,CAAC;QACX,CAAC,EAAE,CAAC,CACN,CAAC;MACH,CAAC,MAAM;QACL,OAAO,IAAII,OAAO,CAAC,CAACJ,OAAO,EAAEM,MAAM,KACjCD,UAAU,CAAC,MAAM;UACfC,MAAM,CAAC,CAAC;QACV,CAAC,EAAE,CAAC,CACN,CAAC;MACH;IACF,CAAC,MAAM;MACLC,KAAK,CAACR,OAAO,CAACI,OAAO,CAAC;MACtB,OAAO,IAAIC,OAAO,CAAEJ,OAAO,IACzBK,UAAU,CAAC,MAAM;QACfL,OAAO,CAAC,CAAC;MACX,CAAC,EAAE,IAAI,CACT,CAAC;IACH;EACF;AACF;AAEA,OAAO,SAASQ,iBAAiBA,CAC/BC,OAAe,EACfC,MAA2C,EAC3C;EACAA,MAAM,CAAC,CAACD,OAAO,CAAC,CAAC,CAACE,IAAI,CACpB,MAAM;IACJd,KAAK,GAAGe,QAAQ,CAACC,aAAa,CAACJ,OAAO,CAAQ;EAChD,CAAC,EACAK,KAAc,IAAK;IAClB;IACAC,OAAO,CAACD,KAAK,CAAC,6BAA6B,EAAEA,KAAK,CAAC;EACrD,CACF,CAAC;AACH;AASA,OAAO,IAAME,MAAM,GAAGC,MAAM,CAACC,MAAM,CAAC;EAClCpB;AACF,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"Notification.js","names":["brick","show","options","resolve","alert","message","loadNotificationService","tagName","loader","then","document","createElement","error","console","Notification","Object","freeze"],"sources":["../../src/Notification.ts"],"sourcesContent":["let brick: {\n resolve(options: NotificationOptions): void;\n};\n\nfunction show(options: NotificationOptions) {\n if (brick) {\n brick.resolve(options);\n } else {\n alert(options.message);\n }\n}\n\nexport function loadNotificationService(\n tagName: string,\n loader: (bricks: string[]) => Promise<void>\n) {\n loader([tagName]).then(\n () => {\n brick = document.createElement(tagName) as any;\n },\n (error: unknown) => {\n // eslint-disable-next-line no-console\n console.error(\"Load notification service failed:\", error);\n }\n );\n}\n\nexport interface NotificationOptions {\n type?: \"success\" | \"error\" | \"warn\" | \"info\";\n message: string;\n}\n\nexport const Notification = Object.freeze({\n show,\n});\n"],"mappings":"AAAA,IAAIA,KAEH;AAED,SAASC,IAAIA,CAACC,OAA4B,EAAE;EAC1C,IAAIF,KAAK,EAAE;IACTA,KAAK,CAACG,OAAO,CAACD,OAAO,CAAC;EACxB,CAAC,MAAM;IACLE,KAAK,CAACF,OAAO,CAACG,OAAO,CAAC;EACxB;AACF;AAEA,OAAO,SAASC,uBAAuBA,CACrCC,OAAe,EACfC,MAA2C,EAC3C;EACAA,MAAM,CAAC,CAACD,OAAO,CAAC,CAAC,CAACE,IAAI,CACpB,MAAM;IACJT,KAAK,GAAGU,QAAQ,CAACC,aAAa,CAACJ,OAAO,CAAQ;EAChD,CAAC,EACAK,KAAc,IAAK;IAClB;IACAC,OAAO,CAACD,KAAK,CAAC,mCAAmC,EAAEA,KAAK,CAAC;EAC3D,CAAC,CACF;AACH;AAOA,OAAO,IAAME,YAAY,GAAGC,MAAM,CAACC,MAAM,CAAC;EACxCf;AACF,CAAC,CAAC"}
1
+ {"version":3,"file":"Notification.js","names":["brick","show","options","resolve","alert","message","loadNotificationService","tagName","loader","then","document","createElement","error","console","Notification","Object","freeze"],"sources":["../../src/Notification.ts"],"sourcesContent":["let brick: {\n resolve(options: NotificationOptions): void;\n};\n\nfunction show(options: NotificationOptions) {\n if (brick) {\n brick.resolve(options);\n } else {\n alert(options.message);\n }\n}\n\nexport function loadNotificationService(\n tagName: string,\n loader: (bricks: string[]) => Promise<void>\n) {\n loader([tagName]).then(\n () => {\n brick = document.createElement(tagName) as any;\n },\n (error: unknown) => {\n // eslint-disable-next-line no-console\n console.error(\"Load notification service failed:\", error);\n }\n );\n}\n\nexport interface NotificationOptions {\n type?: \"success\" | \"error\" | \"warn\" | \"info\";\n message: string;\n}\n\nexport const Notification = Object.freeze({\n show,\n});\n"],"mappings":"AAAA,IAAIA,KAEH;AAED,SAASC,IAAIA,CAACC,OAA4B,EAAE;EAC1C,IAAIF,KAAK,EAAE;IACTA,KAAK,CAACG,OAAO,CAACD,OAAO,CAAC;EACxB,CAAC,MAAM;IACLE,KAAK,CAACF,OAAO,CAACG,OAAO,CAAC;EACxB;AACF;AAEA,OAAO,SAASC,uBAAuBA,CACrCC,OAAe,EACfC,MAA2C,EAC3C;EACAA,MAAM,CAAC,CAACD,OAAO,CAAC,CAAC,CAACE,IAAI,CACpB,MAAM;IACJT,KAAK,GAAGU,QAAQ,CAACC,aAAa,CAACJ,OAAO,CAAQ;EAChD,CAAC,EACAK,KAAc,IAAK;IAClB;IACAC,OAAO,CAACD,KAAK,CAAC,mCAAmC,EAAEA,KAAK,CAAC;EAC3D,CACF,CAAC;AACH;AAOA,OAAO,IAAME,YAAY,GAAGC,MAAM,CAACC,MAAM,CAAC;EACxCf;AACF,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"StoryboardFunctionRegistry.js","names":["cook","precookFunction","supply","strictCollectMemberUsageInFunction","getGeneralGlobals","StoryboardFunctionRegistryFactory","widgetId","widgetVersion","collectCoverage","arguments","length","undefined","registeredFunctions","Map","storyboardFunctions","Proxy","Object","freeze","get","target","key","getStoryboardFunction","currentApp","registerStoryboardFunctions","functions","app","clear","Array","isArray","fn","deps","hasPermissionsCheck","has","set","name","source","typescript","processed","cooked","collector","createCollector","precooked","hooks","beforeVisit","function","rules","noVar","globalVariables","attemptToVisitGlobals","isStoryboardFunction","beforeEvaluate","beforeCall","beforeBranch","updateStoryboardFunction","data","newFn","_objectSpread","checkPermissionsUsage","functionNames","checkedFunctions","Set","add","some"],"sources":["../../src/StoryboardFunctionRegistry.ts"],"sourcesContent":["import type { MicroApp, StoryboardFunction } from \"@next-core/types\";\nimport { cook, precookFunction, EstreeNode } from \"@next-core/cook\";\nimport { supply } from \"@next-core/supply\";\nimport { strictCollectMemberUsageInFunction } from \"@next-core/utils/storyboard\";\nimport { getGeneralGlobals } from \"./internal/compute/getGeneralGlobals.js\";\n\n/** @internal */\nexport type ReadonlyStoryboardFunctions = Readonly<Record<string, Function>>;\n\n/** @internal */\nexport type StoryboardFunctionPatch = Pick<\n StoryboardFunction,\n \"source\" | \"typescript\"\n>;\n\n/** @internal */\nexport interface StoryboardFunctionRegistry {\n /** A readonly proxy for accessing cooked storyboard functions. */\n storyboardFunctions: ReadonlyStoryboardFunctions;\n\n /** Register storyboard functions. */\n registerStoryboardFunctions(\n functions: StoryboardFunction[] | undefined,\n app?: PartialMicroApp\n ): void;\n\n /** Update a storyboard function during debugging. */\n updateStoryboardFunction(name: string, data: StoryboardFunctionPatch): void;\n\n checkPermissionsUsage(functionNames: string[]): boolean;\n}\n\n/** @internal */\nexport interface RuntimeStoryboardFunction {\n source: string;\n typescript?: boolean;\n processed?: boolean;\n cooked?: Function;\n deps: Set<string>;\n hasPermissionsCheck: boolean;\n}\n\n/** @internal */\nexport interface FunctionCoverageCollector {\n beforeVisit(node: EstreeNode): void;\n beforeEvaluate(node: EstreeNode): void;\n beforeCall(node: EstreeNode): void;\n beforeBranch(node: EstreeNode, branch: string): void;\n}\n\n/** @internal */\nexport interface FunctionCoverageSettings {\n createCollector(name: string): FunctionCoverageCollector;\n}\n\n/** @internal */\nexport type PartialMicroApp = Pick<MicroApp, \"id\" | \"isBuildPush\">;\n\n/** @internal */\nexport function StoryboardFunctionRegistryFactory({\n widgetId,\n widgetVersion,\n collectCoverage,\n}: {\n widgetId?: string;\n widgetVersion?: string;\n collectCoverage?: FunctionCoverageSettings;\n} = {}): StoryboardFunctionRegistry {\n const registeredFunctions = new Map<string, RuntimeStoryboardFunction>();\n\n // Use `Proxy` with a frozen target, to make a readonly function registry.\n const storyboardFunctions = new Proxy(Object.freeze({}), {\n get(target, key) {\n return getStoryboardFunction(key as string);\n },\n }) as ReadonlyStoryboardFunctions;\n\n let currentApp: PartialMicroApp | undefined;\n\n function registerStoryboardFunctions(\n functions: StoryboardFunction[],\n app?: PartialMicroApp\n ): void {\n if (app) {\n currentApp = app;\n }\n registeredFunctions.clear();\n if (Array.isArray(functions)) {\n for (const fn of functions) {\n const deps = strictCollectMemberUsageInFunction(fn, \"FN\");\n const hasPermissionsCheck = strictCollectMemberUsageInFunction(\n fn,\n \"PERMISSIONS\"\n ).has(\"check\");\n registeredFunctions.set(fn.name, {\n source: fn.source,\n typescript: fn.typescript,\n deps,\n hasPermissionsCheck,\n });\n }\n }\n }\n\n function getStoryboardFunction(name: string): Function | undefined {\n const fn = registeredFunctions.get(name);\n if (!fn) {\n return undefined;\n }\n if (fn.processed) {\n return fn.cooked;\n }\n let collector: FunctionCoverageCollector | undefined;\n if (collectCoverage) {\n collector = collectCoverage.createCollector(name);\n }\n const precooked = precookFunction(fn.source, {\n typescript: fn.typescript,\n hooks: collector && {\n beforeVisit: collector.beforeVisit,\n },\n });\n fn.cooked = cook(precooked.function, fn.source, {\n rules: {\n noVar: true,\n },\n globalVariables: supply(\n precooked.attemptToVisitGlobals,\n getGeneralGlobals(precooked.attemptToVisitGlobals, {\n collectCoverage,\n widgetId,\n widgetVersion,\n app: currentApp,\n storyboardFunctions,\n isStoryboardFunction: true,\n }),\n !!collectCoverage\n ),\n hooks: collector && {\n beforeEvaluate: collector.beforeEvaluate,\n beforeCall: collector.beforeCall,\n beforeBranch: collector.beforeBranch,\n },\n }) as Function;\n fn.processed = true;\n return fn.cooked;\n }\n\n return {\n storyboardFunctions,\n registerStoryboardFunctions,\n updateStoryboardFunction(\n name: string,\n data: StoryboardFunctionPatch\n ): void {\n const newFn = {\n ...data,\n name,\n };\n const deps = strictCollectMemberUsageInFunction(newFn, \"FN\");\n const hasPermissionsCheck = strictCollectMemberUsageInFunction(\n newFn,\n \"PERMISSIONS\"\n ).has(\"check\");\n registeredFunctions.set(name, {\n source: data.source,\n typescript: data.typescript,\n deps,\n hasPermissionsCheck,\n });\n },\n /**\n * Check whether listed functions attempt to call `PERMISSIONS.check()`,\n * includes in nested `FN.*()` calls.\n */\n checkPermissionsUsage(functionNames) {\n const checkedFunctions = new Set<string>();\n const hasPermissionsCheck = (name: string): boolean => {\n if (!checkedFunctions.has(name)) {\n checkedFunctions.add(name);\n const fn = registeredFunctions.get(name);\n return (\n !!fn &&\n (fn.hasPermissionsCheck || [...fn.deps].some(hasPermissionsCheck))\n );\n }\n return false;\n };\n return functionNames.some(hasPermissionsCheck);\n },\n };\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"StoryboardFunctionRegistry.js","names":["cook","precookFunction","supply","strictCollectMemberUsageInFunction","getGeneralGlobals","StoryboardFunctionRegistryFactory","widgetId","widgetVersion","collectCoverage","arguments","length","undefined","registeredFunctions","Map","storyboardFunctions","Proxy","Object","freeze","get","target","key","getStoryboardFunction","currentApp","registerStoryboardFunctions","functions","app","clear","Array","isArray","fn","deps","hasPermissionsCheck","has","set","name","source","typescript","processed","cooked","collector","createCollector","precooked","hooks","beforeVisit","function","rules","noVar","globalVariables","attemptToVisitGlobals","isStoryboardFunction","beforeEvaluate","beforeCall","beforeBranch","updateStoryboardFunction","data","newFn","_objectSpread","checkPermissionsUsage","functionNames","checkedFunctions","Set","add","some"],"sources":["../../src/StoryboardFunctionRegistry.ts"],"sourcesContent":["import type { MicroApp, StoryboardFunction } from \"@next-core/types\";\nimport { cook, precookFunction, EstreeNode } from \"@next-core/cook\";\nimport { supply } from \"@next-core/supply\";\nimport { strictCollectMemberUsageInFunction } from \"@next-core/utils/storyboard\";\nimport { getGeneralGlobals } from \"./internal/compute/getGeneralGlobals.js\";\n\n/** @internal */\nexport type ReadonlyStoryboardFunctions = Readonly<Record<string, Function>>;\n\n/** @internal */\nexport type StoryboardFunctionPatch = Pick<\n StoryboardFunction,\n \"source\" | \"typescript\"\n>;\n\n/** @internal */\nexport interface StoryboardFunctionRegistry {\n /** A readonly proxy for accessing cooked storyboard functions. */\n storyboardFunctions: ReadonlyStoryboardFunctions;\n\n /** Register storyboard functions. */\n registerStoryboardFunctions(\n functions: StoryboardFunction[] | undefined,\n app?: PartialMicroApp\n ): void;\n\n /** Update a storyboard function during debugging. */\n updateStoryboardFunction(name: string, data: StoryboardFunctionPatch): void;\n\n checkPermissionsUsage(functionNames: string[]): boolean;\n}\n\n/** @internal */\nexport interface RuntimeStoryboardFunction {\n source: string;\n typescript?: boolean;\n processed?: boolean;\n cooked?: Function;\n deps: Set<string>;\n hasPermissionsCheck: boolean;\n}\n\n/** @internal */\nexport interface FunctionCoverageCollector {\n beforeVisit(node: EstreeNode): void;\n beforeEvaluate(node: EstreeNode): void;\n beforeCall(node: EstreeNode): void;\n beforeBranch(node: EstreeNode, branch: string): void;\n}\n\n/** @internal */\nexport interface FunctionCoverageSettings {\n createCollector(name: string): FunctionCoverageCollector;\n}\n\n/** @internal */\nexport type PartialMicroApp = Pick<MicroApp, \"id\" | \"isBuildPush\">;\n\n/** @internal */\nexport function StoryboardFunctionRegistryFactory({\n widgetId,\n widgetVersion,\n collectCoverage,\n}: {\n widgetId?: string;\n widgetVersion?: string;\n collectCoverage?: FunctionCoverageSettings;\n} = {}): StoryboardFunctionRegistry {\n const registeredFunctions = new Map<string, RuntimeStoryboardFunction>();\n\n // Use `Proxy` with a frozen target, to make a readonly function registry.\n const storyboardFunctions = new Proxy(Object.freeze({}), {\n get(target, key) {\n return getStoryboardFunction(key as string);\n },\n }) as ReadonlyStoryboardFunctions;\n\n let currentApp: PartialMicroApp | undefined;\n\n function registerStoryboardFunctions(\n functions: StoryboardFunction[],\n app?: PartialMicroApp\n ): void {\n if (app) {\n currentApp = app;\n }\n registeredFunctions.clear();\n if (Array.isArray(functions)) {\n for (const fn of functions) {\n const deps = strictCollectMemberUsageInFunction(fn, \"FN\");\n const hasPermissionsCheck = strictCollectMemberUsageInFunction(\n fn,\n \"PERMISSIONS\"\n ).has(\"check\");\n registeredFunctions.set(fn.name, {\n source: fn.source,\n typescript: fn.typescript,\n deps,\n hasPermissionsCheck,\n });\n }\n }\n }\n\n function getStoryboardFunction(name: string): Function | undefined {\n const fn = registeredFunctions.get(name);\n if (!fn) {\n return undefined;\n }\n if (fn.processed) {\n return fn.cooked;\n }\n let collector: FunctionCoverageCollector | undefined;\n if (collectCoverage) {\n collector = collectCoverage.createCollector(name);\n }\n const precooked = precookFunction(fn.source, {\n typescript: fn.typescript,\n hooks: collector && {\n beforeVisit: collector.beforeVisit,\n },\n });\n fn.cooked = cook(precooked.function, fn.source, {\n rules: {\n noVar: true,\n },\n globalVariables: supply(\n precooked.attemptToVisitGlobals,\n getGeneralGlobals(precooked.attemptToVisitGlobals, {\n collectCoverage,\n widgetId,\n widgetVersion,\n app: currentApp,\n storyboardFunctions,\n isStoryboardFunction: true,\n }),\n !!collectCoverage\n ),\n hooks: collector && {\n beforeEvaluate: collector.beforeEvaluate,\n beforeCall: collector.beforeCall,\n beforeBranch: collector.beforeBranch,\n },\n }) as Function;\n fn.processed = true;\n return fn.cooked;\n }\n\n return {\n storyboardFunctions,\n registerStoryboardFunctions,\n updateStoryboardFunction(\n name: string,\n data: StoryboardFunctionPatch\n ): void {\n const newFn = {\n ...data,\n name,\n };\n const deps = strictCollectMemberUsageInFunction(newFn, \"FN\");\n const hasPermissionsCheck = strictCollectMemberUsageInFunction(\n newFn,\n \"PERMISSIONS\"\n ).has(\"check\");\n registeredFunctions.set(name, {\n source: data.source,\n typescript: data.typescript,\n deps,\n hasPermissionsCheck,\n });\n },\n /**\n * Check whether listed functions attempt to call `PERMISSIONS.check()`,\n * includes in nested `FN.*()` calls.\n */\n checkPermissionsUsage(functionNames) {\n const checkedFunctions = new Set<string>();\n const hasPermissionsCheck = (name: string): boolean => {\n if (!checkedFunctions.has(name)) {\n checkedFunctions.add(name);\n const fn = registeredFunctions.get(name);\n return (\n !!fn &&\n (fn.hasPermissionsCheck || [...fn.deps].some(hasPermissionsCheck))\n );\n }\n return false;\n };\n return functionNames.some(hasPermissionsCheck);\n },\n };\n}\n"],"mappings":";AACA,SAASA,IAAI,EAAEC,eAAe,QAAoB,iBAAiB;AACnE,SAASC,MAAM,QAAQ,mBAAmB;AAC1C,SAASC,kCAAkC,QAAQ,6BAA6B;AAChF,SAASC,iBAAiB,QAAQ,yCAAyC;;AAE3E;;AAGA;;AAMA;;AAiBA;;AAUA;;AAQA;;AAKA;;AAGA;AACA,OAAO,SAASC,iCAAiCA,CAAA,EAQb;EAAA,IARc;IAChDC,QAAQ;IACRC,aAAa;IACbC;EAKF,CAAC,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,CAAC,CAAC;EACJ,IAAMG,mBAAmB,GAAG,IAAIC,GAAG,CAAoC,CAAC;;EAExE;EACA,IAAMC,mBAAmB,GAAG,IAAIC,KAAK,CAACC,MAAM,CAACC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE;IACvDC,GAAGA,CAACC,MAAM,EAAEC,GAAG,EAAE;MACf,OAAOC,qBAAqB,CAACD,GAAa,CAAC;IAC7C;EACF,CAAC,CAAgC;EAEjC,IAAIE,UAAuC;EAE3C,SAASC,2BAA2BA,CAClCC,SAA+B,EAC/BC,GAAqB,EACf;IACN,IAAIA,GAAG,EAAE;MACPH,UAAU,GAAGG,GAAG;IAClB;IACAb,mBAAmB,CAACc,KAAK,CAAC,CAAC;IAC3B,IAAIC,KAAK,CAACC,OAAO,CAACJ,SAAS,CAAC,EAAE;MAC5B,KAAK,IAAMK,EAAE,IAAIL,SAAS,EAAE;QAC1B,IAAMM,IAAI,GAAG3B,kCAAkC,CAAC0B,EAAE,EAAE,IAAI,CAAC;QACzD,IAAME,mBAAmB,GAAG5B,kCAAkC,CAC5D0B,EAAE,EACF,aACF,CAAC,CAACG,GAAG,CAAC,OAAO,CAAC;QACdpB,mBAAmB,CAACqB,GAAG,CAACJ,EAAE,CAACK,IAAI,EAAE;UAC/BC,MAAM,EAAEN,EAAE,CAACM,MAAM;UACjBC,UAAU,EAAEP,EAAE,CAACO,UAAU;UACzBN,IAAI;UACJC;QACF,CAAC,CAAC;MACJ;IACF;EACF;EAEA,SAASV,qBAAqBA,CAACa,IAAY,EAAwB;IACjE,IAAML,EAAE,GAAGjB,mBAAmB,CAACM,GAAG,CAACgB,IAAI,CAAC;IACxC,IAAI,CAACL,EAAE,EAAE;MACP,OAAOlB,SAAS;IAClB;IACA,IAAIkB,EAAE,CAACQ,SAAS,EAAE;MAChB,OAAOR,EAAE,CAACS,MAAM;IAClB;IACA,IAAIC,SAAgD;IACpD,IAAI/B,eAAe,EAAE;MACnB+B,SAAS,GAAG/B,eAAe,CAACgC,eAAe,CAACN,IAAI,CAAC;IACnD;IACA,IAAMO,SAAS,GAAGxC,eAAe,CAAC4B,EAAE,CAACM,MAAM,EAAE;MAC3CC,UAAU,EAAEP,EAAE,CAACO,UAAU;MACzBM,KAAK,EAAEH,SAAS,IAAI;QAClBI,WAAW,EAAEJ,SAAS,CAACI;MACzB;IACF,CAAC,CAAC;IACFd,EAAE,CAACS,MAAM,GAAGtC,IAAI,CAACyC,SAAS,CAACG,QAAQ,EAAEf,EAAE,CAACM,MAAM,EAAE;MAC9CU,KAAK,EAAE;QACLC,KAAK,EAAE;MACT,CAAC;MACDC,eAAe,EAAE7C,MAAM,CACrBuC,SAAS,CAACO,qBAAqB,EAC/B5C,iBAAiB,CAACqC,SAAS,CAACO,qBAAqB,EAAE;QACjDxC,eAAe;QACfF,QAAQ;QACRC,aAAa;QACbkB,GAAG,EAAEH,UAAU;QACfR,mBAAmB;QACnBmC,oBAAoB,EAAE;MACxB,CAAC,CAAC,EACF,CAAC,CAACzC,eACJ,CAAC;MACDkC,KAAK,EAAEH,SAAS,IAAI;QAClBW,cAAc,EAAEX,SAAS,CAACW,cAAc;QACxCC,UAAU,EAAEZ,SAAS,CAACY,UAAU;QAChCC,YAAY,EAAEb,SAAS,CAACa;MAC1B;IACF,CAAC,CAAa;IACdvB,EAAE,CAACQ,SAAS,GAAG,IAAI;IACnB,OAAOR,EAAE,CAACS,MAAM;EAClB;EAEA,OAAO;IACLxB,mBAAmB;IACnBS,2BAA2B;IAC3B8B,wBAAwBA,CACtBnB,IAAY,EACZoB,IAA6B,EACvB;MACN,IAAMC,KAAK,GAAAC,aAAA,CAAAA,aAAA,KACNF,IAAI;QACPpB;MAAI,EACL;MACD,IAAMJ,IAAI,GAAG3B,kCAAkC,CAACoD,KAAK,EAAE,IAAI,CAAC;MAC5D,IAAMxB,mBAAmB,GAAG5B,kCAAkC,CAC5DoD,KAAK,EACL,aACF,CAAC,CAACvB,GAAG,CAAC,OAAO,CAAC;MACdpB,mBAAmB,CAACqB,GAAG,CAACC,IAAI,EAAE;QAC5BC,MAAM,EAAEmB,IAAI,CAACnB,MAAM;QACnBC,UAAU,EAAEkB,IAAI,CAAClB,UAAU;QAC3BN,IAAI;QACJC;MACF,CAAC,CAAC;IACJ,CAAC;IACD;AACJ;AACA;AACA;IACI0B,qBAAqBA,CAACC,aAAa,EAAE;MACnC,IAAMC,gBAAgB,GAAG,IAAIC,GAAG,CAAS,CAAC;MAC1C,IAAM7B,mBAAmB,GAAIG,IAAY,IAAc;QACrD,IAAI,CAACyB,gBAAgB,CAAC3B,GAAG,CAACE,IAAI,CAAC,EAAE;UAC/ByB,gBAAgB,CAACE,GAAG,CAAC3B,IAAI,CAAC;UAC1B,IAAML,EAAE,GAAGjB,mBAAmB,CAACM,GAAG,CAACgB,IAAI,CAAC;UACxC,OACE,CAAC,CAACL,EAAE,KACHA,EAAE,CAACE,mBAAmB,IAAI,CAAC,GAAGF,EAAE,CAACC,IAAI,CAAC,CAACgC,IAAI,CAAC/B,mBAAmB,CAAC,CAAC;QAEtE;QACA,OAAO,KAAK;MACd,CAAC;MACD,OAAO2B,aAAa,CAACI,IAAI,CAAC/B,mBAAmB,CAAC;IAChD;EACF,CAAC;AACH"}
package/dist/esm/auth.js CHANGED
@@ -1,57 +1,31 @@
1
- import _objectSpread from "@babel/runtime/helpers/objectSpread2";
2
- // import { userAnalytics } from "@next-core/easyops-analytics";
3
-
4
- import { resetPermissionPreChecks } from "./internal/checkPermissions.js";
5
- var auth = {};
6
-
7
- /** @internal */
8
-
9
- /** @internal */
10
- export function authenticate(newAuth) {
11
- Object.assign(auth, {
12
- org: newAuth.org,
13
- username: newAuth.username,
14
- userInstanceId: newAuth.userInstanceId,
15
- loginFrom: newAuth.loginFrom,
16
- accessRule: newAuth.accessRule,
17
- isAdmin: newAuth.isAdmin,
18
- csrfToken: newAuth.csrfToken,
19
- license: newAuth.license,
20
- userShowValue: newAuth.userShowValue
21
- });
22
-
23
- // re-init analytics to set user_id
24
- // if (userAnalytics.initialized) {
25
- // userAnalytics.setUserId(newAuth.userInstanceId);
26
- // }
1
+ // istanbul ignore file
2
+ // Todo(steve): This file will be removed in the future.
3
+ import { hooks } from "./internal/Runtime.js";
4
+
5
+ /** @deprecated import it from "@next-core/easyops-runtime" instead */
6
+ export function authenticate() {
7
+ var _hooks$auth, _hooks$auth$authentic;
8
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
9
+ args[_key] = arguments[_key];
10
+ }
11
+ hooks === null || hooks === void 0 ? void 0 : (_hooks$auth = hooks.auth) === null || _hooks$auth === void 0 ? void 0 : (_hooks$auth$authentic = _hooks$auth.authenticate) === null || _hooks$auth$authentic === void 0 ? void 0 : _hooks$auth$authentic.call(_hooks$auth, ...args);
27
12
  }
28
13
 
29
- /**
30
- * 获取当前登录认证信息。
31
- *
32
- * @returns 当前登录认证信息。
33
- */
14
+ /** @deprecated import it from "@next-core/easyops-runtime" instead */
34
15
  export function getAuth() {
35
- return _objectSpread({}, auth);
16
+ var _hooks$auth2;
17
+ return hooks === null || hooks === void 0 ? void 0 : (_hooks$auth2 = hooks.auth) === null || _hooks$auth2 === void 0 ? void 0 : _hooks$auth2.getAuth();
36
18
  }
37
19
 
38
- /** @internal */
20
+ /** @deprecated import it from "@next-core/easyops-runtime" instead */
39
21
  export function logout() {
40
- for (var key of Object.keys(auth)) {
41
- auth[key] = undefined;
42
- }
43
- resetPermissionPreChecks();
44
-
45
- // re-init analytics to clear user_id
46
- // userAnalytics.setUserId();
22
+ var _hooks$auth3, _hooks$auth3$logout;
23
+ return hooks === null || hooks === void 0 ? void 0 : (_hooks$auth3 = hooks.auth) === null || _hooks$auth3 === void 0 ? void 0 : (_hooks$auth3$logout = _hooks$auth3.logout) === null || _hooks$auth3$logout === void 0 ? void 0 : _hooks$auth3$logout.call(_hooks$auth3);
47
24
  }
48
25
 
49
- /**
50
- * 查看当前是否已登录。
51
- *
52
- * @returns 当前是否已登录。
53
- */
26
+ /** @deprecated import it from "@next-core/easyops-runtime" instead */
54
27
  export function isLoggedIn() {
55
- return auth.username !== undefined;
28
+ var _hooks$auth4;
29
+ return hooks === null || hooks === void 0 ? void 0 : (_hooks$auth4 = hooks.auth) === null || _hooks$auth4 === void 0 ? void 0 : _hooks$auth4.isLoggedIn();
56
30
  }
57
31
  //# sourceMappingURL=auth.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"auth.js","names":["resetPermissionPreChecks","auth","authenticate","newAuth","Object","assign","org","username","userInstanceId","loginFrom","accessRule","isAdmin","csrfToken","license","userShowValue","getAuth","_objectSpread","logout","key","keys","undefined","isLoggedIn"],"sources":["../../src/auth.ts"],"sourcesContent":["// import { userAnalytics } from \"@next-core/easyops-analytics\";\nimport type { AuthApi_CheckLoginResponseBody } from \"@next-api-sdk/api-gateway-sdk\";\nimport { resetPermissionPreChecks } from \"./internal/checkPermissions.js\";\n\nconst auth: AuthInfo = {};\n\n/** @internal */\nexport type AuthInfo = Omit<AuthApi_CheckLoginResponseBody, \"loggedIn\">;\n\n/** @internal */\nexport function authenticate(newAuth: AuthInfo): void {\n Object.assign(auth, {\n org: newAuth.org,\n username: newAuth.username,\n userInstanceId: newAuth.userInstanceId,\n loginFrom: newAuth.loginFrom,\n accessRule: newAuth.accessRule,\n isAdmin: newAuth.isAdmin,\n csrfToken: newAuth.csrfToken,\n license: newAuth.license,\n userShowValue: newAuth.userShowValue,\n });\n\n // re-init analytics to set user_id\n // if (userAnalytics.initialized) {\n // userAnalytics.setUserId(newAuth.userInstanceId);\n // }\n}\n\n/**\n * 获取当前登录认证信息。\n *\n * @returns 当前登录认证信息。\n */\nexport function getAuth(): AuthInfo {\n return {\n ...auth,\n };\n}\n\n/** @internal */\nexport function logout(): void {\n for (const key of Object.keys(auth) as (keyof AuthInfo)[]) {\n auth[key] = undefined;\n }\n resetPermissionPreChecks();\n\n // re-init analytics to clear user_id\n // userAnalytics.setUserId();\n}\n\n/**\n * 查看当前是否已登录。\n *\n * @returns 当前是否已登录。\n */\nexport function isLoggedIn(): boolean {\n return auth.username !== undefined;\n}\n"],"mappings":";AAAA;;AAEA,SAASA,wBAAwB,QAAQ,gCAAgC;AAEzE,IAAMC,IAAc,GAAG,CAAC,CAAC;;AAEzB;;AAGA;AACA,OAAO,SAASC,YAAYA,CAACC,OAAiB,EAAQ;EACpDC,MAAM,CAACC,MAAM,CAACJ,IAAI,EAAE;IAClBK,GAAG,EAAEH,OAAO,CAACG,GAAG;IAChBC,QAAQ,EAAEJ,OAAO,CAACI,QAAQ;IAC1BC,cAAc,EAAEL,OAAO,CAACK,cAAc;IACtCC,SAAS,EAAEN,OAAO,CAACM,SAAS;IAC5BC,UAAU,EAAEP,OAAO,CAACO,UAAU;IAC9BC,OAAO,EAAER,OAAO,CAACQ,OAAO;IACxBC,SAAS,EAAET,OAAO,CAACS,SAAS;IAC5BC,OAAO,EAAEV,OAAO,CAACU,OAAO;IACxBC,aAAa,EAAEX,OAAO,CAACW;EACzB,CAAC,CAAC;;EAEF;EACA;EACA;EACA;AACF;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,OAAOA,CAAA,EAAa;EAClC,OAAAC,aAAA,KACKf,IAAI;AAEX;;AAEA;AACA,OAAO,SAASgB,MAAMA,CAAA,EAAS;EAC7B,KAAK,IAAMC,GAAG,IAAId,MAAM,CAACe,IAAI,CAAClB,IAAI,CAAC,EAAwB;IACzDA,IAAI,CAACiB,GAAG,CAAC,GAAGE,SAAS;EACvB;EACApB,wBAAwB,EAAE;;EAE1B;EACA;AACF;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASqB,UAAUA,CAAA,EAAY;EACpC,OAAOpB,IAAI,CAACM,QAAQ,KAAKa,SAAS;AACpC"}
1
+ {"version":3,"file":"auth.js","names":["hooks","authenticate","_hooks$auth","_hooks$auth$authentic","_len","arguments","length","args","Array","_key","auth","call","getAuth","_hooks$auth2","logout","_hooks$auth3","_hooks$auth3$logout","isLoggedIn","_hooks$auth4"],"sources":["../../src/auth.ts"],"sourcesContent":["// istanbul ignore file\n// Todo(steve): This file will be removed in the future.\nimport { hooks } from \"./internal/Runtime.js\";\n\n/** @deprecated import it from \"@next-core/easyops-runtime\" instead */\nexport function authenticate(...args: unknown[]): void {\n hooks?.auth?.authenticate?.(...args);\n}\n\n/** @deprecated import it from \"@next-core/easyops-runtime\" instead */\nexport function getAuth() {\n return hooks?.auth?.getAuth();\n}\n\n/** @deprecated import it from \"@next-core/easyops-runtime\" instead */\nexport function logout() {\n return hooks?.auth?.logout?.();\n}\n\n/** @deprecated import it from \"@next-core/easyops-runtime\" instead */\nexport function isLoggedIn() {\n return hooks?.auth?.isLoggedIn();\n}\n"],"mappings":"AAAA;AACA;AACA,SAASA,KAAK,QAAQ,uBAAuB;;AAE7C;AACA,OAAO,SAASC,YAAYA,CAAA,EAA2B;EAAA,IAAAC,WAAA,EAAAC,qBAAA;EAAA,SAAAC,IAAA,GAAAC,SAAA,CAAAC,MAAA,EAAvBC,IAAI,OAAAC,KAAA,CAAAJ,IAAA,GAAAK,IAAA,MAAAA,IAAA,GAAAL,IAAA,EAAAK,IAAA;IAAJF,IAAI,CAAAE,IAAA,IAAAJ,SAAA,CAAAI,IAAA;EAAA;EAClCT,KAAK,aAALA,KAAK,wBAAAE,WAAA,GAALF,KAAK,CAAEU,IAAI,cAAAR,WAAA,wBAAAC,qBAAA,GAAXD,WAAA,CAAaD,YAAY,cAAAE,qBAAA,uBAAzBA,qBAAA,CAAAQ,IAAA,CAAAT,WAAA,EAA4B,GAAGK,IAAI,CAAC;AACtC;;AAEA;AACA,OAAO,SAASK,OAAOA,CAAA,EAAG;EAAA,IAAAC,YAAA;EACxB,OAAOb,KAAK,aAALA,KAAK,wBAAAa,YAAA,GAALb,KAAK,CAAEU,IAAI,cAAAG,YAAA,uBAAXA,YAAA,CAAaD,OAAO,CAAC,CAAC;AAC/B;;AAEA;AACA,OAAO,SAASE,MAAMA,CAAA,EAAG;EAAA,IAAAC,YAAA,EAAAC,mBAAA;EACvB,OAAOhB,KAAK,aAALA,KAAK,wBAAAe,YAAA,GAALf,KAAK,CAAEU,IAAI,cAAAK,YAAA,wBAAAC,mBAAA,GAAXD,YAAA,CAAaD,MAAM,cAAAE,mBAAA,uBAAnBA,mBAAA,CAAAL,IAAA,CAAAI,YAAsB,CAAC;AAChC;;AAEA;AACA,OAAO,SAASE,UAAUA,CAAA,EAAG;EAAA,IAAAC,YAAA;EAC3B,OAAOlB,KAAK,aAALA,KAAK,wBAAAkB,YAAA,GAALlB,KAAK,CAAEU,IAAI,cAAAQ,YAAA,uBAAXA,YAAA,CAAaD,UAAU,CAAC,CAAC;AAClC"}