@openedx/frontend-base 1.0.0-alpha.11 → 1.0.0-alpha.13

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 (754) hide show
  1. package/{index.ts → dist/index.d.ts} +0 -3
  2. package/dist/index.js +4 -0
  3. package/dist/index.js.map +1 -0
  4. package/dist/runtime/analytics/MockAnalyticsService.d.ts +50 -0
  5. package/dist/runtime/analytics/MockAnalyticsService.js +64 -0
  6. package/dist/runtime/analytics/MockAnalyticsService.js.map +1 -0
  7. package/dist/runtime/analytics/SegmentAnalyticsService.d.ts +64 -0
  8. package/dist/runtime/analytics/SegmentAnalyticsService.js +218 -0
  9. package/dist/runtime/analytics/SegmentAnalyticsService.js.map +1 -0
  10. package/dist/runtime/analytics/index.d.ts +3 -0
  11. package/dist/runtime/analytics/index.js +4 -0
  12. package/dist/runtime/analytics/index.js.map +1 -0
  13. package/dist/runtime/analytics/interface.d.ts +53 -0
  14. package/{runtime → dist/runtime}/analytics/interface.js +26 -38
  15. package/dist/runtime/analytics/interface.js.map +1 -0
  16. package/dist/runtime/auth/AxiosCsrfTokenService.d.ts +10 -0
  17. package/dist/runtime/auth/AxiosCsrfTokenService.js +64 -0
  18. package/dist/runtime/auth/AxiosCsrfTokenService.js.map +1 -0
  19. package/dist/runtime/auth/AxiosJwtAuthService.d.ts +182 -0
  20. package/dist/runtime/auth/AxiosJwtAuthService.js +339 -0
  21. package/dist/runtime/auth/AxiosJwtAuthService.js.map +1 -0
  22. package/dist/runtime/auth/AxiosJwtTokenService.d.ts +16 -0
  23. package/dist/runtime/auth/AxiosJwtTokenService.js +130 -0
  24. package/dist/runtime/auth/AxiosJwtTokenService.js.map +1 -0
  25. package/dist/runtime/auth/LocalForageCache.d.ts +7 -0
  26. package/dist/runtime/auth/LocalForageCache.js +78 -0
  27. package/dist/runtime/auth/LocalForageCache.js.map +1 -0
  28. package/dist/runtime/auth/MockAuthService.d.ts +209 -0
  29. package/dist/runtime/auth/MockAuthService.js +256 -0
  30. package/dist/runtime/auth/MockAuthService.js.map +1 -0
  31. package/dist/runtime/auth/index.d.ts +3 -0
  32. package/dist/runtime/auth/index.js +4 -0
  33. package/dist/runtime/auth/index.js.map +1 -0
  34. package/dist/runtime/auth/interceptors/createCsrfTokenProviderInterceptor.d.ts +2 -0
  35. package/dist/runtime/auth/interceptors/createCsrfTokenProviderInterceptor.js +42 -0
  36. package/dist/runtime/auth/interceptors/createCsrfTokenProviderInterceptor.js.map +1 -0
  37. package/dist/runtime/auth/interceptors/createJwtTokenProviderInterceptor.d.ts +2 -0
  38. package/dist/runtime/auth/interceptors/createJwtTokenProviderInterceptor.js +40 -0
  39. package/dist/runtime/auth/interceptors/createJwtTokenProviderInterceptor.js.map +1 -0
  40. package/dist/runtime/auth/interceptors/createProcessAxiosRequestErrorInterceptor.d.ts +2 -0
  41. package/dist/runtime/auth/interceptors/createProcessAxiosRequestErrorInterceptor.js +26 -0
  42. package/dist/runtime/auth/interceptors/createProcessAxiosRequestErrorInterceptor.js.map +1 -0
  43. package/dist/runtime/auth/interceptors/createRetryInterceptor.d.ts +3 -0
  44. package/dist/runtime/auth/interceptors/createRetryInterceptor.js +67 -0
  45. package/dist/runtime/auth/interceptors/createRetryInterceptor.js.map +1 -0
  46. package/dist/runtime/auth/interface.d.ts +133 -0
  47. package/{runtime → dist/runtime}/auth/interface.js +65 -72
  48. package/dist/runtime/auth/interface.js.map +1 -0
  49. package/dist/runtime/auth/utils.d.ts +13 -0
  50. package/dist/runtime/auth/utils.js +66 -0
  51. package/dist/runtime/auth/utils.js.map +1 -0
  52. package/dist/runtime/babel.config.d.ts +2 -0
  53. package/{shell → dist/runtime}/babel.config.js +2 -1
  54. package/dist/runtime/babel.config.js.map +1 -0
  55. package/{runtime/config/index.ts → dist/runtime/config/index.d.ts} +28 -123
  56. package/dist/runtime/config/index.js +323 -0
  57. package/dist/runtime/config/index.js.map +1 -0
  58. package/dist/runtime/constants.d.ts +57 -0
  59. package/{runtime/constants.ts → dist/runtime/constants.js} +1 -11
  60. package/dist/runtime/constants.js.map +1 -0
  61. package/dist/runtime/i18n/index.d.ts +3 -0
  62. package/{runtime → dist/runtime}/i18n/index.js +4 -44
  63. package/dist/runtime/i18n/index.js.map +1 -0
  64. package/dist/runtime/i18n/injectIntlWithShim.d.ts +11 -0
  65. package/dist/runtime/i18n/injectIntlWithShim.js +45 -0
  66. package/dist/runtime/i18n/injectIntlWithShim.js.map +1 -0
  67. package/dist/runtime/i18n/lib.d.ts +119 -0
  68. package/dist/runtime/i18n/lib.js +236 -0
  69. package/dist/runtime/i18n/lib.js.map +1 -0
  70. package/dist/runtime/index.d.ts +13 -0
  71. package/dist/runtime/index.js +14 -0
  72. package/dist/runtime/index.js.map +1 -0
  73. package/dist/runtime/initialize.d.ts +91 -0
  74. package/dist/runtime/initialize.js +312 -0
  75. package/dist/runtime/initialize.js.map +1 -0
  76. package/dist/runtime/jest.config.d.ts +17 -0
  77. package/dist/runtime/jest.config.js +35 -0
  78. package/dist/runtime/jest.config.js.map +1 -0
  79. package/dist/runtime/logging/MockLoggingService.d.ts +28 -0
  80. package/dist/runtime/logging/MockLoggingService.js +31 -0
  81. package/dist/runtime/logging/MockLoggingService.js.map +1 -0
  82. package/dist/runtime/logging/NewRelicLoggingService.d.ts +67 -0
  83. package/dist/runtime/logging/NewRelicLoggingService.js +175 -0
  84. package/dist/runtime/logging/NewRelicLoggingService.js.map +1 -0
  85. package/{runtime/logging/index.ts → dist/runtime/logging/index.d.ts} +1 -7
  86. package/dist/runtime/logging/index.js +4 -0
  87. package/dist/runtime/logging/index.js.map +1 -0
  88. package/dist/runtime/logging/interface.d.ts +38 -0
  89. package/{runtime → dist/runtime}/logging/interface.js +16 -26
  90. package/dist/runtime/logging/interface.js.map +1 -0
  91. package/dist/runtime/logging/types.d.ts +4 -0
  92. package/dist/runtime/logging/types.js +2 -0
  93. package/dist/runtime/logging/types.js.map +1 -0
  94. package/dist/runtime/react/AuthenticatedPageRoute.d.ts +28 -0
  95. package/{runtime/react/AuthenticatedPageRoute.jsx → dist/runtime/react/AuthenticatedPageRoute.js} +11 -18
  96. package/dist/runtime/react/AuthenticatedPageRoute.js.map +1 -0
  97. package/dist/runtime/react/CombinedAppProvider.d.ts +6 -0
  98. package/dist/runtime/react/CombinedAppProvider.js +24 -0
  99. package/dist/runtime/react/CombinedAppProvider.js.map +1 -0
  100. package/dist/runtime/react/CurrentAppContext.d.ts +20 -0
  101. package/{runtime/react/CurrentAppContext.tsx → dist/runtime/react/CurrentAppContext.js} +3 -7
  102. package/dist/runtime/react/CurrentAppContext.js.map +1 -0
  103. package/dist/runtime/react/CurrentAppProvider.d.ts +23 -0
  104. package/dist/runtime/react/CurrentAppProvider.js +33 -0
  105. package/dist/runtime/react/CurrentAppProvider.js.map +1 -0
  106. package/dist/runtime/react/Divider.d.ts +1 -0
  107. package/dist/runtime/react/Divider.js +5 -0
  108. package/dist/runtime/react/Divider.js.map +1 -0
  109. package/dist/runtime/react/ErrorBoundary.d.ts +32 -0
  110. package/dist/runtime/react/ErrorBoundary.js +40 -0
  111. package/dist/runtime/react/ErrorBoundary.js.map +1 -0
  112. package/dist/runtime/react/ErrorPage.d.ts +17 -0
  113. package/dist/runtime/react/ErrorPage.js +29 -0
  114. package/dist/runtime/react/ErrorPage.js.map +1 -0
  115. package/dist/runtime/react/LoginRedirect.d.ts +8 -0
  116. package/{runtime/react/LoginRedirect.jsx → dist/runtime/react/LoginRedirect.js} +5 -5
  117. package/dist/runtime/react/LoginRedirect.js.map +1 -0
  118. package/dist/runtime/react/PageWrap.d.ts +8 -0
  119. package/{runtime/react/PageWrap.jsx → dist/runtime/react/PageWrap.js} +7 -10
  120. package/dist/runtime/react/PageWrap.js.map +1 -0
  121. package/dist/runtime/react/SiteContext.d.ts +24 -0
  122. package/{runtime/react/SiteContext.tsx → dist/runtime/react/SiteContext.js} +5 -11
  123. package/dist/runtime/react/SiteContext.js.map +1 -0
  124. package/dist/runtime/react/SiteProvider.d.ts +29 -0
  125. package/dist/runtime/react/SiteProvider.js +69 -0
  126. package/dist/runtime/react/SiteProvider.js.map +1 -0
  127. package/dist/runtime/react/constants.d.ts +3 -0
  128. package/{runtime/react/constants.ts → dist/runtime/react/constants.js} +1 -0
  129. package/dist/runtime/react/constants.js.map +1 -0
  130. package/{runtime/react/hooks/index.ts → dist/runtime/react/hooks/index.d.ts} +0 -1
  131. package/dist/runtime/react/hooks/index.js +8 -0
  132. package/dist/runtime/react/hooks/index.js.map +1 -0
  133. package/dist/runtime/react/hooks/theme/index.js +3 -0
  134. package/dist/runtime/react/hooks/theme/index.js.map +1 -0
  135. package/dist/runtime/react/hooks/theme/useTheme.d.ts +35 -0
  136. package/dist/runtime/react/hooks/theme/useTheme.js +153 -0
  137. package/dist/runtime/react/hooks/theme/useTheme.js.map +1 -0
  138. package/dist/runtime/react/hooks/theme/useThemeConfig.d.ts +16 -0
  139. package/{runtime/react/hooks/theme/useThemeConfig.ts → dist/runtime/react/hooks/theme/useThemeConfig.js} +11 -16
  140. package/dist/runtime/react/hooks/theme/useThemeConfig.js.map +1 -0
  141. package/dist/runtime/react/hooks/theme/useThemeCore.d.ts +10 -0
  142. package/dist/runtime/react/hooks/theme/useThemeCore.js +40 -0
  143. package/dist/runtime/react/hooks/theme/useThemeCore.js.map +1 -0
  144. package/dist/runtime/react/hooks/theme/useThemeVariants.d.ts +17 -0
  145. package/dist/runtime/react/hooks/theme/useThemeVariants.js +90 -0
  146. package/dist/runtime/react/hooks/theme/useThemeVariants.js.map +1 -0
  147. package/dist/runtime/react/hooks/theme/useTrackColorSchemeChoice.d.ts +8 -0
  148. package/dist/runtime/react/hooks/theme/useTrackColorSchemeChoice.js +30 -0
  149. package/dist/runtime/react/hooks/theme/useTrackColorSchemeChoice.js.map +1 -0
  150. package/dist/runtime/react/hooks/theme/utils.d.ts +6 -0
  151. package/{runtime/react/hooks/theme/utils.ts → dist/runtime/react/hooks/theme/utils.js} +4 -4
  152. package/dist/runtime/react/hooks/theme/utils.js.map +1 -0
  153. package/dist/runtime/react/hooks/useActiveRoles.d.ts +2 -0
  154. package/{runtime/react/hooks/useActiveRoles.ts → dist/runtime/react/hooks/useActiveRoles.js} +6 -8
  155. package/dist/runtime/react/hooks/useActiveRoles.js.map +1 -0
  156. package/dist/runtime/react/hooks/useActiveRouteRoleWatcher.d.ts +2 -0
  157. package/dist/runtime/react/hooks/useActiveRouteRoleWatcher.js +26 -0
  158. package/dist/runtime/react/hooks/useActiveRouteRoleWatcher.js.map +1 -0
  159. package/dist/runtime/react/hooks/useAppConfig.d.ts +2 -0
  160. package/{runtime/react/hooks/useAppConfig.ts → dist/runtime/react/hooks/useAppConfig.js} +3 -4
  161. package/dist/runtime/react/hooks/useAppConfig.js.map +1 -0
  162. package/dist/runtime/react/hooks/useAuthenticatedUser.d.ts +2 -0
  163. package/{runtime/react/hooks/useAuthenticatedUser.ts → dist/runtime/react/hooks/useAuthenticatedUser.js} +3 -4
  164. package/dist/runtime/react/hooks/useAuthenticatedUser.js.map +1 -0
  165. package/dist/runtime/react/hooks/useSiteConfig.d.ts +2 -0
  166. package/{runtime/react/hooks/useSiteConfig.ts → dist/runtime/react/hooks/useSiteConfig.js} +3 -4
  167. package/dist/runtime/react/hooks/useSiteConfig.js.map +1 -0
  168. package/dist/runtime/react/hooks/useSiteEvent.d.ts +12 -0
  169. package/{runtime/react/hooks/useSiteEvent.ts → dist/runtime/react/hooks/useSiteEvent.js} +7 -9
  170. package/dist/runtime/react/hooks/useSiteEvent.js.map +1 -0
  171. package/{runtime/react/index.ts → dist/runtime/react/index.d.ts} +0 -1
  172. package/dist/runtime/react/index.js +19 -0
  173. package/dist/runtime/react/index.js.map +1 -0
  174. package/dist/runtime/react/reducers.d.ts +11 -0
  175. package/dist/runtime/react/reducers.js +28 -0
  176. package/dist/runtime/react/reducers.js.map +1 -0
  177. package/dist/runtime/routing/index.js +2 -0
  178. package/dist/runtime/routing/index.js.map +1 -0
  179. package/dist/runtime/routing/utils.d.ts +4 -0
  180. package/dist/runtime/routing/utils.js +28 -0
  181. package/dist/runtime/routing/utils.js.map +1 -0
  182. package/dist/runtime/scripts/GoogleAnalyticsLoader.d.ts +12 -0
  183. package/dist/runtime/scripts/GoogleAnalyticsLoader.js +49 -0
  184. package/dist/runtime/scripts/GoogleAnalyticsLoader.js.map +1 -0
  185. package/dist/runtime/scripts/index.js +2 -0
  186. package/dist/runtime/scripts/index.js.map +1 -0
  187. package/dist/runtime/setupTest.d.ts +1 -0
  188. package/{runtime → dist/runtime}/setupTest.js +6 -8
  189. package/dist/runtime/setupTest.js.map +1 -0
  190. package/dist/runtime/slots/Slot.d.ts +9 -0
  191. package/dist/runtime/slots/Slot.js +30 -0
  192. package/dist/runtime/slots/Slot.js.map +1 -0
  193. package/dist/runtime/slots/SlotContext.d.ts +7 -0
  194. package/dist/runtime/slots/SlotContext.js +7 -0
  195. package/dist/runtime/slots/SlotContext.js.map +1 -0
  196. package/dist/runtime/slots/hooks.d.ts +12 -0
  197. package/dist/runtime/slots/hooks.js +29 -0
  198. package/dist/runtime/slots/hooks.js.map +1 -0
  199. package/dist/runtime/slots/index.js +7 -0
  200. package/dist/runtime/slots/index.js.map +1 -0
  201. package/dist/runtime/slots/layout/DefaultSlotLayout.d.ts +1 -0
  202. package/dist/runtime/slots/layout/DefaultSlotLayout.js +7 -0
  203. package/dist/runtime/slots/layout/DefaultSlotLayout.js.map +1 -0
  204. package/dist/runtime/slots/layout/hooks.d.ts +10 -0
  205. package/dist/runtime/slots/layout/hooks.js +57 -0
  206. package/dist/runtime/slots/layout/hooks.js.map +1 -0
  207. package/dist/runtime/slots/layout/index.js +5 -0
  208. package/dist/runtime/slots/layout/index.js.map +1 -0
  209. package/{runtime/slots/layout/types.ts → dist/runtime/slots/layout/types.d.ts} +10 -25
  210. package/dist/runtime/slots/layout/types.js +12 -0
  211. package/dist/runtime/slots/layout/types.js.map +1 -0
  212. package/dist/runtime/slots/layout/utils.d.ts +5 -0
  213. package/dist/runtime/slots/layout/utils.js +11 -0
  214. package/dist/runtime/slots/layout/utils.js.map +1 -0
  215. package/{runtime/slots/types.ts → dist/runtime/slots/types.d.ts} +6 -12
  216. package/dist/runtime/slots/types.js +7 -0
  217. package/dist/runtime/slots/types.js.map +1 -0
  218. package/dist/runtime/slots/utils.d.ts +3 -0
  219. package/dist/runtime/slots/utils.js +66 -0
  220. package/dist/runtime/slots/utils.js.map +1 -0
  221. package/dist/runtime/slots/widget/WidgetContext.d.ts +6 -0
  222. package/dist/runtime/slots/widget/WidgetContext.js +8 -0
  223. package/dist/runtime/slots/widget/WidgetContext.js.map +1 -0
  224. package/dist/runtime/slots/widget/WidgetProvider.d.ts +9 -0
  225. package/dist/runtime/slots/widget/WidgetProvider.js +18 -0
  226. package/dist/runtime/slots/widget/WidgetProvider.js.map +1 -0
  227. package/dist/runtime/slots/widget/hooks.d.ts +13 -0
  228. package/dist/runtime/slots/widget/hooks.js +104 -0
  229. package/dist/runtime/slots/widget/hooks.js.map +1 -0
  230. package/dist/runtime/slots/widget/iframe/IFrameContentWrapper.d.ts +10 -0
  231. package/dist/runtime/slots/widget/iframe/IFrameContentWrapper.js +42 -0
  232. package/dist/runtime/slots/widget/iframe/IFrameContentWrapper.js.map +1 -0
  233. package/dist/runtime/slots/widget/iframe/IFrameContentWrapper.messages.d.ts +13 -0
  234. package/dist/runtime/slots/widget/iframe/IFrameContentWrapper.messages.js +15 -0
  235. package/dist/runtime/slots/widget/iframe/IFrameContentWrapper.messages.js.map +1 -0
  236. package/dist/runtime/slots/widget/iframe/IFrameWidget.d.ts +6 -0
  237. package/dist/runtime/slots/widget/iframe/IFrameWidget.js +32 -0
  238. package/dist/runtime/slots/widget/iframe/IFrameWidget.js.map +1 -0
  239. package/dist/runtime/slots/widget/iframe/constants.d.ts +15 -0
  240. package/{runtime/slots/widget/iframe/constants.ts → dist/runtime/slots/widget/iframe/constants.js} +2 -4
  241. package/dist/runtime/slots/widget/iframe/constants.js.map +1 -0
  242. package/dist/runtime/slots/widget/iframe/hooks.d.ts +64 -0
  243. package/dist/runtime/slots/widget/iframe/hooks.js +144 -0
  244. package/dist/runtime/slots/widget/iframe/hooks.js.map +1 -0
  245. package/{runtime/slots/widget/iframe/index.ts → dist/runtime/slots/widget/iframe/index.d.ts} +1 -4
  246. package/dist/runtime/slots/widget/iframe/index.js +3 -0
  247. package/dist/runtime/slots/widget/iframe/index.js.map +1 -0
  248. package/{runtime/slots/widget/iframe/types.ts → dist/runtime/slots/widget/iframe/types.d.ts} +2 -4
  249. package/dist/runtime/slots/widget/iframe/types.js +3 -0
  250. package/dist/runtime/slots/widget/iframe/types.js.map +1 -0
  251. package/dist/runtime/slots/widget/index.js +6 -0
  252. package/dist/runtime/slots/widget/index.js.map +1 -0
  253. package/{runtime/slots/widget/types.ts → dist/runtime/slots/widget/types.d.ts} +50 -84
  254. package/dist/runtime/slots/widget/types.js +41 -0
  255. package/dist/runtime/slots/widget/types.js.map +1 -0
  256. package/dist/runtime/slots/widget/utils.d.ts +22 -0
  257. package/dist/runtime/slots/widget/utils.js +166 -0
  258. package/dist/runtime/slots/widget/utils.js.map +1 -0
  259. package/{runtime/subscriptions.ts → dist/runtime/subscriptions.d.ts} +5 -41
  260. package/dist/runtime/subscriptions.js +48 -0
  261. package/dist/runtime/subscriptions.js.map +1 -0
  262. package/{runtime/testing/index.ts → dist/runtime/testing/index.d.ts} +0 -1
  263. package/dist/runtime/testing/index.js +9 -0
  264. package/dist/runtime/testing/index.js.map +1 -0
  265. package/dist/runtime/testing/initializeMockApp.d.ts +46 -0
  266. package/{runtime/testing/initializeMockApp.ts → dist/runtime/testing/initializeMockApp.js} +26 -41
  267. package/dist/runtime/testing/initializeMockApp.js.map +1 -0
  268. package/dist/runtime/testing/mockMessages.d.ts +22 -0
  269. package/dist/runtime/testing/mockMessages.js +23 -0
  270. package/dist/runtime/testing/mockMessages.js.map +1 -0
  271. package/dist/runtime/utils.d.ts +95 -0
  272. package/{runtime → dist/runtime}/utils.js +55 -70
  273. package/dist/runtime/utils.js.map +1 -0
  274. package/dist/shell/DefaultLayout.d.ts +1 -0
  275. package/dist/shell/DefaultLayout.js +7 -0
  276. package/dist/shell/DefaultLayout.js.map +1 -0
  277. package/dist/shell/DefaultMain.d.ts +1 -0
  278. package/dist/shell/DefaultMain.js +6 -0
  279. package/dist/shell/DefaultMain.js.map +1 -0
  280. package/dist/shell/Logo.d.ts +6 -0
  281. package/dist/shell/Logo.js +11 -0
  282. package/dist/shell/Logo.js.map +1 -0
  283. package/dist/shell/Shell.d.ts +1 -0
  284. package/dist/shell/Shell.js +10 -0
  285. package/dist/shell/Shell.js.map +1 -0
  286. package/dist/shell/Shell.messages.d.ts +58 -0
  287. package/dist/shell/Shell.messages.js +60 -0
  288. package/dist/shell/Shell.messages.js.map +1 -0
  289. package/dist/shell/app.d.ts +3 -0
  290. package/dist/shell/app.js +35 -0
  291. package/dist/shell/app.js.map +1 -0
  292. package/dist/shell/babel.config.d.ts +2 -0
  293. package/{runtime → dist/shell}/babel.config.js +2 -1
  294. package/dist/shell/babel.config.js.map +1 -0
  295. package/dist/shell/dev/devFooter/app.d.ts +3 -0
  296. package/dist/shell/dev/devFooter/app.js +36 -0
  297. package/dist/shell/dev/devFooter/app.js.map +1 -0
  298. package/dist/shell/dev/devFooter/index.js +2 -0
  299. package/dist/shell/dev/devFooter/index.js.map +1 -0
  300. package/dist/shell/dev/devHeader/BarContext.d.ts +7 -0
  301. package/dist/shell/dev/devHeader/BarContext.js +8 -0
  302. package/dist/shell/dev/devHeader/BarContext.js.map +1 -0
  303. package/dist/shell/dev/devHeader/BarLink.d.ts +1 -0
  304. package/dist/shell/dev/devHeader/BarLink.js +10 -0
  305. package/dist/shell/dev/devHeader/BarLink.js.map +1 -0
  306. package/dist/shell/dev/devHeader/BarProvider.d.ts +6 -0
  307. package/dist/shell/dev/devHeader/BarProvider.js +16 -0
  308. package/dist/shell/dev/devHeader/BarProvider.js.map +1 -0
  309. package/dist/shell/dev/devHeader/CoursesLink.d.ts +1 -0
  310. package/dist/shell/dev/devHeader/CoursesLink.js +10 -0
  311. package/dist/shell/dev/devHeader/CoursesLink.js.map +1 -0
  312. package/dist/shell/dev/devHeader/FooContext.d.ts +7 -0
  313. package/dist/shell/dev/devHeader/FooContext.js +8 -0
  314. package/dist/shell/dev/devHeader/FooContext.js.map +1 -0
  315. package/dist/shell/dev/devHeader/FooLink.d.ts +1 -0
  316. package/dist/shell/dev/devHeader/FooLink.js +10 -0
  317. package/dist/shell/dev/devHeader/FooLink.js.map +1 -0
  318. package/dist/shell/dev/devHeader/FooProvider.d.ts +6 -0
  319. package/dist/shell/dev/devHeader/FooProvider.js +16 -0
  320. package/dist/shell/dev/devHeader/FooProvider.js.map +1 -0
  321. package/dist/shell/dev/devHeader/app.d.ts +3 -0
  322. package/dist/shell/dev/devHeader/app.js +34 -0
  323. package/dist/shell/dev/devHeader/app.js.map +1 -0
  324. package/dist/shell/dev/devHeader/index.js +2 -0
  325. package/dist/shell/dev/devHeader/index.js.map +1 -0
  326. package/dist/shell/dev/devHeader/providers.d.ts +3 -0
  327. package/dist/shell/dev/devHeader/providers.js +8 -0
  328. package/dist/shell/dev/devHeader/providers.js.map +1 -0
  329. package/dist/shell/dev/devHome/HomePage.d.ts +1 -0
  330. package/dist/shell/dev/devHome/HomePage.js +13 -0
  331. package/dist/shell/dev/devHome/HomePage.js.map +1 -0
  332. package/dist/shell/dev/devHome/app.d.ts +3 -0
  333. package/dist/shell/dev/devHome/app.js +16 -0
  334. package/dist/shell/dev/devHome/app.js.map +1 -0
  335. package/dist/shell/dev/devHome/i18n/index.d.ts +27 -0
  336. package/dist/shell/dev/devHome/i18n/index.js +28 -0
  337. package/dist/shell/dev/devHome/i18n/index.js.map +1 -0
  338. package/dist/shell/dev/devHome/index.js +2 -0
  339. package/dist/shell/dev/devHome/index.js.map +1 -0
  340. package/dist/shell/dev/devHome/messages.d.ts +8 -0
  341. package/dist/shell/dev/devHome/messages.js +10 -0
  342. package/dist/shell/dev/devHome/messages.js.map +1 -0
  343. package/dist/shell/dev/devUser/app.d.ts +3 -0
  344. package/dist/shell/dev/devUser/app.js +22 -0
  345. package/dist/shell/dev/devUser/app.js.map +1 -0
  346. package/dist/shell/dev/devUser/index.js +2 -0
  347. package/dist/shell/dev/devUser/index.js.map +1 -0
  348. package/dist/shell/dev/index.js +6 -0
  349. package/dist/shell/dev/index.js.map +1 -0
  350. package/dist/shell/dev/slotShowcase/HorizontalSlotLayout.d.ts +1 -0
  351. package/dist/shell/dev/slotShowcase/HorizontalSlotLayout.js +7 -0
  352. package/dist/shell/dev/slotShowcase/HorizontalSlotLayout.js.map +1 -0
  353. package/dist/shell/dev/slotShowcase/LayoutWithOptions.d.ts +1 -0
  354. package/dist/shell/dev/slotShowcase/LayoutWithOptions.js +9 -0
  355. package/dist/shell/dev/slotShowcase/LayoutWithOptions.js.map +1 -0
  356. package/dist/shell/dev/slotShowcase/SlotShowcasePage.d.ts +1 -0
  357. package/dist/shell/dev/slotShowcase/SlotShowcasePage.js +8 -0
  358. package/dist/shell/dev/slotShowcase/SlotShowcasePage.js.map +1 -0
  359. package/dist/shell/dev/slotShowcase/WidgetWithOptions.d.ts +1 -0
  360. package/dist/shell/dev/slotShowcase/WidgetWithOptions.js +8 -0
  361. package/dist/shell/dev/slotShowcase/WidgetWithOptions.js.map +1 -0
  362. package/dist/shell/dev/slotShowcase/app.d.ts +3 -0
  363. package/dist/shell/dev/slotShowcase/app.js +336 -0
  364. package/dist/shell/dev/slotShowcase/app.js.map +1 -0
  365. package/dist/shell/dev/slotShowcase/index.js +2 -0
  366. package/dist/shell/dev/slotShowcase/index.js.map +1 -0
  367. package/dist/shell/footer/CenterLinks.d.ts +1 -0
  368. package/dist/shell/footer/CenterLinks.js +7 -0
  369. package/dist/shell/footer/CenterLinks.js.map +1 -0
  370. package/dist/shell/footer/CopyrightNotice.d.ts +10 -0
  371. package/dist/shell/footer/CopyrightNotice.js +10 -0
  372. package/dist/shell/footer/CopyrightNotice.js.map +1 -0
  373. package/dist/shell/footer/Footer.d.ts +1 -0
  374. package/dist/shell/footer/Footer.js +12 -0
  375. package/dist/shell/footer/Footer.js.map +1 -0
  376. package/dist/shell/footer/LabeledLinkColumn.d.ts +1 -0
  377. package/dist/shell/footer/LabeledLinkColumn.js +11 -0
  378. package/dist/shell/footer/LabeledLinkColumn.js.map +1 -0
  379. package/dist/shell/footer/LanguageMenu.d.ts +1 -0
  380. package/dist/shell/footer/LanguageMenu.js +16 -0
  381. package/dist/shell/footer/LanguageMenu.js.map +1 -0
  382. package/dist/shell/footer/LanguageMenuItem.d.ts +8 -0
  383. package/dist/shell/footer/LanguageMenuItem.js +11 -0
  384. package/dist/shell/footer/LanguageMenuItem.js.map +1 -0
  385. package/dist/shell/footer/LeftLinks.d.ts +1 -0
  386. package/dist/shell/footer/LeftLinks.js +7 -0
  387. package/dist/shell/footer/LeftLinks.js.map +1 -0
  388. package/dist/shell/footer/LegalNotices.d.ts +1 -0
  389. package/dist/shell/footer/LegalNotices.js +10 -0
  390. package/dist/shell/footer/LegalNotices.js.map +1 -0
  391. package/dist/shell/footer/PoweredBy.d.ts +1 -0
  392. package/dist/shell/footer/PoweredBy.js +9 -0
  393. package/dist/shell/footer/PoweredBy.js.map +1 -0
  394. package/dist/shell/footer/RevealLinks.d.ts +1 -0
  395. package/dist/shell/footer/RevealLinks.js +16 -0
  396. package/dist/shell/footer/RevealLinks.js.map +1 -0
  397. package/dist/shell/footer/RightLinks.d.ts +1 -0
  398. package/dist/shell/footer/RightLinks.js +7 -0
  399. package/dist/shell/footer/RightLinks.js.map +1 -0
  400. package/dist/shell/footer/app.d.ts +3 -0
  401. package/dist/shell/footer/app.js +59 -0
  402. package/dist/shell/footer/app.js.map +1 -0
  403. package/dist/shell/footer/data/api.d.ts +1 -0
  404. package/dist/shell/footer/data/api.js +45 -0
  405. package/dist/shell/footer/data/api.js.map +1 -0
  406. package/dist/shell/footer/index.js +3 -0
  407. package/dist/shell/footer/index.js.map +1 -0
  408. package/dist/shell/header/AuthenticatedMenu.d.ts +5 -0
  409. package/dist/shell/header/AuthenticatedMenu.js +13 -0
  410. package/dist/shell/header/AuthenticatedMenu.js.map +1 -0
  411. package/dist/shell/header/Header.d.ts +1 -0
  412. package/dist/shell/header/Header.js +8 -0
  413. package/dist/shell/header/Header.js.map +1 -0
  414. package/dist/shell/header/anonymous-menu/AnonymousMenu.d.ts +5 -0
  415. package/dist/shell/header/anonymous-menu/AnonymousMenu.js +7 -0
  416. package/dist/shell/header/anonymous-menu/AnonymousMenu.js.map +1 -0
  417. package/dist/shell/header/anonymous-menu/LoginButton.d.ts +3 -0
  418. package/dist/shell/header/anonymous-menu/LoginButton.js +22 -0
  419. package/dist/shell/header/anonymous-menu/LoginButton.js.map +1 -0
  420. package/dist/shell/header/anonymous-menu/RegisterButton.d.ts +3 -0
  421. package/dist/shell/header/anonymous-menu/RegisterButton.js +22 -0
  422. package/dist/shell/header/anonymous-menu/RegisterButton.js.map +1 -0
  423. package/dist/shell/header/app.d.ts +3 -0
  424. package/dist/shell/header/app.js +119 -0
  425. package/dist/shell/header/app.js.map +1 -0
  426. package/dist/shell/header/desktop/DesktopLayout.d.ts +1 -0
  427. package/dist/shell/header/desktop/DesktopLayout.js +9 -0
  428. package/dist/shell/header/desktop/DesktopLayout.js.map +1 -0
  429. package/dist/shell/header/desktop/PrimaryNavLinks.d.ts +1 -0
  430. package/dist/shell/header/desktop/PrimaryNavLinks.js +7 -0
  431. package/dist/shell/header/desktop/PrimaryNavLinks.js.map +1 -0
  432. package/dist/shell/header/desktop/SecondaryNavLinks.d.ts +1 -0
  433. package/dist/shell/header/desktop/SecondaryNavLinks.js +7 -0
  434. package/dist/shell/header/desktop/SecondaryNavLinks.js.map +1 -0
  435. package/dist/shell/header/index.js +3 -0
  436. package/dist/shell/header/index.js.map +1 -0
  437. package/dist/shell/header/mobile/MobileLayout.d.ts +1 -0
  438. package/dist/shell/header/mobile/MobileLayout.js +17 -0
  439. package/dist/shell/header/mobile/MobileLayout.js.map +1 -0
  440. package/dist/shell/header/mobile/MobileNavLinks.d.ts +1 -0
  441. package/dist/shell/header/mobile/MobileNavLinks.js +7 -0
  442. package/dist/shell/header/mobile/MobileNavLinks.js.map +1 -0
  443. package/dist/shell/i18n/index.d.ts +25 -0
  444. package/dist/shell/i18n/index.js +26 -0
  445. package/dist/shell/i18n/index.js.map +1 -0
  446. package/dist/shell/index.js +8 -0
  447. package/dist/shell/index.js.map +1 -0
  448. package/dist/shell/jest.config.d.ts +16 -0
  449. package/{tools/dist/jest → dist/shell}/jest.config.js +13 -11
  450. package/dist/shell/jest.config.js.map +1 -0
  451. package/dist/shell/menus/LinkMenuItem.d.ts +9 -0
  452. package/dist/shell/menus/LinkMenuItem.js +36 -0
  453. package/dist/shell/menus/LinkMenuItem.js.map +1 -0
  454. package/dist/shell/menus/NavDropdownMenuSlot.d.ts +7 -0
  455. package/dist/shell/menus/NavDropdownMenuSlot.js +14 -0
  456. package/dist/shell/menus/NavDropdownMenuSlot.js.map +1 -0
  457. package/dist/shell/menus/ProfileLinkMenuItem.d.ts +8 -0
  458. package/dist/shell/menus/ProfileLinkMenuItem.js +16 -0
  459. package/dist/shell/menus/ProfileLinkMenuItem.js.map +1 -0
  460. package/dist/shell/menus/data/utils.d.ts +4 -0
  461. package/dist/shell/menus/data/utils.js +13 -0
  462. package/dist/shell/menus/data/utils.js.map +1 -0
  463. package/dist/shell/router/createRouter.d.ts +1 -0
  464. package/{shell/router/createRouter.ts → dist/shell/router/createRouter.js} +9 -11
  465. package/dist/shell/router/createRouter.js.map +1 -0
  466. package/dist/shell/router/getAppRoutes.d.ts +2 -0
  467. package/dist/shell/router/getAppRoutes.js +14 -0
  468. package/dist/shell/router/getAppRoutes.js.map +1 -0
  469. package/dist/shell/setupTest.d.ts +1 -0
  470. package/{shell → dist/shell}/setupTest.js +6 -7
  471. package/dist/shell/setupTest.js.map +1 -0
  472. package/dist/shell/site.config.dev.d.ts +4 -0
  473. package/dist/shell/site.config.dev.js +43 -0
  474. package/dist/shell/site.config.dev.js.map +1 -0
  475. package/dist/shell/site.d.ts +1 -0
  476. package/dist/shell/site.js +35 -0
  477. package/dist/shell/site.js.map +1 -0
  478. package/dist/tools/babel/babel.config.d.ts +12 -0
  479. package/dist/tools/cli/commands/serve.d.ts +1 -0
  480. package/dist/tools/cli/intl-imports.d.ts +7 -0
  481. package/dist/tools/cli/intl-imports.test.d.ts +1 -0
  482. package/dist/tools/cli/openedx.d.ts +2 -0
  483. package/{tools/dist → dist/tools}/cli/openedx.js +1 -1
  484. package/dist/tools/cli/transifex-utils.d.ts +2 -0
  485. package/dist/tools/cli/utils/ensureConfigFilenameOption.d.ts +2 -0
  486. package/dist/tools/cli/utils/formatter.d.ts +1 -0
  487. package/dist/tools/cli/utils/getResolvedConfigPath.d.ts +2 -0
  488. package/dist/tools/cli/utils/prettyPrintTitle.d.ts +1 -0
  489. package/dist/tools/cli/utils/printUsage.d.ts +1 -0
  490. package/dist/tools/config-helpers/createConfig.d.ts +2 -0
  491. package/dist/tools/config-helpers/createLintConfig.d.ts +2 -0
  492. package/dist/tools/config-helpers/getBaseConfig.d.ts +2 -0
  493. package/dist/tools/defaultConfigPaths.d.ts +8 -0
  494. package/dist/tools/eslint/base.eslint.config.d.ts +3 -0
  495. package/dist/tools/eslint.config.d.ts +3 -0
  496. package/dist/tools/index.d.ts +3 -0
  497. package/dist/tools/jest/jest.config.d.ts +15 -0
  498. package/dist/tools/jest.config.d.ts +8 -0
  499. package/dist/tools/types.d.ts +18 -0
  500. package/{tools/dist → dist/tools}/typescript/tsconfig.json +2 -1
  501. package/dist/tools/webpack/common-config/all/getCodeRules.d.ts +2 -0
  502. package/dist/tools/webpack/common-config/all/getFileLoaderRules.d.ts +11 -0
  503. package/dist/tools/webpack/common-config/all/getImageMinimizer.d.ts +5 -0
  504. package/dist/tools/webpack/common-config/all/getStylesheetRule.d.ts +8 -0
  505. package/dist/tools/webpack/common-config/dev/getDevServer.d.ts +2 -0
  506. package/dist/tools/webpack/common-config/index.d.ts +6 -0
  507. package/dist/tools/webpack/common-config/site/getHtmlWebpackPlugin.d.ts +2 -0
  508. package/dist/tools/webpack/plugins/html-webpack-new-relic-plugin/HtmlWebpackNewRelicPlugin.d.ts +18 -0
  509. package/dist/tools/webpack/plugins/html-webpack-new-relic-plugin/index.d.ts +2 -0
  510. package/dist/tools/webpack/plugins/html-webpack-new-relic-plugin/test/HtmlWebpackNewRelicPlugin.test.d.ts +1 -0
  511. package/dist/tools/webpack/plugins/html-webpack-new-relic-plugin/test/fixtures/entry.d.ts +1 -0
  512. package/dist/tools/webpack/utils/getPublicPath.d.ts +1 -0
  513. package/dist/tools/webpack/utils/getResolvedSiteConfigPath.d.ts +1 -0
  514. package/dist/tools/webpack/webpack.config.build.d.ts +3 -0
  515. package/{config → dist/tools}/webpack/webpack.config.build.js +8 -5
  516. package/dist/tools/webpack/webpack.config.dev.d.ts +3 -0
  517. package/{tools/dist → dist/tools}/webpack/webpack.config.dev.js +8 -5
  518. package/dist/tools/webpack/webpack.config.dev.shell.d.ts +3 -0
  519. package/{tools/dist → dist/tools}/webpack/webpack.config.dev.shell.js +0 -4
  520. package/dist/types.d.ts +82 -0
  521. package/dist/types.js +7 -0
  522. package/dist/types.js.map +1 -0
  523. package/package.json +21 -16
  524. package/config/tsconfig.json +0 -32
  525. package/config/webpack/common-config/all/getIgnoreWarnings.js +0 -14
  526. package/config/webpack/utils/getLocalAliases.js +0 -65
  527. package/config/webpack/webpack.config.dev.js +0 -70
  528. package/config/webpack/webpack.config.dev.shell.js +0 -104
  529. package/runtime/__mocks__/file.js +0 -1
  530. package/runtime/__mocks__/svg.js +0 -1
  531. package/runtime/__mocks__/universal-cookie.js +0 -6
  532. package/runtime/analytics/MockAnalyticsService.js +0 -71
  533. package/runtime/analytics/SegmentAnalyticsService.js +0 -243
  534. package/runtime/analytics/index.ts +0 -12
  535. package/runtime/analytics/interface.test.js +0 -242
  536. package/runtime/auth/AxiosCsrfTokenService.js +0 -60
  537. package/runtime/auth/AxiosJwtAuthService.js +0 -363
  538. package/runtime/auth/AxiosJwtAuthService.test.jsx +0 -1076
  539. package/runtime/auth/AxiosJwtTokenService.js +0 -134
  540. package/runtime/auth/LocalForageCache.js +0 -76
  541. package/runtime/auth/MockAuthService.js +0 -278
  542. package/runtime/auth/index.ts +0 -19
  543. package/runtime/auth/interceptors/createCsrfTokenProviderInterceptor.js +0 -36
  544. package/runtime/auth/interceptors/createJwtTokenProviderInterceptor.js +0 -37
  545. package/runtime/auth/interceptors/createProcessAxiosRequestErrorInterceptor.js +0 -20
  546. package/runtime/auth/interceptors/createRetryInterceptor.js +0 -74
  547. package/runtime/auth/interceptors/createRetryInterceptor.test.js +0 -23
  548. package/runtime/auth/utils.js +0 -105
  549. package/runtime/config/getExternalLinkUrl.test.js +0 -76
  550. package/runtime/i18n/injectIntlWithShim.jsx +0 -48
  551. package/runtime/i18n/lib.test.js +0 -230
  552. package/runtime/i18n/lib.ts +0 -272
  553. package/runtime/index.ts +0 -139
  554. package/runtime/initialize.async.function.config.test.js +0 -43
  555. package/runtime/initialize.const.config.test.js +0 -41
  556. package/runtime/initialize.function.config.test.js +0 -41
  557. package/runtime/initialize.js +0 -352
  558. package/runtime/initialize.test.js +0 -356
  559. package/runtime/jest.config.js +0 -33
  560. package/runtime/logging/MockLoggingService.js +0 -31
  561. package/runtime/logging/NewRelicLoggingService.js +0 -184
  562. package/runtime/logging/NewRelicLoggingService.test.js +0 -214
  563. package/runtime/logging/types.ts +0 -4
  564. package/runtime/react/AuthenticatedPageRoute.test.jsx +0 -135
  565. package/runtime/react/CombinedAppProvider.tsx +0 -46
  566. package/runtime/react/CurrentAppProvider.tsx +0 -46
  567. package/runtime/react/Divider.tsx +0 -5
  568. package/runtime/react/ErrorBoundary.jsx +0 -47
  569. package/runtime/react/ErrorBoundary.test.jsx +0 -83
  570. package/runtime/react/ErrorPage.jsx +0 -72
  571. package/runtime/react/SiteProvider.test.jsx +0 -66
  572. package/runtime/react/SiteProvider.tsx +0 -101
  573. package/runtime/react/hooks/theme/useTheme.test.ts +0 -221
  574. package/runtime/react/hooks/theme/useTheme.ts +0 -179
  575. package/runtime/react/hooks/theme/useThemeConfig.test.ts +0 -107
  576. package/runtime/react/hooks/theme/useThemeCore.test.ts +0 -65
  577. package/runtime/react/hooks/theme/useThemeCore.ts +0 -52
  578. package/runtime/react/hooks/theme/useThemeVariants.test.ts +0 -97
  579. package/runtime/react/hooks/theme/useThemeVariants.ts +0 -116
  580. package/runtime/react/hooks/theme/useTrackColorSchemeChoice.test.ts +0 -54
  581. package/runtime/react/hooks/theme/useTrackColorSchemeChoice.ts +0 -30
  582. package/runtime/react/hooks/useActiveRouteRoleWatcher.ts +0 -31
  583. package/runtime/react/hooks/useAuthenticatedUser.test.tsx +0 -41
  584. package/runtime/react/hooks/useSiteConfig.test.tsx +0 -13
  585. package/runtime/react/reducers.ts +0 -40
  586. package/runtime/routing/utils.test.ts +0 -7
  587. package/runtime/routing/utils.ts +0 -34
  588. package/runtime/scripts/GoogleAnalyticsLoader.test.ts +0 -77
  589. package/runtime/scripts/GoogleAnalyticsLoader.ts +0 -59
  590. package/runtime/site.config.test.tsx +0 -33
  591. package/runtime/slots/Slot.test.tsx +0 -40
  592. package/runtime/slots/Slot.tsx +0 -32
  593. package/runtime/slots/SlotContext.tsx +0 -8
  594. package/runtime/slots/hooks.ts +0 -35
  595. package/runtime/slots/layout/DefaultSlotLayout.test.tsx +0 -31
  596. package/runtime/slots/layout/DefaultSlotLayout.tsx +0 -9
  597. package/runtime/slots/layout/hooks.test.tsx +0 -178
  598. package/runtime/slots/layout/hooks.ts +0 -65
  599. package/runtime/slots/layout/utils.test.ts +0 -67
  600. package/runtime/slots/layout/utils.ts +0 -14
  601. package/runtime/slots/utils.test.ts +0 -64
  602. package/runtime/slots/utils.ts +0 -78
  603. package/runtime/slots/widget/WidgetContext.tsx +0 -9
  604. package/runtime/slots/widget/WidgetProvider.tsx +0 -30
  605. package/runtime/slots/widget/hooks.ts +0 -105
  606. package/runtime/slots/widget/iframe/IFrameContentWrapper.messages.tsx +0 -16
  607. package/runtime/slots/widget/iframe/IFrameContentWrapper.tsx +0 -84
  608. package/runtime/slots/widget/iframe/IFrameWidget.tsx +0 -59
  609. package/runtime/slots/widget/iframe/hooks.ts +0 -179
  610. package/runtime/slots/widget/utils.tsx +0 -201
  611. package/runtime/testing/initializeMockApp.test.ts +0 -66
  612. package/runtime/testing/mockMessages.ts +0 -23
  613. package/runtime/utils.test.js +0 -116
  614. package/shell/DefaultLayout.tsx +0 -18
  615. package/shell/DefaultMain.tsx +0 -7
  616. package/shell/Logo.test.tsx +0 -32
  617. package/shell/Logo.tsx +0 -28
  618. package/shell/Shell.messages.ts +0 -61
  619. package/shell/Shell.tsx +0 -18
  620. package/shell/__mocks__/file.js +0 -1
  621. package/shell/__mocks__/svg.js +0 -1
  622. package/shell/__mocks__/universal-cookie.js +0 -6
  623. package/shell/app.ts +0 -38
  624. package/shell/dev/devFooter/app.tsx +0 -43
  625. package/shell/dev/devHeader/BarContext.tsx +0 -13
  626. package/shell/dev/devHeader/BarLink.tsx +0 -16
  627. package/shell/dev/devHeader/BarProvider.tsx +0 -25
  628. package/shell/dev/devHeader/CoursesLink.tsx +0 -16
  629. package/shell/dev/devHeader/FooContext.tsx +0 -13
  630. package/shell/dev/devHeader/FooLink.tsx +0 -16
  631. package/shell/dev/devHeader/FooProvider.tsx +0 -25
  632. package/shell/dev/devHeader/app.tsx +0 -53
  633. package/shell/dev/devHeader/providers.tsx +0 -11
  634. package/shell/dev/devHome/HomePage.tsx +0 -28
  635. package/shell/dev/devHome/app.ts +0 -18
  636. package/shell/dev/devHome/i18n/index.ts +0 -27
  637. package/shell/dev/devHome/messages.ts +0 -11
  638. package/shell/dev/devUser/app.tsx +0 -24
  639. package/shell/dev/slotShowcase/HorizontalSlotLayout.tsx +0 -11
  640. package/shell/dev/slotShowcase/LayoutWithOptions.tsx +0 -17
  641. package/shell/dev/slotShowcase/SlotShowcasePage.tsx +0 -66
  642. package/shell/dev/slotShowcase/WidgetWithOptions.tsx +0 -11
  643. package/shell/dev/slotShowcase/app.tsx +0 -373
  644. package/shell/footer/CenterLinks.tsx +0 -11
  645. package/shell/footer/CopyrightNotice.tsx +0 -36
  646. package/shell/footer/Footer.tsx +0 -34
  647. package/shell/footer/LabeledLinkColumn.tsx +0 -19
  648. package/shell/footer/LanguageMenu.tsx +0 -35
  649. package/shell/footer/LanguageMenuItem.tsx +0 -23
  650. package/shell/footer/LeftLinks.tsx +0 -11
  651. package/shell/footer/LegalNotices.tsx +0 -17
  652. package/shell/footer/PoweredBy.tsx +0 -17
  653. package/shell/footer/RevealLinks.tsx +0 -43
  654. package/shell/footer/RightLinks.tsx +0 -11
  655. package/shell/footer/app.tsx +0 -73
  656. package/shell/footer/data/api.ts +0 -48
  657. package/shell/header/AuthenticatedMenu.tsx +0 -32
  658. package/shell/header/Header.tsx +0 -17
  659. package/shell/header/anonymous-menu/AnonymousMenu.tsx +0 -14
  660. package/shell/header/anonymous-menu/LoginButton.tsx +0 -14
  661. package/shell/header/anonymous-menu/RegisterButton.tsx +0 -15
  662. package/shell/header/app.tsx +0 -142
  663. package/shell/header/desktop/DesktopLayout.tsx +0 -22
  664. package/shell/header/desktop/PrimaryNavLinks.tsx +0 -10
  665. package/shell/header/desktop/SecondaryNavLinks.tsx +0 -10
  666. package/shell/header/mobile/MobileLayout.tsx +0 -47
  667. package/shell/header/mobile/MobileNavLinks.tsx +0 -10
  668. package/shell/i18n/index.ts +0 -25
  669. package/shell/jest.config.js +0 -31
  670. package/shell/menus/LinkMenuItem.tsx +0 -64
  671. package/shell/menus/NavDropdownMenuSlot.tsx +0 -29
  672. package/shell/menus/ProfileLinkMenuItem.tsx +0 -33
  673. package/shell/menus/data/utils.ts +0 -19
  674. package/shell/public/index.html +0 -10
  675. package/shell/router/createRouter.test.tsx +0 -50
  676. package/shell/router/getAppRoutes.test.tsx +0 -59
  677. package/shell/router/getAppRoutes.ts +0 -21
  678. package/shell/site.config.dev.tsx +0 -49
  679. package/shell/site.config.test.tsx +0 -16
  680. package/shell/site.tsx +0 -41
  681. package/tools/dist/babel/babel.config.js +0 -28
  682. package/tools/dist/config-helpers/createConfig.js +0 -13
  683. package/tools/dist/config-helpers/createLintConfig.js +0 -16
  684. package/tools/dist/config-helpers/getBaseConfig.js +0 -12
  685. package/tools/dist/defaultConfigPaths.js +0 -35
  686. package/tools/dist/eslint/base.eslint.config.js +0 -113
  687. package/tools/dist/index.js +0 -12
  688. package/tools/dist/types.js +0 -23
  689. package/tools/dist/webpack/common-config/all/getCodeRules.js +0 -52
  690. package/tools/dist/webpack/common-config/all/getFileLoaderRules.js +0 -26
  691. package/tools/dist/webpack/common-config/all/getIgnoreWarnings.js +0 -14
  692. package/tools/dist/webpack/common-config/all/getImageMinimizer.js +0 -25
  693. package/tools/dist/webpack/common-config/all/getStylesheetRule.js +0 -112
  694. package/tools/dist/webpack/common-config/dev/getDevServer.js +0 -38
  695. package/tools/dist/webpack/common-config/index.js +0 -18
  696. package/tools/dist/webpack/common-config/site/getHtmlWebpackPlugin.js +0 -16
  697. package/tools/dist/webpack/plugins/html-webpack-new-relic-plugin/HtmlWebpackNewRelicPlugin.js +0 -91
  698. package/tools/dist/webpack/plugins/html-webpack-new-relic-plugin/index.js +0 -7
  699. package/tools/dist/webpack/plugins/html-webpack-new-relic-plugin/test/HtmlWebpackNewRelicPlugin.test.js +0 -66
  700. package/tools/dist/webpack/plugins/html-webpack-new-relic-plugin/test/fixtures/entry.js +0 -3
  701. package/tools/dist/webpack/utils/getLocalAliases.js +0 -65
  702. package/tools/dist/webpack/utils/getPublicPath.js +0 -6
  703. package/tools/dist/webpack/utils/getResolvedSiteConfigPath.js +0 -32
  704. package/tools/dist/webpack/webpack.config.build.js +0 -70
  705. package/types.ts +0 -119
  706. /package/{runtime/react/hooks/theme/index.ts → dist/runtime/react/hooks/theme/index.d.ts} +0 -0
  707. /package/{runtime/routing/index.ts → dist/runtime/routing/index.d.ts} +0 -0
  708. /package/{runtime/scripts/index.ts → dist/runtime/scripts/index.d.ts} +0 -0
  709. /package/{runtime/slots/index.ts → dist/runtime/slots/index.d.ts} +0 -0
  710. /package/{runtime/slots/layout/index.ts → dist/runtime/slots/layout/index.d.ts} +0 -0
  711. /package/{runtime/slots/widget/index.ts → dist/runtime/slots/widget/index.d.ts} +0 -0
  712. /package/{shell → dist/shell}/app.scss +0 -0
  713. /package/{shell/dev/devFooter/index.ts → dist/shell/dev/devFooter/index.d.ts} +0 -0
  714. /package/{shell/dev/devHeader/index.ts → dist/shell/dev/devHeader/index.d.ts} +0 -0
  715. /package/{shell/dev/devHome/index.ts → dist/shell/dev/devHome/index.d.ts} +0 -0
  716. /package/{shell/dev/devUser/index.ts → dist/shell/dev/devUser/index.d.ts} +0 -0
  717. /package/{shell/dev/index.ts → dist/shell/dev/index.d.ts} +0 -0
  718. /package/{shell/dev/slotShowcase/index.ts → dist/shell/dev/slotShowcase/index.d.ts} +0 -0
  719. /package/{shell/footer/index.ts → dist/shell/footer/index.d.ts} +0 -0
  720. /package/{shell/header/index.ts → dist/shell/header/index.d.ts} +0 -0
  721. /package/{shell/index.ts → dist/shell/index.d.ts} +0 -0
  722. /package/{config → dist/tools}/babel/babel.config.js +0 -0
  723. /package/{tools/dist → dist/tools}/cli/commands/serve.js +0 -0
  724. /package/{tools/dist → dist/tools}/cli/intl-imports.js +0 -0
  725. /package/{tools/dist → dist/tools}/cli/intl-imports.test.js +0 -0
  726. /package/{tools/dist → dist/tools}/cli/transifex-utils.js +0 -0
  727. /package/{tools/dist → dist/tools}/cli/utils/ensureConfigFilenameOption.js +0 -0
  728. /package/{tools/dist → dist/tools}/cli/utils/formatter.js +0 -0
  729. /package/{tools/dist → dist/tools}/cli/utils/getResolvedConfigPath.js +0 -0
  730. /package/{tools/dist → dist/tools}/cli/utils/prettyPrintTitle.js +0 -0
  731. /package/{tools/dist → dist/tools}/cli/utils/printUsage.js +0 -0
  732. /package/{config → dist/tools}/config-helpers/createConfig.js +0 -0
  733. /package/{config → dist/tools}/config-helpers/createLintConfig.js +0 -0
  734. /package/{config → dist/tools}/config-helpers/getBaseConfig.js +0 -0
  735. /package/{config → dist/tools}/defaultConfigPaths.js +0 -0
  736. /package/{config → dist/tools}/eslint/base.eslint.config.js +0 -0
  737. /package/{tools/dist → dist/tools}/eslint.config.js +0 -0
  738. /package/{config → dist/tools}/index.js +0 -0
  739. /package/{config → dist/tools}/jest/jest.config.js +0 -0
  740. /package/{tools/dist → dist/tools}/jest.config.js +0 -0
  741. /package/{config → dist/tools}/types.js +0 -0
  742. /package/{config → dist/tools}/webpack/common-config/all/getCodeRules.js +0 -0
  743. /package/{config → dist/tools}/webpack/common-config/all/getFileLoaderRules.js +0 -0
  744. /package/{config → dist/tools}/webpack/common-config/all/getImageMinimizer.js +0 -0
  745. /package/{config → dist/tools}/webpack/common-config/all/getStylesheetRule.js +0 -0
  746. /package/{config → dist/tools}/webpack/common-config/dev/getDevServer.js +0 -0
  747. /package/{config → dist/tools}/webpack/common-config/index.js +0 -0
  748. /package/{config → dist/tools}/webpack/common-config/site/getHtmlWebpackPlugin.js +0 -0
  749. /package/{config → dist/tools}/webpack/plugins/html-webpack-new-relic-plugin/HtmlWebpackNewRelicPlugin.js +0 -0
  750. /package/{config → dist/tools}/webpack/plugins/html-webpack-new-relic-plugin/index.js +0 -0
  751. /package/{config → dist/tools}/webpack/plugins/html-webpack-new-relic-plugin/test/HtmlWebpackNewRelicPlugin.test.js +0 -0
  752. /package/{config → dist/tools}/webpack/plugins/html-webpack-new-relic-plugin/test/fixtures/entry.js +0 -0
  753. /package/{config → dist/tools}/webpack/utils/getPublicPath.js +0 -0
  754. /package/{config → dist/tools}/webpack/utils/getResolvedSiteConfigPath.js +0 -0
