@darajs/core 0.4.8

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 (464) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +101 -0
  3. package/dist/actions/download-variable.d.ts +8 -0
  4. package/dist/actions/download-variable.d.ts.map +1 -0
  5. package/dist/actions/download-variable.js +140 -0
  6. package/dist/actions/download-variable.js.map +1 -0
  7. package/dist/actions/index.d.ts +7 -0
  8. package/dist/actions/index.d.ts.map +1 -0
  9. package/dist/actions/index.js +7 -0
  10. package/dist/actions/index.js.map +1 -0
  11. package/dist/actions/navigate-to.d.ts +8 -0
  12. package/dist/actions/navigate-to.d.ts.map +1 -0
  13. package/dist/actions/navigate-to.js +37 -0
  14. package/dist/actions/navigate-to.js.map +1 -0
  15. package/dist/actions/notify.d.ts +4 -0
  16. package/dist/actions/notify.d.ts.map +1 -0
  17. package/dist/actions/notify.js +11 -0
  18. package/dist/actions/notify.js.map +1 -0
  19. package/dist/actions/reset-variables.d.ts +8 -0
  20. package/dist/actions/reset-variables.d.ts.map +1 -0
  21. package/dist/actions/reset-variables.js +37 -0
  22. package/dist/actions/reset-variables.js.map +1 -0
  23. package/dist/actions/trigger-variable.d.ts +8 -0
  24. package/dist/actions/trigger-variable.d.ts.map +1 -0
  25. package/dist/actions/trigger-variable.js +14 -0
  26. package/dist/actions/trigger-variable.js.map +1 -0
  27. package/dist/actions/update-variable.d.ts +15 -0
  28. package/dist/actions/update-variable.d.ts.map +1 -0
  29. package/dist/actions/update-variable.js +56 -0
  30. package/dist/actions/update-variable.js.map +1 -0
  31. package/dist/api/core.d.ts +35 -0
  32. package/dist/api/core.d.ts.map +1 -0
  33. package/dist/api/core.js +112 -0
  34. package/dist/api/core.js.map +1 -0
  35. package/dist/api/http.d.ts +29 -0
  36. package/dist/api/http.d.ts.map +1 -0
  37. package/dist/api/http.js +126 -0
  38. package/dist/api/http.js.map +1 -0
  39. package/dist/api/index.d.ts +5 -0
  40. package/dist/api/index.d.ts.map +1 -0
  41. package/dist/api/index.js +5 -0
  42. package/dist/api/index.js.map +1 -0
  43. package/dist/api/websocket.d.ts +222 -0
  44. package/dist/api/websocket.d.ts.map +1 -0
  45. package/dist/api/websocket.js +353 -0
  46. package/dist/api/websocket.js.map +1 -0
  47. package/dist/assets/causalens-dark.svg +29 -0
  48. package/dist/assets/causalens-light.svg +29 -0
  49. package/dist/assets/dara-dark.svg +20 -0
  50. package/dist/assets/dara-light.svg +15 -0
  51. package/dist/assets/fonts/Manrope-VariableFont_wght.ttf +0 -0
  52. package/dist/auth/auth-wrapper.d.ts +15 -0
  53. package/dist/auth/auth-wrapper.d.ts.map +1 -0
  54. package/dist/auth/auth-wrapper.js +72 -0
  55. package/dist/auth/auth-wrapper.js.map +1 -0
  56. package/dist/auth/auth.d.ts +61 -0
  57. package/dist/auth/auth.d.ts.map +1 -0
  58. package/dist/auth/auth.js +163 -0
  59. package/dist/auth/auth.js.map +1 -0
  60. package/dist/auth/basic/basic-auth-login.d.ts +6 -0
  61. package/dist/auth/basic/basic-auth-login.d.ts.map +1 -0
  62. package/dist/auth/basic/basic-auth-login.js +171 -0
  63. package/dist/auth/basic/basic-auth-login.js.map +1 -0
  64. package/dist/auth/basic/basic-auth-logout.d.ts +6 -0
  65. package/dist/auth/basic/basic-auth-logout.d.ts.map +1 -0
  66. package/dist/auth/basic/basic-auth-logout.js +18 -0
  67. package/dist/auth/basic/basic-auth-logout.js.map +1 -0
  68. package/dist/auth/default/default-auth-login.d.ts +6 -0
  69. package/dist/auth/default/default-auth-login.d.ts.map +1 -0
  70. package/dist/auth/default/default-auth-login.js +59 -0
  71. package/dist/auth/default/default-auth-login.js.map +1 -0
  72. package/dist/auth/index.d.ts +7 -0
  73. package/dist/auth/index.d.ts.map +1 -0
  74. package/dist/auth/index.js +7 -0
  75. package/dist/auth/index.js.map +1 -0
  76. package/dist/auth/use-session-token.d.ts +19 -0
  77. package/dist/auth/use-session-token.d.ts.map +1 -0
  78. package/dist/auth/use-session-token.js +30 -0
  79. package/dist/auth/use-session-token.js.map +1 -0
  80. package/dist/components/fallback/default.d.ts +5 -0
  81. package/dist/components/fallback/default.d.ts.map +1 -0
  82. package/dist/components/fallback/default.js +10 -0
  83. package/dist/components/fallback/default.js.map +1 -0
  84. package/dist/components/fallback/dots.d.ts +7 -0
  85. package/dist/components/fallback/dots.d.ts.map +1 -0
  86. package/dist/components/fallback/dots.js +78 -0
  87. package/dist/components/fallback/dots.js.map +1 -0
  88. package/dist/components/fallback/row.d.ts +5 -0
  89. package/dist/components/fallback/row.d.ts.map +1 -0
  90. package/dist/components/fallback/row.js +14 -0
  91. package/dist/components/fallback/row.js.map +1 -0
  92. package/dist/components/for/for.d.ts +35 -0
  93. package/dist/components/for/for.d.ts.map +1 -0
  94. package/dist/components/for/for.js +44 -0
  95. package/dist/components/for/for.js.map +1 -0
  96. package/dist/components/index.d.ts +9 -0
  97. package/dist/components/index.d.ts.map +1 -0
  98. package/dist/components/index.js +9 -0
  99. package/dist/components/index.js.map +1 -0
  100. package/dist/components/menu/menu.d.ts +14 -0
  101. package/dist/components/menu/menu.d.ts.map +1 -0
  102. package/dist/components/menu/menu.js +58 -0
  103. package/dist/components/menu/menu.js.map +1 -0
  104. package/dist/components/progress-tracker/progress-tracker.d.ts +18 -0
  105. package/dist/components/progress-tracker/progress-tracker.d.ts.map +1 -0
  106. package/dist/components/progress-tracker/progress-tracker.js +204 -0
  107. package/dist/components/progress-tracker/progress-tracker.js.map +1 -0
  108. package/dist/components/router-content/router-content.d.ts +14 -0
  109. package/dist/components/router-content/router-content.d.ts.map +1 -0
  110. package/dist/components/router-content/router-content.js +17 -0
  111. package/dist/components/router-content/router-content.js.map +1 -0
  112. package/dist/components/side-bar-frame/side-bar-frame.d.ts +21 -0
  113. package/dist/components/side-bar-frame/side-bar-frame.d.ts.map +1 -0
  114. package/dist/components/side-bar-frame/side-bar-frame.js +87 -0
  115. package/dist/components/side-bar-frame/side-bar-frame.js.map +1 -0
  116. package/dist/components/top-bar-frame/top-bar-frame.d.ts +16 -0
  117. package/dist/components/top-bar-frame/top-bar-frame.d.ts.map +1 -0
  118. package/dist/components/top-bar-frame/top-bar-frame.js +89 -0
  119. package/dist/components/top-bar-frame/top-bar-frame.js.map +1 -0
  120. package/dist/dara_core-0.4.8-py3-none-any.whl +0 -0
  121. package/dist/devtools/backend-errors/backend-errors-ctx.d.ts +17 -0
  122. package/dist/devtools/backend-errors/backend-errors-ctx.d.ts.map +1 -0
  123. package/dist/devtools/backend-errors/backend-errors-ctx.js +37 -0
  124. package/dist/devtools/backend-errors/backend-errors-ctx.js.map +1 -0
  125. package/dist/devtools/backend-errors/backend-errors.d.ts +6 -0
  126. package/dist/devtools/backend-errors/backend-errors.d.ts.map +1 -0
  127. package/dist/devtools/backend-errors/backend-errors.js +57 -0
  128. package/dist/devtools/backend-errors/backend-errors.js.map +1 -0
  129. package/dist/devtools/backend-errors/error-display.d.ts +22 -0
  130. package/dist/devtools/backend-errors/error-display.d.ts.map +1 -0
  131. package/dist/devtools/backend-errors/error-display.js +101 -0
  132. package/dist/devtools/backend-errors/error-display.js.map +1 -0
  133. package/dist/devtools/backend-errors/index.d.ts +3 -0
  134. package/dist/devtools/backend-errors/index.d.ts.map +1 -0
  135. package/dist/devtools/backend-errors/index.js +3 -0
  136. package/dist/devtools/backend-errors/index.js.map +1 -0
  137. package/dist/devtools/devtools-content.d.ts +12 -0
  138. package/dist/devtools/devtools-content.d.ts.map +1 -0
  139. package/dist/devtools/devtools-content.js +73 -0
  140. package/dist/devtools/devtools-content.js.map +1 -0
  141. package/dist/devtools/devtools-context.d.ts +7 -0
  142. package/dist/devtools/devtools-context.d.ts.map +1 -0
  143. package/dist/devtools/devtools-context.js +9 -0
  144. package/dist/devtools/devtools-context.js.map +1 -0
  145. package/dist/devtools/devtools-wrapper.d.ts +8 -0
  146. package/dist/devtools/devtools-wrapper.d.ts.map +1 -0
  147. package/dist/devtools/devtools-wrapper.js +64 -0
  148. package/dist/devtools/devtools-wrapper.js.map +1 -0
  149. package/dist/devtools/devtools.d.ts +5 -0
  150. package/dist/devtools/devtools.d.ts.map +1 -0
  151. package/dist/devtools/devtools.js +10 -0
  152. package/dist/devtools/devtools.js.map +1 -0
  153. package/dist/devtools/floating-button.d.ts +23 -0
  154. package/dist/devtools/floating-button.d.ts.map +1 -0
  155. package/dist/devtools/floating-button.js +94 -0
  156. package/dist/devtools/floating-button.js.map +1 -0
  157. package/dist/devtools/index.d.ts +2 -0
  158. package/dist/devtools/index.d.ts.map +1 -0
  159. package/dist/devtools/index.js +2 -0
  160. package/dist/devtools/index.js.map +1 -0
  161. package/dist/devtools/resizer.d.ts +18 -0
  162. package/dist/devtools/resizer.d.ts.map +1 -0
  163. package/dist/devtools/resizer.js +49 -0
  164. package/dist/devtools/resizer.js.map +1 -0
  165. package/dist/devtools/use-move.d.ts +21 -0
  166. package/dist/devtools/use-move.d.ts.map +1 -0
  167. package/dist/devtools/use-move.js +56 -0
  168. package/dist/devtools/use-move.js.map +1 -0
  169. package/dist/index.css +95 -0
  170. package/dist/index.d.ts +17 -0
  171. package/dist/index.d.ts.map +1 -0
  172. package/dist/index.js +14 -0
  173. package/dist/index.js.map +1 -0
  174. package/dist/jest-setup.d.ts +2 -0
  175. package/dist/jest-setup.d.ts.map +1 -0
  176. package/dist/jest-setup.js +18 -0
  177. package/dist/jest-setup.js.map +1 -0
  178. package/dist/pages/error-page.d.ts +3 -0
  179. package/dist/pages/error-page.d.ts.map +1 -0
  180. package/dist/pages/error-page.js +32 -0
  181. package/dist/pages/error-page.js.map +1 -0
  182. package/dist/pages/sso-callback-page.d.ts +6 -0
  183. package/dist/pages/sso-callback-page.d.ts.map +1 -0
  184. package/dist/pages/sso-callback-page.js +8 -0
  185. package/dist/pages/sso-callback-page.js.map +1 -0
  186. package/dist/run.d.ts +22 -0
  187. package/dist/run.d.ts.map +1 -0
  188. package/dist/run.js +40 -0
  189. package/dist/run.js.map +1 -0
  190. package/dist/shared/center/center.d.ts +5 -0
  191. package/dist/shared/center/center.d.ts.map +1 -0
  192. package/dist/shared/center/center.js +15 -0
  193. package/dist/shared/center/center.js.map +1 -0
  194. package/dist/shared/context/direction-context.d.ts +6 -0
  195. package/dist/shared/context/direction-context.d.ts.map +1 -0
  196. package/dist/shared/context/direction-context.js +4 -0
  197. package/dist/shared/context/direction-context.js.map +1 -0
  198. package/dist/shared/context/display-context.d.ts +13 -0
  199. package/dist/shared/context/display-context.d.ts.map +1 -0
  200. package/dist/shared/context/display-context.js +4 -0
  201. package/dist/shared/context/display-context.js.map +1 -0
  202. package/dist/shared/context/fallback-context.d.ts +11 -0
  203. package/dist/shared/context/fallback-context.d.ts.map +1 -0
  204. package/dist/shared/context/fallback-context.js +4 -0
  205. package/dist/shared/context/fallback-context.js.map +1 -0
  206. package/dist/shared/context/global-task-context.d.ts +40 -0
  207. package/dist/shared/context/global-task-context.d.ts.map +1 -0
  208. package/dist/shared/context/global-task-context.js +81 -0
  209. package/dist/shared/context/global-task-context.js.map +1 -0
  210. package/dist/shared/context/importers-context.d.ts +6 -0
  211. package/dist/shared/context/importers-context.d.ts.map +1 -0
  212. package/dist/shared/context/importers-context.js +4 -0
  213. package/dist/shared/context/importers-context.js.map +1 -0
  214. package/dist/shared/context/index.d.ts +10 -0
  215. package/dist/shared/context/index.d.ts.map +1 -0
  216. package/dist/shared/context/index.js +10 -0
  217. package/dist/shared/context/index.js.map +1 -0
  218. package/dist/shared/context/registries-context.d.ts +20 -0
  219. package/dist/shared/context/registries-context.d.ts.map +1 -0
  220. package/dist/shared/context/registries-context.js +8 -0
  221. package/dist/shared/context/registries-context.js.map +1 -0
  222. package/dist/shared/context/request-extras-context.d.ts +33 -0
  223. package/dist/shared/context/request-extras-context.d.ts.map +1 -0
  224. package/dist/shared/context/request-extras-context.js +55 -0
  225. package/dist/shared/context/request-extras-context.js.map +1 -0
  226. package/dist/shared/context/variable-context.d.ts +10 -0
  227. package/dist/shared/context/variable-context.d.ts.map +1 -0
  228. package/dist/shared/context/variable-context.js +4 -0
  229. package/dist/shared/context/variable-context.js.map +1 -0
  230. package/dist/shared/context/websocket-context.d.ts +7 -0
  231. package/dist/shared/context/websocket-context.d.ts.map +1 -0
  232. package/dist/shared/context/websocket-context.js +4 -0
  233. package/dist/shared/context/websocket-context.js.map +1 -0
  234. package/dist/shared/dynamic-component/clean-props.d.ts +6 -0
  235. package/dist/shared/dynamic-component/clean-props.d.ts.map +1 -0
  236. package/dist/shared/dynamic-component/clean-props.js +13 -0
  237. package/dist/shared/dynamic-component/clean-props.js.map +1 -0
  238. package/dist/shared/dynamic-component/dynamic-component.d.ts +16 -0
  239. package/dist/shared/dynamic-component/dynamic-component.d.ts.map +1 -0
  240. package/dist/shared/dynamic-component/dynamic-component.js +252 -0
  241. package/dist/shared/dynamic-component/dynamic-component.js.map +1 -0
  242. package/dist/shared/error-handling/error-display.d.ts +8 -0
  243. package/dist/shared/error-handling/error-display.d.ts.map +1 -0
  244. package/dist/shared/error-handling/error-display.js +94 -0
  245. package/dist/shared/error-handling/error-display.js.map +1 -0
  246. package/dist/shared/error-handling/index.d.ts +3 -0
  247. package/dist/shared/error-handling/index.d.ts.map +1 -0
  248. package/dist/shared/error-handling/index.js +3 -0
  249. package/dist/shared/error-handling/index.js.map +1 -0
  250. package/dist/shared/error-handling/types.d.ts +11 -0
  251. package/dist/shared/error-handling/types.d.ts.map +1 -0
  252. package/dist/shared/error-handling/types.js +9 -0
  253. package/dist/shared/error-handling/types.js.map +1 -0
  254. package/dist/shared/event-bus/event-bus.d.ts +27 -0
  255. package/dist/shared/event-bus/event-bus.d.ts.map +1 -0
  256. package/dist/shared/event-bus/event-bus.js +58 -0
  257. package/dist/shared/event-bus/event-bus.js.map +1 -0
  258. package/dist/shared/global-state-store.d.ts +54 -0
  259. package/dist/shared/global-state-store.d.ts.map +1 -0
  260. package/dist/shared/global-state-store.js +168 -0
  261. package/dist/shared/global-state-store.js.map +1 -0
  262. package/dist/shared/index.d.ts +12 -0
  263. package/dist/shared/index.d.ts.map +1 -0
  264. package/dist/shared/index.js +10 -0
  265. package/dist/shared/index.js.map +1 -0
  266. package/dist/shared/interactivity/data-variable.d.ts +78 -0
  267. package/dist/shared/interactivity/data-variable.d.ts.map +1 -0
  268. package/dist/shared/interactivity/data-variable.js +218 -0
  269. package/dist/shared/interactivity/data-variable.js.map +1 -0
  270. package/dist/shared/interactivity/derived-variable.d.ts +160 -0
  271. package/dist/shared/interactivity/derived-variable.d.ts.map +1 -0
  272. package/dist/shared/interactivity/derived-variable.js +446 -0
  273. package/dist/shared/interactivity/derived-variable.js.map +1 -0
  274. package/dist/shared/interactivity/filtering.d.ts +9 -0
  275. package/dist/shared/interactivity/filtering.d.ts.map +1 -0
  276. package/dist/shared/interactivity/filtering.js +20 -0
  277. package/dist/shared/interactivity/filtering.js.map +1 -0
  278. package/dist/shared/interactivity/index.d.ts +10 -0
  279. package/dist/shared/interactivity/index.d.ts.map +1 -0
  280. package/dist/shared/interactivity/index.js +9 -0
  281. package/dist/shared/interactivity/index.js.map +1 -0
  282. package/dist/shared/interactivity/internal.d.ts +9 -0
  283. package/dist/shared/interactivity/internal.d.ts.map +1 -0
  284. package/dist/shared/interactivity/internal.js +11 -0
  285. package/dist/shared/interactivity/internal.js.map +1 -0
  286. package/dist/shared/interactivity/nested.d.ts +16 -0
  287. package/dist/shared/interactivity/nested.d.ts.map +1 -0
  288. package/dist/shared/interactivity/nested.js +54 -0
  289. package/dist/shared/interactivity/nested.js.map +1 -0
  290. package/dist/shared/interactivity/persistence.d.ts +43 -0
  291. package/dist/shared/interactivity/persistence.d.ts.map +1 -0
  292. package/dist/shared/interactivity/persistence.js +215 -0
  293. package/dist/shared/interactivity/persistence.js.map +1 -0
  294. package/dist/shared/interactivity/plain-variable.d.ts +17 -0
  295. package/dist/shared/interactivity/plain-variable.d.ts.map +1 -0
  296. package/dist/shared/interactivity/plain-variable.js +222 -0
  297. package/dist/shared/interactivity/plain-variable.js.map +1 -0
  298. package/dist/shared/interactivity/resolve-value.d.ts +13 -0
  299. package/dist/shared/interactivity/resolve-value.d.ts.map +1 -0
  300. package/dist/shared/interactivity/resolve-value.js +36 -0
  301. package/dist/shared/interactivity/resolve-value.js.map +1 -0
  302. package/dist/shared/interactivity/resolve-variable.d.ts +18 -0
  303. package/dist/shared/interactivity/resolve-variable.d.ts.map +1 -0
  304. package/dist/shared/interactivity/resolve-variable.js +46 -0
  305. package/dist/shared/interactivity/resolve-variable.js.map +1 -0
  306. package/dist/shared/interactivity/store.d.ts +76 -0
  307. package/dist/shared/interactivity/store.d.ts.map +1 -0
  308. package/dist/shared/interactivity/store.js +99 -0
  309. package/dist/shared/interactivity/store.js.map +1 -0
  310. package/dist/shared/interactivity/triggers.d.ts +31 -0
  311. package/dist/shared/interactivity/triggers.d.ts.map +1 -0
  312. package/dist/shared/interactivity/triggers.js +105 -0
  313. package/dist/shared/interactivity/triggers.js.map +1 -0
  314. package/dist/shared/interactivity/url-variable.d.ts +12 -0
  315. package/dist/shared/interactivity/url-variable.d.ts.map +1 -0
  316. package/dist/shared/interactivity/url-variable.js +27 -0
  317. package/dist/shared/interactivity/url-variable.js.map +1 -0
  318. package/dist/shared/interactivity/use-any-variable.d.ts +8 -0
  319. package/dist/shared/interactivity/use-any-variable.d.ts.map +1 -0
  320. package/dist/shared/interactivity/use-any-variable.js +39 -0
  321. package/dist/shared/interactivity/use-any-variable.js.map +1 -0
  322. package/dist/shared/interactivity/use-data-variable.d.ts +18 -0
  323. package/dist/shared/interactivity/use-data-variable.d.ts.map +1 -0
  324. package/dist/shared/interactivity/use-data-variable.js +58 -0
  325. package/dist/shared/interactivity/use-data-variable.js.map +1 -0
  326. package/dist/shared/interactivity/use-refresh-selector.d.ts +5 -0
  327. package/dist/shared/interactivity/use-refresh-selector.d.ts.map +1 -0
  328. package/dist/shared/interactivity/use-refresh-selector.js +20 -0
  329. package/dist/shared/interactivity/use-refresh-selector.js.map +1 -0
  330. package/dist/shared/interactivity/use-server-component.d.ts +24 -0
  331. package/dist/shared/interactivity/use-server-component.d.ts.map +1 -0
  332. package/dist/shared/interactivity/use-server-component.js +256 -0
  333. package/dist/shared/interactivity/use-server-component.js.map +1 -0
  334. package/dist/shared/interactivity/use-variable-state.d.ts +9 -0
  335. package/dist/shared/interactivity/use-variable-state.d.ts.map +1 -0
  336. package/dist/shared/interactivity/use-variable-state.js +26 -0
  337. package/dist/shared/interactivity/use-variable-state.js.map +1 -0
  338. package/dist/shared/interactivity/use-variable-value.d.ts +33 -0
  339. package/dist/shared/interactivity/use-variable-value.d.ts.map +1 -0
  340. package/dist/shared/interactivity/use-variable-value.js +94 -0
  341. package/dist/shared/interactivity/use-variable-value.js.map +1 -0
  342. package/dist/shared/interactivity/use-variable.d.ts +12 -0
  343. package/dist/shared/interactivity/use-variable.d.ts.map +1 -0
  344. package/dist/shared/interactivity/use-variable.js +84 -0
  345. package/dist/shared/interactivity/use-variable.js.map +1 -0
  346. package/dist/shared/private-route/private-route.d.ts +19 -0
  347. package/dist/shared/private-route/private-route.d.ts.map +1 -0
  348. package/dist/shared/private-route/private-route.js +35 -0
  349. package/dist/shared/private-route/private-route.js.map +1 -0
  350. package/dist/shared/template-root/dynamic-context.d.ts +9 -0
  351. package/dist/shared/template-root/dynamic-context.d.ts.map +1 -0
  352. package/dist/shared/template-root/dynamic-context.js +29 -0
  353. package/dist/shared/template-root/dynamic-context.js.map +1 -0
  354. package/dist/shared/template-root/template-root.d.ts +12 -0
  355. package/dist/shared/template-root/template-root.d.ts.map +1 -0
  356. package/dist/shared/template-root/template-root.js +94 -0
  357. package/dist/shared/template-root/template-root.js.map +1 -0
  358. package/dist/shared/utils/clean-session-cache.d.ts +9 -0
  359. package/dist/shared/utils/clean-session-cache.d.ts.map +1 -0
  360. package/dist/shared/utils/clean-session-cache.js +19 -0
  361. package/dist/shared/utils/clean-session-cache.js.map +1 -0
  362. package/dist/shared/utils/embed.d.ts +22 -0
  363. package/dist/shared/utils/embed.d.ts.map +1 -0
  364. package/dist/shared/utils/embed.js +43 -0
  365. package/dist/shared/utils/embed.js.map +1 -0
  366. package/dist/shared/utils/get-icon.d.ts +9 -0
  367. package/dist/shared/utils/get-icon.d.ts.map +1 -0
  368. package/dist/shared/utils/get-icon.js +30 -0
  369. package/dist/shared/utils/get-icon.js.map +1 -0
  370. package/dist/shared/utils/hashing.d.ts +14 -0
  371. package/dist/shared/utils/hashing.d.ts.map +1 -0
  372. package/dist/shared/utils/hashing.js +26 -0
  373. package/dist/shared/utils/hashing.js.map +1 -0
  374. package/dist/shared/utils/index.d.ts +19 -0
  375. package/dist/shared/utils/index.d.ts.map +1 -0
  376. package/dist/shared/utils/index.js +17 -0
  377. package/dist/shared/utils/index.js.map +1 -0
  378. package/dist/shared/utils/inject-css.d.ts +12 -0
  379. package/dist/shared/utils/inject-css.d.ts.map +1 -0
  380. package/dist/shared/utils/inject-css.js +25 -0
  381. package/dist/shared/utils/inject-css.js.map +1 -0
  382. package/dist/shared/utils/is-js-component.d.ts +9 -0
  383. package/dist/shared/utils/is-js-component.d.ts.map +1 -0
  384. package/dist/shared/utils/is-js-component.js +11 -0
  385. package/dist/shared/utils/is-js-component.js.map +1 -0
  386. package/dist/shared/utils/normalization.d.ts +19 -0
  387. package/dist/shared/utils/normalization.d.ts.map +1 -0
  388. package/dist/shared/utils/normalization.js +121 -0
  389. package/dist/shared/utils/normalization.js.map +1 -0
  390. package/dist/shared/utils/resolve-theme.d.ts +9 -0
  391. package/dist/shared/utils/resolve-theme.d.ts.map +1 -0
  392. package/dist/shared/utils/resolve-theme.js +28 -0
  393. package/dist/shared/utils/resolve-theme.js.map +1 -0
  394. package/dist/shared/utils/templating.d.ts +24 -0
  395. package/dist/shared/utils/templating.d.ts.map +1 -0
  396. package/dist/shared/utils/templating.js +67 -0
  397. package/dist/shared/utils/templating.js.map +1 -0
  398. package/dist/shared/utils/use-action-registry.d.ts +11 -0
  399. package/dist/shared/utils/use-action-registry.d.ts.map +1 -0
  400. package/dist/shared/utils/use-action-registry.js +18 -0
  401. package/dist/shared/utils/use-action-registry.js.map +1 -0
  402. package/dist/shared/utils/use-action.d.ts +34 -0
  403. package/dist/shared/utils/use-action.d.ts.map +1 -0
  404. package/dist/shared/utils/use-action.js +314 -0
  405. package/dist/shared/utils/use-action.js.map +1 -0
  406. package/dist/shared/utils/use-component-registry.d.ts +11 -0
  407. package/dist/shared/utils/use-component-registry.d.ts.map +1 -0
  408. package/dist/shared/utils/use-component-registry.js +57 -0
  409. package/dist/shared/utils/use-component-registry.js.map +1 -0
  410. package/dist/shared/utils/use-component-styles.d.ts +24 -0
  411. package/dist/shared/utils/use-component-styles.d.ts.map +1 -0
  412. package/dist/shared/utils/use-component-styles.js +69 -0
  413. package/dist/shared/utils/use-component-styles.js.map +1 -0
  414. package/dist/shared/utils/use-defer-loadable.d.ts +8 -0
  415. package/dist/shared/utils/use-defer-loadable.d.ts.map +1 -0
  416. package/dist/shared/utils/use-defer-loadable.js +44 -0
  417. package/dist/shared/utils/use-defer-loadable.js.map +1 -0
  418. package/dist/shared/utils/use-interval.d.ts +9 -0
  419. package/dist/shared/utils/use-interval.d.ts.map +1 -0
  420. package/dist/shared/utils/use-interval.js +19 -0
  421. package/dist/shared/utils/use-interval.js.map +1 -0
  422. package/dist/shared/utils/use-previous.d.ts +10 -0
  423. package/dist/shared/utils/use-previous.d.ts.map +1 -0
  424. package/dist/shared/utils/use-previous.js +17 -0
  425. package/dist/shared/utils/use-previous.js.map +1 -0
  426. package/dist/shared/utils/use-url-sync.d.ts +20 -0
  427. package/dist/shared/utils/use-url-sync.d.ts.map +1 -0
  428. package/dist/shared/utils/use-url-sync.js +68 -0
  429. package/dist/shared/utils/use-url-sync.js.map +1 -0
  430. package/dist/shared/utils/use-window-title.d.ts +3 -0
  431. package/dist/shared/utils/use-window-title.d.ts.map +1 -0
  432. package/dist/shared/utils/use-window-title.js +14 -0
  433. package/dist/shared/utils/use-window-title.js.map +1 -0
  434. package/dist/shared/variable-state-provider/variable-state-provider.d.ts +10 -0
  435. package/dist/shared/variable-state-provider/variable-state-provider.d.ts.map +1 -0
  436. package/dist/shared/variable-state-provider/variable-state-provider.js +29 -0
  437. package/dist/shared/variable-state-provider/variable-state-provider.js.map +1 -0
  438. package/dist/shared/wrapper/wrapper.d.ts +7 -0
  439. package/dist/shared/wrapper/wrapper.d.ts.map +1 -0
  440. package/dist/shared/wrapper/wrapper.js +14 -0
  441. package/dist/shared/wrapper/wrapper.js.map +1 -0
  442. package/dist/types/auth.d.ts +15 -0
  443. package/dist/types/auth.d.ts.map +1 -0
  444. package/dist/types/auth.js +6 -0
  445. package/dist/types/auth.js.map +1 -0
  446. package/dist/types/core.d.ts +440 -0
  447. package/dist/types/core.d.ts.map +1 -0
  448. package/dist/types/core.js +22 -0
  449. package/dist/types/core.js.map +1 -0
  450. package/dist/types/index.d.ts +7 -0
  451. package/dist/types/index.d.ts.map +1 -0
  452. package/dist/types/index.js +4 -0
  453. package/dist/types/index.js.map +1 -0
  454. package/dist/types/utils.d.ts +56 -0
  455. package/dist/types/utils.d.ts.map +1 -0
  456. package/dist/types/utils.js +93 -0
  457. package/dist/types/utils.js.map +1 -0
  458. package/dist/umd/dara.core.umd.js +86508 -0
  459. package/dist/umd/style.css +848 -0
  460. package/dist/utils.d.ts +11 -0
  461. package/dist/utils.d.ts.map +1 -0
  462. package/dist/utils.js +20 -0
  463. package/dist/utils.js.map +1 -0
  464. package/package.json +121 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-server-component.d.ts","sourceRoot":"","sources":["../../../js/shared/interactivity/use-server-component.tsx"],"names":[],"mappings":"AAUA,OAAO,EACH,WAAW,EACX,iBAAiB,EAKpB,MAAM,SAAS,CAAC;AAoEjB;;;;;;GAMG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,GAAG,GAAG,CAa9D;AA4LD;;;;;;GAMG;AACH,MAAM,CAAC,OAAO,UAAU,kBAAkB,CACtC,IAAI,EAAE,MAAM,EACZ,GAAG,EAAE,MAAM,EACX,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,GAAG,CAAC,CAAC,GAChD,iBAAiB,CA4BnB;AAED;;;;GAIG;AACH,wBAAgB,yBAAyB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,IAAI,CAajE"}
