@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,446 @@
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 { isEqual } from 'lodash';
23
+ import { nanoid } from 'nanoid';
24
+ import { useCallback, useMemo } from 'react';
25
+ import { selectorFamily, useRecoilValue, useSetRecoilState } from 'recoil';
26
+ import { BehaviorSubject, from } from 'rxjs';
27
+ import { debounceTime, filter, share, switchMap, take } from 'rxjs/operators';
28
+ import { HTTP_METHOD, validateResponse } from '@darajs/ui-utils';
29
+ import { fetchTaskResult, handleAuthErrors, request } from '../../api';
30
+ import { RequestExtrasSerializable } from '../../api/http';
31
+ import { getUniqueIdentifier } from '../../shared/utils/hashing';
32
+ import { normalizeRequest } from '../../shared/utils/normalization';
33
+ import useInterval from '../../shared/utils/use-interval';
34
+ import { isDerivedDataVariable, isDerivedVariable, isResolvedDataVariable, isResolvedDerivedDataVariable, isResolvedDerivedVariable, } from '../../types';
35
+ // eslint-disable-next-line import/no-cycle
36
+ import { getOrRegisterTrigger, registerChildTriggers, resolveNested, resolveVariable } from './internal';
37
+ import { depsRegistry, getRegistryKey, selectorFamilyMembersRegistry, selectorFamilyRegistry, } from './store';
38
+ export function isTaskResponse(dvResponse) {
39
+ return 'task_id' in dvResponse;
40
+ }
41
+ /**
42
+ * Format values into a shape expected by the backend.
43
+ *
44
+ * @param values list of values - plain values or ResolvedDerivedVariable constructs with plain values nested inside
45
+ */
46
+ // eslint-disable-next-line @typescript-eslint/no-redundant-type-constituents
47
+ export function formatDerivedVariableRequest(values) {
48
+ return values.map((val) => {
49
+ if (isResolvedDerivedVariable(val) || isResolvedDerivedDataVariable(val)) {
50
+ const { deps, values: nestedValues } = val, rest = __rest(val, ["deps", "values"]);
51
+ // Recursively remove deps from request
52
+ // Append force: false - it's sent separately in the request at the top level but we append it recursively
53
+ // to keep the request shape consistent with the PythonWrapper requests
54
+ return Object.assign(Object.assign({}, rest), { force: false, values: formatDerivedVariableRequest(nestedValues) });
55
+ }
56
+ return val;
57
+ });
58
+ }
59
+ /**
60
+ * Fetch the value of a derived variable from the backend
61
+ *
62
+ * @param input Function inputs
63
+ * - `cache`, the cache option for the derived variable.
64
+ * - `force`, send force=true in the request body
65
+ * - `extras`, request extras to be merged into the options
66
+ * - `uid`, the uid of the derived variable
67
+ * - `values`, values to pass in the request
68
+ * - `wsClient`, websocket client
69
+ */
70
+ export function fetchDerivedVariable(_a) {
71
+ return __awaiter(this, arguments, void 0, function* ({ cache, force, extras, variableUid, values, wsClient, is_data_variable = false, }) {
72
+ const cacheControl = cache === null ?
73
+ {
74
+ 'cache-control': 'none',
75
+ }
76
+ : undefined;
77
+ const ws_channel = yield wsClient.getChannel();
78
+ const res = yield request(`/api/core/derived-variable/${variableUid}`, {
79
+ body: JSON.stringify({ force, is_data_variable, values, ws_channel }),
80
+ headers: Object.assign({}, cacheControl),
81
+ method: HTTP_METHOD.POST,
82
+ }, extras);
83
+ yield handleAuthErrors(res, true);
84
+ yield validateResponse(res, `Failed to fetch the derived variable with uid: ${variableUid}`);
85
+ return res.json();
86
+ });
87
+ }
88
+ /**
89
+ * Add a debounced version of the fetch so as to not overload the backend on startup. This needs to be cached per uid
90
+ * so that we only debounce calls to the same DerivedVariable. Debouncing is done with rxjs as everything here is
91
+ * promise based and async
92
+ */
93
+ const debouncedFetchSubjects = {};
94
+ const debouncedFetchCache = {};
95
+ function debouncedFetchDerivedVariable(_a) {
96
+ return __awaiter(this, arguments, void 0, function* ({ variableUid, selectorKey, values, wsClient, force, extras, cache, is_data_variable = false, }) {
97
+ // If this is the first time this is called then set up a subject and return stream for this selector
98
+ if (!debouncedFetchSubjects[selectorKey]) {
99
+ debouncedFetchSubjects[selectorKey] = new BehaviorSubject(null);
100
+ debouncedFetchCache[selectorKey] = debouncedFetchSubjects[selectorKey].pipe(filter((args) => !!args), debounceTime(10), switchMap((args) => from(fetchDerivedVariable(args))), share());
101
+ }
102
+ // Push the next set of args to the subject
103
+ debouncedFetchSubjects[selectorKey].next({
104
+ cache,
105
+ extras,
106
+ force,
107
+ is_data_variable,
108
+ selectorKey,
109
+ values,
110
+ variableUid,
111
+ wsClient,
112
+ });
113
+ // Return the debounced response from the backend
114
+ return new Promise((resolve, reject) => {
115
+ debouncedFetchCache[selectorKey].pipe(take(1)).subscribe(resolve, reject);
116
+ });
117
+ });
118
+ }
119
+ /**
120
+ * Resolve a value to a format understood by the backend, resolving atoms to values.
121
+ *
122
+ * @param value value to resolve
123
+ * @param getter recoil getter function
124
+ */
125
+ export function resolveValue(value, getter) {
126
+ if (isResolvedDerivedVariable(value) || isResolvedDerivedDataVariable(value)) {
127
+ const resolvedValues = value.values.map((v) => resolveValue(v, getter));
128
+ return Object.assign(Object.assign({}, value), { values: resolvedValues });
129
+ }
130
+ if (isResolvedDataVariable(value)) {
131
+ return value;
132
+ }
133
+ return getter(value);
134
+ }
135
+ /**
136
+ * Recursively build a deps array from a list of values
137
+ * Values not in deps array are replaced with empty array
138
+ *
139
+ * @param values array of primitives and ResolvedDerivedVariable objects
140
+ * @param deps array of indexes of dependencies to get values from
141
+ */
142
+ // eslint-disable-next-line @typescript-eslint/no-redundant-type-constituents
143
+ export function getDeps(values, deps) {
144
+ return values.map((val, idx) => {
145
+ if (deps && !deps.includes(idx)) {
146
+ return [];
147
+ }
148
+ return isResolvedDerivedVariable(val) || isResolvedDerivedDataVariable(val) ?
149
+ getDeps(val.values, val.deps).flat()
150
+ : val;
151
+ });
152
+ }
153
+ /**
154
+ * A helper hook that turns a DerivedVariable into its trigger index value.
155
+ * Useful to subscribe a component to forced trigger updates.
156
+ *
157
+ * @param variable variable to use
158
+ */
159
+ export function useTriggerIndex(variable) {
160
+ return useRecoilValue(getOrRegisterTrigger(variable));
161
+ }
162
+ /**
163
+ * Resolve a derived value from a list of dependant variables and their resolved values.
164
+ *
165
+ * Handles a dependency array, where in case 'relevant' (i.e. present in deps) values did not change,
166
+ * an earlier result from the `depsRegistry` is returned.
167
+ *
168
+ * This is the core of the derived variable resolution logic, extracted so that it can be used in both
169
+ * DerivedVariable and py_component logic.
170
+ *
171
+ * @param key unique key to look up `depsRegistry` entry from
172
+ * @param variables dependant variables
173
+ * @param deps list of relevant dependant variables, akin to useEffect dependency array
174
+ * @param resolvedVariables resolved values of dependant variables - turned into primitives and Resolved forms
175
+ * @param wsClient websocket client
176
+ * @param get getter function to resolve atoms to values
177
+ * @param selfTrigger additional trigger index value to register as a dependency
178
+ */
179
+ export function resolveDerivedValue(key, variables, deps, resolvedVariables, wsClient, get, selfTrigger) {
180
+ return __awaiter(this, void 0, void 0, function* () {
181
+ // Register nested triggers as dependencies so triggering one of the nested derived variables will trigger a recalculation here
182
+ const triggers = registerChildTriggers(variables, wsClient, get);
183
+ if (selfTrigger) {
184
+ triggers.unshift(selfTrigger);
185
+ }
186
+ /**
187
+ * Array of values:
188
+ * - simple variables are resolved to their values
189
+ * - derived variables are resolved to ResolvedDerivedVariable objects with nested values/deps resolved to values
190
+ * - ResolvedDataVariable objects are left as is
191
+ */
192
+ const values = resolvedVariables.map((v) => resolveValue(v, get));
193
+ /**
194
+ * Array of values with ResolvedDerivedVariable objects replaced
195
+ * (recursively) by nested arrays of their dependency values
196
+ *
197
+ * Dependencies which aren't included in `deps` are replaced with empty arrays
198
+ */
199
+ const depsValues = getDeps(values);
200
+ /**
201
+ * A map of variable UID-nested -> its primitive value (or array of dependencies).
202
+ * Only includes variables present in deps
203
+ *
204
+ * `nested` is used to generate a key so that the same variable with different nested property will be
205
+ * present in the map separately.
206
+ */
207
+ const variableValueMap = variables.reduce((acc, v, idx) => acc.set(getUniqueIdentifier(v), depsValues[idx]), new Map());
208
+ let recalculateForced = false; // whether the recalculation was forced or not (by calling trigger with force=true)
209
+ let wasTriggered = false; // whether a trigger caused the selector execution
210
+ let wasTriggeredItself = false; // whether the variable's own trigger caused the selector execution
211
+ /**
212
+ * Deps handling
213
+ */
214
+ const previousEntry = depsRegistry.get(key);
215
+ // Get relevant values based on deps
216
+ const relevantValues = deps
217
+ .map((dep) => variableValueMap.get(getUniqueIdentifier(dep)))
218
+ .concat(triggers.map((trigger) => trigger.inc)); // Append triggerValues to make triggers force a recalc even when deps didn't change
219
+ // If there's no entry it's the first run so skip; otherwise:
220
+ if (previousEntry) {
221
+ const areArgsTheSame = isEqual(previousEntry.args, relevantValues);
222
+ // If the relevant arg values didn't change, return previous result
223
+ if (areArgsTheSame) {
224
+ return {
225
+ entry: previousEntry,
226
+ type: 'previous',
227
+ };
228
+ }
229
+ // Otherwise continue and fetch new value, but first check what caused the change
230
+ // Assumption: Triggers are always stored after the values, with the triggers of the current variable being first
231
+ const previousTriggerCounters = previousEntry.args.slice(previousEntry.args.length - triggers.length);
232
+ for (const [idx, triggerValue] of triggers.entries()) {
233
+ /**
234
+ * If any of the nested trigger value has changed (this execution was caused by a trigger)
235
+ * update whether it was called with a `force` flag or not - based on the trigger that changed
236
+ */
237
+ if (triggerValue.inc !== previousTriggerCounters[idx]) {
238
+ recalculateForced = triggerValue.force;
239
+ // Record whether its own trigger was the one that caused the change
240
+ if (idx === 0) {
241
+ wasTriggeredItself = true;
242
+ }
243
+ wasTriggered = true;
244
+ break;
245
+ }
246
+ }
247
+ }
248
+ // if it was triggered but not by its own trigger, wait 50ms to let the triggered variable run first
249
+ if (wasTriggered && !wasTriggeredItself) {
250
+ yield new Promise((resolve) => setTimeout(resolve, 50));
251
+ }
252
+ return {
253
+ force: recalculateForced,
254
+ relevantValues,
255
+ type: 'current',
256
+ values,
257
+ };
258
+ });
259
+ }
260
+ /**
261
+ * Get a derived variable from the selector registry, registering it if not already registered
262
+ *
263
+ * @param variable variable to register
264
+ * @param wsClient WebSocket client from context
265
+ * @param tasks tasks list from context
266
+ * @param currentExtras request extras to be merged into the options
267
+ */
268
+ export function getOrRegisterDerivedVariable(variable, wsClient, taskContext, currentExtras) {
269
+ const key = getRegistryKey(variable, 'selector');
270
+ if (!selectorFamilyRegistry.has(key)) {
271
+ getOrRegisterTrigger(variable);
272
+ // register a family for this particular variable
273
+ selectorFamilyRegistry.set(key, selectorFamily({
274
+ cachePolicy_UNSTABLE: {
275
+ eviction: 'most-recent',
276
+ },
277
+ get: (extrasSerializable) => (_a) => __awaiter(this, [_a], void 0, function* ({ get }) {
278
+ /**
279
+ * Recursively resolve variables to list of values
280
+ *
281
+ * For derived variables, put ResolvedDerivedVariable object with values resolved to recoil atoms/selectors,
282
+ * and deps resolved to array of indexes of variables (or null if not set)
283
+ * For data variables, put ResolvedDataVariable object.
284
+ */
285
+ const resolvedVariables = variable.variables.map((v) => resolveVariable(v, wsClient, taskContext, currentExtras));
286
+ const selfTrigger = get(getOrRegisterTrigger(variable));
287
+ const { extras } = extrasSerializable;
288
+ // for deps use a different key for each selector instance rather than one per family
289
+ const selectorKey = key + extrasSerializable.toJSON();
290
+ const derivedResult = yield resolveDerivedValue(selectorKey, variable.variables, variable.deps, resolvedVariables, wsClient, get, selfTrigger);
291
+ if (derivedResult.type === 'previous') {
292
+ return { cache_key: derivedResult.entry.cacheKey, value: derivedResult.entry.result };
293
+ }
294
+ let variableResponse = null;
295
+ try {
296
+ variableResponse = yield debouncedFetchDerivedVariable({
297
+ cache: variable.cache,
298
+ extras,
299
+ force: derivedResult.force,
300
+ is_data_variable: isDerivedDataVariable(variable),
301
+ selectorKey,
302
+ values: normalizeRequest(formatDerivedVariableRequest(derivedResult.values), variable.variables),
303
+ variableUid: variable.uid,
304
+ wsClient,
305
+ });
306
+ }
307
+ catch (e) {
308
+ // On DV error put selectorId and extras into the error so the boundary can reset the selector cache
309
+ e.selectorId = key;
310
+ e.selectorExtras = extrasSerializable.toJSON();
311
+ throw e;
312
+ }
313
+ const cacheKey = variableResponse.cache_key;
314
+ let variableValue = null;
315
+ // We're only interested in the actual value for DVs.
316
+ // For DerivedDataVariables we only need the cache key and the backend will handle the rest, regardless
317
+ // of whether it's running as a task or not
318
+ if (isDerivedVariable(variable)) {
319
+ // If there is a task running related to the current variable then something has changed, so cancel them
320
+ taskContext.cleanupRunningTasks(variable.uid);
321
+ // If the variable is computed as a task then wait for it to finish and fetch the result
322
+ if (isTaskResponse(variableResponse)) {
323
+ const taskId = variableResponse.task_id;
324
+ // register task being started
325
+ taskContext.startTask(taskId, variable.uid, getRegistryKey(variable, 'trigger'));
326
+ try {
327
+ yield wsClient.waitForTask(taskId);
328
+ }
329
+ catch (_b) {
330
+ // If there was an error waiting for task it means it was cancelled (by a re-run)
331
+ // It should be safe to return `null` here as the selector will re-run and throw suspense again
332
+ return {
333
+ cache_key: cacheKey,
334
+ value: null,
335
+ };
336
+ }
337
+ finally {
338
+ taskContext.endTask(taskId);
339
+ }
340
+ try {
341
+ variableValue = yield fetchTaskResult(taskId, extras);
342
+ }
343
+ catch (e) {
344
+ // On DV task error put selectorId and extras into the error so the boundary can reset the selector cache
345
+ e.selectorId = key;
346
+ e.selectorExtras = extrasSerializable.toJSON();
347
+ throw e;
348
+ }
349
+ }
350
+ else {
351
+ variableValue = variableResponse.value;
352
+ }
353
+ }
354
+ // Store the final result and arguments used if deps is specified
355
+ // resolve nested if defined (i.e. for DerivedVariable, DerivedDataVariable does not have nested)
356
+ variableValue =
357
+ 'nested' in variable ? resolveNested(variableValue, variable.nested) : variableValue;
358
+ depsRegistry.set(selectorKey, {
359
+ args: derivedResult.relevantValues,
360
+ cacheKey,
361
+ result: variableValue,
362
+ });
363
+ return {
364
+ cache_key: cacheKey,
365
+ value: variableValue,
366
+ };
367
+ }),
368
+ key: nanoid(),
369
+ }));
370
+ }
371
+ const family = selectorFamilyRegistry.get(key);
372
+ // Get a selector instance for this particular extras value
373
+ // This is required as otherwise the selector is not aware of different possible extras values
374
+ // at the call site of e.g. useVariable and would otherwise be a stale closure using the initial extras when
375
+ // first registered
376
+ const serializableExtras = new RequestExtrasSerializable(currentExtras);
377
+ const selectorInstance = family(serializableExtras);
378
+ // register selector instance in the selector family registry
379
+ if (!selectorFamilyMembersRegistry.has(family)) {
380
+ selectorFamilyMembersRegistry.set(family, new Map());
381
+ }
382
+ selectorFamilyMembersRegistry.get(family).set(serializableExtras.toJSON(), selectorInstance);
383
+ return selectorInstance;
384
+ }
385
+ /**
386
+ * Get a derived selector for a derived variable.
387
+ * Retrieves the value of the derived variable directly instead of returning an object with cache_key and value.
388
+ *
389
+ * @param variable variable to register
390
+ * @param wsClient WebSocket client from context
391
+ * @param taskContext global task context
392
+ * @param search search query from location
393
+ * @param extras request extras to be merged into the options
394
+ */
395
+ export function getOrRegisterDerivedVariableValue(variable, wsClient, taskContext, currentExtras) {
396
+ const key = getRegistryKey(variable, 'derived-selector');
397
+ if (!selectorFamilyRegistry.has(key)) {
398
+ selectorFamilyRegistry.set(key, selectorFamily({
399
+ get: (extrasSerializable) => ({ get }) => {
400
+ // get the right selector instance for this extras value
401
+ const dvSelector = getOrRegisterDerivedVariable(variable, wsClient, taskContext, extrasSerializable.extras);
402
+ const dvResponse = get(dvSelector);
403
+ return dvResponse.value;
404
+ },
405
+ key: nanoid(),
406
+ }));
407
+ }
408
+ const family = selectorFamilyRegistry.get(key);
409
+ // Get a selector instance for this particular extras value
410
+ // This is required as otherwise the selector is not aware of different possible extras values
411
+ // at the call site of e.g. useVariable and would otherwise be a stale closure using the initial extras when
412
+ // first registered
413
+ const serializableExtras = new RequestExtrasSerializable(currentExtras);
414
+ const selectorInstance = family(serializableExtras);
415
+ // register selector instance in the selector family registry
416
+ if (!selectorFamilyMembersRegistry.has(family)) {
417
+ selectorFamilyMembersRegistry.set(family, new Map());
418
+ }
419
+ selectorFamilyMembersRegistry.get(family).set(serializableExtras.toJSON(), selectorInstance);
420
+ return selectorInstance;
421
+ }
422
+ /**
423
+ * Helper hook to get the (data) derived variable selector, while correctly registering triggers and setting up polling interval.
424
+ *
425
+ * @param variable derived variable to use
426
+ * @param WsClient websocket client instance
427
+ * @param taskContext global task context
428
+ * @param search search query
429
+ * @param extras request extras to be merged into the options
430
+ */
431
+ export function useDerivedVariable(variable, WsClient, taskContext, extras) {
432
+ const dvSelector = getOrRegisterDerivedVariable(variable, WsClient, taskContext, extras);
433
+ /**
434
+ * Workaround for forcing a re-calculation for derived variables by creating a triggerIndex atom and making it a dependency of
435
+ * the recoil selector. This way the selector can be re-run and derived variable can be re-fetched from the
436
+ * backend by just updating this atom.
437
+ */
438
+ const triggerIndex = useMemo(() => getOrRegisterTrigger(variable), []);
439
+ // Creating a setter function for triggerIndex
440
+ const triggerUpdates = useSetRecoilState(triggerIndex);
441
+ const trigger = useCallback((force = true) => triggerUpdates((val) => ({ force, inc: val.inc + 1 })), [triggerUpdates]);
442
+ // Using useInterval to poll, forcing recalculation everytime
443
+ useInterval(trigger, variable.polling_interval);
444
+ return dvSelector;
445
+ }
446
+ //# sourceMappingURL=derived-variable.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"derived-variable.js","sourceRoot":"","sources":["../../../js/shared/interactivity/derived-variable.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA,gDAAgD;AAChD,OAAO,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AACjC,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAC7C,OAAO,EAA+B,cAAc,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,QAAQ,CAAC;AACxG,OAAO,EAAE,eAAe,EAAc,IAAI,EAAE,MAAM,MAAM,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAE9E,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAEjE,OAAO,EAA4B,eAAe,EAAE,gBAAgB,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAC7F,OAAO,EAAiB,yBAAyB,EAAE,MAAM,YAAY,CAAC;AAEtE,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,WAAW,MAAM,6BAA6B,CAAC;AACtD,OAAO,EAOH,qBAAqB,EACrB,iBAAiB,EACjB,sBAAsB,EACtB,6BAA6B,EAC7B,yBAAyB,GAC5B,MAAM,SAAS,CAAC;AAEjB,2CAA2C;AAC3C,OAAO,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AACzG,OAAO,EAEH,YAAY,EACZ,cAAc,EACd,6BAA6B,EAC7B,sBAAsB,GACzB,MAAM,SAAS,CAAC;AASjB,MAAM,UAAU,cAAc,CAAC,UAAwC;IACnE,OAAO,SAAS,IAAI,UAAU,CAAC;AACnC,CAAC;AAOD;;;;GAIG;AACH,6EAA6E;AAC7E,MAAM,UAAU,4BAA4B,CAAC,MAA4C;IACrF,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;QACtB,IAAI,yBAAyB,CAAC,GAAG,CAAC,IAAI,6BAA6B,CAAC,GAAG,CAAC,EAAE,CAAC;YACvE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,YAAY,KAAc,GAAG,EAAZ,IAAI,UAAK,GAAG,EAA7C,kBAAuC,CAAM,CAAC;YAEpD,uCAAuC;YACvC,0GAA0G;YAC1G,uEAAuE;YACvE,uCACO,IAAI,KACP,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,4BAA4B,CAAC,YAAY,CAAC,IACpD;QACN,CAAC;QAED,OAAO,GAAG,CAAC;IACf,CAAC,CAAC,CAAC;AACP,CAAC;AAmBD;;;;;;;;;;GAUG;AACH,MAAM,UAAgB,oBAAoB;yDAAI,EAC1C,KAAK,EACL,KAAK,EACL,MAAM,EACN,WAAW,EACX,MAAM,EACN,QAAQ,EACR,gBAAgB,GAAG,KAAK,GACD;QACvB,MAAM,YAAY,GACd,KAAK,KAAK,IAAI,CAAC,CAAC;YACX;gBACG,eAAe,EAAE,MAAM;aAChB;YACf,CAAC,CAAG,SAAS,CAAC;QAElB,MAAM,UAAU,GAAG,MAAM,QAAQ,CAAC,UAAU,EAAE,CAAC;QAC/C,MAAM,GAAG,GAAG,MAAM,OAAO,CACrB,8BAA8B,WAAW,EAAE,EAC3C;YACI,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,gBAAgB,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC;YACrE,OAAO,oBAAO,YAAY,CAAE;YAC5B,MAAM,EAAE,WAAW,CAAC,IAAI;SAC3B,EACD,MAAM,CACT,CAAC;QACF,MAAM,gBAAgB,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QAClC,MAAM,gBAAgB,CAAC,GAAG,EAAE,kDAAkD,WAAW,EAAE,CAAC,CAAC;QAC7F,OAAO,GAAG,CAAC,IAAI,EAAE,CAAC;IACtB,CAAC;CAAA;AAED;;;;GAIG;AACH,MAAM,sBAAsB,GAExB,EAAE,CAAC;AACP,MAAM,mBAAmB,GAErB,EAAE,CAAC;AAEP,SAAe,6BAA6B;yDAAC,EACzC,WAAW,EACX,WAAW,EACX,MAAM,EACN,QAAQ,EACR,KAAK,EACL,MAAM,EACN,KAAK,EACL,gBAAgB,GAAG,KAAK,GACD;QACvB,qGAAqG;QACrG,IAAI,CAAC,sBAAsB,CAAC,WAAW,CAAC,EAAE,CAAC;YACvC,sBAAsB,CAAC,WAAW,CAAC,GAAG,IAAI,eAAe,CAA2B,IAAI,CAAC,CAAC;YAC1F,mBAAmB,CAAC,WAAW,CAAC,GAAG,sBAAsB,CAAC,WAAW,CAAC,CAAC,IAAI,CACvE,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EACxB,YAAY,CAAC,EAAE,CAAC,EAChB,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC,CAAC,EACrD,KAAK,EAAE,CACV,CAAC;QACN,CAAC;QAED,2CAA2C;QAC3C,sBAAsB,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC;YACrC,KAAK;YACL,MAAM;YACN,KAAK;YACL,gBAAgB;YAChB,WAAW;YACX,MAAM;YACN,WAAW;YACX,QAAQ;SACX,CAAC,CAAC;QAEH,iDAAiD;QACjD,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACnC,mBAAmB,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAC9E,CAAC,CAAC,CAAC;IACP,CAAC;CAAA;AAED;;;;;GAKG;AACH,MAAM,UAAU,YAAY,CACxB,KAAsG,EACtG,MAAsB;IAEtB,IAAI,yBAAyB,CAAC,KAAK,CAAC,IAAI,6BAA6B,CAAC,KAAK,CAAC,EAAE,CAAC;QAC3E,MAAM,cAAc,GAAG,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,YAAY,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;QAExE,uCACO,KAAK,KACR,MAAM,EAAE,cAAc,IACxB;IACN,CAAC;IACD,IAAI,sBAAsB,CAAC,KAAK,CAAC,EAAE,CAAC;QAChC,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;AACzB,CAAC;AAED;;;;;;GAMG;AACH,6EAA6E;AAC7E,MAAM,UAAU,OAAO,CAAC,MAA4C,EAAE,IAAe;IACjF,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;QAC3B,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YAC9B,OAAO,EAAE,CAAC;QACd,CAAC;QAED,OAAO,yBAAyB,CAAC,GAAG,CAAC,IAAI,6BAA6B,CAAC,GAAG,CAAC,CAAC,CAAC;YACrE,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE;YACxC,CAAC,CAAG,GAAG,CAAC;IAChB,CAAC,CAAC,CAAC;AACP,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,eAAe,CAAC,QAAyB;IACrD,OAAO,cAAc,CAAC,oBAAoB,CAAC,QAAQ,CAAC,CAAC,CAAC;AAC1D,CAAC;AA2CD;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,UAAgB,mBAAmB,CACrC,GAAW,EACX,SAA6B,EAC7B,IAAwB,EACxB,iBAAwB,EACxB,QAAkC,EAClC,GAAmB,EACnB,WAA+B;;QAE/B,+HAA+H;QAC/H,MAAM,QAAQ,GAAG,qBAAqB,CAAC,SAAS,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAC;QAEjE,IAAI,WAAW,EAAE,CAAC;YACd,QAAQ,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;QAClC,CAAC;QAED;;;;;WAKG;QACH,MAAM,MAAM,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,YAAY,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;QAElE;;;;;WAKG;QACH,MAAM,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;QAEnC;;;;;;WAMG;QACH,MAAM,gBAAgB,GAAG,SAAS,CAAC,MAAM,CACrC,CAAC,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC,EACjE,IAAI,GAAG,EAAe,CACzB,CAAC;QAEF,IAAI,iBAAiB,GAAG,KAAK,CAAC,CAAC,mFAAmF;QAClH,IAAI,YAAY,GAAG,KAAK,CAAC,CAAC,kDAAkD;QAC5E,IAAI,kBAAkB,GAAG,KAAK,CAAC,CAAC,mEAAmE;QAEnG;;WAEG;QACH,MAAM,aAAa,GAAG,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAE5C,oCAAoC;QACpC,MAAM,cAAc,GAAG,IAAI;aACtB,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,gBAAgB,CAAC,GAAG,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC,CAAC;aAC5D,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,oFAAoF;QAEzI,6DAA6D;QAC7D,IAAI,aAAa,EAAE,CAAC;YAChB,MAAM,cAAc,GAAG,OAAO,CAAC,aAAa,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC;YAEnE,mEAAmE;YACnE,IAAI,cAAc,EAAE,CAAC;gBACjB,OAAO;oBACH,KAAK,EAAE,aAAa;oBACpB,IAAI,EAAE,UAAU;iBACnB,CAAC;YACN,CAAC;YAED,iFAAiF;YAEjF,iHAAiH;YACjH,MAAM,uBAAuB,GAAG,aAAa,CAAC,IAAI,CAAC,KAAK,CACpD,aAAa,CAAC,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC,MAAM,CAClC,CAAC;YAEd,KAAK,MAAM,CAAC,GAAG,EAAE,YAAY,CAAC,IAAI,QAAQ,CAAC,OAAO,EAAE,EAAE,CAAC;gBACnD;;;mBAGG;gBACH,IAAI,YAAY,CAAC,GAAG,KAAK,uBAAuB,CAAC,GAAG,CAAC,EAAE,CAAC;oBACpD,iBAAiB,GAAG,YAAY,CAAC,KAAK,CAAC;oBAEvC,oEAAoE;oBACpE,IAAI,GAAG,KAAK,CAAC,EAAE,CAAC;wBACZ,kBAAkB,GAAG,IAAI,CAAC;oBAC9B,CAAC;oBAED,YAAY,GAAG,IAAI,CAAC;oBACpB,MAAM;gBACV,CAAC;YACL,CAAC;QACL,CAAC;QAED,oGAAoG;QACpG,IAAI,YAAY,IAAI,CAAC,kBAAkB,EAAE,CAAC;YACtC,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;QAC5D,CAAC;QAED,OAAO;YACH,KAAK,EAAE,iBAAiB;YACxB,cAAc;YACd,IAAI,EAAE,SAAS;YACf,MAAM;SACT,CAAC;IACN,CAAC;CAAA;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,4BAA4B,CACxC,QAA+C,EAC/C,QAAkC,EAClC,WAA8B,EAC9B,aAA4B;IAE5B,MAAM,GAAG,GAAG,cAAc,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;IAEjD,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;QACnC,oBAAoB,CAAC,QAAQ,CAAC,CAAC;QAE/B,iDAAiD;QACjD,sBAAsB,CAAC,GAAG,CACtB,GAAG,EACH,cAAc,CAAC;YACX,oBAAoB,EAAE;gBAClB,QAAQ,EAAE,aAAa;aAC1B;YACD,GAAG,EACC,CAAC,kBAA6C,EAAE,EAAE,CAClD,KAAgB,EAAE,0CAAX,EAAE,GAAG,EAAE;gBACV;;;;;;mBAMG;gBACH,MAAM,iBAAiB,GAAG,QAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CACnD,eAAe,CAAC,CAAC,EAAE,QAAQ,EAAE,WAAW,EAAE,aAAa,CAAC,CAC3D,CAAC;gBAEF,MAAM,WAAW,GAAG,GAAG,CAAC,oBAAoB,CAAC,QAAQ,CAAC,CAAC,CAAC;gBACxD,MAAM,EAAE,MAAM,EAAE,GAAG,kBAAkB,CAAC;gBAEtC,qFAAqF;gBACrF,MAAM,WAAW,GAAG,GAAG,GAAG,kBAAkB,CAAC,MAAM,EAAE,CAAC;gBACtD,MAAM,aAAa,GAAG,MAAM,mBAAmB,CAC3C,WAAW,EACX,QAAQ,CAAC,SAAS,EAClB,QAAQ,CAAC,IAAI,EACb,iBAAiB,EACjB,QAAQ,EACR,GAAG,EACH,WAAW,CACd,CAAC;gBAEF,IAAI,aAAa,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;oBACpC,OAAO,EAAE,SAAS,EAAE,aAAa,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,EAAE,aAAa,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;gBAC1F,CAAC;gBAED,IAAI,gBAAgB,GAAG,IAAI,CAAC;gBAE5B,IAAI,CAAC;oBACD,gBAAgB,GAAG,MAAM,6BAA6B,CAAC;wBACnD,KAAK,EAAE,QAAQ,CAAC,KAAK;wBACrB,MAAM;wBACN,KAAK,EAAE,aAAa,CAAC,KAAK;wBAC1B,gBAAgB,EAAE,qBAAqB,CAAC,QAAQ,CAAC;wBACjD,WAAW;wBACX,MAAM,EAAE,gBAAgB,CACpB,4BAA4B,CAAC,aAAa,CAAC,MAAM,CAAC,EAClD,QAAQ,CAAC,SAAS,CACrB;wBACD,WAAW,EAAE,QAAQ,CAAC,GAAG;wBACzB,QAAQ;qBACX,CAAC,CAAC;gBACP,CAAC;gBAAC,OAAO,CAAC,EAAE,CAAC;oBACT,oGAAoG;oBACpG,CAAC,CAAC,UAAU,GAAG,GAAG,CAAC;oBACnB,CAAC,CAAC,cAAc,GAAG,kBAAkB,CAAC,MAAM,EAAE,CAAC;oBAC/C,MAAM,CAAC,CAAC;gBACZ,CAAC;gBAED,MAAM,QAAQ,GAAG,gBAAgB,CAAC,SAAS,CAAC;gBAC5C,IAAI,aAAa,GAAG,IAAI,CAAC;gBAEzB,qDAAqD;gBACrD,uGAAuG;gBACvG,2CAA2C;gBAC3C,IAAI,iBAAiB,CAAC,QAAQ,CAAC,EAAE,CAAC;oBAC9B,wGAAwG;oBACxG,WAAW,CAAC,mBAAmB,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;oBAE9C,wFAAwF;oBACxF,IAAI,cAAc,CAAC,gBAAgB,CAAC,EAAE,CAAC;wBACnC,MAAM,MAAM,GAAG,gBAAgB,CAAC,OAAO,CAAC;wBAExC,8BAA8B;wBAC9B,WAAW,CAAC,SAAS,CAAC,MAAM,EAAE,QAAQ,CAAC,GAAG,EAAE,cAAc,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC;wBAEjF,IAAI,CAAC;4BACD,MAAM,QAAQ,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;wBACvC,CAAC;wBAAC,WAAM,CAAC;4BACL,iFAAiF;4BACjF,+FAA+F;4BAC/F,OAAO;gCACH,SAAS,EAAE,QAAQ;gCACnB,KAAK,EAAE,IAAI;6BACd,CAAC;wBACN,CAAC;gCAAS,CAAC;4BACP,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;wBAChC,CAAC;wBAED,IAAI,CAAC;4BACD,aAAa,GAAG,MAAM,eAAe,CAAM,MAAM,EAAE,MAAM,CAAC,CAAC;wBAC/D,CAAC;wBAAC,OAAO,CAAC,EAAE,CAAC;4BACT,yGAAyG;4BACzG,CAAC,CAAC,UAAU,GAAG,GAAG,CAAC;4BACnB,CAAC,CAAC,cAAc,GAAG,kBAAkB,CAAC,MAAM,EAAE,CAAC;4BAC/C,MAAM,CAAC,CAAC;wBACZ,CAAC;oBACL,CAAC;yBAAM,CAAC;wBACJ,aAAa,GAAG,gBAAgB,CAAC,KAAK,CAAC;oBAC3C,CAAC;gBACL,CAAC;gBAED,iEAAiE;gBAEjE,iGAAiG;gBACjG,aAAa;oBACT,QAAQ,IAAI,QAAQ,CAAC,CAAC,CAAC,aAAa,CAAC,aAAa,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC;gBAEzF,YAAY,CAAC,GAAG,CAAC,WAAW,EAAE;oBAC1B,IAAI,EAAE,aAAa,CAAC,cAAc;oBAClC,QAAQ;oBACR,MAAM,EAAE,aAAa;iBACxB,CAAC,CAAC;gBAEH,OAAO;oBACH,SAAS,EAAE,QAAQ;oBACnB,KAAK,EAAE,aAAa;iBACvB,CAAC;YACN,CAAC,CAAA;YACL,GAAG,EAAE,MAAM,EAAE;SAChB,CAAC,CACL,CAAC;IACN,CAAC;IAED,MAAM,MAAM,GAAG,sBAAsB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAE/C,2DAA2D;IAC3D,8FAA8F;IAC9F,4GAA4G;IAC5G,mBAAmB;IACnB,MAAM,kBAAkB,GAAG,IAAI,yBAAyB,CAAC,aAAa,CAAC,CAAC;IACxE,MAAM,gBAAgB,GAAG,MAAM,CAAC,kBAAkB,CAAC,CAAC;IAEpD,6DAA6D;IAC7D,IAAI,CAAC,6BAA6B,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;QAC7C,6BAA6B,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,GAAG,EAAE,CAAC,CAAC;IACzD,CAAC;IACD,6BAA6B,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,kBAAkB,CAAC,MAAM,EAAE,EAAE,gBAAgB,CAAC,CAAC;IAE7F,OAAO,gBAAgB,CAAC;AAC5B,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,iCAAiC,CAC7C,QAAyB,EACzB,QAAkC,EAClC,WAA8B,EAC9B,aAA4B;IAE5B,MAAM,GAAG,GAAG,cAAc,CAAC,QAAQ,EAAE,kBAAkB,CAAC,CAAC;IAEzD,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;QACnC,sBAAsB,CAAC,GAAG,CACtB,GAAG,EACH,cAAc,CAAC;YACX,GAAG,EACC,CAAC,kBAA6C,EAAE,EAAE,CAClD,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE;gBACR,wDAAwD;gBACxD,MAAM,UAAU,GAAG,4BAA4B,CAC3C,QAAQ,EACR,QAAQ,EACR,WAAW,EACX,kBAAkB,CAAC,MAAM,CAC5B,CAAC;gBACF,MAAM,UAAU,GAAG,GAAG,CAAC,UAAU,CAAC,CAAC;gBACnC,OAAO,UAAU,CAAC,KAAK,CAAC;YAC5B,CAAC;YACL,GAAG,EAAE,MAAM,EAAE;SAChB,CAAC,CACL,CAAC;IACN,CAAC;IAED,MAAM,MAAM,GAAG,sBAAsB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAE/C,2DAA2D;IAC3D,8FAA8F;IAC9F,4GAA4G;IAC5G,mBAAmB;IACnB,MAAM,kBAAkB,GAAG,IAAI,yBAAyB,CAAC,aAAa,CAAC,CAAC;IACxE,MAAM,gBAAgB,GAAG,MAAM,CAAC,kBAAkB,CAAC,CAAC;IAEpD,6DAA6D;IAC7D,IAAI,CAAC,6BAA6B,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;QAC7C,6BAA6B,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,GAAG,EAAE,CAAC,CAAC;IACzD,CAAC;IACD,6BAA6B,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,kBAAkB,CAAC,MAAM,EAAE,EAAE,gBAAgB,CAAC,CAAC;IAE7F,OAAO,gBAAgB,CAAC;AAC5B,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,kBAAkB,CAC9B,QAA+C,EAC/C,QAAkC,EAClC,WAA8B,EAC9B,MAAqB;IAErB,MAAM,UAAU,GAAG,4BAA4B,CAAC,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC;IAEzF;;;;OAIG;IACH,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,oBAAoB,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC,CAAC;IAEvE,8CAA8C;IAC9C,MAAM,cAAc,GAAG,iBAAiB,CAAC,YAAY,CAAC,CAAC;IACvD,MAAM,OAAO,GAAG,WAAW,CACvB,CAAC,KAAK,GAAG,IAAI,EAAE,EAAE,CAAC,cAAc,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,EACxE,CAAC,cAAc,CAAC,CACnB,CAAC;IAEF,6DAA6D;IAC7D,WAAW,CAAC,OAAO,EAAE,QAAQ,CAAC,gBAAgB,CAAC,CAAC;IAEhD,OAAO,UAAU,CAAC;AACtB,CAAC"}
@@ -0,0 +1,9 @@
1
+ import { FilterQuery, QueryCombinator } from '../../types';
2
+ /**
3
+ * Combine filters with a given combinator
4
+ *
5
+ * @param combinator combinator to use
6
+ * @param queries any number of queries to combine
7
+ */
8
+ export declare function combineFilters(combinator: QueryCombinator, queries: FilterQuery[]): FilterQuery;
9
+ //# sourceMappingURL=filtering.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"filtering.d.ts","sourceRoot":"","sources":["../../../js/shared/interactivity/filtering.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAEvD;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,UAAU,EAAE,eAAe,EAAE,OAAO,EAAE,WAAW,EAAE,GAAG,WAAW,CAe/F"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Combine filters with a given combinator
3
+ *
4
+ * @param combinator combinator to use
5
+ * @param queries any number of queries to combine
6
+ */
7
+ export function combineFilters(combinator, queries) {
8
+ const validQueries = queries.filter(Boolean); // filter out undefined/null values
9
+ if (validQueries.length === 0) {
10
+ return null;
11
+ }
12
+ if (validQueries.length === 1) {
13
+ return validQueries[0];
14
+ }
15
+ return {
16
+ clauses: validQueries,
17
+ combinator,
18
+ };
19
+ }
20
+ //# sourceMappingURL=filtering.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"filtering.js","sourceRoot":"","sources":["../../../js/shared/interactivity/filtering.tsx"],"names":[],"mappings":"AAEA;;;;;GAKG;AACH,MAAM,UAAU,cAAc,CAAC,UAA2B,EAAE,OAAsB;IAC9E,MAAM,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,mCAAmC;IAEjF,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5B,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5B,OAAO,YAAY,CAAC,CAAC,CAAC,CAAC;IAC3B,CAAC;IAED,OAAO;QACH,OAAO,EAAE,YAAY;QACrB,UAAU;KACb,CAAC;AACN,CAAC"}
@@ -0,0 +1,10 @@
1
+ export { useVariable } from './use-variable';
2
+ export { useAnyVariable } from './use-any-variable';
3
+ export { default as useVariableValue, getVariableValue } from './use-variable-value';
4
+ export { resolveValue } from './resolve-value';
5
+ export { TriggerIndexValue } from './store';
6
+ export { useDataVariable } from './use-data-variable';
7
+ export { combineFilters } from './filtering';
8
+ export { default as useRefreshSelector } from './use-refresh-selector';
9
+ export { default as useVariableState } from './use-variable-state';
10
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../js/shared/interactivity/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACrF,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AACvE,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,sBAAsB,CAAC"}
@@ -0,0 +1,9 @@
1
+ export { useVariable } from './use-variable';
2
+ export { useAnyVariable } from './use-any-variable';
3
+ export { default as useVariableValue, getVariableValue } from './use-variable-value';
4
+ export { resolveValue } from './resolve-value';
5
+ export { useDataVariable } from './use-data-variable';
6
+ export { combineFilters } from './filtering';
7
+ export { default as useRefreshSelector } from './use-refresh-selector';
8
+ export { default as useVariableState } from './use-variable-state';
9
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../js/shared/interactivity/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACrF,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/C,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AACvE,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,sBAAsB,CAAC"}
@@ -0,0 +1,9 @@
1
+ export * from './plain-variable';
2
+ export * from './url-variable';
3
+ export * from './data-variable';
4
+ export * from './derived-variable';
5
+ export * from './nested';
6
+ export * from './triggers';
7
+ export * from './resolve-variable';
8
+ export * from './persistence';
9
+ //# sourceMappingURL=internal.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"internal.d.ts","sourceRoot":"","sources":["../../../js/shared/interactivity/internal.tsx"],"names":[],"mappings":"AAEA,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC;AACnC,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,oBAAoB,CAAC;AACnC,cAAc,eAAe,CAAC"}
@@ -0,0 +1,11 @@
1
+ // ESLint does not understand this pattern, see: https://medium.com/visual-development/how-to-fix-nasty-circular-dependency-issues-once-and-for-all-in-javascript-typescript-a04c987cf0de
2
+ /* eslint-disable import/no-cycle */
3
+ export * from './plain-variable';
4
+ export * from './url-variable';
5
+ export * from './data-variable';
6
+ export * from './derived-variable';
7
+ export * from './nested';
8
+ export * from './triggers';
9
+ export * from './resolve-variable';
10
+ export * from './persistence';
11
+ //# sourceMappingURL=internal.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"internal.js","sourceRoot":"","sources":["../../../js/shared/interactivity/internal.tsx"],"names":[],"mappings":"AAAA,yLAAyL;AACzL,oCAAoC;AACpC,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC;AACnC,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,oBAAoB,CAAC;AACnC,cAAc,eAAe,CAAC"}
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Resolve the value of the variable using it's optional nested
3
+ *
4
+ * @param obj an object to resolve from
5
+ * @param nested a list of keys to resolve
6
+ */
7
+ export declare function resolveNested<T extends Record<string, any>>(obj: T, nested: string[]): any;
8
+ /**
9
+ * Set a nested value inside a given object.
10
+ *
11
+ * @param obj an object to set the value of
12
+ * @param nested a list of keys pointing at the value to set
13
+ * @param newValue a new value to set
14
+ */
15
+ export declare function setNested<T extends Record<string, any>>(obj: T, nested: string[], newValue: unknown): T;
16
+ //# sourceMappingURL=nested.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nested.d.ts","sourceRoot":"","sources":["../../../js/shared/interactivity/nested.tsx"],"names":[],"mappings":"AAGA;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,GAAG,CAuB1F;AAED;;;;;;GAMG;AACH,wBAAgB,SAAS,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,OAAO,GAAG,CAAC,CAuBvG"}
@@ -0,0 +1,54 @@
1
+ import clone from 'lodash/clone';
2
+ import cloneDeep from 'lodash/cloneDeep';
3
+ /**
4
+ * Resolve the value of the variable using it's optional nested
5
+ *
6
+ * @param obj an object to resolve from
7
+ * @param nested a list of keys to resolve
8
+ */
9
+ export function resolveNested(obj, nested) {
10
+ // Nested not provided
11
+ if (!nested || nested.length === 0) {
12
+ return obj;
13
+ }
14
+ // Not an object
15
+ if (!obj || !(typeof obj === 'object' && !Array.isArray(obj))) {
16
+ return obj;
17
+ }
18
+ let returnVal = obj;
19
+ for (const key of nested) {
20
+ // If the key doesn't exist, return null as we're referring to a path which doesn't exist yet
21
+ if (!Object.keys(returnVal).includes(key)) {
22
+ return null;
23
+ }
24
+ returnVal = returnVal[key];
25
+ }
26
+ return returnVal;
27
+ }
28
+ /**
29
+ * Set a nested value inside a given object.
30
+ *
31
+ * @param obj an object to set the value of
32
+ * @param nested a list of keys pointing at the value to set
33
+ * @param newValue a new value to set
34
+ */
35
+ export function setNested(obj, nested, newValue) {
36
+ // Nested not provided
37
+ if (!nested || nested.length === 0) {
38
+ return cloneDeep(obj);
39
+ }
40
+ // Not an object
41
+ if (!obj || !(typeof obj === 'object' && !Array.isArray(obj))) {
42
+ return cloneDeep(obj);
43
+ }
44
+ // Need to clone to prevent reference issues
45
+ const cloned = clone(obj);
46
+ // If the key doesn't exist, create an empty object in case we're setting a nested value
47
+ const [key] = nested;
48
+ if (!Object.keys(obj).includes(key)) {
49
+ cloned[key] = {};
50
+ }
51
+ cloned[key] = nested.length === 1 ? newValue : setNested(cloned[key], nested.slice(1), newValue);
52
+ return cloned;
53
+ }
54
+ //# sourceMappingURL=nested.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nested.js","sourceRoot":"","sources":["../../../js/shared/interactivity/nested.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,cAAc,CAAC;AACjC,OAAO,SAAS,MAAM,kBAAkB,CAAC;AAEzC;;;;;GAKG;AACH,MAAM,UAAU,aAAa,CAAgC,GAAM,EAAE,MAAgB;IACjF,sBAAsB;IACtB,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACjC,OAAO,GAAG,CAAC;IACf,CAAC;IAED,gBAAgB;IAChB,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,OAAO,GAAG,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;QAC5D,OAAO,GAAG,CAAC;IACf,CAAC;IAED,IAAI,SAAS,GAAG,GAAG,CAAC;IAEpB,KAAK,MAAM,GAAG,IAAI,MAAM,EAAE,CAAC;QACvB,6FAA6F;QAC7F,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YACxC,OAAO,IAAI,CAAC;QAChB,CAAC;QAED,SAAS,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC;IAC/B,CAAC;IAED,OAAO,SAAS,CAAC;AACrB,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,SAAS,CAAgC,GAAM,EAAE,MAAgB,EAAE,QAAiB;IAChG,sBAAsB;IACtB,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACjC,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC;IAC1B,CAAC;IAED,gBAAgB;IAChB,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,OAAO,GAAG,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;QAC5D,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC;IAC1B,CAAC;IAED,4CAA4C;IAC5C,MAAM,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC;IAE1B,wFAAwF;IACxF,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC;IACrB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QACjC,MAAc,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;IAC9B,CAAC;IAEA,MAAc,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;IAE1G,OAAO,MAAM,CAAC;AAClB,CAAC"}