@@ -1,6 +1,3 @@
1
1
  export { default as IFrameContentWrapper } from './IFrameContentWrapper';
2
2
  export { default as IFrameWidget } from './IFrameWidget';
3
- export type {
4
- MessageEventCallback,
5
- MessageEventCallbackParams
6
- } from './types';
3
+ export type { MessageEventCallback, MessageEventCallbackParams } from './types';
@@ -0,0 +1,3 @@
1
+ export { default as IFrameContentWrapper } from './IFrameContentWrapper';
2
+ export { default as IFrameWidget } from './IFrameWidget';
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../runtime/slots/widget/iframe/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AACzE,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,gBAAgB,CAAC","sourcesContent":["export { default as IFrameContentWrapper } from './IFrameContentWrapper';\nexport { default as IFrameWidget } from './IFrameWidget';\nexport type {\n MessageEventCallback,\n MessageEventCallbackParams\n} from './types';\n"]}
@@ -1,7 +1,5 @@
1
1
  export interface MessageEventCallbackParams {
2
- type: string,
3
- payload: any,
2
+ type: string;
3
+ payload: any;
4
4
  }
5
-
6
5
  export type MessageEventCallback = ({ type, payload }: MessageEventCallbackParams) => void;
7
- ;
@@ -0,0 +1,3 @@
1
+ ;
2
+ export {};
3
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../../runtime/slots/widget/iframe/types.ts"],"names":[],"mappings":"AAMA,CAAC","sourcesContent":["export interface MessageEventCallbackParams {\n type: string,\n payload: any,\n}\n\nexport type MessageEventCallback = ({ type, payload }: MessageEventCallbackParams) => void;\n;\n"]}
@@ -0,0 +1,6 @@
1
+ export * from './hooks';
2
+ export * from './iframe';
3
+ export { WidgetOperationTypes } from './types';
4
+ export * from './utils';
5
+ export { default as WidgetContext } from './WidgetContext';
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../runtime/slots/widget/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC;AAEzB,OAAO,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC;AAC/C,cAAc,SAAS,CAAC;AACxB,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,iBAAiB,CAAC","sourcesContent":["export * from './hooks';\nexport * from './iframe';\nexport type * from './types';\nexport { WidgetOperationTypes } from './types';\nexport * from './utils';\nexport { default as WidgetContext } from './WidgetContext';\n"]}
@@ -7,128 +7,94 @@
7
7
  *
