@openedx/frontend-base 1.0.0-alpha.2 → 1.0.0-alpha.21

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 (782) hide show
  1. package/README.md +27 -0
  2. package/{index.ts → dist/index.d.ts} +0 -3
  3. package/dist/index.js +4 -0
  4. package/dist/index.js.map +1 -0
  5. package/dist/runtime/analytics/MockAnalyticsService.d.ts +50 -0
  6. package/dist/runtime/analytics/MockAnalyticsService.js +64 -0
  7. package/dist/runtime/analytics/MockAnalyticsService.js.map +1 -0
  8. package/dist/runtime/analytics/SegmentAnalyticsService.d.ts +64 -0
  9. package/dist/runtime/analytics/SegmentAnalyticsService.js +218 -0
  10. package/dist/runtime/analytics/SegmentAnalyticsService.js.map +1 -0
  11. package/dist/runtime/analytics/index.d.ts +3 -0
  12. package/dist/runtime/analytics/index.js +4 -0
  13. package/dist/runtime/analytics/index.js.map +1 -0
  14. package/dist/runtime/analytics/interface.d.ts +53 -0
  15. package/{runtime → dist/runtime}/analytics/interface.js +26 -38
  16. package/dist/runtime/analytics/interface.js.map +1 -0
  17. package/dist/runtime/auth/AxiosCsrfTokenService.d.ts +10 -0
  18. package/dist/runtime/auth/AxiosCsrfTokenService.js +64 -0
  19. package/dist/runtime/auth/AxiosCsrfTokenService.js.map +1 -0
  20. package/dist/runtime/auth/AxiosJwtAuthService.d.ts +182 -0
  21. package/dist/runtime/auth/AxiosJwtAuthService.js +339 -0
  22. package/dist/runtime/auth/AxiosJwtAuthService.js.map +1 -0
  23. package/dist/runtime/auth/AxiosJwtTokenService.d.ts +16 -0
  24. package/dist/runtime/auth/AxiosJwtTokenService.js +130 -0
  25. package/dist/runtime/auth/AxiosJwtTokenService.js.map +1 -0
  26. package/dist/runtime/auth/LocalForageCache.d.ts +7 -0
  27. package/dist/runtime/auth/LocalForageCache.js +78 -0
  28. package/dist/runtime/auth/LocalForageCache.js.map +1 -0
  29. package/dist/runtime/auth/MockAuthService.d.ts +209 -0
  30. package/dist/runtime/auth/MockAuthService.js +256 -0
  31. package/dist/runtime/auth/MockAuthService.js.map +1 -0
  32. package/dist/runtime/auth/index.d.ts +3 -0
  33. package/dist/runtime/auth/index.js +4 -0
  34. package/dist/runtime/auth/index.js.map +1 -0
  35. package/dist/runtime/auth/interceptors/createCsrfTokenProviderInterceptor.d.ts +2 -0
  36. package/dist/runtime/auth/interceptors/createCsrfTokenProviderInterceptor.js +42 -0
  37. package/dist/runtime/auth/interceptors/createCsrfTokenProviderInterceptor.js.map +1 -0
  38. package/dist/runtime/auth/interceptors/createJwtTokenProviderInterceptor.d.ts +2 -0
  39. package/dist/runtime/auth/interceptors/createJwtTokenProviderInterceptor.js +40 -0
  40. package/dist/runtime/auth/interceptors/createJwtTokenProviderInterceptor.js.map +1 -0
  41. package/dist/runtime/auth/interceptors/createProcessAxiosRequestErrorInterceptor.d.ts +2 -0
  42. package/dist/runtime/auth/interceptors/createProcessAxiosRequestErrorInterceptor.js +26 -0
  43. package/dist/runtime/auth/interceptors/createProcessAxiosRequestErrorInterceptor.js.map +1 -0
  44. package/dist/runtime/auth/interceptors/createRetryInterceptor.d.ts +3 -0
  45. package/dist/runtime/auth/interceptors/createRetryInterceptor.js +67 -0
  46. package/dist/runtime/auth/interceptors/createRetryInterceptor.js.map +1 -0
  47. package/dist/runtime/auth/interface.d.ts +133 -0
  48. package/{runtime → dist/runtime}/auth/interface.js +65 -72
  49. package/dist/runtime/auth/interface.js.map +1 -0
  50. package/dist/runtime/auth/utils.d.ts +13 -0
  51. package/dist/runtime/auth/utils.js +66 -0
  52. package/dist/runtime/auth/utils.js.map +1 -0
  53. package/dist/runtime/babel.config.d.ts +2 -0
  54. package/{runtime → dist/runtime}/babel.config.js +2 -1
  55. package/dist/runtime/babel.config.js.map +1 -0
  56. package/{runtime/config/index.ts → dist/runtime/config/index.d.ts} +28 -124
  57. package/dist/runtime/config/index.js +327 -0
  58. package/dist/runtime/config/index.js.map +1 -0
  59. package/dist/runtime/constants.d.ts +57 -0
  60. package/{runtime/constants.ts → dist/runtime/constants.js} +1 -11
  61. package/dist/runtime/constants.js.map +1 -0
  62. package/dist/runtime/i18n/index.d.ts +3 -0
  63. package/{runtime → dist/runtime}/i18n/index.js +4 -44
  64. package/dist/runtime/i18n/index.js.map +1 -0
  65. package/dist/runtime/i18n/injectIntlWithShim.d.ts +11 -0
  66. package/dist/runtime/i18n/injectIntlWithShim.js +45 -0
  67. package/dist/runtime/i18n/injectIntlWithShim.js.map +1 -0
  68. package/dist/runtime/i18n/lib.d.ts +119 -0
  69. package/dist/runtime/i18n/lib.js +236 -0
  70. package/dist/runtime/i18n/lib.js.map +1 -0
  71. package/dist/runtime/index.d.ts +13 -0
  72. package/dist/runtime/index.js +14 -0
  73. package/dist/runtime/index.js.map +1 -0
  74. package/dist/runtime/initialize.d.ts +91 -0
  75. package/dist/runtime/initialize.js +315 -0
  76. package/dist/runtime/initialize.js.map +1 -0
  77. package/dist/runtime/jest.config.d.ts +16 -0
  78. package/dist/runtime/jest.config.js +34 -0
  79. package/dist/runtime/jest.config.js.map +1 -0
  80. package/dist/runtime/logging/MockLoggingService.d.ts +28 -0
  81. package/dist/runtime/logging/MockLoggingService.js +31 -0
  82. package/dist/runtime/logging/MockLoggingService.js.map +1 -0
  83. package/dist/runtime/logging/NewRelicLoggingService.d.ts +67 -0
  84. package/dist/runtime/logging/NewRelicLoggingService.js +175 -0
  85. package/dist/runtime/logging/NewRelicLoggingService.js.map +1 -0
  86. package/{runtime/logging/index.ts → dist/runtime/logging/index.d.ts} +1 -7
  87. package/dist/runtime/logging/index.js +4 -0
  88. package/dist/runtime/logging/index.js.map +1 -0
  89. package/dist/runtime/logging/interface.d.ts +38 -0
  90. package/{runtime → dist/runtime}/logging/interface.js +16 -26
  91. package/dist/runtime/logging/interface.js.map +1 -0
  92. package/dist/runtime/logging/types.d.ts +4 -0
  93. package/dist/runtime/logging/types.js +2 -0
  94. package/dist/runtime/logging/types.js.map +1 -0
  95. package/dist/runtime/react/AuthenticatedPageRoute.d.ts +30 -0
  96. package/{runtime/react/AuthenticatedPageRoute.jsx → dist/runtime/react/AuthenticatedPageRoute.js} +13 -18
  97. package/dist/runtime/react/AuthenticatedPageRoute.js.map +1 -0
  98. package/dist/runtime/react/CombinedAppProvider.d.ts +6 -0
  99. package/dist/runtime/react/CombinedAppProvider.js +24 -0
  100. package/dist/runtime/react/CombinedAppProvider.js.map +1 -0
  101. package/dist/runtime/react/CurrentAppContext.d.ts +20 -0
  102. package/{runtime/react/CurrentAppContext.tsx → dist/runtime/react/CurrentAppContext.js} +3 -7
  103. package/dist/runtime/react/CurrentAppContext.js.map +1 -0
  104. package/dist/runtime/react/CurrentAppProvider.d.ts +23 -0
  105. package/dist/runtime/react/CurrentAppProvider.js +33 -0
  106. package/dist/runtime/react/CurrentAppProvider.js.map +1 -0
  107. package/dist/runtime/react/Divider.d.ts +1 -0
  108. package/dist/runtime/react/Divider.js +5 -0
  109. package/dist/runtime/react/Divider.js.map +1 -0
  110. package/dist/runtime/react/ErrorBoundary.d.ts +32 -0
  111. package/dist/runtime/react/ErrorBoundary.js +40 -0
  112. package/dist/runtime/react/ErrorBoundary.js.map +1 -0
  113. package/dist/runtime/react/ErrorPage.d.ts +17 -0
  114. package/dist/runtime/react/ErrorPage.js +29 -0
  115. package/dist/runtime/react/ErrorPage.js.map +1 -0
  116. package/dist/runtime/react/LoginRedirect.d.ts +8 -0
  117. package/{runtime/react/LoginRedirect.jsx → dist/runtime/react/LoginRedirect.js} +5 -5
  118. package/dist/runtime/react/LoginRedirect.js.map +1 -0
  119. package/dist/runtime/react/NotFoundPage.d.ts +2 -0
  120. package/dist/runtime/react/NotFoundPage.js +14 -0
  121. package/dist/runtime/react/NotFoundPage.js.map +1 -0
  122. package/dist/runtime/react/PageWrap.d.ts +8 -0
  123. package/{runtime/react/PageWrap.jsx → dist/runtime/react/PageWrap.js} +7 -10
  124. package/dist/runtime/react/PageWrap.js.map +1 -0
  125. package/dist/runtime/react/SiteContext.d.ts +24 -0
  126. package/{runtime/react/SiteContext.tsx → dist/runtime/react/SiteContext.js} +5 -11
  127. package/dist/runtime/react/SiteContext.js.map +1 -0
  128. package/dist/runtime/react/SiteProvider.d.ts +29 -0
  129. package/dist/runtime/react/SiteProvider.js +69 -0
  130. package/dist/runtime/react/SiteProvider.js.map +1 -0
  131. package/dist/runtime/react/constants.d.ts +3 -0
  132. package/dist/runtime/react/constants.js +4 -0
  133. package/dist/runtime/react/constants.js.map +1 -0
  134. package/dist/runtime/react/hooks/index.d.ts +7 -0
  135. package/dist/runtime/react/hooks/index.js +8 -0
  136. package/dist/runtime/react/hooks/index.js.map +1 -0
  137. package/dist/runtime/react/hooks/theme/index.d.ts +2 -0
  138. package/dist/runtime/react/hooks/theme/index.js +3 -0
  139. package/dist/runtime/react/hooks/theme/index.js.map +1 -0
  140. package/dist/runtime/react/hooks/theme/useTheme.d.ts +35 -0
  141. package/dist/runtime/react/hooks/theme/useTheme.js +153 -0
  142. package/dist/runtime/react/hooks/theme/useTheme.js.map +1 -0
  143. package/dist/runtime/react/hooks/theme/useThemeConfig.d.ts +16 -0
  144. package/dist/runtime/react/hooks/theme/useThemeConfig.js +29 -0
  145. package/dist/runtime/react/hooks/theme/useThemeConfig.js.map +1 -0
  146. package/dist/runtime/react/hooks/theme/useThemeCore.d.ts +10 -0
  147. package/dist/runtime/react/hooks/theme/useThemeCore.js +40 -0
  148. package/dist/runtime/react/hooks/theme/useThemeCore.js.map +1 -0
  149. package/dist/runtime/react/hooks/theme/useThemeVariants.d.ts +17 -0
  150. package/dist/runtime/react/hooks/theme/useThemeVariants.js +90 -0
  151. package/dist/runtime/react/hooks/theme/useThemeVariants.js.map +1 -0
  152. package/dist/runtime/react/hooks/theme/useTrackColorSchemeChoice.d.ts +8 -0
  153. package/dist/runtime/react/hooks/theme/useTrackColorSchemeChoice.js +30 -0
  154. package/dist/runtime/react/hooks/theme/useTrackColorSchemeChoice.js.map +1 -0
  155. package/dist/runtime/react/hooks/theme/utils.d.ts +6 -0
  156. package/dist/runtime/react/hooks/theme/utils.js +11 -0
  157. package/dist/runtime/react/hooks/theme/utils.js.map +1 -0
  158. package/dist/runtime/react/hooks/useActiveRoles.d.ts +2 -0
  159. package/dist/runtime/react/hooks/useActiveRoles.js +13 -0
  160. package/dist/runtime/react/hooks/useActiveRoles.js.map +1 -0
  161. package/dist/runtime/react/hooks/useActiveRouteRoleWatcher.d.ts +2 -0
  162. package/dist/runtime/react/hooks/useActiveRouteRoleWatcher.js +26 -0
  163. package/dist/runtime/react/hooks/useActiveRouteRoleWatcher.js.map +1 -0
  164. package/dist/runtime/react/hooks/useAppConfig.d.ts +2 -0
  165. package/dist/runtime/react/hooks/useAppConfig.js +8 -0
  166. package/dist/runtime/react/hooks/useAppConfig.js.map +1 -0
  167. package/dist/runtime/react/hooks/useAuthenticatedUser.d.ts +2 -0
  168. package/dist/runtime/react/hooks/useAuthenticatedUser.js +8 -0
  169. package/dist/runtime/react/hooks/useAuthenticatedUser.js.map +1 -0
  170. package/dist/runtime/react/hooks/useSiteConfig.d.ts +2 -0
  171. package/dist/runtime/react/hooks/useSiteConfig.js +8 -0
  172. package/dist/runtime/react/hooks/useSiteConfig.js.map +1 -0
  173. package/dist/runtime/react/hooks/useSiteEvent.d.ts +12 -0
  174. package/dist/runtime/react/hooks/useSiteEvent.js +22 -0
  175. package/dist/runtime/react/hooks/useSiteEvent.js.map +1 -0
  176. package/{runtime/react/index.ts → dist/runtime/react/index.d.ts} +1 -1
  177. package/dist/runtime/react/index.js +20 -0
  178. package/dist/runtime/react/index.js.map +1 -0
  179. package/dist/runtime/react/reducers.d.ts +11 -0
  180. package/dist/runtime/react/reducers.js +28 -0
  181. package/dist/runtime/react/reducers.js.map +1 -0
  182. package/dist/runtime/routing/authenticatedLoader.d.ts +2 -0
  183. package/dist/runtime/routing/authenticatedLoader.js +27 -0
  184. package/dist/runtime/routing/authenticatedLoader.js.map +1 -0
  185. package/dist/runtime/routing/index.d.ts +2 -0
  186. package/dist/runtime/routing/index.js +3 -0
  187. package/dist/runtime/routing/index.js.map +1 -0
  188. package/dist/runtime/routing/utils.d.ts +4 -0
  189. package/dist/runtime/routing/utils.js +43 -0
  190. package/dist/runtime/routing/utils.js.map +1 -0
  191. package/dist/runtime/scripts/GoogleAnalyticsLoader.d.ts +12 -0
  192. package/dist/runtime/scripts/GoogleAnalyticsLoader.js +49 -0
  193. package/dist/runtime/scripts/GoogleAnalyticsLoader.js.map +1 -0
  194. package/dist/runtime/scripts/index.js +2 -0
  195. package/dist/runtime/scripts/index.js.map +1 -0
  196. package/dist/runtime/setupTest.d.ts +1 -0
  197. package/dist/runtime/setupTest.js +12 -0
  198. package/dist/runtime/setupTest.js.map +1 -0
  199. package/dist/runtime/slots/Slot.d.ts +10 -0
  200. package/dist/runtime/slots/Slot.js +35 -0
  201. package/dist/runtime/slots/Slot.js.map +1 -0
  202. package/dist/runtime/slots/SlotContext.d.ts +8 -0
  203. package/dist/runtime/slots/SlotContext.js +7 -0
  204. package/dist/runtime/slots/SlotContext.js.map +1 -0
  205. package/dist/runtime/slots/hooks.d.ts +13 -0
  206. package/dist/runtime/slots/hooks.js +29 -0
  207. package/dist/runtime/slots/hooks.js.map +1 -0
  208. package/dist/runtime/slots/index.js +7 -0
  209. package/dist/runtime/slots/index.js.map +1 -0
  210. package/dist/runtime/slots/layout/DefaultSlotLayout.d.ts +1 -0
  211. package/dist/runtime/slots/layout/DefaultSlotLayout.js +7 -0
  212. package/dist/runtime/slots/layout/DefaultSlotLayout.js.map +1 -0
  213. package/dist/runtime/slots/layout/hooks.d.ts +10 -0
  214. package/dist/runtime/slots/layout/hooks.js +57 -0
  215. package/dist/runtime/slots/layout/hooks.js.map +1 -0
  216. package/dist/runtime/slots/layout/index.js +5 -0
  217. package/dist/runtime/slots/layout/index.js.map +1 -0
  218. package/{runtime/slots/layout/types.ts → dist/runtime/slots/layout/types.d.ts} +10 -25
  219. package/dist/runtime/slots/layout/types.js +12 -0
  220. package/dist/runtime/slots/layout/types.js.map +1 -0
  221. package/dist/runtime/slots/layout/utils.d.ts +5 -0
  222. package/dist/runtime/slots/layout/utils.js +11 -0
  223. package/dist/runtime/slots/layout/utils.js.map +1 -0
  224. package/{runtime/slots/types.ts → dist/runtime/slots/types.d.ts} +6 -12
  225. package/dist/runtime/slots/types.js +7 -0
  226. package/dist/runtime/slots/types.js.map +1 -0
  227. package/dist/runtime/slots/utils.d.ts +3 -0
  228. package/dist/runtime/slots/utils.js +66 -0
  229. package/dist/runtime/slots/utils.js.map +1 -0
  230. package/dist/runtime/slots/widget/WidgetContext.d.ts +6 -0
  231. package/dist/runtime/slots/widget/WidgetContext.js +8 -0
  232. package/dist/runtime/slots/widget/WidgetContext.js.map +1 -0
  233. package/dist/runtime/slots/widget/WidgetProvider.d.ts +9 -0
  234. package/dist/runtime/slots/widget/WidgetProvider.js +18 -0
  235. package/dist/runtime/slots/widget/WidgetProvider.js.map +1 -0
  236. package/dist/runtime/slots/widget/hooks.d.ts +13 -0
  237. package/dist/runtime/slots/widget/hooks.js +104 -0
  238. package/dist/runtime/slots/widget/hooks.js.map +1 -0
  239. package/dist/runtime/slots/widget/iframe/IFrameContentWrapper.d.ts +10 -0
  240. package/dist/runtime/slots/widget/iframe/IFrameContentWrapper.js +42 -0
  241. package/dist/runtime/slots/widget/iframe/IFrameContentWrapper.js.map +1 -0
  242. package/dist/runtime/slots/widget/iframe/IFrameContentWrapper.messages.d.ts +13 -0
  243. package/dist/runtime/slots/widget/iframe/IFrameContentWrapper.messages.js +15 -0
  244. package/dist/runtime/slots/widget/iframe/IFrameContentWrapper.messages.js.map +1 -0
  245. package/dist/runtime/slots/widget/iframe/IFrameWidget.d.ts +6 -0
  246. package/dist/runtime/slots/widget/iframe/IFrameWidget.js +32 -0
  247. package/dist/runtime/slots/widget/iframe/IFrameWidget.js.map +1 -0
  248. package/dist/runtime/slots/widget/iframe/constants.d.ts +15 -0
  249. package/{runtime/slots/widget/iframe/constants.ts → dist/runtime/slots/widget/iframe/constants.js} +2 -4
  250. package/dist/runtime/slots/widget/iframe/constants.js.map +1 -0
  251. package/dist/runtime/slots/widget/iframe/hooks.d.ts +64 -0
  252. package/dist/runtime/slots/widget/iframe/hooks.js +144 -0
  253. package/dist/runtime/slots/widget/iframe/hooks.js.map +1 -0
  254. package/{runtime/slots/widget/iframe/index.ts → dist/runtime/slots/widget/iframe/index.d.ts} +1 -4
  255. package/dist/runtime/slots/widget/iframe/index.js +3 -0
  256. package/dist/runtime/slots/widget/iframe/index.js.map +1 -0
  257. package/{runtime/slots/widget/iframe/types.ts → dist/runtime/slots/widget/iframe/types.d.ts} +2 -4
  258. package/dist/runtime/slots/widget/iframe/types.js +3 -0
  259. package/dist/runtime/slots/widget/iframe/types.js.map +1 -0
  260. package/dist/runtime/slots/widget/index.js +6 -0
  261. package/dist/runtime/slots/widget/index.js.map +1 -0
  262. package/{runtime/slots/widget/types.ts → dist/runtime/slots/widget/types.d.ts} +58 -84
  263. package/dist/runtime/slots/widget/types.js +41 -0
  264. package/dist/runtime/slots/widget/types.js.map +1 -0
  265. package/dist/runtime/slots/widget/utils.d.ts +22 -0
  266. package/dist/runtime/slots/widget/utils.js +184 -0
  267. package/dist/runtime/slots/widget/utils.js.map +1 -0
  268. package/{runtime/subscriptions.ts → dist/runtime/subscriptions.d.ts} +5 -41
  269. package/dist/runtime/subscriptions.js +48 -0
  270. package/dist/runtime/subscriptions.js.map +1 -0
  271. package/{runtime/testing/index.ts → dist/runtime/testing/index.d.ts} +0 -1
  272. package/dist/runtime/testing/index.js +9 -0
  273. package/dist/runtime/testing/index.js.map +1 -0
  274. package/dist/runtime/testing/initializeMockApp.d.ts +46 -0
  275. package/{runtime/testing/initializeMockApp.ts → dist/runtime/testing/initializeMockApp.js} +26 -36
  276. package/dist/runtime/testing/initializeMockApp.js.map +1 -0
  277. package/dist/runtime/testing/mockMessages.d.ts +22 -0
  278. package/dist/runtime/testing/mockMessages.js +23 -0
  279. package/dist/runtime/testing/mockMessages.js.map +1 -0
  280. package/dist/runtime/utils.d.ts +95 -0
  281. package/{runtime → dist/runtime}/utils.js +55 -70
  282. package/dist/runtime/utils.js.map +1 -0
  283. package/dist/shell/DefaultLayout.d.ts +1 -0
  284. package/dist/shell/DefaultLayout.js +7 -0
  285. package/dist/shell/DefaultLayout.js.map +1 -0
  286. package/dist/shell/DefaultMain.d.ts +1 -0
  287. package/dist/shell/DefaultMain.js +6 -0
  288. package/dist/shell/DefaultMain.js.map +1 -0
  289. package/dist/shell/Logo.d.ts +6 -0
  290. package/dist/shell/Logo.js +14 -0
  291. package/dist/shell/Logo.js.map +1 -0
  292. package/dist/shell/Shell.d.ts +1 -0
  293. package/dist/shell/Shell.js +10 -0
  294. package/dist/shell/Shell.js.map +1 -0
  295. package/dist/shell/Shell.messages.d.ts +58 -0
  296. package/dist/shell/Shell.messages.js +60 -0
  297. package/dist/shell/Shell.messages.js.map +1 -0
  298. package/dist/shell/app.d.ts +3 -0
  299. package/dist/shell/app.js +35 -0
  300. package/dist/shell/app.js.map +1 -0
  301. package/{shell → dist/shell}/app.scss +2 -1
  302. package/dist/shell/babel.config.d.ts +2 -0
  303. package/{shell → dist/shell}/babel.config.js +2 -1
  304. package/dist/shell/babel.config.js.map +1 -0
  305. package/dist/shell/dev/devFooter/app.d.ts +3 -0
  306. package/dist/shell/dev/devFooter/app.js +36 -0
  307. package/dist/shell/dev/devFooter/app.js.map +1 -0
  308. package/dist/shell/dev/devFooter/index.js +2 -0
  309. package/dist/shell/dev/devFooter/index.js.map +1 -0
  310. package/dist/shell/dev/devHeader/BarContext.d.ts +7 -0
  311. package/dist/shell/dev/devHeader/BarContext.js +8 -0
  312. package/dist/shell/dev/devHeader/BarContext.js.map +1 -0
  313. package/dist/shell/dev/devHeader/BarLink.d.ts +1 -0
  314. package/dist/shell/dev/devHeader/BarLink.js +10 -0
  315. package/dist/shell/dev/devHeader/BarLink.js.map +1 -0
  316. package/dist/shell/dev/devHeader/BarProvider.d.ts +6 -0
  317. package/dist/shell/dev/devHeader/BarProvider.js +16 -0
  318. package/dist/shell/dev/devHeader/BarProvider.js.map +1 -0
  319. package/dist/shell/dev/devHeader/CoursesLink.d.ts +1 -0
  320. package/dist/shell/dev/devHeader/CoursesLink.js +10 -0
  321. package/dist/shell/dev/devHeader/CoursesLink.js.map +1 -0
  322. package/dist/shell/dev/devHeader/FooContext.d.ts +7 -0
  323. package/dist/shell/dev/devHeader/FooContext.js +8 -0
  324. package/dist/shell/dev/devHeader/FooContext.js.map +1 -0
  325. package/dist/shell/dev/devHeader/FooLink.d.ts +1 -0
  326. package/dist/shell/dev/devHeader/FooLink.js +10 -0
  327. package/dist/shell/dev/devHeader/FooLink.js.map +1 -0
  328. package/dist/shell/dev/devHeader/FooProvider.d.ts +6 -0
  329. package/dist/shell/dev/devHeader/FooProvider.js +16 -0
  330. package/dist/shell/dev/devHeader/FooProvider.js.map +1 -0
  331. package/dist/shell/dev/devHeader/app.d.ts +3 -0
  332. package/dist/shell/dev/devHeader/app.js +34 -0
  333. package/dist/shell/dev/devHeader/app.js.map +1 -0
  334. package/dist/shell/dev/devHeader/index.js +2 -0
  335. package/dist/shell/dev/devHeader/index.js.map +1 -0
  336. package/dist/shell/dev/devHeader/providers.d.ts +3 -0
  337. package/dist/shell/dev/devHeader/providers.js +8 -0
  338. package/dist/shell/dev/devHeader/providers.js.map +1 -0
  339. package/dist/shell/dev/devHome/HomePage.d.ts +1 -0
  340. package/dist/shell/dev/devHome/HomePage.js +13 -0
  341. package/dist/shell/dev/devHome/HomePage.js.map +1 -0
  342. package/dist/shell/dev/devHome/app.d.ts +3 -0
  343. package/dist/shell/dev/devHome/app.js +16 -0
  344. package/dist/shell/dev/devHome/app.js.map +1 -0
  345. package/dist/shell/dev/devHome/i18n/index.d.ts +27 -0
  346. package/dist/shell/dev/devHome/i18n/index.js +28 -0
  347. package/dist/shell/dev/devHome/i18n/index.js.map +1 -0
  348. package/dist/shell/dev/devHome/index.js +2 -0
  349. package/dist/shell/dev/devHome/index.js.map +1 -0
  350. package/dist/shell/dev/devHome/messages.d.ts +8 -0
  351. package/dist/shell/dev/devHome/messages.js +10 -0
  352. package/dist/shell/dev/devHome/messages.js.map +1 -0
  353. package/dist/shell/dev/devUser/app.d.ts +3 -0
  354. package/dist/shell/dev/devUser/app.js +22 -0
  355. package/dist/shell/dev/devUser/app.js.map +1 -0
  356. package/dist/shell/dev/devUser/index.js +2 -0
  357. package/dist/shell/dev/devUser/index.js.map +1 -0
  358. package/dist/shell/dev/index.js +6 -0
  359. package/dist/shell/dev/index.js.map +1 -0
  360. package/dist/shell/dev/slotShowcase/HorizontalSlotLayout.d.ts +1 -0
  361. package/dist/shell/dev/slotShowcase/HorizontalSlotLayout.js +8 -0
  362. package/dist/shell/dev/slotShowcase/HorizontalSlotLayout.js.map +1 -0
  363. package/dist/shell/dev/slotShowcase/LayoutWithOptions.d.ts +1 -0
  364. package/dist/shell/dev/slotShowcase/LayoutWithOptions.js +9 -0
  365. package/dist/shell/dev/slotShowcase/LayoutWithOptions.js.map +1 -0
  366. package/dist/shell/dev/slotShowcase/SlotShowcasePage.d.ts +2 -0
  367. package/dist/shell/dev/slotShowcase/SlotShowcasePage.js +17 -0
  368. package/dist/shell/dev/slotShowcase/SlotShowcasePage.js.map +1 -0
  369. package/dist/shell/dev/slotShowcase/ToggleByRoleLayout.d.ts +1 -0
  370. package/dist/shell/dev/slotShowcase/ToggleByRoleLayout.js +11 -0
  371. package/dist/shell/dev/slotShowcase/ToggleByRoleLayout.js.map +1 -0
  372. package/dist/shell/dev/slotShowcase/WidgetWithOptions.d.ts +1 -0
  373. package/dist/shell/dev/slotShowcase/WidgetWithOptions.js +8 -0
  374. package/dist/shell/dev/slotShowcase/WidgetWithOptions.js.map +1 -0
  375. package/dist/shell/dev/slotShowcase/app.d.ts +3 -0
  376. package/dist/shell/dev/slotShowcase/app.js +372 -0
  377. package/dist/shell/dev/slotShowcase/app.js.map +1 -0
  378. package/dist/shell/dev/slotShowcase/index.js +2 -0
  379. package/dist/shell/dev/slotShowcase/index.js.map +1 -0
  380. package/dist/shell/footer/CenterLinks.d.ts +1 -0
  381. package/dist/shell/footer/CenterLinks.js +7 -0
  382. package/dist/shell/footer/CenterLinks.js.map +1 -0
  383. package/dist/shell/footer/CopyrightNotice.d.ts +10 -0
  384. package/dist/shell/footer/CopyrightNotice.js +10 -0
  385. package/dist/shell/footer/CopyrightNotice.js.map +1 -0
  386. package/dist/shell/footer/Footer.d.ts +1 -0
  387. package/dist/shell/footer/Footer.js +12 -0
  388. package/dist/shell/footer/Footer.js.map +1 -0
  389. package/dist/shell/footer/LabeledLinkColumn.d.ts +1 -0
  390. package/dist/shell/footer/LabeledLinkColumn.js +11 -0
  391. package/dist/shell/footer/LabeledLinkColumn.js.map +1 -0
  392. package/dist/shell/footer/LanguageMenu.d.ts +1 -0
  393. package/dist/shell/footer/LanguageMenu.js +16 -0
  394. package/dist/shell/footer/LanguageMenu.js.map +1 -0
  395. package/dist/shell/footer/LanguageMenuItem.d.ts +8 -0
  396. package/dist/shell/footer/LanguageMenuItem.js +11 -0
  397. package/dist/shell/footer/LanguageMenuItem.js.map +1 -0
  398. package/dist/shell/footer/LeftLinks.d.ts +1 -0
  399. package/dist/shell/footer/LeftLinks.js +7 -0
  400. package/dist/shell/footer/LeftLinks.js.map +1 -0
  401. package/dist/shell/footer/LegalNotices.d.ts +1 -0
  402. package/dist/shell/footer/LegalNotices.js +10 -0
  403. package/dist/shell/footer/LegalNotices.js.map +1 -0
  404. package/dist/shell/footer/PoweredBy.d.ts +1 -0
  405. package/dist/shell/footer/PoweredBy.js +9 -0
  406. package/dist/shell/footer/PoweredBy.js.map +1 -0
  407. package/dist/shell/footer/RevealLinks.d.ts +1 -0
  408. package/dist/shell/footer/RevealLinks.js +16 -0
  409. package/dist/shell/footer/RevealLinks.js.map +1 -0
  410. package/dist/shell/footer/RightLinks.d.ts +1 -0
  411. package/dist/shell/footer/RightLinks.js +7 -0
  412. package/dist/shell/footer/RightLinks.js.map +1 -0
  413. package/dist/shell/footer/app.d.ts +3 -0
  414. package/dist/shell/footer/app.js +59 -0
  415. package/dist/shell/footer/app.js.map +1 -0
  416. package/dist/shell/footer/data/api.d.ts +1 -0
  417. package/dist/shell/footer/data/api.js +45 -0
  418. package/dist/shell/footer/data/api.js.map +1 -0
  419. package/dist/shell/footer/index.js +3 -0
  420. package/dist/shell/footer/index.js.map +1 -0
  421. package/dist/shell/header/AuthenticatedMenu.d.ts +5 -0
  422. package/dist/shell/header/AuthenticatedMenu.js +11 -0
  423. package/dist/shell/header/AuthenticatedMenu.js.map +1 -0
  424. package/dist/shell/header/Header.d.ts +1 -0
  425. package/dist/shell/header/Header.js +8 -0
  426. package/dist/shell/header/Header.js.map +1 -0
  427. package/dist/shell/header/anonymous-menu/AnonymousMenu.d.ts +5 -0
  428. package/dist/shell/header/anonymous-menu/AnonymousMenu.js +7 -0
  429. package/dist/shell/header/anonymous-menu/AnonymousMenu.js.map +1 -0
  430. package/dist/shell/header/anonymous-menu/LoginButton.d.ts +3 -0
  431. package/dist/shell/header/anonymous-menu/LoginButton.js +22 -0
  432. package/dist/shell/header/anonymous-menu/LoginButton.js.map +1 -0
  433. package/dist/shell/header/anonymous-menu/RegisterButton.d.ts +3 -0
  434. package/dist/shell/header/anonymous-menu/RegisterButton.js +22 -0
  435. package/dist/shell/header/anonymous-menu/RegisterButton.js.map +1 -0
  436. package/dist/shell/header/app.d.ts +3 -0
  437. package/dist/shell/header/app.js +119 -0
  438. package/dist/shell/header/app.js.map +1 -0
  439. package/dist/shell/header/desktop/DesktopLayout.d.ts +1 -0
  440. package/dist/shell/header/desktop/DesktopLayout.js +9 -0
  441. package/dist/shell/header/desktop/DesktopLayout.js.map +1 -0
  442. package/dist/shell/header/desktop/PrimaryNavLinks.d.ts +1 -0
  443. package/dist/shell/header/desktop/PrimaryNavLinks.js +7 -0
  444. package/dist/shell/header/desktop/PrimaryNavLinks.js.map +1 -0
  445. package/dist/shell/header/desktop/SecondaryNavLinks.d.ts +1 -0
  446. package/dist/shell/header/desktop/SecondaryNavLinks.js +7 -0
  447. package/dist/shell/header/desktop/SecondaryNavLinks.js.map +1 -0
  448. package/dist/shell/header/index.js +3 -0
  449. package/dist/shell/header/index.js.map +1 -0
  450. package/dist/shell/header/mobile/MobileLayout.d.ts +1 -0
  451. package/dist/shell/header/mobile/MobileLayout.js +17 -0
  452. package/dist/shell/header/mobile/MobileLayout.js.map +1 -0
  453. package/dist/shell/header/mobile/MobileNavLinks.d.ts +1 -0
  454. package/dist/shell/header/mobile/MobileNavLinks.js +7 -0
  455. package/dist/shell/header/mobile/MobileNavLinks.js.map +1 -0
  456. package/dist/shell/i18n/index.d.ts +25 -0
  457. package/dist/shell/i18n/index.js +26 -0
  458. package/dist/shell/i18n/index.js.map +1 -0
  459. package/dist/shell/index.js +8 -0
  460. package/dist/shell/index.js.map +1 -0
  461. package/dist/shell/jest.config.d.ts +15 -0
  462. package/{tools/dist/jest → dist/shell}/jest.config.js +12 -10
  463. package/dist/shell/jest.config.js.map +1 -0
  464. package/dist/shell/menus/LinkMenuItem.d.ts +9 -0
  465. package/dist/shell/menus/LinkMenuItem.js +36 -0
  466. package/dist/shell/menus/LinkMenuItem.js.map +1 -0
  467. package/dist/shell/menus/NavDropdownMenuSlot.d.ts +7 -0
  468. package/dist/shell/menus/NavDropdownMenuSlot.js +14 -0
  469. package/dist/shell/menus/NavDropdownMenuSlot.js.map +1 -0
  470. package/dist/shell/menus/ProfileLinkMenuItem.d.ts +8 -0
  471. package/dist/shell/menus/ProfileLinkMenuItem.js +16 -0
  472. package/dist/shell/menus/ProfileLinkMenuItem.js.map +1 -0
  473. package/dist/shell/menus/data/utils.d.ts +4 -0
  474. package/dist/shell/menus/data/utils.js +13 -0
  475. package/dist/shell/menus/data/utils.js.map +1 -0
  476. package/dist/shell/router/createRouter.d.ts +1 -0
  477. package/dist/shell/router/createRouter.js +26 -0
  478. package/dist/shell/router/createRouter.js.map +1 -0
  479. package/dist/shell/router/getAppRoutes.d.ts +2 -0
  480. package/dist/shell/router/getAppRoutes.js +14 -0
  481. package/dist/shell/router/getAppRoutes.js.map +1 -0
  482. package/dist/shell/setupTest.d.ts +1 -0
  483. package/dist/shell/setupTest.js +12 -0
  484. package/dist/shell/setupTest.js.map +1 -0
  485. package/dist/shell/site.config.dev.d.ts +4 -0
  486. package/dist/shell/site.config.dev.js +43 -0
  487. package/dist/shell/site.config.dev.js.map +1 -0
  488. package/dist/shell/site.d.ts +1 -0
  489. package/dist/shell/site.js +35 -0
  490. package/dist/shell/site.js.map +1 -0
  491. package/dist/tools/babel/babel.config.d.ts +12 -0
  492. package/dist/tools/babel.config.d.ts +2 -0
  493. package/dist/tools/babel.config.js +3 -0
  494. package/dist/tools/cli/commands/serve.d.ts +1 -0
  495. package/dist/tools/cli/intl-imports.d.ts +7 -0
  496. package/{tools/dist → dist/tools}/cli/intl-imports.js +0 -0
  497. package/dist/tools/cli/intl-imports.test.d.ts +1 -0
  498. package/dist/tools/cli/openedx.d.ts +2 -0
  499. package/{tools/dist → dist/tools}/cli/openedx.js +27 -8
  500. package/dist/tools/cli/transifex-utils.d.ts +2 -0
  501. package/{tools/dist → dist/tools}/cli/transifex-utils.js +0 -0
  502. package/dist/tools/cli/utils/ensureConfigFilenameOption.d.ts +2 -0
  503. package/dist/tools/cli/utils/formatter.d.ts +1 -0
  504. package/dist/tools/cli/utils/formatter.js +3 -0
  505. package/dist/tools/cli/utils/getResolvedConfigPath.d.ts +2 -0
  506. package/dist/tools/cli/utils/prettyPrintTitle.d.ts +1 -0
  507. package/dist/tools/cli/utils/printUsage.d.ts +1 -0
  508. package/dist/tools/config-helpers/createConfig.d.ts +2 -0
  509. package/dist/tools/config-helpers/createLintConfig.d.ts +2 -0
  510. package/dist/tools/config-helpers/getBaseConfig.d.ts +2 -0
  511. package/dist/tools/defaultConfigPaths.d.ts +8 -0
  512. package/dist/tools/eslint/base.eslint.config.d.ts +3 -0
  513. package/{config → dist/tools}/eslint/base.eslint.config.js +5 -4
  514. package/dist/tools/eslint.config.d.ts +3 -0
  515. package/dist/tools/index.d.ts +3 -0
  516. package/dist/tools/jest/jest.config.d.ts +14 -0
  517. package/dist/tools/jest.config.d.ts +8 -0
  518. package/dist/tools/types.d.ts +18 -0
  519. package/{tools/dist → dist/tools}/typescript/tsconfig.json +2 -1
  520. package/dist/tools/webpack/common-config/all/getCodeRules.d.ts +2 -0
  521. package/dist/tools/webpack/common-config/all/getFileLoaderRules.d.ts +11 -0
  522. package/dist/tools/webpack/common-config/all/getImageMinimizer.d.ts +5 -0
  523. package/dist/tools/webpack/common-config/all/getStylesheetRule.d.ts +8 -0
  524. package/{config → dist/tools}/webpack/common-config/all/getStylesheetRule.js +1 -1
  525. package/dist/tools/webpack/common-config/dev/getDevServer.d.ts +2 -0
  526. package/{tools/dist → dist/tools}/webpack/common-config/dev/getDevServer.js +3 -5
  527. package/dist/tools/webpack/common-config/index.d.ts +6 -0
  528. package/dist/tools/webpack/common-config/site/getHtmlWebpackPlugin.d.ts +2 -0
  529. package/dist/tools/webpack/plugins/html-webpack-new-relic-plugin/HtmlWebpackNewRelicPlugin.d.ts +16 -0
  530. package/dist/tools/webpack/plugins/html-webpack-new-relic-plugin/index.d.ts +2 -0
  531. package/dist/tools/webpack/plugins/html-webpack-new-relic-plugin/test/HtmlWebpackNewRelicPlugin.test.d.ts +1 -0
  532. package/dist/tools/webpack/plugins/html-webpack-new-relic-plugin/test/fixtures/entry.d.ts +1 -0
  533. package/dist/tools/webpack/utils/getPublicPath.d.ts +1 -0
  534. package/{tools/dist → dist/tools}/webpack/utils/getPublicPath.js +1 -1
  535. package/dist/tools/webpack/utils/getResolvedSiteConfigPath.d.ts +1 -0
  536. package/dist/tools/webpack/webpack.config.build.d.ts +3 -0
  537. package/{config → dist/tools}/webpack/webpack.config.build.js +8 -15
  538. package/dist/tools/webpack/webpack.config.dev.d.ts +3 -0
  539. package/{tools/dist → dist/tools}/webpack/webpack.config.dev.js +12 -15
  540. package/dist/tools/webpack/webpack.config.dev.shell.d.ts +3 -0
  541. package/{config → dist/tools}/webpack/webpack.config.dev.shell.js +4 -14
  542. package/dist/types.d.ts +84 -0
  543. package/dist/types.js +7 -0
  544. package/dist/types.js.map +1 -0
  545. package/package.json +28 -17
  546. package/config/tsconfig.json +0 -32
  547. package/config/webpack/common-config/all/getIgnoreWarnings.js +0 -14
  548. package/config/webpack/common-config/dev/getDevServer.js +0 -38
  549. package/config/webpack/plugins/paragon-webpack-plugin/ParagonWebpackPlugin.js +0 -108
  550. package/config/webpack/plugins/paragon-webpack-plugin/index.js +0 -7
  551. package/config/webpack/plugins/paragon-webpack-plugin/utils/assetUtils.js +0 -64
  552. package/config/webpack/plugins/paragon-webpack-plugin/utils/htmlUtils.js +0 -53
  553. package/config/webpack/plugins/paragon-webpack-plugin/utils/index.js +0 -9
  554. package/config/webpack/plugins/paragon-webpack-plugin/utils/paragonStylesheetUtils.js +0 -114
  555. package/config/webpack/plugins/paragon-webpack-plugin/utils/scriptUtils.js +0 -146
  556. package/config/webpack/plugins/paragon-webpack-plugin/utils/stylesheetUtils.js +0 -126
  557. package/config/webpack/plugins/paragon-webpack-plugin/utils/tagUtils.js +0 -57
  558. package/config/webpack/types.js +0 -2
  559. package/config/webpack/utils/getLocalAliases.js +0 -65
  560. package/config/webpack/utils/getPublicPath.js +0 -6
  561. package/config/webpack/utils/paragonUtils.js +0 -138
  562. package/config/webpack/webpack.config.dev.js +0 -76
  563. package/runtime/__mocks__/file.js +0 -1
  564. package/runtime/__mocks__/svg.js +0 -1
  565. package/runtime/__mocks__/universal-cookie.js +0 -6
  566. package/runtime/analytics/MockAnalyticsService.js +0 -71
  567. package/runtime/analytics/SegmentAnalyticsService.js +0 -243
  568. package/runtime/analytics/index.ts +0 -12
  569. package/runtime/analytics/interface.test.js +0 -242
  570. package/runtime/auth/AxiosCsrfTokenService.js +0 -60
  571. package/runtime/auth/AxiosJwtAuthService.js +0 -363
  572. package/runtime/auth/AxiosJwtAuthService.test.jsx +0 -1076
  573. package/runtime/auth/AxiosJwtTokenService.js +0 -134
  574. package/runtime/auth/LocalForageCache.js +0 -76
  575. package/runtime/auth/MockAuthService.js +0 -278
  576. package/runtime/auth/index.ts +0 -19
  577. package/runtime/auth/interceptors/createCsrfTokenProviderInterceptor.js +0 -36
  578. package/runtime/auth/interceptors/createJwtTokenProviderInterceptor.js +0 -37
  579. package/runtime/auth/interceptors/createProcessAxiosRequestErrorInterceptor.js +0 -20
  580. package/runtime/auth/interceptors/createRetryInterceptor.js +0 -74
  581. package/runtime/auth/interceptors/createRetryInterceptor.test.js +0 -23
  582. package/runtime/auth/utils.js +0 -105
  583. package/runtime/config/getExternalLinkUrl.test.js +0 -76
  584. package/runtime/i18n/injectIntlWithShim.jsx +0 -48
  585. package/runtime/i18n/lib.test.js +0 -230
  586. package/runtime/i18n/lib.ts +0 -272
  587. package/runtime/index.ts +0 -134
  588. package/runtime/initialize.async.function.config.test.js +0 -43
  589. package/runtime/initialize.const.config.test.js +0 -41
  590. package/runtime/initialize.function.config.test.js +0 -41
  591. package/runtime/initialize.js +0 -352
  592. package/runtime/initialize.test.js +0 -356
  593. package/runtime/jest.config.js +0 -32
  594. package/runtime/logging/MockLoggingService.js +0 -31
  595. package/runtime/logging/NewRelicLoggingService.js +0 -184
  596. package/runtime/logging/NewRelicLoggingService.test.js +0 -214
  597. package/runtime/logging/types.ts +0 -4
  598. package/runtime/react/AuthenticatedPageRoute.test.jsx +0 -135
  599. package/runtime/react/CombinedAppProvider.tsx +0 -46
  600. package/runtime/react/CurrentAppProvider.tsx +0 -46
  601. package/runtime/react/Divider.tsx +0 -5
  602. package/runtime/react/ErrorBoundary.jsx +0 -47
  603. package/runtime/react/ErrorBoundary.test.jsx +0 -83
  604. package/runtime/react/ErrorPage.jsx +0 -72
  605. package/runtime/react/SiteProvider.test.jsx +0 -66
  606. package/runtime/react/SiteProvider.tsx +0 -78
  607. package/runtime/react/hooks.test.jsx +0 -104
  608. package/runtime/react/hooks.ts +0 -106
  609. package/runtime/routing/index.ts +0 -1
  610. package/runtime/routing/utils.test.ts +0 -7
  611. package/runtime/routing/utils.ts +0 -34
  612. package/runtime/scripts/GoogleAnalyticsLoader.test.ts +0 -77
  613. package/runtime/scripts/GoogleAnalyticsLoader.ts +0 -59
  614. package/runtime/setupTest.js +0 -49
  615. package/runtime/site.config.test.tsx +0 -33
  616. package/runtime/slots/Slot.test.tsx +0 -40
  617. package/runtime/slots/Slot.tsx +0 -32
  618. package/runtime/slots/SlotContext.tsx +0 -8
  619. package/runtime/slots/hooks.ts +0 -35
  620. package/runtime/slots/layout/DefaultSlotLayout.test.tsx +0 -31
  621. package/runtime/slots/layout/DefaultSlotLayout.tsx +0 -9
  622. package/runtime/slots/layout/hooks.test.tsx +0 -178
  623. package/runtime/slots/layout/hooks.ts +0 -65
  624. package/runtime/slots/layout/utils.test.ts +0 -67
  625. package/runtime/slots/layout/utils.ts +0 -14
  626. package/runtime/slots/utils.test.ts +0 -64
  627. package/runtime/slots/utils.ts +0 -78
  628. package/runtime/slots/widget/WidgetContext.tsx +0 -9
  629. package/runtime/slots/widget/WidgetProvider.tsx +0 -30
  630. package/runtime/slots/widget/hooks.ts +0 -105
  631. package/runtime/slots/widget/iframe/IFrameContentWrapper.messages.tsx +0 -16
  632. package/runtime/slots/widget/iframe/IFrameContentWrapper.tsx +0 -84
  633. package/runtime/slots/widget/iframe/IFrameWidget.tsx +0 -59
  634. package/runtime/slots/widget/iframe/hooks.ts +0 -179
  635. package/runtime/slots/widget/utils.tsx +0 -201
  636. package/runtime/testing/initializeMockApp.test.ts +0 -66
  637. package/runtime/testing/mockMessages.ts +0 -23
  638. package/runtime/utils.test.js +0 -116
  639. package/shell/DefaultLayout.tsx +0 -18
  640. package/shell/DefaultMain.tsx +0 -7
  641. package/shell/Logo.test.tsx +0 -32
  642. package/shell/Logo.tsx +0 -28
  643. package/shell/Shell.messages.ts +0 -61
  644. package/shell/Shell.tsx +0 -18
  645. package/shell/__mocks__/file.js +0 -1
  646. package/shell/__mocks__/svg.js +0 -1
  647. package/shell/__mocks__/universal-cookie.js +0 -6
  648. package/shell/app.ts +0 -38
  649. package/shell/dev/devFooter/app.tsx +0 -43
  650. package/shell/dev/devHeader/BarContext.tsx +0 -13
  651. package/shell/dev/devHeader/BarLink.tsx +0 -16
  652. package/shell/dev/devHeader/BarProvider.tsx +0 -25
  653. package/shell/dev/devHeader/CoursesLink.tsx +0 -16
  654. package/shell/dev/devHeader/FooContext.tsx +0 -13
  655. package/shell/dev/devHeader/FooLink.tsx +0 -16
  656. package/shell/dev/devHeader/FooProvider.tsx +0 -25
  657. package/shell/dev/devHeader/app.tsx +0 -53
  658. package/shell/dev/devHeader/providers.tsx +0 -11
  659. package/shell/dev/devHome/HomePage.tsx +0 -28
  660. package/shell/dev/devHome/app.ts +0 -18
  661. package/shell/dev/devHome/i18n/index.ts +0 -27
  662. package/shell/dev/devHome/messages.ts +0 -11
  663. package/shell/dev/devUser/app.tsx +0 -24
  664. package/shell/dev/slotShowcase/HorizontalSlotLayout.tsx +0 -11
  665. package/shell/dev/slotShowcase/LayoutWithOptions.tsx +0 -17
  666. package/shell/dev/slotShowcase/SlotShowcasePage.tsx +0 -66
  667. package/shell/dev/slotShowcase/WidgetWithOptions.tsx +0 -11
  668. package/shell/dev/slotShowcase/app.tsx +0 -373
  669. package/shell/footer/CenterLinks.tsx +0 -11
  670. package/shell/footer/CopyrightNotice.tsx +0 -36
  671. package/shell/footer/Footer.tsx +0 -34
  672. package/shell/footer/LabeledLinkColumn.tsx +0 -19
  673. package/shell/footer/LanguageMenu.tsx +0 -35
  674. package/shell/footer/LanguageMenuItem.tsx +0 -23
  675. package/shell/footer/LeftLinks.tsx +0 -11
  676. package/shell/footer/LegalNotices.tsx +0 -17
  677. package/shell/footer/PoweredBy.tsx +0 -17
  678. package/shell/footer/RevealLinks.tsx +0 -43
  679. package/shell/footer/RightLinks.tsx +0 -11
  680. package/shell/footer/app.tsx +0 -73
  681. package/shell/footer/data/api.ts +0 -48
  682. package/shell/header/AuthenticatedMenu.tsx +0 -32
  683. package/shell/header/Header.tsx +0 -17
  684. package/shell/header/anonymous-menu/AnonymousMenu.tsx +0 -14
  685. package/shell/header/anonymous-menu/LoginButton.tsx +0 -14
  686. package/shell/header/anonymous-menu/RegisterButton.tsx +0 -15
  687. package/shell/header/app.tsx +0 -142
  688. package/shell/header/desktop/DesktopLayout.tsx +0 -22
  689. package/shell/header/desktop/PrimaryNavLinks.tsx +0 -10
  690. package/shell/header/desktop/SecondaryNavLinks.tsx +0 -10
  691. package/shell/header/mobile/MobileLayout.tsx +0 -47
  692. package/shell/header/mobile/MobileNavLinks.tsx +0 -10
  693. package/shell/i18n/index.ts +0 -25
  694. package/shell/jest.config.js +0 -30
  695. package/shell/menus/LinkMenuItem.tsx +0 -64
  696. package/shell/menus/NavDropdownMenuSlot.tsx +0 -29
  697. package/shell/menus/ProfileLinkMenuItem.tsx +0 -33
  698. package/shell/menus/data/utils.ts +0 -19
  699. package/shell/public/index.html +0 -10
  700. package/shell/router/createRouter.test.tsx +0 -50
  701. package/shell/router/createRouter.ts +0 -17
  702. package/shell/router/getAppRoutes.test.tsx +0 -59
  703. package/shell/router/getAppRoutes.ts +0 -21
  704. package/shell/setupTest.js +0 -48
  705. package/shell/site.config.dev.tsx +0 -49
  706. package/shell/site.config.test.tsx +0 -16
  707. package/shell/site.tsx +0 -41
  708. package/tools/dist/babel/babel.config.js +0 -28
  709. package/tools/dist/cli/utils/formatter.js +0 -10
  710. package/tools/dist/config-helpers/createConfig.js +0 -13
  711. package/tools/dist/config-helpers/createLintConfig.js +0 -16
  712. package/tools/dist/config-helpers/getBaseConfig.js +0 -12
  713. package/tools/dist/defaultConfigPaths.js +0 -35
  714. package/tools/dist/eslint/base.eslint.config.js +0 -113
  715. package/tools/dist/index.js +0 -12
  716. package/tools/dist/types.js +0 -23
  717. package/tools/dist/webpack/common-config/all/getCodeRules.js +0 -52
  718. package/tools/dist/webpack/common-config/all/getFileLoaderRules.js +0 -26
  719. package/tools/dist/webpack/common-config/all/getIgnoreWarnings.js +0 -14
  720. package/tools/dist/webpack/common-config/all/getImageMinimizer.js +0 -25
  721. package/tools/dist/webpack/common-config/all/getStylesheetRule.js +0 -112
  722. package/tools/dist/webpack/common-config/index.js +0 -18
  723. package/tools/dist/webpack/common-config/site/getHtmlWebpackPlugin.js +0 -16
  724. package/tools/dist/webpack/plugins/html-webpack-new-relic-plugin/HtmlWebpackNewRelicPlugin.js +0 -91
  725. package/tools/dist/webpack/plugins/html-webpack-new-relic-plugin/index.js +0 -7
  726. package/tools/dist/webpack/plugins/html-webpack-new-relic-plugin/test/HtmlWebpackNewRelicPlugin.test.js +0 -66
  727. package/tools/dist/webpack/plugins/html-webpack-new-relic-plugin/test/fixtures/entry.js +0 -3
  728. package/tools/dist/webpack/plugins/paragon-webpack-plugin/ParagonWebpackPlugin.js +0 -108
  729. package/tools/dist/webpack/plugins/paragon-webpack-plugin/index.js +0 -7
  730. package/tools/dist/webpack/plugins/paragon-webpack-plugin/utils/assetUtils.js +0 -64
  731. package/tools/dist/webpack/plugins/paragon-webpack-plugin/utils/htmlUtils.js +0 -53
  732. package/tools/dist/webpack/plugins/paragon-webpack-plugin/utils/index.js +0 -9
  733. package/tools/dist/webpack/plugins/paragon-webpack-plugin/utils/paragonStylesheetUtils.js +0 -114
  734. package/tools/dist/webpack/plugins/paragon-webpack-plugin/utils/scriptUtils.js +0 -146
  735. package/tools/dist/webpack/plugins/paragon-webpack-plugin/utils/stylesheetUtils.js +0 -126
  736. package/tools/dist/webpack/plugins/paragon-webpack-plugin/utils/tagUtils.js +0 -57
  737. package/tools/dist/webpack/types.js +0 -2
  738. package/tools/dist/webpack/utils/getLocalAliases.js +0 -65
  739. package/tools/dist/webpack/utils/getResolvedSiteConfigPath.js +0 -32
  740. package/tools/dist/webpack/utils/paragonUtils.js +0 -138
  741. package/tools/dist/webpack/webpack.config.build.js +0 -80
  742. package/tools/dist/webpack/webpack.config.dev.shell.js +0 -110
  743. package/types.ts +0 -99
  744. /package/{runtime/scripts/index.ts → dist/runtime/scripts/index.d.ts} +0 -0
  745. /package/{runtime/slots/index.ts → dist/runtime/slots/index.d.ts} +0 -0
  746. /package/{runtime/slots/layout/index.ts → dist/runtime/slots/layout/index.d.ts} +0 -0
  747. /package/{runtime/slots/widget/index.ts → dist/runtime/slots/widget/index.d.ts} +0 -0
  748. /package/{shell/dev/devFooter/index.ts → dist/shell/dev/devFooter/index.d.ts} +0 -0
  749. /package/{shell/dev/devHeader/index.ts → dist/shell/dev/devHeader/index.d.ts} +0 -0
  750. /package/{shell/dev/devHome/index.ts → dist/shell/dev/devHome/index.d.ts} +0 -0
  751. /package/{shell/dev/devUser/index.ts → dist/shell/dev/devUser/index.d.ts} +0 -0
  752. /package/{shell/dev/index.ts → dist/shell/dev/index.d.ts} +0 -0
  753. /package/{shell/dev/slotShowcase/index.ts → dist/shell/dev/slotShowcase/index.d.ts} +0 -0
  754. /package/{shell/footer/index.ts → dist/shell/footer/index.d.ts} +0 -0
  755. /package/{shell/header/index.ts → dist/shell/header/index.d.ts} +0 -0
  756. /package/{shell/index.ts → dist/shell/index.d.ts} +0 -0
  757. /package/{config → dist/tools}/babel/babel.config.js +0 -0
  758. /package/{tools/dist → dist/tools}/cli/commands/serve.js +0 -0
  759. /package/{tools/dist → dist/tools}/cli/intl-imports.test.js +0 -0
  760. /package/{tools/dist → dist/tools}/cli/utils/ensureConfigFilenameOption.js +0 -0
  761. /package/{tools/dist → dist/tools}/cli/utils/getResolvedConfigPath.js +0 -0
  762. /package/{tools/dist → dist/tools}/cli/utils/prettyPrintTitle.js +0 -0
  763. /package/{tools/dist → dist/tools}/cli/utils/printUsage.js +0 -0
  764. /package/{config → dist/tools}/config-helpers/createConfig.js +0 -0
  765. /package/{config → dist/tools}/config-helpers/createLintConfig.js +0 -0
  766. /package/{config → dist/tools}/config-helpers/getBaseConfig.js +0 -0
  767. /package/{config → dist/tools}/defaultConfigPaths.js +0 -0
  768. /package/{tools/dist → dist/tools}/eslint.config.js +0 -0
  769. /package/{config → dist/tools}/index.js +0 -0
  770. /package/{config → dist/tools}/jest/jest.config.js +0 -0
  771. /package/{tools/dist → dist/tools}/jest.config.js +0 -0
  772. /package/{config → dist/tools}/types.js +0 -0
  773. /package/{config → dist/tools}/webpack/common-config/all/getCodeRules.js +0 -0
  774. /package/{config → dist/tools}/webpack/common-config/all/getFileLoaderRules.js +0 -0
  775. /package/{config → dist/tools}/webpack/common-config/all/getImageMinimizer.js +0 -0
  776. /package/{config → dist/tools}/webpack/common-config/index.js +0 -0
  777. /package/{config → dist/tools}/webpack/common-config/site/getHtmlWebpackPlugin.js +0 -0
  778. /package/{config → dist/tools}/webpack/plugins/html-webpack-new-relic-plugin/HtmlWebpackNewRelicPlugin.js +0 -0
  779. /package/{config → dist/tools}/webpack/plugins/html-webpack-new-relic-plugin/index.js +0 -0
  780. /package/{config → dist/tools}/webpack/plugins/html-webpack-new-relic-plugin/test/HtmlWebpackNewRelicPlugin.test.js +0 -0
  781. /package/{config → dist/tools}/webpack/plugins/html-webpack-new-relic-plugin/test/fixtures/entry.js +0 -0
  782. /package/{config → dist/tools}/webpack/utils/getResolvedSiteConfigPath.js +0 -0