@@ -0,0 +1,256 @@
1
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
+ return new (P || (P = Promise))(function (resolve, reject) {
4
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
8
+ });
9
+ };
10
+ var __rest = (this && this.__rest) || function (s, e) {
11
+ var t = {};
12
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
13
+ t[p] = s[p];
14
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
15
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
16
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
17
+ t[p[i]] = s[p[i]];
18
+ }
19
+ return t;
20
+ };
21
+ /* eslint-disable react-hooks/exhaustive-deps */
22
+ import { useContext, useEffect } from 'react';
23
+ import { atom, selectorFamily, useRecoilCallback, useRecoilValueLoadable } from 'recoil';
24
+ import { HTTP_METHOD, validateResponse } from '@darajs/ui-utils';
25
+ import { fetchTaskResult, handleAuthErrors, request } from '../../api';
26
+ import { RequestExtrasSerializable } from '../../api/http';
27
+ import { useDeferLoadable } from '../../shared/utils';
28
+ import { denormalize, normalizeRequest } from '../../shared/utils/normalization';
29
+ import { isResolvedDerivedDataVariable, isResolvedDerivedVariable, } from '../../types';
30
+ import { VariableCtx, WebSocketCtx, useRequestExtras } from '../context';
31
+ import { useTaskContext } from '../context/global-task-context';
32
+ import { useEventBus } from '../event-bus/event-bus';
33
+ import { resolveDerivedValue } from './derived-variable';
34
+ import { resolveVariable } from './resolve-variable';
35
+ import { atomRegistry, depsRegistry, selectorFamilyMembersRegistry, selectorFamilyRegistry, } from './store';
36
+ function isTaskResponse(response) {
37
+ return response && typeof response === 'object' && 'task_id' in response;
38
+ }
39
+ /**
40
+ * Generate a registry key for a component instance
41
+ *
42
+ * @param uid component instance uid
43
+ * @param trigger whether it's a trigger key
44
+ */
45
+ function getComponentRegistryKey(uid, trigger) {
46
+ let key = `_COMPONENT_${uid}`;
47
+ if (trigger) {
48
+ key += '_TRIGGER';
49
+ }
50
+ return key;
51
+ }
52
+ /**
53
+ * Fetch a component from the backend, expects a component instance to be returned.
54
+ *
55
+ * @param component the component to fetch
56
+ * @param values the values to pass into the component
57
+ * @param uid the component instance uid
58
+ * @param extras request extras to be merged into the options
59
+ * @param wsClient websocket client
60
+ */
61
+ function fetchFunctionComponent(component, values, uid, extras, wsClient) {
62
+ return __awaiter(this, void 0, void 0, function* () {
63
+ const ws_channel = yield wsClient.getChannel();
64
+ const res = yield request(`/api/core/components/${component}`, {
65
+ body: JSON.stringify({ uid, values, ws_channel }),
66
+ method: HTTP_METHOD.POST,
67
+ }, extras);
68
+ yield handleAuthErrors(res, true);
69
+ yield validateResponse(res, `Failed to fetch the component: ${component}`);
70
+ const result = yield res.json();
71
+ return result;
72
+ });
73
+ }
74
+ /**
75
+ * Claan value to a format understood by the backend.
76
+ * Removes `deps`, appends `force` to resolved derived(data)variables.
77
+ *
78
+ * @param value a value to clean
79
+ * @param force whether to force a derived variable recalculation
80
+ */
81
+ export function cleanValue(value, force) {
82
+ if (isResolvedDerivedVariable(value) || isResolvedDerivedDataVariable(value)) {
83
+ const { deps } = value, rest = __rest(value, ["deps"]);
84
+ const cleanedValues = value.values.map((v) => cleanValue(v, force));
85
+ return Object.assign(Object.assign({}, rest), { force, values: cleanedValues });
86
+ }
87
+ return value;
88
+ }
89
+ function cleanKwargs(kwargs, force) {
90
+ return Object.keys(kwargs).reduce((acc, k) => {
91
+ acc[k] = cleanValue(kwargs[k], force);
92
+ return acc;
93
+ }, {});
94
+ }
95
+ function getOrRegisterComponentTrigger(uid) {
96
+ const triggerKey = getComponentRegistryKey(uid, true);
97
+ if (!atomRegistry.has(triggerKey)) {
98
+ atomRegistry.set(triggerKey, atom({
99
+ default: {
100
+ force: false,
101
+ inc: 0,
102
+ },
103
+ key: triggerKey,
104
+ }));
105
+ }
106
+ return atomRegistry.get(triggerKey);
107
+ }
108
+ /**
109
+ * Get a server component from the selector registry, registering it if not already registered
110
+ *
111
+ * @param name component name
112
+ * @param uid component uid
113
+ * @param dynamicKwargs kwargs
114
+ * @param wsClient websocket client
115
+ * @param taskContext task context
116
+ * @param search current search string
117
+ * @param currentExtras request extras to be merged into the options
118
+ */
119
+ function getOrRegisterServerComponent(name, uid, dynamicKwargs, wsClient, taskContext, currentExtras) {
120
+ const key = getComponentRegistryKey(uid);
121
+ if (!selectorFamilyRegistry.has(key)) {
122
+ selectorFamilyRegistry.set(key, selectorFamily({
123
+ cachePolicy_UNSTABLE: {
124
+ eviction: 'most-recent',
125
+ },
126
+ get: (extrasSerializable) => (_a) => __awaiter(this, [_a], void 0, function* ({ get }) {
127
+ // Kwargs resolved to their simple values
128
+ const resolvedKwargs = Object.keys(dynamicKwargs).reduce((acc, k) => {
129
+ const value = dynamicKwargs[k];
130
+ acc[k] = resolveVariable(value, wsClient, taskContext, currentExtras);
131
+ return acc;
132
+ }, {});
133
+ // Turn kwargs into lists so we can re-use the DerivedVariable logic
134
+ const resolvedKwargsList = Object.values(resolvedKwargs);
135
+ const kwargsList = Object.values(dynamicKwargs);
136
+ const triggerAtom = getOrRegisterComponentTrigger(uid);
137
+ const selfTrigger = get(triggerAtom);
138
+ const { extras } = extrasSerializable;
139
+ const derivedResult = yield resolveDerivedValue(key, kwargsList, kwargsList, // pass deps=kwargs
140
+ resolvedKwargsList, wsClient, get, selfTrigger);
141
+ // returning previous result as no change in dependant values
142
+ if (derivedResult.type === 'previous') {
143
+ return derivedResult.entry.result;
144
+ }
145
+ // Otherwise fetch new component
146
+ // turn the resolved values back into an object and clean them up
147
+ const kwargValues = cleanKwargs(Object.keys(dynamicKwargs).reduce((acc, k, idx) => {
148
+ acc[k] = derivedResult.values[idx];
149
+ return acc;
150
+ }, {}), derivedResult.force);
151
+ let result = null;
152
+ try {
153
+ result = yield fetchFunctionComponent(name, normalizeRequest(kwargValues, dynamicKwargs), uid, extras, wsClient);
154
+ }
155
+ catch (e) {
156
+ e.selectorId = key;
157
+ e.selectorExtras = extrasSerializable.toJSON();
158
+ throw e;
159
+ }
160
+ taskContext.cleanupRunningTasks(key);
161
+ // Metatask returned
162
+ if (isTaskResponse(result)) {
163
+ const taskId = result.task_id;
164
+ // Register the task under the component's instance key
165
+ taskContext.startTask(taskId, key, getComponentRegistryKey(uid, true));
166
+ try {
167
+ yield wsClient.waitForTask(taskId);
168
+ }
169
+ catch (_b) {
170
+ return null;
171
+ }
172
+ finally {
173
+ taskContext.endTask(taskId);
174
+ }
175
+ try {
176
+ result = yield fetchTaskResult(taskId, extras);
177
+ }
178
+ catch (e) {
179
+ e.selectorId = key;
180
+ e.selectorExtras = extrasSerializable.toJSON();
181
+ throw e;
182
+ }
183
+ }
184
+ if (result !== null) {
185
+ // Denormalize
186
+ result = denormalize(result.data, result.lookup);
187
+ }
188
+ depsRegistry.set(key, {
189
+ args: derivedResult.relevantValues,
190
+ cacheKey: null,
191
+ result,
192
+ });
193
+ return result;
194
+ }),
195
+ key,
196
+ }));
197
+ }
198
+ const family = selectorFamilyRegistry.get(key);
199
+ // Get a selector instance for this particular extras value
200
+ // This is required as otherwise the selector is not aware of different possible extras values
201
+ // at the call site of e.g. useVariable and would otherwise be a stale closure using the initial extras when
202
+ // first registered
203
+ const serializableExtras = new RequestExtrasSerializable(currentExtras);
204
+ const selectorInstance = family(serializableExtras);
205
+ // register selector instance in the selector family registry
206
+ if (!selectorFamilyMembersRegistry.has(family)) {
207
+ selectorFamilyMembersRegistry.set(family, new Map());
208
+ }
209
+ selectorFamilyMembersRegistry.get(family).set(serializableExtras.toJSON(), selectorInstance);
210
+ return selectorInstance;
211
+ }
212
+ /**
213
+ * A hook to fetch a server component
214
+ *
215
+ * @param name component name - specific to a given py_component
216
+ * @param uid component uid - specific to a given *instance* of a py_component
217
+ * @param dynamicKwargs kwargs passed into the component
218
+ */
219
+ export default function useServerComponent(name, uid, dynamicKwargs) {
220
+ const extras = useRequestExtras();
221
+ const { client: wsClient } = useContext(WebSocketCtx);
222
+ const taskContext = useTaskContext();
223
+ const variablesContext = useContext(VariableCtx);
224
+ const bus = useEventBus();
225
+ // Synchronously register the py_component uid, and clean it up on unmount
226
+ variablesContext.variables.current.add(getComponentRegistryKey(uid));
227
+ useEffect(() => {
228
+ return () => {
229
+ variablesContext.variables.current.delete(getComponentRegistryKey(uid));
230
+ };
231
+ }, []);
232
+ const componentSelector = getOrRegisterServerComponent(name, uid, dynamicKwargs, wsClient, taskContext, extras);
233
+ const componentLoadable = useRecoilValueLoadable(componentSelector);
234
+ useEffect(() => {
235
+ if (componentLoadable.state === 'hasValue') {
236
+ bus.publish('SERVER_COMPONENT_LOADED', { name, uid, value: componentLoadable.contents });
237
+ }
238
+ }, [componentLoadable]);
239
+ const deferred = useDeferLoadable(componentLoadable);
240
+ return deferred;
241
+ }
242
+ /**
243
+ * A helper hook that returns a function to force a refresh of a server component
244
+ *
245
+ * @param name component uid
246
+ */
247
+ export function useRefreshServerComponent(uid) {
248
+ return useRecoilCallback(({ set }) => () => {
249
+ const triggerAtom = getOrRegisterComponentTrigger(uid);
250
+ set(triggerAtom, (triggerIndexValue) => ({
251
+ force: false,
252
+ inc: triggerIndexValue.inc + 1,
253
+ }));
254
+ }, [uid]);
255
+ }
256
+ //# sourceMappingURL=use-server-component.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-server-component.js","sourceRoot":"","sources":["../../../js/shared/interactivity/use-server-component.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import { ResolvedDataVariable, ResolvedDerivedDataVariable, ResolvedDerivedVariable } from '../../types';
2
+ type AnyResolvedVariable = ResolvedDataVariable | ResolvedDerivedDataVariable | ResolvedDerivedVariable;
3
+ /**
4
+ * Helper hook to get the current state of the variable.
5
+ * For client-side variables, returns their value. For server-side variables, returns their resolved forms.
6
+ */
7
+ export default function useVariableState(): any | AnyResolvedVariable;
8
+ export {};
9
+ //# sourceMappingURL=use-variable-state.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-variable-state.d.ts","sourceRoot":"","sources":["../../../js/shared/interactivity/use-variable-state.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAe,oBAAoB,EAAE,2BAA2B,EAAE,uBAAuB,EAAE,MAAM,SAAS,CAAC;AAKlH,KAAK,mBAAmB,GAAG,oBAAoB,GAAG,2BAA2B,GAAG,uBAAuB,CAAC;AAExG;;;GAGG;AAEH,MAAM,CAAC,OAAO,UAAU,gBAAgB,IAAI,GAAG,GAAG,mBAAmB,CAmBpE"}
@@ -0,0 +1,26 @@
1
+ import { useContext } from 'react';
2
+ import { useRecoilCallback } from 'recoil';
3
+ import { WebSocketCtx, useRequestExtras, useTaskContext } from '../../shared/context';
4
+ import { resolveVariable } from './resolve-variable';
5
+ import { isRegistered } from './store';
6
+ /**
7
+ * Helper hook to get the current state of the variable.
8
+ * For client-side variables, returns their value. For server-side variables, returns their resolved forms.
9
+ */
10
+ // eslint-disable-next-line @typescript-eslint/no-redundant-type-constituents
11
+ export default function useVariableState() {
12
+ const extras = useRequestExtras();
13
+ const { client } = useContext(WebSocketCtx);
14
+ const taskCtx = useTaskContext();
15
+ return useRecoilCallback(({ snapshot }) => {
16
+ return (variable) => {
17
+ if (!isRegistered(variable)) {
18
+ return '__NOT_REGISTERED__';
19
+ }
20
+ // get the resolved form of the variable
21
+ const resolvedVariable = resolveVariable(variable, client, taskCtx, extras, (v) => snapshot.getLoadable(v).getValue());
22
+ return resolvedVariable;
23
+ };
24
+ }, []);
25
+ }
26
+ //# sourceMappingURL=use-variable-state.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-variable-state.js","sourceRoot":"","sources":["../../../js/shared/interactivity/use-variable-state.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AACnC,OAAO,EAAE,iBAAiB,EAAE,MAAM,QAAQ,CAAC;AAE3C,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAGlF,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAIvC;;;GAGG;AACH,6EAA6E;AAC7E,MAAM,CAAC,OAAO,UAAU,gBAAgB;IACpC,MAAM,MAAM,GAAG,gBAAgB,EAAE,CAAC;IAClC,MAAM,EAAE,MAAM,EAAE,GAAG,UAAU,CAAC,YAAY,CAAC,CAAC;IAC5C,MAAM,OAAO,GAAG,cAAc,EAAE,CAAC;IAEjC,OAAO,iBAAiB,CAAC,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE;QACtC,OAAO,CAAC,QAA0B,EAAE,EAAE;YAClC,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC1B,OAAO,oBAAoB,CAAC;YAChC,CAAC;YAED,wCAAwC;YACxC,MAAM,gBAAgB,GAAG,eAAe,CAAsB,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,CACnG,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CACrC,CAAC;YAEF,OAAO,gBAAgB,CAAC;QAC5B,CAAC,CAAC;IACN,CAAC,EAAE,EAAE,CAAC,CAAC;AACX,CAAC"}
@@ -0,0 +1,33 @@
1
+ import { Snapshot } from 'recoil';
2
+ import { WebSocketClientInterface } from '../../api';
3
+ import { RequestExtras } from '../../api/http';
4
+ import { AnyVariable, DataFrame, DataVariable, DerivedDataVariable, DerivedVariable, ResolvedDataVariable, ResolvedDerivedDataVariable, ResolvedDerivedVariable, Variable } from '../../types';
5
+ import { GlobalTaskContext } from '../context/global-task-context';
6
+ type GetVariableValueCtx = {
7
+ client: WebSocketClientInterface;
8
+ extras: RequestExtras;
9
+ search: string;
10
+ snapshot: Snapshot;
11
+ taskContext: GlobalTaskContext;
12
+ };
13
+ /**
14
+ * Helper function that returns the current value of a variable.
15
+ *
16
+ * Plain variables are always resolved to their value.
17
+ * Computed (server-side) variables are resolved to their uid and dependency values, unless shouldFetchVariable is true.
18
+ */
19
+ export declare function getVariableValue<VV, B extends boolean = false>(variable: AnyVariable<VV>, shouldFetchVariable: B, ctx: GetVariableValueCtx): VV | DataFrame | ResolvedDataVariable | ResolvedDerivedVariable | ResolvedDerivedDataVariable | Promise<VV> | Promise<DataFrame>;
20
+ /**
21
+ * A helper hook that turns a Variable class into the actual value.
22
+ * As opposed to the `useVariable` hook, this one returns a callback to retrieve the latest value
23
+ * without subscribing the component using it to updates.
24
+ * For derived (data) variables, instead of returning its value directly - its resolved to its
25
+ * uid and dependency values.
26
+ *
27
+ * @param variable the variable to use
28
+ * @param shouldFetchVariable if true, if the variable is a derived (data) variable, the request to fetch the variable value will be made
29
+ * @returns Returns the value if the Variable is not derived/data. A Resolved(Data/Derived/DerivedData)Variable if shouldFetchVariable = false, and a Promise for fetching the variable if true.
30
+ */
31
+ export default function useVariableValue<VV, B extends boolean = false>(variable: VV | Variable<VV> | DataVariable | DerivedVariable | DerivedDataVariable, shouldFetchVariable?: B): () => ReturnType<typeof getVariableValue<VV, B>>;
32
+ export {};
33
+ //# sourceMappingURL=use-variable-value.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-variable-value.d.ts","sourceRoot":"","sources":["../../../js/shared/interactivity/use-variable-value.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAE,QAAQ,EAAqB,MAAM,QAAQ,CAAC;AAKrD,OAAO,EAAE,wBAAwB,EAAE,MAAM,OAAO,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAG3C,OAAO,EACH,WAAW,EACX,SAAS,EACT,YAAY,EACZ,mBAAmB,EACnB,eAAe,EACf,oBAAoB,EACpB,2BAA2B,EAC3B,uBAAuB,EACvB,QAAQ,EAQX,MAAM,SAAS,CAAC;AAEjB,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AAUnE,KAAK,mBAAmB,GAAG;IACvB,MAAM,EAAE,wBAAwB,CAAC;IACjC,MAAM,EAAE,aAAa,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,QAAQ,CAAC;IACnB,WAAW,EAAE,iBAAiB,CAAC;CAClC,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,CAAC,SAAS,OAAO,GAAG,KAAK,EAC1D,QAAQ,EAAE,WAAW,CAAC,EAAE,CAAC,EACzB,mBAAmB,EAAE,CAAc,EACnC,GAAG,EAAE,mBAAmB,GAEtB,EAAE,GACF,SAAS,GACT,oBAAoB,GACpB,uBAAuB,GACvB,2BAA2B,GAC3B,OAAO,CAAC,EAAE,CAAC,GACX,OAAO,CAAC,SAAS,CAAC,CAgEvB;AAED;;;;;;;;;;GAUG;AACH,MAAM,CAAC,OAAO,UAAU,gBAAgB,CAAC,EAAE,EAAE,CAAC,SAAS,OAAO,GAAG,KAAK,EAClE,QAAQ,EAAE,EAAE,GAAG,QAAQ,CAAC,EAAE,CAAC,GAAG,YAAY,GAAG,eAAe,GAAG,mBAAmB,EAClF,mBAAmB,GAAE,CAAc,GACpC,MAAM,UAAU,CAAC,OAAO,gBAAgB,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAwBlD"}
@@ -0,0 +1,94 @@
1
+ /* eslint-disable react-hooks/rules-of-hooks */
2
+ import { useContext } from 'react';
3
+ import { useLocation } from 'react-router-dom';
4
+ import { useRecoilCallback } from 'recoil';
5
+ import { useDeepCompare } from '@darajs/ui-utils';
6
+ import { WebSocketCtx, useRequestExtras, useTaskContext } from '../../shared/context';
7
+ import { normalizeRequest } from '../../shared/utils/normalization';
8
+ import { isDataVariable, isDerivedDataVariable, isDerivedVariable, isResolvedDataVariable, isResolvedDerivedDataVariable, isResolvedDerivedVariable, isVariable, } from '../../types';
9
+ import { fetchDataVariable, fetchDerivedDataVariable, fetchDerivedVariable, formatDerivedVariableRequest, isTaskResponse, resolveVariable, } from './internal';
10
+ /**
11
+ * Helper function that returns the current value of a variable.
12
+ *
13
+ * Plain variables are always resolved to their value.
14
+ * Computed (server-side) variables are resolved to their uid and dependency values, unless shouldFetchVariable is true.
15
+ */
16
+ export function getVariableValue(variable, shouldFetchVariable = false, ctx) {
17
+ // Using loadable since the resolver is only used for simple atoms and shouldn't cause problems
18
+ const resolved = resolveVariable(variable, ctx.client, ctx.taskContext, ctx.extras, (v) => ctx.snapshot.getLoadable(v).getValue());
19
+ // if we're NOT forced to fetch, or if it's not a DV/DDV/data variable, return the resolved value
20
+ // variable is plain/url
21
+ if (!shouldFetchVariable ||
22
+ (!isDerivedVariable(variable) && !isDataVariable(variable) && !isDerivedDataVariable(variable))) {
23
+ return resolved;
24
+ }
25
+ // we're forced to fetch but the resolved variable is not a resolved DV/data var, return the resolved value
26
+ // variable is plain/url
27
+ if (!isResolvedDerivedVariable(resolved) &&
28
+ !isResolvedDataVariable(resolved) &&
29
+ !isResolvedDerivedDataVariable(resolved)) {
30
+ return resolved;
31
+ }
32
+ // data variable
33
+ if (isResolvedDataVariable(resolved)) {
34
+ return fetchDataVariable(resolved.uid, ctx.extras, resolved.filters);
35
+ }
36
+ // derived variable
37
+ return fetchDerivedVariable({
38
+ cache: variable.cache,
39
+ extras: ctx.extras,
40
+ force: false,
41
+ /**
42
+ * In this case we're not concerned about different selectors fetching the value so just use the uid
43
+ */
44
+ selectorKey: resolved.uid,
45
+ values: normalizeRequest(formatDerivedVariableRequest(resolved.values), variable.variables),
46
+ variableUid: resolved.uid,
47
+ wsClient: ctx.client,
48
+ }).then((resp) => {
49
+ // This is really only used in DownloadVariable currently; we can add support for tasks
50
+ // if it is requested in the future
51
+ if (isTaskResponse(resp)) {
52
+ throw new Error('Task DerivedVariables are not supported in this context');
53
+ }
54
+ // for derived data variables we need to make another request to retrieve the filtered value
55
+ if (isDerivedDataVariable(variable)) {
56
+ return ctx.client
57
+ .getChannel()
58
+ .then((chan) => fetchDerivedDataVariable(variable.uid, ctx.extras, resp.cache_key, chan, variable.filters));
59
+ }
60
+ return resp.value;
61
+ });
62
+ }
63
+ /**
64
+ * A helper hook that turns a Variable class into the actual value.
65
+ * As opposed to the `useVariable` hook, this one returns a callback to retrieve the latest value
66
+ * without subscribing the component using it to updates.
67
+ * For derived (data) variables, instead of returning its value directly - its resolved to its
68
+ * uid and dependency values.
69
+ *
70
+ * @param variable the variable to use
71
+ * @param shouldFetchVariable if true, if the variable is a derived (data) variable, the request to fetch the variable value will be made
72
+ * @returns Returns the value if the Variable is not derived/data. A Resolved(Data/Derived/DerivedData)Variable if shouldFetchVariable = false, and a Promise for fetching the variable if true.
73
+ */
74
+ export default function useVariableValue(variable, shouldFetchVariable = false) {
75
+ const taskContext = useTaskContext();
76
+ const { client } = useContext(WebSocketCtx);
77
+ const { search } = useLocation();
78
+ const extras = useRequestExtras();
79
+ if (!isVariable(variable)) {
80
+ return () => variable;
81
+ }
82
+ return useRecoilCallback(({ snapshot }) => {
83
+ return () => {
84
+ return getVariableValue(variable, shouldFetchVariable, {
85
+ client,
86
+ extras,
87
+ search,
88
+ snapshot,
89
+ taskContext,
90
+ });
91
+ };
92
+ }, [variable.uid, useDeepCompare(taskContext), client, search, extras]);
93
+ }
94
+ //# sourceMappingURL=use-variable-value.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-variable-value.js","sourceRoot":"","sources":["../../../js/shared/interactivity/use-variable-value.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ import { Dispatch, SetStateAction } from 'react';
2
+ import { Variable } from '../../types';
3
+ /**
4
+ * A helper hook that turns a Variable class into the actual value by accessing the appropriate recoil state from the
5
+ * atomRegistry defined above. For convenience, it will also handle a non variable being passed and will return it
6
+ * directly and a noop function for setting it. In most cases components accept a variable or something else, so this
7
+ * helps to clean up all those areas in a consistent manner.
8
+ *
9
+ * @param variable the possible variable to use
10
+ */
11
+ export declare function useVariable<T>(variable: Variable<T> | T): [value: T, update: Dispatch<SetStateAction<T>>];
12
+ //# sourceMappingURL=use-variable.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-variable.d.ts","sourceRoot":"","sources":["../../../js/shared/interactivity/use-variable.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAmC,MAAM,OAAO,CAAC;AAKlF,OAAO,EAAE,QAAQ,EAAuF,MAAM,SAAS,CAAC;AAmBxH;;;;;;;GAOG;AACH,wBAAgB,WAAW,CAAC,CAAC,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAqEzG"}
@@ -0,0 +1,84 @@
1
+ import { useContext, useEffect, useState } from 'react';
2
+ import { useRecoilState, useRecoilStateLoadable, useRecoilValueLoadable_TRANSITION_SUPPORT_UNSTABLE } from 'recoil';
3
+ import { VariableCtx, WebSocketCtx, useRequestExtras, useTaskContext } from '../../shared/context';
4
+ import { useDeferLoadable } from '../../shared/utils';
5
+ import { isDataVariable, isDerivedDataVariable, isDerivedVariable, isUrlVariable, isVariable } from '../../types';
6
+ import { useEventBus } from '../event-bus/event-bus';
7
+ import { getOrRegisterPlainVariable, useDerivedVariable, useUrlVariable } from './internal';
8
+ /** Disabling rules of hook because of assumptions that variables never change their types which makes the hook order consistent */
9
+ /* eslint-disable react-hooks/rules-of-hooks */
10
+ /** Disabling no-use-before-define because of functions depending on each other */
11
+ /* eslint-disable @typescript-eslint/no-use-before-define */
12
+ /* eslint-disable react-hooks/exhaustive-deps */
13
+ /**
14
+ * Helper function to warn when trying to update DerivedVariable directly
15
+ */
16
+ function warnUpdateOnDerivedState() {
17
+ // eslint-disable-next-line no-console
18
+ console.warn('You tried to call update on variable with derived state, this is a noop and will be ignored.');
19
+ }
20
+ /**
21
+ * A helper hook that turns a Variable class into the actual value by accessing the appropriate recoil state from the
22
+ * atomRegistry defined above. For convenience, it will also handle a non variable being passed and will return it
23
+ * directly and a noop function for setting it. In most cases components accept a variable or something else, so this
24
+ * helps to clean up all those areas in a consistent manner.
25
+ *
26
+ * @param variable the possible variable to use
27
+ */
28
+ export function useVariable(variable) {
29
+ const extras = useRequestExtras();
30
+ const { client: WsClient } = useContext(WebSocketCtx);
31
+ const taskContext = useTaskContext();
32
+ const variablesContext = useContext(VariableCtx);
33
+ const bus = useEventBus();
34
+ if (!isVariable(variable)) {
35
+ return useState(variable);
36
+ }
37
+ // Synchronously register variable subscription, and clean it up on unmount
38
+ variablesContext.variables.current.add(variable.uid);
39
+ useEffect(() => {
40
+ return () => {
41
+ variablesContext.variables.current.delete(variable.uid);
42
+ };
43
+ }, []);
44
+ // This hook should only be used for components not expecting DataFrames
45
+ if (isDataVariable(variable) || isDerivedDataVariable(variable)) {
46
+ throw new Error(`Non-data variable expected, got ${variable.__typename}`);
47
+ }
48
+ if (isDerivedVariable(variable)) {
49
+ const selector = useDerivedVariable(variable, WsClient, taskContext, extras);
50
+ const selectorLoadable = useRecoilValueLoadable_TRANSITION_SUPPORT_UNSTABLE(selector);
51
+ useEffect(() => {
52
+ if (selectorLoadable.state !== 'loading') {
53
+ bus.publish('DERIVED_VARIABLE_LOADED', { variable, value: selectorLoadable.contents });
54
+ }
55
+ }, [selectorLoadable]);
56
+ const deferred = useDeferLoadable(selectorLoadable);
57
+ return [deferred.value, warnUpdateOnDerivedState];
58
+ }
59
+ if (isUrlVariable(variable)) {
60
+ const [urlValue, setUrlValue] = useUrlVariable(variable);
61
+ useEffect(() => {
62
+ bus.publish('URL_VARIABLE_LOADED', { variable, value: urlValue });
63
+ }, [urlValue]);
64
+ return [urlValue, setUrlValue];
65
+ }
66
+ const recoilState = getOrRegisterPlainVariable(variable, WsClient, taskContext, extras);
67
+ if (!isDerivedVariable(variable.default)) {
68
+ const [value, setValue] = useRecoilState(recoilState);
69
+ useEffect(() => {
70
+ bus.publish('PLAIN_VARIABLE_LOADED', { variable, value });
71
+ }, [value]);
72
+ return [value, setValue];
73
+ }
74
+ const [loadable, setLoadable] = useRecoilStateLoadable(recoilState);
75
+ useEffect(() => {
76
+ // when loadable resolves to a value/error
77
+ if (loadable.state !== 'loading') {
78
+ bus.publish('PLAIN_VARIABLE_LOADED', { variable, value: loadable.contents });
79
+ }
80
+ }, [loadable]);
81
+ const deferred = useDeferLoadable(loadable);
82
+ return [deferred, setLoadable];
83
+ }
84
+ //# sourceMappingURL=use-variable.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-variable.js","sourceRoot":"","sources":["../../../js/shared/interactivity/use-variable.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ import { ReactNode } from 'react';
2
+ import { Action } from '../../types';
3
+ interface PrivateRouteProps {
4
+ /** The children to wrap */
5
+ children: ReactNode;
6
+ /** Name of the page this route links to */
7
+ name?: string;
8
+ /** Variables which should be reset upon visiting the page */
9
+ on_load?: Action;
10
+ }
11
+ /**
12
+ * The PrivateRoute component takes a private route object and checks for authentication.
13
+ * It redirects to the login page if the user is not authenticated.
14
+ *
15
+ * @param props - the component props
16
+ */
17
+ declare function PrivateRoute({ children, on_load, name }: PrivateRouteProps): ReactNode;
18
+ export default PrivateRoute;
19
+ //# sourceMappingURL=private-route.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"private-route.d.ts","sourceRoot":"","sources":["../../../js/shared/private-route/private-route.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAa,MAAM,OAAO,CAAC;AAO7C,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAEjC,UAAU,iBAAiB;IACvB,2BAA2B;IAC3B,QAAQ,EAAE,SAAS,CAAC;IACpB,2CAA2C;IAC3C,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,6DAA6D;IAC7D,OAAO,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;GAKG;AACH,iBAAS,YAAY,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,iBAAiB,GAAG,SAAS,CA0B/E;AAED,eAAe,YAAY,CAAC"}
@@ -0,0 +1,35 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ /* eslint-disable react-hooks/exhaustive-deps */
3
+ import { useEffect } from 'react';
4
+ import { Redirect } from 'react-router-dom';
5
+ import { useSessionToken } from '../../auth/use-session-token';
6
+ import DefaultFallback from '../../components/fallback/default';
7
+ import useAction, { useActionIsLoading } from '../../shared/utils/use-action';
8
+ import useWindowTitle from '../../shared/utils/use-window-title';
9
+ /**
10
+ * The PrivateRoute component takes a private route object and checks for authentication.
11
+ * It redirects to the login page if the user is not authenticated.
12
+ *
13
+ * @param props - the component props
14
+ */
15
+ function PrivateRoute({ children, on_load, name }) {
16
+ const token = useSessionToken();
17
+ const onLoad = useAction(on_load);
18
+ const isLoading = useActionIsLoading(on_load);
19
+ useWindowTitle(name);
20
+ useEffect(() => {
21
+ // On mount, call the on_load action
22
+ onLoad();
23
+ }, []);
24
+ if (!token) {
25
+ const referrer = encodeURIComponent(window.location.pathname + window.location.search);
26
+ return (_jsx(Redirect, { to: {
27
+ pathname: '/login',
28
+ search: `?referrer=${referrer}`,
29
+ } }));
30
+ }
31
+ // Show fallback while the onLoad action is in progress
32
+ return isLoading ? _jsx(DefaultFallback, {}) : children;
33
+ }
34
+ export default PrivateRoute;
35
+ //# sourceMappingURL=private-route.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"private-route.js","sourceRoot":"","sources":["../../../js/shared/private-route/private-route.tsx"],"names":[],"mappings":";AAAA,gDAAgD;AAChD,OAAO,EAAa,SAAS,EAAE,MAAM,OAAO,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAE5C,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,eAAe,MAAM,+BAA+B,CAAC;AAC5D,OAAO,SAAS,EAAE,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC1E,OAAO,cAAc,MAAM,iCAAiC,CAAC;AAY7D;;;;;GAKG;AACH,SAAS,YAAY,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAqB;IAChE,MAAM,KAAK,GAAG,eAAe,EAAE,CAAC;IAChC,MAAM,MAAM,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC;IAClC,MAAM,SAAS,GAAG,kBAAkB,CAAC,OAAO,CAAC,CAAC;IAE9C,cAAc,CAAC,IAAI,CAAC,CAAC;IAErB,SAAS,CAAC,GAAG,EAAE;QACX,oCAAoC;QACpC,MAAM,EAAE,CAAC;IACb,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,IAAI,CAAC,KAAK,EAAE,CAAC;QACT,MAAM,QAAQ,GAAG,kBAAkB,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QACvF,OAAO,CACH,KAAC,QAAQ,IACL,EAAE,EAAE;gBACA,QAAQ,EAAE,QAAQ;gBAClB,MAAM,EAAE,aAAa,QAAQ,EAAE;aAClC,GACH,CACL,CAAC;IACN,CAAC;IAED,uDAAuD;IACvD,OAAO,SAAS,CAAC,CAAC,CAAC,KAAC,eAAe,KAAG,CAAC,CAAC,CAAC,QAAQ,CAAC;AACtD,CAAC;AAED,eAAe,YAAY,CAAC"}