8
8
  * Relative widget operations depend on a relationship to some other list element, such as "insert before" and "insert after". Some affect those elements, some add something to the list near them.
9
9
  */
10
-
11
10
  import { ReactNode } from 'react';
12
11
  import { BaseSlotOperation } from '../types';
13
-
14
- export enum WidgetOperationTypes {
15
- /**
16
- * Adds a widget to the end of the slot's list of widgets.
17
- */
18
- APPEND = 'widgetAppend',
19
-
20
- /**
21
- * Adds a widget to the beginning of the slot's list of widgets.
22
- */
23
- PREPEND = 'widgetPrepend',
24
-
25
- /**
26
- * Adds a widget after the specified widget ID. Multiple "insert after" operations on the same widget ID occur in the order they were declared.
27
- */
28
- INSERT_AFTER = 'widgetInsertAfter',
29
-
30
- /**
31
- * Adds a widget before the specified widget ID. Multiple "insert after" operations on the same widget ID occur in the order they were declared.
32
- */
33
- INSERT_BEFORE = 'widgetInsertBefore',
34
-
35
- /**
36
- * Removes the specified widget ID and adds a widget in its place. Multiple "replace" operations on the same widget ID occur in the order they were declared, and only the first will succeed unless the new widget's ID is the same as the one that was removed.
37
- */
38
- REPLACE = 'widgetReplace',
39
-
40
- /**
41
- * Removes the specified widget ID from the slot's list of widgets. Subsequent relative widget operations on that widget ID will not be applied.
42
- */
43
- REMOVE = 'widgetRemove',
44
-
45
- /**
46
- * Provides options to the specified widget ID. Multiple "options" operations on the same widget ID will merge with and override any duplicate properties in the options object - last one in wins.
47
- */
48
- OPTIONS = 'widgetOptions',
12
+ export declare enum WidgetOperationTypes {
13
+ /**
14
+ * Adds a widget to the end of the slot's list of widgets.
15
+ */
16
+ APPEND = "widgetAppend",
17
+ /**
18
+ * Adds a widget to the beginning of the slot's list of widgets.
19
+ */
20
+ PREPEND = "widgetPrepend",
21
+ /**
22
+ * Adds a widget after the specified widget ID. Multiple "insert after" operations on the same widget ID occur in the order they were declared.
23
+ */
24
+ INSERT_AFTER = "widgetInsertAfter",
25
+ /**
26
+ * Adds a widget before the specified widget ID. Multiple "insert after" operations on the same widget ID occur in the order they were declared.
27
+ */
28
+ INSERT_BEFORE = "widgetInsertBefore",
29
+ /**
30
+ * Removes the specified widget ID and adds a widget in its place. Multiple "replace" operations on the same widget ID occur in the order they were declared, and only the first will succeed unless the new widget's ID is the same as the one that was removed.
31
+ */
32
+ REPLACE = "widgetReplace",
33
+ /**
34
+ * Removes the specified widget ID from the slot's list of widgets. Subsequent relative widget operations on that widget ID will not be applied.
35
+ */
36
+ REMOVE = "widgetRemove",
37
+ /**
38
+ * Provides options to the specified widget ID. Multiple "options" operations on the same widget ID will merge with and override any duplicate properties in the options object - last one in wins.
39
+ */
40
+ OPTIONS = "widgetOptions"
49
41
  }
50
-
51
42
  export type AbsoluteWidgetOperationTypes = WidgetOperationTypes.APPEND | WidgetOperationTypes.PREPEND;
52
-
53
43
  export type RelativeWidgetOperationTypes = WidgetOperationTypes.INSERT_AFTER | WidgetOperationTypes.INSERT_BEFORE | WidgetOperationTypes.REPLACE | WidgetOperationTypes.OPTIONS;
54
-
55
44
  export interface BaseWidgetOperation extends BaseSlotOperation {
56
- op: WidgetOperationTypes,
45
+ op: WidgetOperationTypes;
57
46
  }
58
-
59
- // Widget renderer props
60
-
61
47
  export interface WidgetComponentProps {
62
- component: React.ComponentType,
48
+ component: React.ComponentType;
63
49
  }
64
-
65
50
  export interface WidgetElementProps {
66
- element: ReactNode,
51
+ element: ReactNode;
67
52
  }
68
-
69
53
  export interface WidgetIFrameProps {
70
- url: string,
71
- title: string,
54
+ url: string;
55
+ title: string;
72
56
  }
73
-
74
- export type WidgetRendererProps = (
75
- WidgetComponentProps | WidgetElementProps | WidgetIFrameProps
76
- );
77
-
57
+ export type WidgetRendererProps = (WidgetComponentProps | WidgetElementProps | WidgetIFrameProps);
78
58
  export interface WidgetIdentityProps {
79
- id: string,
80
- role?: string,
59
+ id: string;
60
+ role?: string;
81
61
  }
82
-
83
62
  export interface WidgetRelationshipProps {
84
- relatedId: string,
63
+ relatedId: string;
85
64
  }
86
-
87
- // Concrete UI Widget Operations
88
-
89
65
  export type WidgetAppendOperation = BaseWidgetOperation & WidgetIdentityProps & WidgetRendererProps & {
90
- op: WidgetOperationTypes.APPEND,
66
+ op: WidgetOperationTypes.APPEND;
91
67
  };
92
-
93
68
  export type WidgetPrependOperation = BaseWidgetOperation & WidgetIdentityProps & WidgetRendererProps & {
94
- op: WidgetOperationTypes.PREPEND,
69
+ op: WidgetOperationTypes.PREPEND;
95
70
  };
96
-
97
71
  export type WidgetInsertAfterOperation = BaseWidgetOperation & WidgetIdentityProps & WidgetRendererProps & WidgetRelationshipProps & {
98
- op: WidgetOperationTypes.INSERT_AFTER,
72
+ op: WidgetOperationTypes.INSERT_AFTER;
99
73
  };
100
-
101
74
  export type WidgetInsertBeforeOperation = BaseWidgetOperation & WidgetIdentityProps & WidgetRendererProps & WidgetRelationshipProps & {
102
- op: WidgetOperationTypes.INSERT_BEFORE,
75
+ op: WidgetOperationTypes.INSERT_BEFORE;
103
76
  };
104
-
105
77
  export type WidgetRemoveOperation = BaseWidgetOperation & WidgetRelationshipProps & {
106
- op: WidgetOperationTypes.REMOVE,
78
+ op: WidgetOperationTypes.REMOVE;
107
79
  };
108
-
109
80
  export type WidgetOptionsOperation = BaseWidgetOperation & WidgetRelationshipProps & {
110
- op: WidgetOperationTypes.OPTIONS,
111
- options: Record<string, unknown>,
81
+ op: WidgetOperationTypes.OPTIONS;
82
+ options: Record<string, unknown>;
83
+ };
84
+ export type WidgetReplaceOperation = BaseWidgetOperation & WidgetIdentityProps & WidgetRendererProps & WidgetRelationshipProps & {
85
+ op: WidgetOperationTypes.REPLACE;
112
86
  };
113
-
114
- export type WidgetReplaceOperation = BaseWidgetOperation & WidgetIdentityProps & WidgetRendererProps & WidgetRelationshipProps & { op: WidgetOperationTypes.REPLACE };
115
-
116
87
  export type WidgetAbsoluteOperation = WidgetAppendOperation | WidgetPrependOperation;
117
-
118
88
  export type WidgetRelativeRendererOperation = WidgetInsertAfterOperation | WidgetInsertBeforeOperation | WidgetReplaceOperation;
119
-
120
89
  export type WidgetRelativeOperation = WidgetRelativeRendererOperation | WidgetRemoveOperation | WidgetOptionsOperation;
121
-
122
90
  export type WidgetRendererOperation = WidgetAbsoluteOperation | WidgetRelativeRendererOperation;
123
-
124
91
  export type WidgetOperation = WidgetAbsoluteOperation | WidgetRelativeOperation;
125
-
126
92
  /**
127
93
  * An identified widget is a simple data structure to associate an ID with a ReactNode so we can
128
94
  * apply widget operations to our list of widgets. It helps us find a ReactNode with a particular
129
95
  * ID for relative widget operations.
130
96
  */
131
97
  export interface IdentifiedWidget {
132
- id: string,
133
- node: ReactNode,
98
+ id: string;
99
+ node: ReactNode;
134
100
  }
@@ -0,0 +1,41 @@
1
+ /**
2
+ * Base UI Widget Operations
3
+ *
4
+ * "Widget" operations are a sub-type of UI operations which allow manipulation of the list of widgets (UI components) loaded into the slot. Widget operations are divided further into two sub-types: absolute and relative.
5
+ *
6
+ * Absolute widget operations allow simple list operations like appending and prepending which don't depend on any other list elements.
7
+ *
8
+ * Relative widget operations depend on a relationship to some other list element, such as "insert before" and "insert after". Some affect those elements, some add something to the list near them.
9
+ */
10
+ export var WidgetOperationTypes;
11
+ (function (WidgetOperationTypes) {
12
+ /**
13
+ * Adds a widget to the end of the slot's list of widgets.
14
+ */
15
+ WidgetOperationTypes["APPEND"] = "widgetAppend";
16
+ /**
17
+ * Adds a widget to the beginning of the slot's list of widgets.
18
+ */
19
+ WidgetOperationTypes["PREPEND"] = "widgetPrepend";
20
+ /**
21
+ * Adds a widget after the specified widget ID. Multiple "insert after" operations on the same widget ID occur in the order they were declared.
22
+ */
23
+ WidgetOperationTypes["INSERT_AFTER"] = "widgetInsertAfter";
24
+ /**
25
+ * Adds a widget before the specified widget ID. Multiple "insert after" operations on the same widget ID occur in the order they were declared.
26
+ */
27
+ WidgetOperationTypes["INSERT_BEFORE"] = "widgetInsertBefore";
28
+ /**
29
+ * Removes the specified widget ID and adds a widget in its place. Multiple "replace" operations on the same widget ID occur in the order they were declared, and only the first will succeed unless the new widget's ID is the same as the one that was removed.
30
+ */
31
+ WidgetOperationTypes["REPLACE"] = "widgetReplace";
32
+ /**
33
+ * Removes the specified widget ID from the slot's list of widgets. Subsequent relative widget operations on that widget ID will not be applied.
34
+ */
35
+ WidgetOperationTypes["REMOVE"] = "widgetRemove";
36
+ /**
37
+ * Provides options to the specified widget ID. Multiple "options" operations on the same widget ID will merge with and override any duplicate properties in the options object - last one in wins.
38
+ */
39
+ WidgetOperationTypes["OPTIONS"] = "widgetOptions";
40
+ })(WidgetOperationTypes || (WidgetOperationTypes = {}));
41
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../runtime/slots/widget/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAKH,MAAM,CAAN,IAAY,oBAmCX;AAnCD,WAAY,oBAAoB;IAC9B;;OAEG;IACH,+CAAuB,CAAA;IAEvB;;OAEG;IACH,iDAAyB,CAAA;IAEzB;;OAEG;IACH,0DAAkC,CAAA;IAElC;;OAEG;IACH,4DAAoC,CAAA;IAEpC;;OAEG;IACH,iDAAyB,CAAA;IAEzB;;OAEG;IACH,+CAAuB,CAAA;IAEvB;;OAEG;IACH,iDAAyB,CAAA;AAC3B,CAAC,EAnCW,oBAAoB,KAApB,oBAAoB,QAmC/B","sourcesContent":["/**\n * Base UI Widget Operations\n *\n * \"Widget\" operations are a sub-type of UI operations which allow manipulation of the list of widgets (UI components) loaded into the slot. Widget operations are divided further into two sub-types: absolute and relative.\n *\n * Absolute widget operations allow simple list operations like appending and prepending which don't depend on any other list elements.\n *\n * Relative widget operations depend on a relationship to some other list element, such as \"insert before\" and \"insert after\". Some affect those elements, some add something to the list near them.\n */\n\nimport { ReactNode } from 'react';\nimport { BaseSlotOperation } from '../types';\n\nexport enum WidgetOperationTypes {\n /**\n * Adds a widget to the end of the slot's list of widgets.\n */\n APPEND = 'widgetAppend',\n\n /**\n * Adds a widget to the beginning of the slot's list of widgets.\n */\n PREPEND = 'widgetPrepend',\n\n /**\n * Adds a widget after the specified widget ID. Multiple \"insert after\" operations on the same widget ID occur in the order they were declared.\n */\n INSERT_AFTER = 'widgetInsertAfter',\n\n /**\n * Adds a widget before the specified widget ID. Multiple \"insert after\" operations on the same widget ID occur in the order they were declared.\n */\n INSERT_BEFORE = 'widgetInsertBefore',\n\n /**\n * Removes the specified widget ID and adds a widget in its place. Multiple \"replace\" operations on the same widget ID occur in the order they were declared, and only the first will succeed unless the new widget's ID is the same as the one that was removed.\n */\n REPLACE = 'widgetReplace',\n\n /**\n * Removes the specified widget ID from the slot's list of widgets. Subsequent relative widget operations on that widget ID will not be applied.\n */\n REMOVE = 'widgetRemove',\n\n /**\n * Provides options to the specified widget ID. Multiple \"options\" operations on the same widget ID will merge with and override any duplicate properties in the options object - last one in wins.\n */\n OPTIONS = 'widgetOptions',\n}\n\nexport type AbsoluteWidgetOperationTypes = WidgetOperationTypes.APPEND | WidgetOperationTypes.PREPEND;\n\nexport type RelativeWidgetOperationTypes = WidgetOperationTypes.INSERT_AFTER | WidgetOperationTypes.INSERT_BEFORE | WidgetOperationTypes.REPLACE | WidgetOperationTypes.OPTIONS;\n\nexport interface BaseWidgetOperation extends BaseSlotOperation {\n op: WidgetOperationTypes,\n}\n\n// Widget renderer props\n\nexport interface WidgetComponentProps {\n component: React.ComponentType,\n}\n\nexport interface WidgetElementProps {\n element: ReactNode,\n}\n\nexport interface WidgetIFrameProps {\n url: string,\n title: string,\n}\n\nexport type WidgetRendererProps = (\n WidgetComponentProps | WidgetElementProps | WidgetIFrameProps\n);\n\nexport interface WidgetIdentityProps {\n id: string,\n role?: string,\n}\n\nexport interface WidgetRelationshipProps {\n relatedId: string,\n}\n\n// Concrete UI Widget Operations\n\nexport type WidgetAppendOperation = BaseWidgetOperation & WidgetIdentityProps & WidgetRendererProps & {\n op: WidgetOperationTypes.APPEND,\n};\n\nexport type WidgetPrependOperation = BaseWidgetOperation & WidgetIdentityProps & WidgetRendererProps & {\n op: WidgetOperationTypes.PREPEND,\n};\n\nexport type WidgetInsertAfterOperation = BaseWidgetOperation & WidgetIdentityProps & WidgetRendererProps & WidgetRelationshipProps & {\n op: WidgetOperationTypes.INSERT_AFTER,\n};\n\nexport type WidgetInsertBeforeOperation = BaseWidgetOperation & WidgetIdentityProps & WidgetRendererProps & WidgetRelationshipProps & {\n op: WidgetOperationTypes.INSERT_BEFORE,\n};\n\nexport type WidgetRemoveOperation = BaseWidgetOperation & WidgetRelationshipProps & {\n op: WidgetOperationTypes.REMOVE,\n};\n\nexport type WidgetOptionsOperation = BaseWidgetOperation & WidgetRelationshipProps & {\n op: WidgetOperationTypes.OPTIONS,\n options: Record<string, unknown>,\n};\n\nexport type WidgetReplaceOperation = BaseWidgetOperation & WidgetIdentityProps & WidgetRendererProps & WidgetRelationshipProps & { op: WidgetOperationTypes.REPLACE };\n\nexport type WidgetAbsoluteOperation = WidgetAppendOperation | WidgetPrependOperation;\n\nexport type WidgetRelativeRendererOperation = WidgetInsertAfterOperation | WidgetInsertBeforeOperation | WidgetReplaceOperation;\n\nexport type WidgetRelativeOperation = WidgetRelativeRendererOperation | WidgetRemoveOperation | WidgetOptionsOperation;\n\nexport type WidgetRendererOperation = WidgetAbsoluteOperation | WidgetRelativeRendererOperation;\n\nexport type WidgetOperation = WidgetAbsoluteOperation | WidgetRelativeOperation;\n\n/**\n * An identified widget is a simple data structure to associate an ID with a ReactNode so we can\n * apply widget operations to our list of widgets. It helps us find a ReactNode with a particular\n * ID for relative widget operations.\n */\nexport interface IdentifiedWidget {\n id: string,\n node: ReactNode,\n}\n"]}
@@ -0,0 +1,22 @@
1
+ import { ReactNode } from 'react';
2
+ import { SlotOperation } from '../types';
3
+ import { WidgetAbsoluteOperation, WidgetAppendOperation, WidgetElementProps, WidgetIdentityProps, WidgetInsertAfterOperation, WidgetInsertBeforeOperation, WidgetOperation, WidgetOperationTypes, WidgetOptionsOperation, WidgetPrependOperation, WidgetRemoveOperation, WidgetRendererOperation, WidgetReplaceOperation } from './types';
4
+ export declare function isWidgetOperation(operation: SlotOperation): operation is WidgetOperation;
5
+ export declare function isWidgetAbsoluteOperation(operation: WidgetOperation): operation is WidgetAbsoluteOperation;
6
+ export declare function isWidgetRelativeOperation(operation: WidgetOperation): operation is (WidgetInsertAfterOperation | WidgetInsertBeforeOperation);
7
+ export declare function isWidgetAppendOperation(operation: SlotOperation): operation is WidgetAppendOperation;
8
+ export declare function isWidgetInsertAfterOperation(operation: SlotOperation): operation is WidgetInsertAfterOperation;
9
+ export declare function isWidgetInsertBeforeOperation(operation: SlotOperation): operation is WidgetInsertBeforeOperation;
10
+ export declare function isWidgetPrependOperation(operation: SlotOperation): operation is WidgetPrependOperation;
11
+ export declare function isWidgetRemoveOperation(operation: SlotOperation): operation is WidgetRemoveOperation;
12
+ export declare function isWidgetReplaceOperation(operation: SlotOperation): operation is WidgetReplaceOperation;
13
+ export declare function isWidgetOptionsOperation(operation: SlotOperation): operation is WidgetOptionsOperation;
14
+ export declare function isWidgetRendererOperation(operation: SlotOperation): operation is WidgetRendererOperation;
15
+ export declare function isWidgetIdentityOperation(operation: SlotOperation): operation is (WidgetOperation & WidgetIdentityProps);
16
+ export declare function isWidgetIdentityRoleOperation(operation: SlotOperation): operation is (WidgetOperation & WidgetIdentityProps & {
17
+ role: string;
18
+ });
19
+ export declare function createWidgetAppendOperation(id: string, slotId: string, element: ReactNode): (import("./types").BaseWidgetOperation & WidgetIdentityProps & WidgetElementProps & {
20
+ op: WidgetOperationTypes.APPEND;
21
+ }) | undefined;
22
+ export declare function createWidgets(operations: WidgetOperation[], componentProps?: Record<string, unknown>): ReactNode[];
@@ -0,0 +1,166 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { isSlotOperationConditionSatisfied } from '../utils';
3
+ import { IFrameWidget } from './iframe';
4
+ import { WidgetOperationTypes } from './types';
5
+ import WidgetProvider from './WidgetProvider';
6
+ export function isWidgetOperation(operation) {
7
+ return Object.values(WidgetOperationTypes).includes(operation.op);
8
+ }
9
+ export function isWidgetAbsoluteOperation(operation) {
10
+ return operation.op === WidgetOperationTypes.APPEND || operation.op === WidgetOperationTypes.PREPEND;
11
+ }
12
+ export function isWidgetRelativeOperation(operation) {
13
+ return operation.op === WidgetOperationTypes.INSERT_AFTER || operation.op === WidgetOperationTypes.INSERT_BEFORE;
14
+ }
15
+ export function isWidgetAppendOperation(operation) {
16
+ return isWidgetOperation(operation) && operation.op === WidgetOperationTypes.APPEND;
17
+ }
18
+ export function isWidgetInsertAfterOperation(operation) {
19
+ return isWidgetOperation(operation) && operation.op === WidgetOperationTypes.INSERT_AFTER;
20
+ }
21
+ export function isWidgetInsertBeforeOperation(operation) {
22
+ return isWidgetOperation(operation) && operation.op === WidgetOperationTypes.INSERT_BEFORE;
23
+ }
24
+ export function isWidgetPrependOperation(operation) {
25
+ return isWidgetOperation(operation) && operation.op === WidgetOperationTypes.PREPEND;
26
+ }
27
+ export function isWidgetRemoveOperation(operation) {
28
+ return isWidgetOperation(operation) && operation.op === WidgetOperationTypes.REMOVE;
29
+ }
30
+ export function isWidgetReplaceOperation(operation) {
31
+ return isWidgetOperation(operation) && operation.op === WidgetOperationTypes.REPLACE;
32
+ }
33
+ export function isWidgetOptionsOperation(operation) {
34
+ return isWidgetOperation(operation) && operation.op === WidgetOperationTypes.OPTIONS;
35
+ }
36
+ export function isWidgetRendererOperation(operation) {
37
+ return isWidgetOperation(operation) && hasWidgetRendererProps(operation);
38
+ }
39
+ export function isWidgetIdentityOperation(operation) {
40
+ return isWidgetOperation(operation) && hasWidgetIdentityProps(operation);
41
+ }
42
+ export function isWidgetIdentityRoleOperation(operation) {
43
+ return isWidgetIdentityOperation(operation) && hasWidgetIdentityRoleProps(operation);
44
+ }
45
+ export function createWidgetAppendOperation(id, slotId, element) {
46
+ let operation = undefined;
47
+ if (element) {
48
+ operation = {
49
+ slotId,
50
+ id,
51
+ op: WidgetOperationTypes.APPEND,
52
+ element
53
+ };
54
+ }
55
+ return operation;
56
+ }
57
+ // Widget Operation props helpers
58
+ function hasWidgetComponentProps(operation) {
59
+ return isWidgetOperation(operation) && 'component' in operation;
60
+ }
61
+ function hasWidgetElementProps(operation) {
62
+ return isWidgetOperation(operation) && 'element' in operation;
63
+ }
64
+ function hasWidgetIFrameProps(operation) {
65
+ return isWidgetOperation(operation) && 'url' in operation && 'title' in operation;
66
+ }
67
+ function hasWidgetRendererProps(operation) {
68
+ return hasWidgetComponentProps(operation) || hasWidgetElementProps(operation) || hasWidgetIFrameProps(operation);
69
+ }
70
+ function hasWidgetIdentityProps(operation) {
71
+ return isWidgetOperation(operation) && 'id' in operation;
72
+ }
73
+ function hasWidgetIdentityRoleProps(operation) {
74
+ return hasWidgetIdentityProps(operation) && 'role' in operation;
75
+ }
76
+ /**
77
+ * An 'identified' widget just means a data structure with an ID and a ReactNode.
78
+ */
79
+ function createIdentifiedWidget(operation, componentProps) {
80
+ let widget = null;
81
+ const { id } = operation;
82
+ if (hasWidgetComponentProps(operation)) {
83
+ widget = (_jsx(operation.component, Object.assign({}, componentProps)));
84
+ }
85
+ else if (hasWidgetElementProps(operation)) {
86
+ widget = operation.element;
87
+ }
88
+ else if (hasWidgetIFrameProps(operation)) {
89
+ widget = (_jsx(IFrameWidget, { url: operation.url, title: operation.title }));
90
+ }
91
+ return {
92
+ id,
93
+ node: (_jsx(WidgetProvider, { slotId: operation.slotId, widgetId: operation.id, role: operation.role, children: widget }, id)),
94
+ };
95
+ }
96
+ function findRelatedWidgetIndex(id, widgets) {
97
+ for (const candidateRelatedWidget of widgets) {
98
+ if (candidateRelatedWidget.id === id) {
99
+ return widgets.indexOf(candidateRelatedWidget);
100
+ }
101
+ }
102
+ return null;
103
+ }
104
+ function appendWidget(operation, widgets, componentProps) {
105
+ const widget = createIdentifiedWidget(operation, componentProps);
106
+ widgets.push(widget);
107
+ }
108
+ function prependWidget(operation, widgets, componentProps) {
109
+ const widget = createIdentifiedWidget(operation, componentProps);
110
+ widgets.unshift(widget);
111
+ }
112
+ function insertAfterWidget(operation, widgets, componentProps) {
113
+ const widget = createIdentifiedWidget(operation, componentProps);
114
+ const relatedIndex = findRelatedWidgetIndex(operation.relatedId, widgets);
115
+ if (relatedIndex !== null) {
116
+ widgets.splice(relatedIndex + 1, 0, widget);
117
+ }
118
+ }
119
+ function insertBeforeWidget(operation, widgets, componentProps) {
120
+ const widget = createIdentifiedWidget(operation, componentProps);
121
+ const relatedIndex = findRelatedWidgetIndex(operation.relatedId, widgets);
122
+ if (relatedIndex !== null) {
123
+ widgets.splice(relatedIndex, 0, widget);
124
+ }
125
+ }
126
+ function replaceWidget(operation, widgets, componentProps) {
127
+ const widget = createIdentifiedWidget(operation, componentProps);
128
+ const relatedIndex = findRelatedWidgetIndex(operation.relatedId, widgets);
129
+ if (relatedIndex !== null) {
130
+ widgets.splice(relatedIndex, 1, widget);
131
+ }
132
+ }
133
+ function removeWidget(operation, widgets) {
134
+ const relatedIndex = findRelatedWidgetIndex(operation.relatedId, widgets);
135
+ if (relatedIndex !== null) {
136
+ widgets.splice(relatedIndex, 1);
137
+ }
138
+ }
139
+ export function createWidgets(operations, componentProps) {
140
+ const identifiedWidgets = [];
141
+ for (const operation of operations) {
142
+ if (isSlotOperationConditionSatisfied(operation)) {
143
+ if (isWidgetAppendOperation(operation)) {
144
+ appendWidget(operation, identifiedWidgets, componentProps);
145
+ }
146
+ else if (isWidgetPrependOperation(operation)) {
147
+ prependWidget(operation, identifiedWidgets, componentProps);
148
+ }
149
+ else if (isWidgetInsertAfterOperation(operation)) {
150
+ insertAfterWidget(operation, identifiedWidgets, componentProps);
151
+ }
152
+ else if (isWidgetInsertBeforeOperation(operation)) {
153
+ insertBeforeWidget(operation, identifiedWidgets, componentProps);
154
+ }
155
+ else if (isWidgetReplaceOperation(operation)) {
156
+ replaceWidget(operation, identifiedWidgets, componentProps);
157
+ }
158
+ else if (isWidgetRemoveOperation(operation)) {
159
+ removeWidget(operation, identifiedWidgets);
160
+ }
161
+ }
162
+ }
163
+ // Remove the 'id' metadata and return just the nodes.
164
+ return identifiedWidgets.map(widget => widget.node);
165
+ }
166
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../runtime/slots/widget/utils.tsx"],"names":[],"mappings":"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","sourcesContent":["import { ReactNode } from 'react';\nimport { SlotOperation } from '../types';\nimport { isSlotOperationConditionSatisfied } from '../utils';\nimport { IFrameWidget } from './iframe';\nimport { IdentifiedWidget, WidgetAbsoluteOperation, WidgetAppendOperation, WidgetComponentProps, WidgetElementProps, WidgetIdentityProps, WidgetIFrameProps, WidgetInsertAfterOperation, WidgetInsertBeforeOperation, WidgetOperation, WidgetOperationTypes, WidgetOptionsOperation, WidgetPrependOperation, WidgetRemoveOperation, WidgetRendererOperation, WidgetRendererProps, WidgetReplaceOperation } from './types';\nimport WidgetProvider from './WidgetProvider';\n\nexport function isWidgetOperation(operation: SlotOperation): operation is WidgetOperation {\n return Object.values(WidgetOperationTypes).includes(operation.op as WidgetOperationTypes);\n}\n\nexport function isWidgetAbsoluteOperation(operation: WidgetOperation): operation is WidgetAbsoluteOperation {\n return operation.op === WidgetOperationTypes.APPEND || operation.op === WidgetOperationTypes.PREPEND;\n}\n\nexport function isWidgetRelativeOperation(operation: WidgetOperation): operation is (WidgetInsertAfterOperation | WidgetInsertBeforeOperation) {\n return operation.op === WidgetOperationTypes.INSERT_AFTER || operation.op === WidgetOperationTypes.INSERT_BEFORE;\n}\n\nexport function isWidgetAppendOperation(operation: SlotOperation): operation is WidgetAppendOperation {\n return isWidgetOperation(operation) && operation.op === WidgetOperationTypes.APPEND;\n}\n\nexport function isWidgetInsertAfterOperation(operation: SlotOperation): operation is WidgetInsertAfterOperation {\n return isWidgetOperation(operation) && operation.op === WidgetOperationTypes.INSERT_AFTER;\n}\n\nexport function isWidgetInsertBeforeOperation(operation: SlotOperation): operation is WidgetInsertBeforeOperation {\n return isWidgetOperation(operation) && operation.op === WidgetOperationTypes.INSERT_BEFORE;\n}\n\nexport function isWidgetPrependOperation(operation: SlotOperation): operation is WidgetPrependOperation {\n return isWidgetOperation(operation) && operation.op === WidgetOperationTypes.PREPEND;\n}\n\nexport function isWidgetRemoveOperation(operation: SlotOperation): operation is WidgetRemoveOperation {\n return isWidgetOperation(operation) && operation.op === WidgetOperationTypes.REMOVE;\n}\n\nexport function isWidgetReplaceOperation(operation: SlotOperation): operation is WidgetReplaceOperation {\n return isWidgetOperation(operation) && operation.op === WidgetOperationTypes.REPLACE;\n}\n\nexport function isWidgetOptionsOperation(operation: SlotOperation): operation is WidgetOptionsOperation {\n return isWidgetOperation(operation) && operation.op === WidgetOperationTypes.OPTIONS;\n}\n\nexport function isWidgetRendererOperation(operation: SlotOperation): operation is WidgetRendererOperation {\n return isWidgetOperation(operation) && hasWidgetRendererProps(operation);\n}\n\nexport function isWidgetIdentityOperation(operation: SlotOperation): operation is (WidgetOperation & WidgetIdentityProps) {\n return isWidgetOperation(operation) && hasWidgetIdentityProps(operation);\n}\n\nexport function isWidgetIdentityRoleOperation(operation: SlotOperation): operation is (WidgetOperation & WidgetIdentityProps & { role: string }) {\n return isWidgetIdentityOperation(operation) && hasWidgetIdentityRoleProps(operation);\n}\n\nexport function createWidgetAppendOperation(id: string, slotId: string, element: ReactNode) {\n let operation: WidgetOperation | undefined = undefined;\n if (element) {\n operation = {\n slotId,\n id,\n op: WidgetOperationTypes.APPEND,\n element\n };\n }\n\n return operation;\n}\n\n// Widget Operation props helpers\n\nfunction hasWidgetComponentProps(operation: WidgetOperation): operation is (WidgetOperation & WidgetComponentProps) {\n return isWidgetOperation(operation) && 'component' in operation;\n}\n\nfunction hasWidgetElementProps(operation: WidgetOperation): operation is (WidgetOperation & WidgetElementProps) {\n return isWidgetOperation(operation) && 'element' in operation;\n}\n\nfunction hasWidgetIFrameProps(operation: WidgetOperation): operation is (WidgetOperation & WidgetIFrameProps) {\n return isWidgetOperation(operation) && 'url' in operation && 'title' in operation;\n}\n\nfunction hasWidgetRendererProps(operation: WidgetOperation): operation is (WidgetOperation & WidgetRendererProps) {\n return hasWidgetComponentProps(operation) || hasWidgetElementProps(operation) || hasWidgetIFrameProps(operation);\n}\n\nfunction hasWidgetIdentityProps(operation: WidgetOperation): operation is (WidgetOperation & WidgetIdentityProps) {\n return isWidgetOperation(operation) && 'id' in operation;\n}\n\nfunction hasWidgetIdentityRoleProps(operation: WidgetOperation): operation is (WidgetOperation & WidgetIdentityProps & { role: string }) {\n return hasWidgetIdentityProps(operation) && 'role' in operation;\n}\n\n/**\n * An 'identified' widget just means a data structure with an ID and a ReactNode.\n */\nfunction createIdentifiedWidget(operation: WidgetRendererOperation, componentProps?: Record<string, unknown>) {\n let widget: ReactNode = null;\n const { id } = operation;\n if (hasWidgetComponentProps(operation)) {\n widget = (\n <operation.component {...componentProps} />\n );\n } else if (hasWidgetElementProps(operation)) {\n widget = operation.element;\n } else if (hasWidgetIFrameProps(operation)) {\n widget = (\n <IFrameWidget url={operation.url} title={operation.title} />\n );\n }\n\n return {\n id,\n node: (\n <WidgetProvider key={id} slotId={operation.slotId} widgetId={operation.id} role={operation.role}>\n {widget}\n </WidgetProvider>\n ),\n };\n}\n\nfunction findRelatedWidgetIndex(id: string, widgets: IdentifiedWidget[]) {\n for (const candidateRelatedWidget of widgets) {\n if (candidateRelatedWidget.id === id) {\n return widgets.indexOf(candidateRelatedWidget);\n }\n }\n return null;\n}\n\nfunction appendWidget(operation: WidgetAppendOperation, widgets: IdentifiedWidget[], componentProps?: Record<string, unknown>) {\n const widget = createIdentifiedWidget(operation, componentProps);\n widgets.push(widget);\n}\n\nfunction prependWidget(operation: WidgetPrependOperation, widgets: IdentifiedWidget[], componentProps?: Record<string, unknown>) {\n const widget = createIdentifiedWidget(operation, componentProps);\n widgets.unshift(widget);\n}\n\nfunction insertAfterWidget(operation: WidgetInsertAfterOperation, widgets: IdentifiedWidget[], componentProps?: Record<string, unknown>) {\n const widget = createIdentifiedWidget(operation, componentProps);\n const relatedIndex = findRelatedWidgetIndex(operation.relatedId, widgets);\n if (relatedIndex !== null) {\n widgets.splice(relatedIndex + 1, 0, widget);\n }\n}\n\nfunction insertBeforeWidget(operation: WidgetInsertBeforeOperation, widgets: IdentifiedWidget[], componentProps?: Record<string, unknown>) {\n const widget = createIdentifiedWidget(operation, componentProps);\n const relatedIndex = findRelatedWidgetIndex(operation.relatedId, widgets);\n if (relatedIndex !== null) {\n widgets.splice(relatedIndex, 0, widget);\n }\n}\n\nfunction replaceWidget(operation: WidgetReplaceOperation, widgets: IdentifiedWidget[], componentProps?: Record<string, unknown>) {\n const widget = createIdentifiedWidget(operation, componentProps);\n const relatedIndex = findRelatedWidgetIndex(operation.relatedId, widgets);\n if (relatedIndex !== null) {\n widgets.splice(relatedIndex, 1, widget);\n }\n}\n\nfunction removeWidget(operation: WidgetRemoveOperation, widgets: IdentifiedWidget[]) {\n const relatedIndex = findRelatedWidgetIndex(operation.relatedId, widgets);\n if (relatedIndex !== null) {\n widgets.splice(relatedIndex, 1);\n }\n}\n\nexport function createWidgets(operations: WidgetOperation[], componentProps?: Record<string, unknown>) {\n const identifiedWidgets: IdentifiedWidget[] = [];\n\n for (const operation of operations) {\n if (isSlotOperationConditionSatisfied(operation)) {\n if (isWidgetAppendOperation(operation)) {\n appendWidget(operation, identifiedWidgets, componentProps);\n } else if (isWidgetPrependOperation(operation)) {\n prependWidget(operation, identifiedWidgets, componentProps);\n } else if (isWidgetInsertAfterOperation(operation)) {\n insertAfterWidget(operation, identifiedWidgets, componentProps);\n } else if (isWidgetInsertBeforeOperation(operation)) {\n insertBeforeWidget(operation, identifiedWidgets, componentProps);\n } else if (isWidgetReplaceOperation(operation)) {\n replaceWidget(operation, identifiedWidgets, componentProps);\n } else if (isWidgetRemoveOperation(operation)) {\n removeWidget(operation, identifiedWidgets);\n }\n }\n }\n\n // Remove the 'id' metadata and return just the nodes.\n return identifiedWidgets.map(widget => widget.node);\n}\n"]}
@@ -16,45 +16,9 @@
16
16
  *
17
17
  * @module PubSub
18
18
  */
19
-
20
- // export const {
21
- // subscribe,
22
- // unsubscribe,
23
- // publish,
24
- // } = PubSub;
25
-
26
19
  type CallbackFunction = (topic: string, data?: any) => void;
27
-
28
- let subscriptions: Record<string, CallbackFunction[]> = {};
29
-
30
- export function subscribe(topic: string, callback) {
31
- if (subscriptions[topic] === undefined) {
32
- subscriptions[topic] = [];
33
- }
34
- subscriptions[topic].push(callback);
35
- }
36
-
37
- export function publish(topic: string, data?: any) {
38
- if (subscriptions[topic] === undefined) {
39
- subscriptions[topic] = [];
40
- }
41
- subscriptions[topic].forEach(callback => {
42
- if (data) {
43
- callback(topic, data);
44
- } else {
45
- callback(topic);
46
- }
47
- });
48
- }
49
-
50
- export function unsubscribe(topic: string, callback: CallbackFunction) {
51
- if (subscriptions[topic] === undefined) {
52
- subscriptions[topic] = [];
53
- }
54
-
55
- subscriptions[topic] = subscriptions[topic].filter((value) => value !== callback);
56
- }
57
-
58
- export function clearAllSubscriptions() {
59
- subscriptions = {};
60
- }
20
+ export declare function subscribe(topic: string, callback: any): void;
21
+ export declare function publish(topic: string, data?: any): void;
22
+ export declare function unsubscribe(topic: string, callback: CallbackFunction): void;
23
+ export declare function clearAllSubscriptions(): void;
24
+ export {};
@@ -0,0 +1,48 @@
1
+ /**
2
+ * #### Import members from **@openedx/frontend-base**
3
+ *
4
+ * The PubSub module is a thin wrapper around the base functionality of
5
+ * [PubSubJS](https://github.com/mroderick/PubSubJS). For the sake of simplicity and not relying
6
+ * too heavily on implementation-specific features, it maintains a fairly simple API (subscribe,
7
+ * unsubscribe, and publish).
8
+ *
9
+ * Publish/Subscribe events should be used mindfully, especially in relation to application UI
10
+ * frameworks like React. Given React's unidirectional data flow and prop/state management
11
+ * capabilities, using a pub/sub mechanism is at odds with that framework's best practices.
12
+ *
13
+ * That said, we use pub/sub in our application initialization sequence to allow applications to
14
+ * hook into the initialization lifecycle, and we also use them to publish when the application
15
+ * state has changed, i.e., when the config document or user's authentication state have changed.
16
+ *
17
+ * @module PubSub
18
+ */
19
+ let subscriptions = {};
20
+ export function subscribe(topic, callback) {
21
+ if (subscriptions[topic] === undefined) {
22
+ subscriptions[topic] = [];
23
+ }
24
+ subscriptions[topic].push(callback);
25
+ }
26
+ export function publish(topic, data) {
27
+ if (subscriptions[topic] === undefined) {
28
+ subscriptions[topic] = [];
29
+ }
30
+ subscriptions[topic].forEach(callback => {
31
+ if (data) {
32
+ callback(topic, data);
33
+ }
34
+ else {
35
+ callback(topic);
36
+ }
37
+ });
38
+ }
39
+ export function unsubscribe(topic, callback) {
40
+ if (subscriptions[topic] === undefined) {
41
+ subscriptions[topic] = [];
42
+ }
43
+ subscriptions[topic] = subscriptions[topic].filter((value) => value !== callback);
44
+ }
45
+ export function clearAllSubscriptions() {
46
+ subscriptions = {};
47
+ }
48
+ //# sourceMappingURL=subscriptions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"subscriptions.js","sourceRoot":"","sources":["../../runtime/subscriptions.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAUH,IAAI,aAAa,GAAuC,EAAE,CAAC;AAE3D,MAAM,UAAU,SAAS,CAAC,KAAa,EAAE,QAAQ;IAC/C,IAAI,aAAa,CAAC,KAAK,CAAC,KAAK,SAAS,EAAE,CAAC;QACvC,aAAa,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;IAC5B,CAAC;IACD,aAAa,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AACtC,CAAC;AAED,MAAM,UAAU,OAAO,CAAC,KAAa,EAAE,IAAU;IAC/C,IAAI,aAAa,CAAC,KAAK,CAAC,KAAK,SAAS,EAAE,CAAC;QACvC,aAAa,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;IAC5B,CAAC;IACD,aAAa,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE;QACtC,IAAI,IAAI,EAAE,CAAC;YACT,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QACxB,CAAC;aAAM,CAAC;YACN,QAAQ,CAAC,KAAK,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,KAAa,EAAE,QAA0B;IACnE,IAAI,aAAa,CAAC,KAAK,CAAC,KAAK,SAAS,EAAE,CAAC;QACvC,aAAa,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;IAC5B,CAAC;IAED,aAAa,CAAC,KAAK,CAAC,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC;AACpF,CAAC;AAED,MAAM,UAAU,qBAAqB;IACnC,aAAa,GAAG,EAAE,CAAC;AACrB,CAAC","sourcesContent":["/**\n * #### Import members from **@openedx/frontend-base**\n *\n * The PubSub module is a thin wrapper around the base functionality of\n * [PubSubJS](https://github.com/mroderick/PubSubJS). For the sake of simplicity and not relying\n * too heavily on implementation-specific features, it maintains a fairly simple API (subscribe,\n * unsubscribe, and publish).\n *\n * Publish/Subscribe events should be used mindfully, especially in relation to application UI\n * frameworks like React. Given React's unidirectional data flow and prop/state management\n * capabilities, using a pub/sub mechanism is at odds with that framework's best practices.\n *\n * That said, we use pub/sub in our application initialization sequence to allow applications to\n * hook into the initialization lifecycle, and we also use them to publish when the application\n * state has changed, i.e., when the config document or user's authentication state have changed.\n *\n * @module PubSub\n */\n\n// export const {\n// subscribe,\n// unsubscribe,\n// publish,\n// } = PubSub;\n\ntype CallbackFunction = (topic: string, data?: any) => void;\n\nlet subscriptions: Record<string, CallbackFunction[]> = {};\n\nexport function subscribe(topic: string, callback) {\n if (subscriptions[topic] === undefined) {\n subscriptions[topic] = [];\n }\n subscriptions[topic].push(callback);\n}\n\nexport function publish(topic: string, data?: any) {\n if (subscriptions[topic] === undefined) {\n subscriptions[topic] = [];\n }\n subscriptions[topic].forEach(callback => {\n if (data) {\n callback(topic, data);\n } else {\n callback(topic);\n }\n });\n}\n\nexport function unsubscribe(topic: string, callback: CallbackFunction) {\n if (subscriptions[topic] === undefined) {\n subscriptions[topic] = [];\n }\n\n subscriptions[topic] = subscriptions[topic].filter((value) => value !== callback);\n}\n\nexport function clearAllSubscriptions() {\n subscriptions = {};\n}\n"]}
@@ -4,6 +4,5 @@
4
4
  *
5
5
  * @module Testing
6
6
  */
7
-
8
7
  export { default as initializeMockApp } from './initializeMockApp';
9
8
  export { default as mockMessages } from './mockMessages';
@@ -0,0 +1,9 @@
1
+ /**
2
+ * #### Import members from **@openedx/frontend-base** Testing
3
+ * The testing module provides helpers for writing tests in Jest.
4
+ *
5
+ * @module Testing
6
+ */
7
+ export { default as initializeMockApp } from './initializeMockApp';
8
+ export { default as mockMessages } from './mockMessages';
9
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../runtime/testing/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACnE,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,gBAAgB,CAAC","sourcesContent":["/**\n * #### Import members from **@openedx/frontend-base** Testing\n * The testing module provides helpers for writing tests in Jest.\n *\n * @module Testing\n */\n\nexport { default as initializeMockApp } from './initializeMockApp';\nexport { default as mockMessages } from './mockMessages';\n"]}