@@ -0,0 +1,64 @@
1
+ /**
2
+ * Hooks file for functions that handle the communication between a Plugin and its Host
3
+ */
4
+ import { LegacyRef } from 'react';
5
+ import { MessageEventCallback } from './types';
6
+ /**
7
+ * Dynamically add an event listener to the provided source window.
8
+ * The source window can be the global parent (ie. the "window" object in the browser)
9
+ * or it can be the content window of an individual element (ie. iFrame plugin container)
10
+ */
11
+ export declare function useMessageEvent(srcWindow: Window | null, type: string, callback: MessageEventCallback): void;
12
+ /**
13
+ * Called by the Plugin component to use events that were listened to (ie. PLUGIN_RESIZE)
14
+ */
15
+ export declare function useHostEvent(type: string, callback: MessageEventCallback): void;
16
+ /**
17
+ * Used to listen for events from a wrapped Plugin element (eg. PluginContainerIframe)
18
+ *
19
+ * @param element - Plugin element (eg. <iframe>)
20
+ * @param type - Event type (eg. PLUGIN_RESIZE)
21
+ * @param callback - Function to call when the event is triggered
22
+ */
23
+ export declare function usePluginEvent(element: HTMLIFrameElement | undefined, type: string, callback: MessageEventCallback): void;
24
+ /** Dispatching events */
25
+ /**
26
+ * Base dispatch function called by dispatchHostEvent and dispatchPluginEvent.
27
+ * Uses the `postMessage` method to enable cross-origin communication between Window objects
28
+ *
29
+ * @param targetWindow - Window that the message event is being dispatched to
30
+ * @param message - Data object for the message
31
+ * @param targetOrigin - URL for the window that the message event is being dispatched from
32
+ */
33
+ export declare function dispatchMessageEvent(targetWindow: Window | null, message: any, targetOrigin: string): void;
34
+ /**
35
+ * Used to dispatch events for a Plugin
36
+ *
37
+ * @param element - Plugin element (eg. <iframe>)
38
+ * @param message - Data object for the message
39
+ * @param targetOrigin - URL for the window that the message event is being dispatched from
40
+ */
41
+ export declare function dispatchPluginEvent(element: HTMLIFrameElement, message: any, targetOrigin: string): void;
42
+ /**
43
+ * Used to dispatch events for the Host
44
+ *
45
+ * @param message - Data object for the message
46
+ */
47
+ export declare function dispatchHostEvent(message: any): void;
48
+ export declare function dispatchReadyEvent(): void;
49
+ export declare function dispatchMountedEvent(): void;
50
+ export declare function dispatchUnmountedEvent(): void;
51
+ /**
52
+ * Used to determine the size of an element as it is being resized in the browser.
53
+ * ResizeObserver (https://developer.mozilla.org/en-US/docs/Web/API/ResizeObserver) is used to maintain a reference to the element's content/border box.
54
+ *
55
+ * @returns Memoized value that contains a reference to the Plugin element (eg. iframe)
56
+ */
57
+ export declare function useElementSize(): {
58
+ ref: LegacyRef<HTMLIFrameElement>;
59
+ element: HTMLIFrameElement | undefined;
60
+ width: number;
61
+ height: number;
62
+ x: number;
63
+ y: number;
64
+ };
@@ -0,0 +1,144 @@
1
+ /**
2
+ * Hooks file for functions that handle the communication between a Plugin and its Host
3
+ */
4
+ import { useCallback, useEffect, useLayoutEffect, useMemo, useRef, useState } from 'react';
5
+ import { IFRAME_MOUNTED, IFRAME_READY, IFRAME_UNMOUNTED } from './constants';
6
+ /* Listening for events */
7
+ /**
8
+ * Dynamically add an event listener to the provided source window.
9
+ * The source window can be the global parent (ie. the "window" object in the browser)
10
+ * or it can be the content window of an individual element (ie. iFrame plugin container)
11
+ */
12
+ export function useMessageEvent(srcWindow, type, callback) {
13
+ // useLayoutEffect is called before the browser repaints the screen
14
+ useLayoutEffect(() => {
15
+ // Create a listener callback function
16
+ const listener = (event) => {
17
+ // Filter messages to those from our source window.
18
+ // NOTE: the "srcWindow" is determined by the below useHostEvent and usePluginEvent functions
19
+ if (event.source === srcWindow) {
20
+ // Fire callback if the type from the listened event matches the type from the message event
21
+ if (event.data.type === type) {
22
+ callback({ type, payload: event.data.payload });
23
+ }
24
+ }
25
+ };
26
+ // Add the listener to the global object if the srcWindow is not null
27
+ if (srcWindow !== null) {
28
+ global.addEventListener('message', listener);
29
+ }
30
+ // useEffect cleanup
31
+ return () => {
32
+ global.removeEventListener('message', listener);
33
+ };
34
+ }, [srcWindow, type, callback]);
35
+ }
36
+ /**
37
+ * Called by the Plugin component to use events that were listened to (ie. PLUGIN_RESIZE)
38
+ */
39
+ export function useHostEvent(type, callback) {
40
+ useMessageEvent(global.parent, type, callback);
41
+ }
42
+ /**
43
+ * Used to listen for events from a wrapped Plugin element (eg. PluginContainerIframe)
44
+ *
45
+ * @param element - Plugin element (eg. <iframe>)
46
+ * @param type - Event type (eg. PLUGIN_RESIZE)
47
+ * @param callback - Function to call when the event is triggered
48
+ */
49
+ export function usePluginEvent(element, type, callback) {
50
+ const contentWindow = element ? element.contentWindow : null;
51
+ useMessageEvent(contentWindow, type, callback);
52
+ }
53
+ /** Dispatching events */
54
+ /**
55
+ * Base dispatch function called by dispatchHostEvent and dispatchPluginEvent.
56
+ * Uses the `postMessage` method to enable cross-origin communication between Window objects
57
+ *
58
+ * @param targetWindow - Window that the message event is being dispatched to
59
+ * @param message - Data object for the message
60
+ * @param targetOrigin - URL for the window that the message event is being dispatched from
61
+ */
62
+ export function dispatchMessageEvent(targetWindow, message, targetOrigin) {
63
+ /** Checking targetOrigin falsiness here since '', null or undefined would all be
64
+ * reasons not to try to post a message to the origin.
65
+ */
66
+ if (targetWindow && targetOrigin) {
67
+ targetWindow.postMessage(message, targetOrigin);
68
+ }
69
+ }
70
+ /**
71
+ * Used to dispatch events for a Plugin
72
+ *
73
+ * @param element - Plugin element (eg. <iframe>)
74
+ * @param message - Data object for the message
75
+ * @param targetOrigin - URL for the window that the message event is being dispatched from
76
+ */
77
+ export function dispatchPluginEvent(element, message, targetOrigin) {
78
+ dispatchMessageEvent(element.contentWindow, message, targetOrigin);
79
+ }
80
+ /**
81
+ * Used to dispatch events for the Host
82
+ *
83
+ * @param message - Data object for the message
84
+ */
85
+ export function dispatchHostEvent(message) {
86
+ dispatchMessageEvent(global.parent, message, global.document.referrer);
87
+ }
88
+ // Called inside Plugin when 'ready' prop is true
89
+ export function dispatchReadyEvent() {
90
+ dispatchHostEvent({ type: IFRAME_READY });
91
+ }
92
+ // Below mounted events are called in a useEffect inside Plugin with [] dependencies — https://react.dev/learn/synchronizing-with-effects
93
+ export function dispatchMountedEvent() {
94
+ dispatchHostEvent({ type: IFRAME_MOUNTED });
95
+ }
96
+ export function dispatchUnmountedEvent() {
97
+ dispatchHostEvent({ type: IFRAME_UNMOUNTED });
98
+ }
99
+ /**
100
+ * Used to determine the size of an element as it is being resized in the browser.
101
+ * ResizeObserver (https://developer.mozilla.org/en-US/docs/Web/API/ResizeObserver) is used to maintain a reference to the element's content/border box.
102
+ *
103
+ * @returns Memoized value that contains a reference to the Plugin element (eg. iframe)
104
+ */
105
+ export function useElementSize() {
106
+ // Holds a reference to the ResizeObserver
107
+ const observerRef = useRef(null);
108
+ const [dimensions, setDimensions] = useState({ width: 0, height: 0 });
109
+ const [offset, setOffset] = useState({ x: 0, y: 0 });
110
+ const [element, setElement] = useState();
111
+ // Sets a reference to the Plugin element when passed to the Plugin element as a "ref" attribute (eg. <iframe>)
112
+ const measuredRef = useCallback(_element => {
113
+ setElement(_element);
114
+ }, []);
115
+ useEffect(() => {
116
+ // Create a new ResizeObserver
117
+ observerRef.current = new ResizeObserver(() => {
118
+ if (element) {
119
+ // Set dimensions and any offset
120
+ setDimensions({
121
+ width: element.clientWidth,
122
+ height: element.clientHeight,
123
+ });
124
+ setOffset({
125
+ x: element.offsetLeft,
126
+ y: element.offsetTop,
127
+ });
128
+ }
129
+ });
130
+ if (element) {
131
+ // Tell the ResizeObserver to start watching the element — this enables the hook to detect resizing
132
+ observerRef.current.observe(element);
133
+ }
134
+ }, [element]);
135
+ return useMemo(() => ({
136
+ ref: measuredRef,
137
+ element: element,
138
+ width: dimensions.width,
139
+ height: dimensions.height,
140
+ x: offset.x,
141
+ y: offset.y
142
+ }), [measuredRef, element, dimensions, offset]);
143
+ }
144
+ //# sourceMappingURL=hooks.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hooks.js","sourceRoot":"","sources":["../../../../../runtime/slots/widget/iframe/hooks.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAEL,WAAW,EACX,SAAS,EACT,eAAe,EACf,OAAO,EACP,MAAM,EACN,QAAQ,EACT,MAAM,OAAO,CAAC;AAEf,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAG7E,0BAA0B;AAE1B;;;;GAIG;AACH,MAAM,UAAU,eAAe,CAAC,SAAwB,EAAE,IAAY,EAAE,QAA8B;IACpG,mEAAmE;IACnE,eAAe,CAAC,GAAG,EAAE;QACnB,sCAAsC;QACtC,MAAM,QAAQ,GAAG,CAAC,KAAmD,EAAE,EAAE;YACvE,mDAAmD;YACnD,6FAA6F;YAC7F,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;gBAC/B,4FAA4F;gBAC5F,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;oBAC7B,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;gBAClD,CAAC;YACH,CAAC;QACH,CAAC,CAAC;QACF,qEAAqE;QACrE,IAAI,SAAS,KAAK,IAAI,EAAE,CAAC;YACvB,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;QAC/C,CAAC;QACD,oBAAoB;QACpB,OAAO,GAAG,EAAE;YACV,MAAM,CAAC,mBAAmB,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;QAClD,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,SAAS,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC;AAClC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,YAAY,CAAC,IAAY,EAAE,QAA8B;IACvE,eAAe,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;AACjD,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,cAAc,CAAC,OAAsC,EAAE,IAAY,EAAE,QAA8B;IACjH,MAAM,aAAa,GAAG,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC;IAC7D,eAAe,CAAC,aAAa,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;AACjD,CAAC;AAED,yBAAyB;AAEzB;;;;;;;GAOG;AACH,MAAM,UAAU,oBAAoB,CAAC,YAA2B,EAAE,OAAY,EAAE,YAAoB;IAClG;;OAEG;IACH,IAAI,YAAY,IAAI,YAAY,EAAE,CAAC;QACjC,YAAY,CAAC,WAAW,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;IAClD,CAAC;AACH,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,mBAAmB,CAAC,OAA0B,EAAE,OAAY,EAAE,YAAoB;IAChG,oBAAoB,CAAC,OAAO,CAAC,aAAa,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC;AACrE,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,iBAAiB,CAAC,OAAY;IAC5C,oBAAoB,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;AACzE,CAAC;AAED,iDAAiD;AACjD,MAAM,UAAU,kBAAkB;IAChC,iBAAiB,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC;AAC5C,CAAC;AAED,yIAAyI;AACzI,MAAM,UAAU,oBAAoB;IAClC,iBAAiB,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC,CAAC;AAC9C,CAAC;AAED,MAAM,UAAU,sBAAsB;IACpC,iBAAiB,CAAC,EAAE,IAAI,EAAE,gBAAgB,EAAE,CAAC,CAAC;AAChD,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,cAAc;IAC5B,0CAA0C;IAC1C,MAAM,WAAW,GAAG,MAAM,CAAwB,IAAI,CAAC,CAAC;IAExD,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC;IACtE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IACrD,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,EAAiC,CAAC;IACxE,+GAA+G;IAC/G,MAAM,WAAW,GAAiC,WAAW,CAAC,QAAQ,CAAC,EAAE;QACvE,UAAU,CAAC,QAAQ,CAAC,CAAC;IACvB,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,SAAS,CAAC,GAAG,EAAE;QACb,8BAA8B;QAC9B,WAAW,CAAC,OAAO,GAAG,IAAI,cAAc,CAAC,GAAG,EAAE;YAC5C,IAAI,OAAO,EAAE,CAAC;gBACZ,gCAAgC;gBAChC,aAAa,CAAC;oBACZ,KAAK,EAAE,OAAO,CAAC,WAAW;oBAC1B,MAAM,EAAE,OAAO,CAAC,YAAY;iBAC7B,CAAC,CAAC;gBACH,SAAS,CAAC;oBACR,CAAC,EAAE,OAAO,CAAC,UAAU;oBACrB,CAAC,EAAE,OAAO,CAAC,SAAS;iBACrB,CAAC,CAAC;YACL,CAAC;QACH,CAAC,CAAC,CAAC;QACH,IAAI,OAAO,EAAE,CAAC;YACZ,mGAAmG;YACnG,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QACvC,CAAC;IACH,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IAEd,OAAO,OAAO,CAQZ,GAAG,EAAE,CAAC,CAAC;QACL,GAAG,EAAE,WAAW;QAChB,OAAO,EAAE,OAAO;QAChB,KAAK,EAAE,UAAU,CAAC,KAAK;QACvB,MAAM,EAAE,UAAU,CAAC,MAAM;QACzB,CAAC,EAAE,MAAM,CAAC,CAAC;QACX,CAAC,EAAE,MAAM,CAAC,CAAC;KACZ,CAAC,EACF,CAAC,WAAW,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,CAAC,CAC3C,CAAC;AACJ,CAAC","sourcesContent":["/**\n * Hooks file for functions that handle the communication between a Plugin and its Host\n */\n\nimport {\n LegacyRef,\n useCallback,\n useEffect,\n useLayoutEffect,\n useMemo,\n useRef,\n useState\n} from 'react';\n\nimport { IFRAME_MOUNTED, IFRAME_READY, IFRAME_UNMOUNTED } from './constants';\nimport { MessageEventCallback } from './types';\n\n/* Listening for events */\n\n/**\n * Dynamically add an event listener to the provided source window.\n * The source window can be the global parent (ie. the \"window\" object in the browser)\n * or it can be the content window of an individual element (ie. iFrame plugin container)\n */\nexport function useMessageEvent(srcWindow: Window | null, type: string, callback: MessageEventCallback) {\n // useLayoutEffect is called before the browser repaints the screen\n useLayoutEffect(() => {\n // Create a listener callback function\n const listener = (event: MessageEvent<{ type: string, payload: any }>) => {\n // Filter messages to those from our source window.\n // NOTE: the \"srcWindow\" is determined by the below useHostEvent and usePluginEvent functions\n if (event.source === srcWindow) {\n // Fire callback if the type from the listened event matches the type from the message event\n if (event.data.type === type) {\n callback({ type, payload: event.data.payload });\n }\n }\n };\n // Add the listener to the global object if the srcWindow is not null\n if (srcWindow !== null) {\n global.addEventListener('message', listener);\n }\n // useEffect cleanup\n return () => {\n global.removeEventListener('message', listener);\n };\n }, [srcWindow, type, callback]);\n}\n\n/**\n * Called by the Plugin component to use events that were listened to (ie. PLUGIN_RESIZE)\n */\nexport function useHostEvent(type: string, callback: MessageEventCallback) {\n useMessageEvent(global.parent, type, callback);\n}\n\n/**\n * Used to listen for events from a wrapped Plugin element (eg. PluginContainerIframe)\n *\n * @param element - Plugin element (eg. <iframe>)\n * @param type - Event type (eg. PLUGIN_RESIZE)\n * @param callback - Function to call when the event is triggered\n */\nexport function usePluginEvent(element: HTMLIFrameElement | undefined, type: string, callback: MessageEventCallback) {\n const contentWindow = element ? element.contentWindow : null;\n useMessageEvent(contentWindow, type, callback);\n}\n\n/** Dispatching events */\n\n/**\n * Base dispatch function called by dispatchHostEvent and dispatchPluginEvent.\n * Uses the `postMessage` method to enable cross-origin communication between Window objects\n *\n * @param targetWindow - Window that the message event is being dispatched to\n * @param message - Data object for the message\n * @param targetOrigin - URL for the window that the message event is being dispatched from\n */\nexport function dispatchMessageEvent(targetWindow: Window | null, message: any, targetOrigin: string) {\n /** Checking targetOrigin falsiness here since '', null or undefined would all be\n * reasons not to try to post a message to the origin.\n */\n if (targetWindow && targetOrigin) {\n targetWindow.postMessage(message, targetOrigin);\n }\n}\n\n/**\n * Used to dispatch events for a Plugin\n *\n * @param element - Plugin element (eg. <iframe>)\n * @param message - Data object for the message\n * @param targetOrigin - URL for the window that the message event is being dispatched from\n */\nexport function dispatchPluginEvent(element: HTMLIFrameElement, message: any, targetOrigin: string) {\n dispatchMessageEvent(element.contentWindow, message, targetOrigin);\n}\n\n/**\n * Used to dispatch events for the Host\n *\n * @param message - Data object for the message\n */\nexport function dispatchHostEvent(message: any) {\n dispatchMessageEvent(global.parent, message, global.document.referrer);\n}\n\n// Called inside Plugin when 'ready' prop is true\nexport function dispatchReadyEvent() {\n dispatchHostEvent({ type: IFRAME_READY });\n}\n\n// Below mounted events are called in a useEffect inside Plugin with [] dependencies — https://react.dev/learn/synchronizing-with-effects\nexport function dispatchMountedEvent() {\n dispatchHostEvent({ type: IFRAME_MOUNTED });\n}\n\nexport function dispatchUnmountedEvent() {\n dispatchHostEvent({ type: IFRAME_UNMOUNTED });\n}\n\n/**\n * Used to determine the size of an element as it is being resized in the browser.\n * ResizeObserver (https://developer.mozilla.org/en-US/docs/Web/API/ResizeObserver) is used to maintain a reference to the element's content/border box.\n *\n * @returns Memoized value that contains a reference to the Plugin element (eg. iframe)\n */\nexport function useElementSize() {\n // Holds a reference to the ResizeObserver\n const observerRef = useRef<ResizeObserver | null>(null);\n\n const [dimensions, setDimensions] = useState({ width: 0, height: 0 });\n const [offset, setOffset] = useState({ x: 0, y: 0 });\n const [element, setElement] = useState<HTMLIFrameElement | undefined>();\n // Sets a reference to the Plugin element when passed to the Plugin element as a \"ref\" attribute (eg. <iframe>)\n const measuredRef: LegacyRef<HTMLIFrameElement> = useCallback(_element => {\n setElement(_element);\n }, []);\n\n useEffect(() => {\n // Create a new ResizeObserver\n observerRef.current = new ResizeObserver(() => {\n if (element) {\n // Set dimensions and any offset\n setDimensions({\n width: element.clientWidth,\n height: element.clientHeight,\n });\n setOffset({\n x: element.offsetLeft,\n y: element.offsetTop,\n });\n }\n });\n if (element) {\n // Tell the ResizeObserver to start watching the element — this enables the hook to detect resizing\n observerRef.current.observe(element);\n }\n }, [element]);\n\n return useMemo<{\n ref: LegacyRef<HTMLIFrameElement>,\n element: HTMLIFrameElement | undefined,\n width: number,\n height: number,\n x: number,\n y: number,\n }>(\n () => ({\n ref: measuredRef,\n element: element,\n width: dimensions.width,\n height: dimensions.height,\n x: offset.x,\n y: offset.y\n }),\n [measuredRef, element, dimensions, offset],\n );\n}\n"]}
@@ -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,102 @@
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
+ role?: string;
100
+ node: ReactNode;
101
+ }
102
+ export interface WidgetList extends Array<ReactNode> {
103
+ identified: IdentifiedWidget[];
104
+ byId(id: string): ReactNode[];
105
+ withoutId(id: string): ReactNode[];
106
+ byRole(role: string): ReactNode[];
107
+ withoutRole(role: string): ReactNode[];
134
108
  }
@@ -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 role?: string,\n node: ReactNode,\n}\n\nexport interface WidgetList extends Array<ReactNode> {\n identified: IdentifiedWidget[],\n byId(id: string): ReactNode[],\n withoutId(id: string): ReactNode[],\n byRole(role: string): ReactNode[],\n withoutRole(role: string): 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, WidgetList, 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>): WidgetList;