@darajs/components 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 (302) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +37 -0
  3. package/dist/common/accordion/accordion.d.ts +17 -0
  4. package/dist/common/accordion/accordion.d.ts.map +1 -0
  5. package/dist/common/accordion/accordion.js +36 -0
  6. package/dist/common/accordion/accordion.js.map +1 -0
  7. package/dist/common/anchor/anchor.d.ts +17 -0
  8. package/dist/common/anchor/anchor.d.ts.map +1 -0
  9. package/dist/common/anchor/anchor.js +40 -0
  10. package/dist/common/anchor/anchor.js.map +1 -0
  11. package/dist/common/bullet-list/bullet_list.d.ts +16 -0
  12. package/dist/common/bullet-list/bullet_list.d.ts.map +1 -0
  13. package/dist/common/bullet-list/bullet_list.js +17 -0
  14. package/dist/common/bullet-list/bullet_list.js.map +1 -0
  15. package/dist/common/button/button.d.ts +27 -0
  16. package/dist/common/button/button.d.ts.map +1 -0
  17. package/dist/common/button/button.js +47 -0
  18. package/dist/common/button/button.js.map +1 -0
  19. package/dist/common/button-bar/button-bar.d.ts +22 -0
  20. package/dist/common/button-bar/button-bar.d.ts.map +1 -0
  21. package/dist/common/button-bar/button-bar.js +27 -0
  22. package/dist/common/button-bar/button-bar.js.map +1 -0
  23. package/dist/common/card/card.d.ts +24 -0
  24. package/dist/common/card/card.d.ts.map +1 -0
  25. package/dist/common/card/card.js +58 -0
  26. package/dist/common/card/card.js.map +1 -0
  27. package/dist/common/carousel/carousel.d.ts +27 -0
  28. package/dist/common/carousel/carousel.d.ts.map +1 -0
  29. package/dist/common/carousel/carousel.js +42 -0
  30. package/dist/common/carousel/carousel.js.map +1 -0
  31. package/dist/common/checkbox-group/checkbox-group.d.ts +24 -0
  32. package/dist/common/checkbox-group/checkbox-group.d.ts.map +1 -0
  33. package/dist/common/checkbox-group/checkbox-group.js +37 -0
  34. package/dist/common/checkbox-group/checkbox-group.js.map +1 -0
  35. package/dist/common/code/code.d.ts +12 -0
  36. package/dist/common/code/code.d.ts.map +1 -0
  37. package/dist/common/code/code.js +11 -0
  38. package/dist/common/code/code.js.map +1 -0
  39. package/dist/common/component-select-list/component-select-list.d.ts +23 -0
  40. package/dist/common/component-select-list/component-select-list.d.ts.map +1 -0
  41. package/dist/common/component-select-list/component-select-list.js +29 -0
  42. package/dist/common/component-select-list/component-select-list.js.map +1 -0
  43. package/dist/common/constants.d.ts +19 -0
  44. package/dist/common/constants.d.ts.map +1 -0
  45. package/dist/common/constants.js +21 -0
  46. package/dist/common/constants.js.map +1 -0
  47. package/dist/common/context/form-context.d.ts +20 -0
  48. package/dist/common/context/form-context.d.ts.map +1 -0
  49. package/dist/common/context/form-context.js +28 -0
  50. package/dist/common/context/form-context.js.map +1 -0
  51. package/dist/common/context/index.d.ts +2 -0
  52. package/dist/common/context/index.d.ts.map +1 -0
  53. package/dist/common/context/index.js +2 -0
  54. package/dist/common/context/index.js.map +1 -0
  55. package/dist/common/datepicker/datepicker.d.ts +31 -0
  56. package/dist/common/datepicker/datepicker.d.ts.map +1 -0
  57. package/dist/common/datepicker/datepicker.js +70 -0
  58. package/dist/common/datepicker/datepicker.js.map +1 -0
  59. package/dist/common/dropzone/dropzone.d.ts +21 -0
  60. package/dist/common/dropzone/dropzone.d.ts.map +1 -0
  61. package/dist/common/dropzone/dropzone.js +101 -0
  62. package/dist/common/dropzone/dropzone.js.map +1 -0
  63. package/dist/common/form/form.d.ts +11 -0
  64. package/dist/common/form/form.d.ts.map +1 -0
  65. package/dist/common/form/form.js +46 -0
  66. package/dist/common/form/form.js.map +1 -0
  67. package/dist/common/form-page/form-page.d.ts +12 -0
  68. package/dist/common/form-page/form-page.d.ts.map +1 -0
  69. package/dist/common/form-page/form-page.js +18 -0
  70. package/dist/common/form-page/form-page.js.map +1 -0
  71. package/dist/common/grid/column.d.ts +20 -0
  72. package/dist/common/grid/column.d.ts.map +1 -0
  73. package/dist/common/grid/column.js +22 -0
  74. package/dist/common/grid/column.js.map +1 -0
  75. package/dist/common/grid/grid.d.ts +18 -0
  76. package/dist/common/grid/grid.d.ts.map +1 -0
  77. package/dist/common/grid/grid.js +31 -0
  78. package/dist/common/grid/grid.js.map +1 -0
  79. package/dist/common/grid/row.d.ts +22 -0
  80. package/dist/common/grid/row.d.ts.map +1 -0
  81. package/dist/common/grid/row.js +236 -0
  82. package/dist/common/grid/row.js.map +1 -0
  83. package/dist/common/heading/heading.d.ts +9 -0
  84. package/dist/common/heading/heading.d.ts.map +1 -0
  85. package/dist/common/heading/heading.js +14 -0
  86. package/dist/common/heading/heading.js.map +1 -0
  87. package/dist/common/html-raw/html-raw.d.ts +15 -0
  88. package/dist/common/html-raw/html-raw.d.ts.map +1 -0
  89. package/dist/common/html-raw/html-raw.js +22 -0
  90. package/dist/common/html-raw/html-raw.js.map +1 -0
  91. package/dist/common/icon/icon.d.ts +8 -0
  92. package/dist/common/icon/icon.d.ts.map +1 -0
  93. package/dist/common/icon/icon.js +11 -0
  94. package/dist/common/icon/icon.js.map +1 -0
  95. package/dist/common/if/if.d.ts +27 -0
  96. package/dist/common/if/if.d.ts.map +1 -0
  97. package/dist/common/if/if.js +53 -0
  98. package/dist/common/if/if.js.map +1 -0
  99. package/dist/common/image/image.d.ts +15 -0
  100. package/dist/common/image/image.d.ts.map +1 -0
  101. package/dist/common/image/image.js +19 -0
  102. package/dist/common/image/image.js.map +1 -0
  103. package/dist/common/index.d.ts +43 -0
  104. package/dist/common/index.d.ts.map +1 -0
  105. package/dist/common/index.js +41 -0
  106. package/dist/common/index.js.map +1 -0
  107. package/dist/common/input/input.d.ts +20 -0
  108. package/dist/common/input/input.d.ts.map +1 -0
  109. package/dist/common/input/input.js +57 -0
  110. package/dist/common/input/input.js.map +1 -0
  111. package/dist/common/label/label.d.ts +21 -0
  112. package/dist/common/label/label.d.ts.map +1 -0
  113. package/dist/common/label/label.js +30 -0
  114. package/dist/common/label/label.js.map +1 -0
  115. package/dist/common/markdown/markdown.d.ts +17 -0
  116. package/dist/common/markdown/markdown.d.ts.map +1 -0
  117. package/dist/common/markdown/markdown.js +19 -0
  118. package/dist/common/markdown/markdown.js.map +1 -0
  119. package/dist/common/modal/modal.d.ts +15 -0
  120. package/dist/common/modal/modal.d.ts.map +1 -0
  121. package/dist/common/modal/modal.js +19 -0
  122. package/dist/common/modal/modal.js.map +1 -0
  123. package/dist/common/overlay/overlay.d.ts +16 -0
  124. package/dist/common/overlay/overlay.d.ts.map +1 -0
  125. package/dist/common/overlay/overlay.js +31 -0
  126. package/dist/common/overlay/overlay.js.map +1 -0
  127. package/dist/common/paragraph/paragraph.d.ts +9 -0
  128. package/dist/common/paragraph/paragraph.d.ts.map +1 -0
  129. package/dist/common/paragraph/paragraph.js +10 -0
  130. package/dist/common/paragraph/paragraph.js.map +1 -0
  131. package/dist/common/progress-bar/progress-bar.d.ts +17 -0
  132. package/dist/common/progress-bar/progress-bar.d.ts.map +1 -0
  133. package/dist/common/progress-bar/progress-bar.js +23 -0
  134. package/dist/common/progress-bar/progress-bar.js.map +1 -0
  135. package/dist/common/radio-group/radio-group.d.ts +21 -0
  136. package/dist/common/radio-group/radio-group.d.ts.map +1 -0
  137. package/dist/common/radio-group/radio-group.js +30 -0
  138. package/dist/common/radio-group/radio-group.js.map +1 -0
  139. package/dist/common/select/select.d.ts +31 -0
  140. package/dist/common/select/select.d.ts.map +1 -0
  141. package/dist/common/select/select.js +129 -0
  142. package/dist/common/select/select.js.map +1 -0
  143. package/dist/common/slider/slider.d.ts +29 -0
  144. package/dist/common/slider/slider.d.ts.map +1 -0
  145. package/dist/common/slider/slider.js +38 -0
  146. package/dist/common/slider/slider.js.map +1 -0
  147. package/dist/common/spacer/spacer.d.ts +10 -0
  148. package/dist/common/spacer/spacer.d.ts.map +1 -0
  149. package/dist/common/spacer/spacer.js +30 -0
  150. package/dist/common/spacer/spacer.js.map +1 -0
  151. package/dist/common/stack/stack.d.ts +12 -0
  152. package/dist/common/stack/stack.d.ts.map +1 -0
  153. package/dist/common/stack/stack.js +42 -0
  154. package/dist/common/stack/stack.js.map +1 -0
  155. package/dist/common/switch/switch.d.ts +14 -0
  156. package/dist/common/switch/switch.d.ts.map +1 -0
  157. package/dist/common/switch/switch.js +31 -0
  158. package/dist/common/switch/switch.js.map +1 -0
  159. package/dist/common/tabbed-card/tabbed-card.d.ts +24 -0
  160. package/dist/common/tabbed-card/tabbed-card.d.ts.map +1 -0
  161. package/dist/common/tabbed-card/tabbed-card.js +62 -0
  162. package/dist/common/tabbed-card/tabbed-card.js.map +1 -0
  163. package/dist/common/table/cells/adaptive-precision-cell.d.ts +9 -0
  164. package/dist/common/table/cells/adaptive-precision-cell.d.ts.map +1 -0
  165. package/dist/common/table/cells/adaptive-precision-cell.js +30 -0
  166. package/dist/common/table/cells/adaptive-precision-cell.js.map +1 -0
  167. package/dist/common/table/cells/badge-formatter-cell.d.ts +19 -0
  168. package/dist/common/table/cells/badge-formatter-cell.d.ts.map +1 -0
  169. package/dist/common/table/cells/badge-formatter-cell.js +18 -0
  170. package/dist/common/table/cells/badge-formatter-cell.js.map +1 -0
  171. package/dist/common/table/cells/code-cell.d.ts +12 -0
  172. package/dist/common/table/cells/code-cell.d.ts.map +1 -0
  173. package/dist/common/table/cells/code-cell.js +19 -0
  174. package/dist/common/table/cells/code-cell.js.map +1 -0
  175. package/dist/common/table/cells/compare-cell.d.ts +13 -0
  176. package/dist/common/table/cells/compare-cell.d.ts.map +1 -0
  177. package/dist/common/table/cells/compare-cell.js +34 -0
  178. package/dist/common/table/cells/compare-cell.js.map +1 -0
  179. package/dist/common/table/cells/formatted-text-cell.d.ts +9 -0
  180. package/dist/common/table/cells/formatted-text-cell.d.ts.map +1 -0
  181. package/dist/common/table/cells/formatted-text-cell.js +15 -0
  182. package/dist/common/table/cells/formatted-text-cell.js.map +1 -0
  183. package/dist/common/table/cells/index.d.ts +11 -0
  184. package/dist/common/table/cells/index.d.ts.map +1 -0
  185. package/dist/common/table/cells/index.js +11 -0
  186. package/dist/common/table/cells/index.js.map +1 -0
  187. package/dist/common/table/cells/link-cell.d.ts +10 -0
  188. package/dist/common/table/cells/link-cell.d.ts.map +1 -0
  189. package/dist/common/table/cells/link-cell.js +15 -0
  190. package/dist/common/table/cells/link-cell.js.map +1 -0
  191. package/dist/common/table/cells/number-cell.d.ts +11 -0
  192. package/dist/common/table/cells/number-cell.d.ts.map +1 -0
  193. package/dist/common/table/cells/number-cell.js +16 -0
  194. package/dist/common/table/cells/number-cell.js.map +1 -0
  195. package/dist/common/table/cells/number-intl-cell.d.ts +11 -0
  196. package/dist/common/table/cells/number-intl-cell.d.ts.map +1 -0
  197. package/dist/common/table/cells/number-intl-cell.js +16 -0
  198. package/dist/common/table/cells/number-intl-cell.js.map +1 -0
  199. package/dist/common/table/cells/percentage-cell.d.ts +11 -0
  200. package/dist/common/table/cells/percentage-cell.d.ts.map +1 -0
  201. package/dist/common/table/cells/percentage-cell.js +16 -0
  202. package/dist/common/table/cells/percentage-cell.js.map +1 -0
  203. package/dist/common/table/cells/threshold-formatted-cell.d.ts +15 -0
  204. package/dist/common/table/cells/threshold-formatted-cell.d.ts.map +1 -0
  205. package/dist/common/table/cells/threshold-formatted-cell.js +20 -0
  206. package/dist/common/table/cells/threshold-formatted-cell.js.map +1 -0
  207. package/dist/common/table/table.d.ts +60 -0
  208. package/dist/common/table/table.d.ts.map +1 -0
  209. package/dist/common/table/table.js +456 -0
  210. package/dist/common/table/table.js.map +1 -0
  211. package/dist/common/text/text.d.ts +12 -0
  212. package/dist/common/text/text.d.ts.map +1 -0
  213. package/dist/common/text/text.js +23 -0
  214. package/dist/common/text/text.js.map +1 -0
  215. package/dist/common/textarea/textarea.d.ts +19 -0
  216. package/dist/common/textarea/textarea.d.ts.map +1 -0
  217. package/dist/common/textarea/textarea.js +42 -0
  218. package/dist/common/textarea/textarea.js.map +1 -0
  219. package/dist/common/tooltip/tooltip.d.ts +18 -0
  220. package/dist/common/tooltip/tooltip.d.ts.map +1 -0
  221. package/dist/common/tooltip/tooltip.js +18 -0
  222. package/dist/common/tooltip/tooltip.js.map +1 -0
  223. package/dist/common/types.d.ts +26 -0
  224. package/dist/common/types.d.ts.map +1 -0
  225. package/dist/common/types.js +9 -0
  226. package/dist/common/types.js.map +1 -0
  227. package/dist/dara_components-0.4.8-py3-none-any.whl +0 -0
  228. package/dist/graphs/causal-graph-viewer.d.ts +55 -0
  229. package/dist/graphs/causal-graph-viewer.d.ts.map +1 -0
  230. package/dist/graphs/causal-graph-viewer.js +44 -0
  231. package/dist/graphs/causal-graph-viewer.js.map +1 -0
  232. package/dist/graphs/graph-layout.d.ts +65 -0
  233. package/dist/graphs/graph-layout.d.ts.map +1 -0
  234. package/dist/graphs/graph-layout.js +152 -0
  235. package/dist/graphs/graph-layout.js.map +1 -0
  236. package/dist/graphs/index.d.ts +8 -0
  237. package/dist/graphs/index.d.ts.map +1 -0
  238. package/dist/graphs/index.js +6 -0
  239. package/dist/graphs/index.js.map +1 -0
  240. package/dist/graphs/node-hierarchy-builder.d.ts +24 -0
  241. package/dist/graphs/node-hierarchy-builder.d.ts.map +1 -0
  242. package/dist/graphs/node-hierarchy-builder.js +40 -0
  243. package/dist/graphs/node-hierarchy-builder.js.map +1 -0
  244. package/dist/graphs/utils.d.ts +10 -0
  245. package/dist/graphs/utils.d.ts.map +1 -0
  246. package/dist/graphs/utils.js +31 -0
  247. package/dist/graphs/utils.js.map +1 -0
  248. package/dist/graphs/visual-edge-encoder.d.ts +38 -0
  249. package/dist/graphs/visual-edge-encoder.d.ts.map +1 -0
  250. package/dist/graphs/visual-edge-encoder.js +94 -0
  251. package/dist/graphs/visual-edge-encoder.js.map +1 -0
  252. package/dist/index.d.ts +5 -0
  253. package/dist/index.d.ts.map +1 -0
  254. package/dist/index.js +5 -0
  255. package/dist/index.js.map +1 -0
  256. package/dist/plotting/bokeh/bokeh.d.ts +28 -0
  257. package/dist/plotting/bokeh/bokeh.d.ts.map +1 -0
  258. package/dist/plotting/bokeh/bokeh.js +125 -0
  259. package/dist/plotting/bokeh/bokeh.js.map +1 -0
  260. package/dist/plotting/index.d.ts +4 -0
  261. package/dist/plotting/index.d.ts.map +1 -0
  262. package/dist/plotting/index.js +5 -0
  263. package/dist/plotting/index.js.map +1 -0
  264. package/dist/plotting/matplotlib/matplotlib.d.ts +12 -0
  265. package/dist/plotting/matplotlib/matplotlib.d.ts.map +1 -0
  266. package/dist/plotting/matplotlib/matplotlib.js +14 -0
  267. package/dist/plotting/matplotlib/matplotlib.js.map +1 -0
  268. package/dist/plotting/plotly/plotly.d.ts +60 -0
  269. package/dist/plotting/plotly/plotly.d.ts.map +1 -0
  270. package/dist/plotting/plotly/plotly.js +235 -0
  271. package/dist/plotting/plotly/plotly.js.map +1 -0
  272. package/dist/smart/chat/chat.d.ts +16 -0
  273. package/dist/smart/chat/chat.d.ts.map +1 -0
  274. package/dist/smart/chat/chat.js +174 -0
  275. package/dist/smart/chat/chat.js.map +1 -0
  276. package/dist/smart/code-editor.d.ts +12 -0
  277. package/dist/smart/code-editor.d.ts.map +1 -0
  278. package/dist/smart/code-editor.js +15 -0
  279. package/dist/smart/code-editor.js.map +1 -0
  280. package/dist/smart/data-slicer-filter/data-slicer-filter.d.ts +47 -0
  281. package/dist/smart/data-slicer-filter/data-slicer-filter.d.ts.map +1 -0
  282. package/dist/smart/data-slicer-filter/data-slicer-filter.js +124 -0
  283. package/dist/smart/data-slicer-filter/data-slicer-filter.js.map +1 -0
  284. package/dist/smart/filter-status-button/filter-status-button.d.ts +14 -0
  285. package/dist/smart/filter-status-button/filter-status-button.d.ts.map +1 -0
  286. package/dist/smart/filter-status-button/filter-status-button.js +49 -0
  287. package/dist/smart/filter-status-button/filter-status-button.js.map +1 -0
  288. package/dist/smart/hierarchy-selector/hierarchy-selector.d.ts +23 -0
  289. package/dist/smart/hierarchy-selector/hierarchy-selector.d.ts.map +1 -0
  290. package/dist/smart/hierarchy-selector/hierarchy-selector.js +17 -0
  291. package/dist/smart/hierarchy-selector/hierarchy-selector.js.map +1 -0
  292. package/dist/smart/hierarchy-viewer/hierarchy-viewer.d.ts +16 -0
  293. package/dist/smart/hierarchy-viewer/hierarchy-viewer.d.ts.map +1 -0
  294. package/dist/smart/hierarchy-viewer/hierarchy-viewer.js +17 -0
  295. package/dist/smart/hierarchy-viewer/hierarchy-viewer.js.map +1 -0
  296. package/dist/smart/index.d.ts +7 -0
  297. package/dist/smart/index.d.ts.map +1 -0
  298. package/dist/smart/index.js +8 -0
  299. package/dist/smart/index.js.map +1 -0
  300. package/dist/umd/dara.components.umd.js +387222 -0
  301. package/dist/umd/style.css +745 -0
  302. package/package.json +87 -0
@@ -0,0 +1,42 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ /* eslint-disable react-hooks/exhaustive-deps */
3
+ import _debounce from 'lodash/debounce';
4
+ import { useEffect, useMemo, useState } from 'react';
5
+ import { injectCss, useAction, useComponentStyles, useVariable } from '@darajs/core';
6
+ import { Textarea as UITextarea } from '@darajs/ui-components';
7
+ import { useFormContext } from '../context';
8
+ const StyledTextarea = injectCss(UITextarea);
9
+ /**
10
+ * A component that creates a textarea. The text is stored as a variable and updated as the user types in the
11
+ * given area. If autofocus is true, cursor begins in the textarea.
12
+ *
13
+ * @param {TextareaProps} props - the component props
14
+ */
15
+ function Textarea(props) {
16
+ const formCtx = useFormContext(props);
17
+ const [style, css] = useComponentStyles(props);
18
+ const [value, setValue] = useVariable(formCtx.resolveInitialValue());
19
+ const [internalValue, setInternalValue] = useState(value);
20
+ const onInputAction = useAction(props.onchange);
21
+ const debouncedAction = useMemo(() => _debounce(onInputAction, 300), [onInputAction]);
22
+ const debouncedSetValue = useMemo(() => _debounce(setValue, 300), [setValue]);
23
+ const debouncedUpdateForm = useMemo(() => _debounce(formCtx.updateForm, 300), [formCtx.updateForm]);
24
+ function handleChange(val) {
25
+ // immediately update internal state
26
+ setInternalValue(val);
27
+ // debounce the update to the variable and the form to prevent multiple updates being fired at once
28
+ debouncedSetValue(val);
29
+ debouncedAction(val);
30
+ debouncedUpdateForm(val);
31
+ }
32
+ useEffect(() => {
33
+ // cancel in-progress debounced updates to make sure the variable value takes precedence
34
+ debouncedSetValue.cancel();
35
+ debouncedUpdateForm.cancel();
36
+ // Sync the internal value with the variable value when the variable value changes
37
+ setInternalValue(value);
38
+ }, [value]);
39
+ return (_jsx(StyledTextarea, { "$rawCss": css, autoFocus: props.autofocus, onChange: handleChange, resize: props.resize, style: style, value: internalValue }));
40
+ }
41
+ export default Textarea;
42
+ //# sourceMappingURL=textarea.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"textarea.js","sourceRoot":"","sources":["../../../js/common/textarea/textarea.tsx"],"names":[],"mappings":";AAAA,gDAAgD;AAChD,OAAO,SAAS,MAAM,iBAAiB,CAAC;AACxC,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAErD,OAAO,EAAY,SAAS,EAAE,SAAS,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC/F,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAE/D,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAa5C,MAAM,cAAc,GAAG,SAAS,CAAC,UAAU,CAAC,CAAC;AAE7C;;;;;GAKG;AACH,SAAS,QAAQ,CAAC,KAAoB;IAClC,MAAM,OAAO,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;IACtC,MAAM,CAAC,KAAK,EAAE,GAAG,CAAC,GAAG,kBAAkB,CAAC,KAAK,CAAC,CAAC;IAC/C,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,WAAW,CAAC,OAAO,CAAC,mBAAmB,EAAE,CAAC,CAAC;IACrE,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC1D,MAAM,aAAa,GAAG,SAAS,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IAEhD,MAAM,eAAe,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,aAAa,EAAE,GAAG,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC;IACtF,MAAM,iBAAiB,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,GAAG,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC9E,MAAM,mBAAmB,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,UAAU,EAAE,GAAG,CAAC,EAAE,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC;IAEpG,SAAS,YAAY,CAAC,GAAW;QAC7B,oCAAoC;QACpC,gBAAgB,CAAC,GAAG,CAAC,CAAC;QAEtB,mGAAmG;QACnG,iBAAiB,CAAC,GAAG,CAAC,CAAC;QACvB,eAAe,CAAC,GAAG,CAAC,CAAC;QACrB,mBAAmB,CAAC,GAAG,CAAC,CAAC;IAC7B,CAAC;IAED,SAAS,CAAC,GAAG,EAAE;QACX,wFAAwF;QACxF,iBAAiB,CAAC,MAAM,EAAE,CAAC;QAC3B,mBAAmB,CAAC,MAAM,EAAE,CAAC;QAE7B,kFAAkF;QAClF,gBAAgB,CAAC,KAAK,CAAC,CAAC;IAC5B,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;IAEZ,OAAO,CACH,KAAC,cAAc,eACF,GAAG,EACZ,SAAS,EAAE,KAAK,CAAC,SAAS,EAC1B,QAAQ,EAAE,YAAY,EACtB,MAAM,EAAE,KAAK,CAAC,MAAM,EACpB,KAAK,EAAE,KAAK,EACZ,KAAK,EAAE,aAAa,GACtB,CACL,CAAC;AACN,CAAC;AAED,eAAe,QAAQ,CAAC"}
@@ -0,0 +1,18 @@
1
+ import { ComponentInstance, StyledComponentProps, Variable } from '@darajs/core';
2
+ interface TooltipProps extends StyledComponentProps {
3
+ /** Content to render in the tooltip, can be any react renderable content */
4
+ content: string | Variable<any> | ComponentInstance;
5
+ /** Parameter to determine where to place the tooltip with respect to the children */
6
+ placement?: 'top' | 'bottom' | 'auto' | 'left' | 'right';
7
+ /** Parameter that controls the style of the tooltip */
8
+ styling: 'default' | 'error';
9
+ }
10
+ /**
11
+ * A component that wraps child components in the tooltip component. Content is displayed in the tooltip, with
12
+ * the styling specified and positioned relative to the child at the given placement.
13
+ *
14
+ * @param {TooltipProps} props - the component props
15
+ */
16
+ declare function Tooltip(props: TooltipProps): JSX.Element;
17
+ export default Tooltip;
18
+ //# sourceMappingURL=tooltip.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tooltip.d.ts","sourceRoot":"","sources":["../../../js/common/tooltip/tooltip.tsx"],"names":[],"mappings":"AAAA,OAAO,EACH,iBAAiB,EAEjB,oBAAoB,EACpB,QAAQ,EAIX,MAAM,cAAc,CAAC;AAKtB,UAAU,YAAa,SAAQ,oBAAoB;IAC/C,4EAA4E;IAC5E,OAAO,EAAE,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAC,GAAG,iBAAiB,CAAC;IACpD,qFAAqF;IACrF,SAAS,CAAC,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;IACzD,uDAAuD;IACvD,OAAO,EAAE,SAAS,GAAG,OAAO,CAAC;CAChC;AAID;;;;;GAKG;AACH,iBAAS,OAAO,CAAC,KAAK,EAAE,YAAY,GAAG,GAAG,CAAC,OAAO,CAoBjD;AAED,eAAe,OAAO,CAAC"}
@@ -0,0 +1,18 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { DynamicComponent, injectCss, useComponentStyles, useVariable, } from '@darajs/core';
3
+ import { Tooltip as UITooltip } from '@darajs/ui-components';
4
+ import Stack from '../stack/stack';
5
+ const StyledTooltip = injectCss(UITooltip);
6
+ /**
7
+ * A component that wraps child components in the tooltip component. Content is displayed in the tooltip, with
8
+ * the styling specified and positioned relative to the child at the given placement.
9
+ *
10
+ * @param {TooltipProps} props - the component props
11
+ */
12
+ function Tooltip(props) {
13
+ const [styles, css] = useComponentStyles(props);
14
+ const [content] = useVariable(props.content);
15
+ return (_jsx(StyledTooltip, { "$rawCss": css, content: typeof content === 'string' ? content : (_jsx(DynamicComponent, { component: content }, `tooltip-${content.name}`)), placement: props.placement, style: styles, styling: props.styling, children: _jsx(Stack, Object.assign({}, props.children[0].props)) }));
16
+ }
17
+ export default Tooltip;
18
+ //# sourceMappingURL=tooltip.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tooltip.js","sourceRoot":"","sources":["../../../js/common/tooltip/tooltip.tsx"],"names":[],"mappings":";AAAA,OAAO,EAEH,gBAAgB,EAGhB,SAAS,EACT,kBAAkB,EAClB,WAAW,GACd,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAE7D,OAAO,KAAK,MAAM,gBAAgB,CAAC;AAWnC,MAAM,aAAa,GAAG,SAAS,CAAC,SAAS,CAAC,CAAC;AAE3C;;;;;GAKG;AACH,SAAS,OAAO,CAAC,KAAmB;IAChC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,kBAAkB,CAAC,KAAK,CAAC,CAAC;IAChD,MAAM,CAAC,OAAO,CAAC,GAAG,WAAW,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAE7C,OAAO,CACH,KAAC,aAAa,eACD,GAAG,EACZ,OAAO,EACH,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CACpC,KAAC,gBAAgB,IAAC,SAAS,EAAE,OAAO,IAAO,WAAY,OAA6B,CAAC,IAAI,EAAE,CAAI,CAClG,EAEL,SAAS,EAAE,KAAK,CAAC,SAAS,EAC1B,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,KAAK,CAAC,OAAO,YAGtB,KAAC,KAAK,oBAAK,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,EAAI,GAC1B,CACnB,CAAC;AACN,CAAC;AAED,eAAe,OAAO,CAAC"}
@@ -0,0 +1,26 @@
1
+ import { Action, ComponentInstance, StyledComponentProps, Variable } from '@darajs/core';
2
+ export interface ComponentItem {
3
+ component: ComponentInstance;
4
+ subtitle?: string;
5
+ title: string;
6
+ }
7
+ export declare enum BreakpointsTypes {
8
+ lg = "lg",
9
+ md = "md",
10
+ sm = "sm",
11
+ xl = "xl",
12
+ xs = "xs"
13
+ }
14
+ export type Breakpoints = Record<BreakpointsTypes, number>;
15
+ /**
16
+ * Interactive Form Component props
17
+ */
18
+ export interface FormComponentProps extends StyledComponentProps {
19
+ /** id representing key to updte in the form if component value changes. */
20
+ id?: string;
21
+ /** Action triggered when the component value has changed. */
22
+ onchange?: Action;
23
+ /** The value Variable to display and update */
24
+ value?: Variable<any>;
25
+ }
26
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../js/common/types.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAEzF,MAAM,WAAW,aAAa;IAC1B,SAAS,EAAE,iBAAiB,CAAC;IAC7B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;CACjB;AAED,oBAAY,gBAAgB;IACxB,EAAE,OAAO;IACT,EAAE,OAAO;IACT,EAAE,OAAO;IACT,EAAE,OAAO;IACT,EAAE,OAAO;CACZ;AAED,MAAM,MAAM,WAAW,GAAG,MAAM,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAAC;AAE3D;;GAEG;AACH,MAAM,WAAW,kBAAmB,SAAQ,oBAAoB;IAC5D,2EAA2E;IAC3E,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,6DAA6D;IAC7D,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,+CAA+C;IAC/C,KAAK,CAAC,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC;CACzB"}
@@ -0,0 +1,9 @@
1
+ export var BreakpointsTypes;
2
+ (function (BreakpointsTypes) {
3
+ BreakpointsTypes["lg"] = "lg";
4
+ BreakpointsTypes["md"] = "md";
5
+ BreakpointsTypes["sm"] = "sm";
6
+ BreakpointsTypes["xl"] = "xl";
7
+ BreakpointsTypes["xs"] = "xs";
8
+ })(BreakpointsTypes || (BreakpointsTypes = {}));
9
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../js/common/types.tsx"],"names":[],"mappings":"AAQA,MAAM,CAAN,IAAY,gBAMX;AAND,WAAY,gBAAgB;IACxB,6BAAS,CAAA;IACT,6BAAS,CAAA;IACT,6BAAS,CAAA;IACT,6BAAS,CAAA;IACT,6BAAS,CAAA;AACb,CAAC,EANW,gBAAgB,KAAhB,gBAAgB,QAM3B"}
@@ -0,0 +1,55 @@
1
+ import { Action, StyledComponentProps, Variable } from '@darajs/core';
2
+ import { CausalGraph, EditorMode, GraphLegendDefinition, ZoomThresholds } from '@darajs/ui-causal-graph-editor';
3
+ import { GraphLayoutDefinition } from './graph-layout';
4
+ export interface CausalGraphViewerProps extends StyledComponentProps {
5
+ /** Optional additional legends to show */
6
+ additional_legends?: GraphLegendDefinition[];
7
+ /** Whether to allow node/edge selection even when editable = false */
8
+ allow_selection_when_not_editable?: boolean;
9
+ /** All available inputs; used to check which nodes are latent */
10
+ available_inputs?: string[];
11
+ /** The graph data to render */
12
+ causal_graph: Variable<CausalGraph> | CausalGraph;
13
+ /** Default legends dict for each editor mode available */
14
+ default_legends?: Record<EditorMode, GraphLegendDefinition[]>;
15
+ /** Flag for disabling edge addition */
16
+ disable_edge_add?: boolean;
17
+ /** Flag for disabling latent node addition */
18
+ disable_latent_node_add?: boolean;
19
+ /** Flag for disabling node removal */
20
+ disable_node_removal?: boolean;
21
+ /** Allow editing */
22
+ editable?: boolean;
23
+ /** Graph viewer mode */
24
+ editor_mode?: EditorMode;
25
+ /** Graph layout definition object */
26
+ graph_layout: GraphLayoutDefinition;
27
+ /** Array of node names that cannot be removed */
28
+ non_removable_nodes?: Array<string>;
29
+ /** Action def for clicking on an edge in the graph */
30
+ on_click_edge?: Action;
31
+ /** Action def for clicking on a node in the graph */
32
+ on_click_node?: Action;
33
+ /** Action def for any updates to the graph */
34
+ on_update?: Action;
35
+ /** Whether focusing the graph is required before mousewheel zooming is enabled */
36
+ require_focus_to_zoom?: boolean;
37
+ /** Optional boolean defining whether a node and an edge can be selected simultaneously */
38
+ simultaneous_edge_node_selection?: boolean;
39
+ /** Optional parameter to force a tooltip to use a particular font size */
40
+ tooltip_size?: number;
41
+ /** Whether to show verbose descriptions in the editor frame */
42
+ verbose_descriptions?: boolean;
43
+ /** Optional user-defined zoom thresholds to use instead of defaults */
44
+ zoom_thresholds?: ZoomThresholds;
45
+ }
46
+ /**
47
+ * A simple wrapper around the UICausalGraphViewer that calls into the Causalnet Extension to get the causal graph
48
+ * and display it
49
+ *
50
+ * @param props the component props
51
+ * @returns
52
+ */
53
+ declare function CausalGraphViewer(props: CausalGraphViewerProps): JSX.Element;
54
+ export default CausalGraphViewer;
55
+ //# sourceMappingURL=causal-graph-viewer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"causal-graph-viewer.d.ts","sourceRoot":"","sources":["../../js/graphs/causal-graph-viewer.tsx"],"names":[],"mappings":"AAEA,OAAO,EACH,MAAM,EAEN,oBAAoB,EACpB,QAAQ,EAKX,MAAM,cAAc,CAAC;AAEtB,OAAO,EACH,WAAW,EACX,UAAU,EACV,qBAAqB,EAErB,cAAc,EACjB,MAAM,gCAAgC,CAAC;AAExC,OAAO,EAAE,qBAAqB,EAAyB,MAAM,gBAAgB,CAAC;AAG9E,MAAM,WAAW,sBAAuB,SAAQ,oBAAoB;IAChE,0CAA0C;IAC1C,kBAAkB,CAAC,EAAE,qBAAqB,EAAE,CAAC;IAC7C,sEAAsE;IACtE,iCAAiC,CAAC,EAAE,OAAO,CAAC;IAC5C,iEAAiE;IACjE,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC5B,+BAA+B;IAC/B,YAAY,EAAE,QAAQ,CAAC,WAAW,CAAC,GAAG,WAAW,CAAC;IAClD,0DAA0D;IAC1D,eAAe,CAAC,EAAE,MAAM,CAAC,UAAU,EAAE,qBAAqB,EAAE,CAAC,CAAC;IAC9D,uCAAuC;IACvC,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,8CAA8C;IAC9C,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAClC,sCAAsC;IACtC,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,oBAAoB;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,wBAAwB;IACxB,WAAW,CAAC,EAAE,UAAU,CAAC;IACzB,qCAAqC;IACrC,YAAY,EAAE,qBAAqB,CAAC;IACpC,iDAAiD;IACjD,mBAAmB,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IACpC,sDAAsD;IACtD,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,qDAAqD;IACrD,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,8CAA8C;IAC9C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,kFAAkF;IAClF,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,0FAA0F;IAC1F,gCAAgC,CAAC,EAAE,OAAO,CAAC;IAC3C,0EAA0E;IAC1E,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,+DAA+D;IAC/D,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,uEAAuE;IACvE,eAAe,CAAC,EAAE,cAAc,CAAC;CACpC;AAID;;;;;;GAMG;AACH,iBAAS,iBAAiB,CAAC,KAAK,EAAE,sBAAsB,GAAG,GAAG,CAAC,OAAO,CA4DrE;AAED,eAAe,iBAAiB,CAAC"}
@@ -0,0 +1,44 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { useMemo } from 'react';
3
+ import { Notifications, injectCss, useAction, useComponentStyles, useVariable, } from '@darajs/core';
4
+ import { useTheme } from '@darajs/styled-components';
5
+ import { CausalGraphViewer as UICausalGraphViewer, } from '@darajs/ui-causal-graph-editor';
6
+ import { parseLayoutDefinition } from './graph-layout';
7
+ import { transformLegendColor } from './utils';
8
+ const StyledGraphViewer = injectCss(UICausalGraphViewer);
9
+ /**
10
+ * A simple wrapper around the UICausalGraphViewer that calls into the Causalnet Extension to get the causal graph
11
+ * and display it
12
+ *
13
+ * @param props the component props
14
+ * @returns
15
+ */
16
+ function CausalGraphViewer(props) {
17
+ const { pushNotification } = Notifications.useNotifications();
18
+ const [style, css] = useComponentStyles(props);
19
+ const theme = useTheme();
20
+ const [graphData, setCausalGraphVariable] = useVariable(props.causal_graph);
21
+ const onClickNode = useAction(props.on_click_node);
22
+ const onClickEdge = useAction(props.on_click_edge);
23
+ const onUpdate = useAction(props.on_update);
24
+ const graphLayout = useMemo(() => parseLayoutDefinition(props.graph_layout), [props.graph_layout]);
25
+ const formattedDefaultLegends = useMemo(() => {
26
+ return Object.fromEntries(Object.entries(props.default_legends).map(([editorMode, defaultLegends]) => {
27
+ return [editorMode, defaultLegends.map((legend) => transformLegendColor(theme, legend))];
28
+ }));
29
+ }, [props.default_legends, theme]);
30
+ const formattedAdditionalLegends = useMemo(() => {
31
+ var _a;
32
+ return (_a = props.additional_legends) === null || _a === void 0 ? void 0 : _a.map((legend) => transformLegendColor(theme, legend));
33
+ }, [props.additional_legends, theme]);
34
+ const onGraphUpdate = (value) => {
35
+ setCausalGraphVariable(value);
36
+ onUpdate(value);
37
+ };
38
+ if (!props.causal_graph) {
39
+ return null;
40
+ }
41
+ return (_jsx(StyledGraphViewer, { "$rawCss": css, additionalLegends: formattedAdditionalLegends, allowSelectionWhenNotEditable: props.allow_selection_when_not_editable, availableInputs: props.available_inputs, defaultLegends: formattedDefaultLegends, disableEdgeAdd: props.disable_edge_add, disableLatentNodeAdd: props.disable_latent_node_add, disableNodeRemoval: props.disable_node_removal, editable: props.editable, editorMode: props.editor_mode, graphData: graphData, graphLayout: graphLayout, nonRemovableNodes: props.non_removable_nodes, onClickEdge: onClickEdge, onClickNode: onClickNode, onNotify: pushNotification, onUpdate: onGraphUpdate, requireFocusToZoom: props.require_focus_to_zoom, simultaneousEdgeNodeSelection: props.simultaneous_edge_node_selection, style: style, tooltipSize: props.tooltip_size, verboseDescriptions: props.verbose_descriptions, zoomThresholds: props.zoom_thresholds }));
42
+ }
43
+ export default CausalGraphViewer;
44
+ //# sourceMappingURL=causal-graph-viewer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"causal-graph-viewer.js","sourceRoot":"","sources":["../../js/graphs/causal-graph-viewer.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,65 @@
1
+ import { GraphLayout, GroupingLayoutBuilder, MarketingLayout, PlanarLayout, TieredGraphLayoutBuilder } from '@darajs/ui-causal-graph-editor';
2
+ type GraphLayoutType = 'marketing' | 'planar' | 'spring' | 'circular' | 'fcose' | 'force_atlas' | 'custom';
3
+ interface DefinitionWithTiers extends TieredGraphLayoutBuilder {
4
+ tier_separation?: number;
5
+ }
6
+ interface BaseGraphLayoutDefinition {
7
+ layout_type: GraphLayoutType;
8
+ node_font_size?: number;
9
+ node_size?: number;
10
+ }
11
+ interface CircularLayoutDefinition extends BaseGraphLayoutDefinition {
12
+ layout_type: 'circular';
13
+ }
14
+ interface CustomLayoutDefinition extends BaseGraphLayoutDefinition {
15
+ layout_type: 'custom';
16
+ }
17
+ interface FcoseLayoutDefinition extends BaseGraphLayoutDefinition, DefinitionWithTiers, GroupingLayoutBuilder {
18
+ edge_elasticity?: number;
19
+ edge_length?: number;
20
+ energy?: number;
21
+ gravity?: number;
22
+ gravity_range?: number;
23
+ high_quality?: boolean;
24
+ iterations?: number;
25
+ layout_type: 'fcose';
26
+ node_repulsion?: number;
27
+ node_separation?: number;
28
+ }
29
+ interface ForceAtlasLayoutDefinition extends BaseGraphLayoutDefinition {
30
+ barnes_hut_optimize?: boolean;
31
+ edge_weight_influence?: number;
32
+ gravity?: number;
33
+ iterations?: number;
34
+ layout_type: 'force_atlas';
35
+ lin_log_mode?: boolean;
36
+ outbound_attraction_distribution?: boolean;
37
+ scaling_ratio?: number;
38
+ strong_gravity_mode?: boolean;
39
+ }
40
+ interface MarketingLayoutDefinition extends BaseGraphLayoutDefinition, DefinitionWithTiers {
41
+ layout_type: 'marketing';
42
+ target_location?: MarketingLayout['targetLocation'];
43
+ }
44
+ interface PlanarLayoutDefinition extends BaseGraphLayoutDefinition, TieredGraphLayoutBuilder {
45
+ layering_algorithm?: PlanarLayout['layeringAlgorithm'];
46
+ layout_type: 'planar';
47
+ orientation?: PlanarLayout['orientation'];
48
+ }
49
+ interface SpringLayoutDefinition extends BaseGraphLayoutDefinition, DefinitionWithTiers, GroupingLayoutBuilder {
50
+ collision_force?: number;
51
+ gravity?: number;
52
+ layout_type: 'spring';
53
+ link_force?: number;
54
+ warmup_ticks: number;
55
+ group_repel_strength?: number;
56
+ }
57
+ export type GraphLayoutDefinition = CircularLayoutDefinition | CustomLayoutDefinition | FcoseLayoutDefinition | ForceAtlasLayoutDefinition | MarketingLayoutDefinition | PlanarLayoutDefinition | SpringLayoutDefinition;
58
+ /**
59
+ * Parse a backend graph layout definition into a graph layout understood by the UI component
60
+ *
61
+ * @param definition backend layout definition
62
+ */
63
+ export declare function parseLayoutDefinition(definition: GraphLayoutDefinition): GraphLayout;
64
+ export {};
65
+ //# sourceMappingURL=graph-layout.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"graph-layout.d.ts","sourceRoot":"","sources":["../../js/graphs/graph-layout.tsx"],"names":[],"mappings":"AAAA,OAAO,EAKH,WAAW,EAEX,qBAAqB,EACrB,eAAe,EACf,YAAY,EAEZ,wBAAwB,EAC3B,MAAM,gCAAgC,CAAC;AAGxC,KAAK,eAAe,GAAG,WAAW,GAAG,QAAQ,GAAG,QAAQ,GAAG,UAAU,GAAG,OAAO,GAAG,aAAa,GAAG,QAAQ,CAAC;AAE3G,UAAU,mBAAoB,SAAQ,wBAAwB;IAC1D,eAAe,CAAC,EAAE,MAAM,CAAC;CAC5B;AAKD,UAAU,yBAAyB;IAC/B,WAAW,EAAE,eAAe,CAAC;IAC7B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,UAAU,wBAAyB,SAAQ,yBAAyB;IAChE,WAAW,EAAE,UAAU,CAAC;CAC3B;AAED,UAAU,sBAAuB,SAAQ,yBAAyB;IAC9D,WAAW,EAAE,QAAQ,CAAC;CACzB;AAED,UAAU,qBAAsB,SAAQ,yBAAyB,EAAE,mBAAmB,EAAE,qBAAqB;IACzG,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,OAAO,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,UAAU,0BAA2B,SAAQ,yBAAyB;IAClE,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,aAAa,CAAC;IAC3B,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,gCAAgC,CAAC,EAAE,OAAO,CAAC;IAC3C,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,mBAAmB,CAAC,EAAE,OAAO,CAAC;CACjC;AAED,UAAU,yBAA0B,SAAQ,yBAAyB,EAAE,mBAAmB;IACtF,WAAW,EAAE,WAAW,CAAC;IACzB,eAAe,CAAC,EAAE,eAAe,CAAC,gBAAgB,CAAC,CAAC;CACvD;AAED,UAAU,sBAAuB,SAAQ,yBAAyB,EAAE,wBAAwB;IACxF,kBAAkB,CAAC,EAAE,YAAY,CAAC,mBAAmB,CAAC,CAAC;IACvD,WAAW,EAAE,QAAQ,CAAC;IACtB,WAAW,CAAC,EAAE,YAAY,CAAC,aAAa,CAAC,CAAC;CAC7C;AAED,UAAU,sBAAuB,SAAQ,yBAAyB,EAAE,mBAAmB,EAAE,qBAAqB;IAC1G,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,QAAQ,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,oBAAoB,CAAC,EAAE,MAAM,CAAC;CACjC;AAED,MAAM,MAAM,qBAAqB,GAC3B,wBAAwB,GACxB,sBAAsB,GACtB,qBAAqB,GACrB,0BAA0B,GAC1B,yBAAyB,GACzB,sBAAsB,GACtB,sBAAsB,CAAC;AAU7B;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,UAAU,EAAE,qBAAqB,GAAG,WAAW,CA0LpF"}
@@ -0,0 +1,152 @@
1
+ import { CircularLayout, CustomLayout, FcoseLayout, ForceAtlasLayout, MarketingLayout, PlanarLayout, SpringLayout, } from '@darajs/ui-causal-graph-editor';
2
+ function isDefinitionWithTiers(obj) {
3
+ return obj && typeof obj === 'object' && 'tiers' in obj;
4
+ }
5
+ function isDefinitionWithGroup(obj) {
6
+ return obj && typeof obj === 'object' && 'group' in obj;
7
+ }
8
+ /**
9
+ * Parse a backend graph layout definition into a graph layout understood by the UI component
10
+ *
11
+ * @param definition backend layout definition
12
+ */
13
+ export function parseLayoutDefinition(definition) {
14
+ let builder;
15
+ switch (definition.layout_type) {
16
+ case 'circular': {
17
+ builder = CircularLayout.Builder;
18
+ break;
19
+ }
20
+ case 'custom': {
21
+ builder = CustomLayout.Builder;
22
+ break;
23
+ }
24
+ case 'fcose': {
25
+ builder = FcoseLayout.Builder;
26
+ if (definition.edge_elasticity) {
27
+ builder.edgeElasticity(definition.edge_elasticity);
28
+ }
29
+ if (definition.edge_length) {
30
+ builder.edgeLength(definition.edge_length);
31
+ }
32
+ if (definition.gravity) {
33
+ builder.gravity(definition.gravity);
34
+ }
35
+ if (definition.gravity_range) {
36
+ builder.gravityRange(definition.gravity_range);
37
+ }
38
+ if (definition.energy) {
39
+ builder.energy(definition.energy);
40
+ }
41
+ if (definition.high_quality) {
42
+ builder.highQuality(definition.high_quality);
43
+ }
44
+ if (definition.iterations) {
45
+ builder.iterations(definition.iterations);
46
+ }
47
+ if (definition.node_repulsion) {
48
+ builder.nodeRepulsion(definition.node_repulsion);
49
+ }
50
+ if (definition.node_separation) {
51
+ builder.nodeSeparation(definition.node_separation);
52
+ }
53
+ break;
54
+ }
55
+ case 'force_atlas': {
56
+ builder = ForceAtlasLayout.Builder;
57
+ if (definition.barnes_hut_optimize) {
58
+ builder.barnesHutOptimize(definition.barnes_hut_optimize);
59
+ }
60
+ if (definition.edge_weight_influence) {
61
+ builder.edgeWeightInfluence(definition.edge_weight_influence);
62
+ }
63
+ if (definition.gravity) {
64
+ builder.gravity(definition.gravity);
65
+ }
66
+ if (definition.iterations) {
67
+ builder.iterations(definition.iterations);
68
+ }
69
+ if (definition.lin_log_mode) {
70
+ builder.linLogMode(definition.lin_log_mode);
71
+ }
72
+ if (definition.outbound_attraction_distribution) {
73
+ builder.outboundAttractionDistribution(definition.outbound_attraction_distribution);
74
+ }
75
+ if (definition.scaling_ratio) {
76
+ builder.scalingRatio(definition.scaling_ratio);
77
+ }
78
+ if (definition.strong_gravity_mode) {
79
+ builder.strongGravityMode(definition.strong_gravity_mode);
80
+ }
81
+ break;
82
+ }
83
+ case 'marketing': {
84
+ builder = MarketingLayout.Builder;
85
+ if (definition.target_location) {
86
+ builder.targetLocation(definition.target_location);
87
+ }
88
+ break;
89
+ }
90
+ case 'planar': {
91
+ builder = PlanarLayout.Builder;
92
+ if (definition.orientation) {
93
+ builder.orientation(definition.orientation);
94
+ }
95
+ if (definition.tiers) {
96
+ builder.tiers(definition.tiers);
97
+ }
98
+ if (definition.layering_algorithm) {
99
+ builder.layeringAlgorithm(definition.layering_algorithm);
100
+ }
101
+ break;
102
+ }
103
+ case 'spring': {
104
+ builder = SpringLayout.Builder;
105
+ if (definition.collision_force) {
106
+ builder.collisionForce(definition.collision_force);
107
+ }
108
+ if (definition.gravity) {
109
+ builder.gravity(definition.gravity);
110
+ }
111
+ if (definition.link_force) {
112
+ builder.linkForce(definition.link_force);
113
+ }
114
+ if (definition.warmup_ticks) {
115
+ builder.warmupTicks(definition.warmup_ticks);
116
+ }
117
+ if (definition.group_repel_strength) {
118
+ builder.groupRepelStrength(definition.group_repel_strength);
119
+ }
120
+ break;
121
+ }
122
+ default: {
123
+ throw new Error(`Unrecognized layout type: ${String(definition.layout_type)}`);
124
+ }
125
+ }
126
+ if (isDefinitionWithTiers(definition)) {
127
+ const builderWithTiers = builder;
128
+ if (definition.tiers) {
129
+ builderWithTiers.tiers = definition.tiers;
130
+ }
131
+ if (definition.orientation) {
132
+ builderWithTiers.orientation = definition.orientation;
133
+ }
134
+ if (definition.tier_separation) {
135
+ builderWithTiers.tierSeparation(definition.tier_separation);
136
+ }
137
+ }
138
+ if (isDefinitionWithGroup(definition)) {
139
+ const builderWithGroup = builder;
140
+ if (definition.group) {
141
+ builderWithGroup.group = definition.group;
142
+ }
143
+ }
144
+ if (definition.node_size) {
145
+ builder.nodeSize(definition.node_size);
146
+ }
147
+ if (definition.node_font_size) {
148
+ builder.nodeFontSize(definition.node_font_size);
149
+ }
150
+ return builder.build();
151
+ }
152
+ //# sourceMappingURL=graph-layout.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"graph-layout.js","sourceRoot":"","sources":["../../js/graphs/graph-layout.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import type { GraphLayoutDefinition } from './graph-layout';
2
+ export { default as CausalGraphViewer } from './causal-graph-viewer';
3
+ export { default as NodeHierarchyBuilder } from './node-hierarchy-builder';
4
+ export { default as VisualEdgeEncoder } from './visual-edge-encoder';
5
+ export { parseLayoutDefinition } from './graph-layout';
6
+ export { transformLegendColor } from './utils';
7
+ export type { GraphLayoutDefinition };
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../js/graphs/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AAE5D,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AACrE,OAAO,EAAE,OAAO,IAAI,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAC3E,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AACrE,OAAO,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AACvD,OAAO,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC;AAG/C,YAAY,EAAE,qBAAqB,EAAE,CAAC"}
@@ -0,0 +1,6 @@
1
+ export { default as CausalGraphViewer } from './causal-graph-viewer';
2
+ export { default as NodeHierarchyBuilder } from './node-hierarchy-builder';
3
+ export { default as VisualEdgeEncoder } from './visual-edge-encoder';
4
+ export { parseLayoutDefinition } from './graph-layout';
5
+ export { transformLegendColor } from './utils';
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../js/graphs/index.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AACrE,OAAO,EAAE,OAAO,IAAI,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAC3E,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AACrE,OAAO,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AACvD,OAAO,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC"}
@@ -0,0 +1,24 @@
1
+ import { Action, StyledComponentProps, Variable } from '@darajs/core';
2
+ import { Node } from '@darajs/ui-causal-graph-editor';
3
+ type NodeType = Node | string;
4
+ interface NodeHierarchyBuilderProps extends StyledComponentProps {
5
+ /** Whether the component is in editable mode */
6
+ editable: boolean;
7
+ /** Optional font size of node text in pixels */
8
+ node_font_size?: number;
9
+ /** Optional diameter of nodes displayed in pixels */
10
+ node_size?: number;
11
+ /** List of nodes to display */
12
+ nodes: Variable<Array<NodeType[]>> | Array<NodeType[]>;
13
+ /** Optional action to call on all hierarchy changes */
14
+ on_update?: Action;
15
+ /** Optional flag whether to wrap the text inside nodes instead of using an ellipsis */
16
+ wrap_node_text?: boolean;
17
+ }
18
+ /**
19
+ * The NodeHierarchyBuilder component visually represents node hierarchy in layers, allowing the user
20
+ * to re-arrange the nodes inside layers, move them between layers and add/delete new layers.
21
+ */
22
+ declare function NodeHierarchyBuilder(props: NodeHierarchyBuilderProps): JSX.Element;
23
+ export default NodeHierarchyBuilder;
24
+ //# sourceMappingURL=node-hierarchy-builder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"node-hierarchy-builder.d.ts","sourceRoot":"","sources":["../../js/graphs/node-hierarchy-builder.tsx"],"names":[],"mappings":"AAEA,OAAO,EACH,MAAM,EACN,oBAAoB,EACpB,QAAQ,EAKX,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,IAAI,EAAkD,MAAM,gCAAgC,CAAC;AAEtG,KAAK,QAAQ,GAAG,IAAI,GAAG,MAAM,CAAC;AAE9B,UAAU,yBAA0B,SAAQ,oBAAoB;IAC5D,gDAAgD;IAChD,QAAQ,EAAE,OAAO,CAAC;IAClB,gDAAgD;IAChD,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,qDAAqD;IACrD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,+BAA+B;IAC/B,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;IACvD,uDAAuD;IACvD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,uFAAuF;IACvF,cAAc,CAAC,EAAE,OAAO,CAAC;CAC5B;AAID;;;GAGG;AACH,iBAAS,oBAAoB,CAAC,KAAK,EAAE,yBAAyB,GAAG,GAAG,CAAC,OAAO,CAiD3E;AAED,eAAe,oBAAoB,CAAC"}
@@ -0,0 +1,40 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { useRef } from 'react';
3
+ import { injectCss, useAction, useComponentStyles, useVariable, } from '@darajs/core';
4
+ import { NodeHierarchyBuilder as UINodeHierarchyBuilder } from '@darajs/ui-causal-graph-editor';
5
+ const StyledHierarchyBuilder = injectCss(UINodeHierarchyBuilder);
6
+ /**
7
+ * The NodeHierarchyBuilder component visually represents node hierarchy in layers, allowing the user
8
+ * to re-arrange the nodes inside layers, move them between layers and add/delete new layers.
9
+ */
10
+ function NodeHierarchyBuilder(props) {
11
+ const [style, css] = useComponentStyles(props);
12
+ const mounted = useRef(false);
13
+ const [nodes, setNodes] = useVariable(props.nodes);
14
+ const updateHandler = useAction(props.on_update);
15
+ if (mounted.current === false) {
16
+ /**
17
+ * On mount check the variable holds a list of lists.
18
+ * We don't want to coerce the type as that could change the type of the input variable which could be unexpected.
19
+ *
20
+ * The Python side does type checking if a raw value is used but it's not possible
21
+ * to check the value inside the variable - the type checking needs to happen here
22
+ *
23
+ * This is using a ref rather than useEffect as we need it to run before passing it to the UI component
24
+ * as this would cause a 'cryptic' error
25
+ */
26
+ if (!(Array.isArray(nodes) &&
27
+ nodes.every((layer) => Array.isArray(layer) &&
28
+ layer.every((node) => typeof node === 'string' || typeof node === 'object')))) {
29
+ throw new Error('NodeHierarchyBuilder expects "nodes" to be a list of lists of strings or Node objects');
30
+ }
31
+ mounted.current = true;
32
+ }
33
+ function onUpdate(newNodes) {
34
+ setNodes(newNodes);
35
+ updateHandler(newNodes);
36
+ }
37
+ return (_jsx(StyledHierarchyBuilder, { "$rawCss": css, nodeFontSize: props.node_font_size, nodeSize: props.node_size, nodes: nodes, onUpdate: onUpdate, style: style, viewOnly: !props.editable, wrapNodeText: props.wrap_node_text }));
38
+ }
39
+ export default NodeHierarchyBuilder;
40
+ //# sourceMappingURL=node-hierarchy-builder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"node-hierarchy-builder.js","sourceRoot":"","sources":["../../js/graphs/node-hierarchy-builder.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAE/B,OAAO,EAIH,SAAS,EACT,SAAS,EACT,kBAAkB,EAClB,WAAW,GACd,MAAM,cAAc,CAAC;AACtB,OAAO,EAAQ,oBAAoB,IAAI,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AAmBtG,MAAM,sBAAsB,GAAG,SAAS,CAAC,sBAAsB,CAAC,CAAC;AAEjE;;;GAGG;AACH,SAAS,oBAAoB,CAAC,KAAgC;IAC1D,MAAM,CAAC,KAAK,EAAE,GAAG,CAAC,GAAG,kBAAkB,CAAC,KAAK,CAAC,CAAC;IAC/C,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAC9B,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACnD,MAAM,aAAa,GAAG,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IAEjD,IAAI,OAAO,CAAC,OAAO,KAAK,KAAK,EAAE,CAAC;QAC5B;;;;;;;;;WASG;QACH,IACI,CAAC,CACG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;YACpB,KAAK,CAAC,KAAK,CACP,CAAC,KAAK,EAAE,EAAE,CACN,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;gBACpB,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,IAAI,KAAK,QAAQ,IAAI,OAAO,IAAI,KAAK,QAAQ,CAAC,CAClF,CACJ,EACH,CAAC;YACC,MAAM,IAAI,KAAK,CAAC,uFAAuF,CAAC,CAAC;QAC7G,CAAC;QACD,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;IAC3B,CAAC;IAED,SAAS,QAAQ,CAAC,QAAoB;QAClC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QACnB,aAAa,CAAC,QAAQ,CAAC,CAAC;IAC5B,CAAC;IAED,OAAO,CACH,KAAC,sBAAsB,eACV,GAAG,EACZ,YAAY,EAAE,KAAK,CAAC,cAAc,EAClC,QAAQ,EAAE,KAAK,CAAC,SAAS,EACzB,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,QAAQ,EAClB,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,CAAC,KAAK,CAAC,QAAQ,EACzB,YAAY,EAAE,KAAK,CAAC,cAAc,GACpC,CACL,CAAC;AACN,CAAC;AAED,eAAe,oBAAoB,CAAC"}
@@ -0,0 +1,10 @@
1
+ import { DefaultTheme } from '@darajs/styled-components';
2
+ import { GraphLegendDefinition } from '@darajs/ui-causal-graph-editor';
3
+ /**
4
+ * Tranform the color properties of a legend object to use the theme colors if necessary
5
+ *
6
+ * @param theme the currently active theme
7
+ * @param legend a legend object
8
+ */
9
+ export declare function transformLegendColor(theme: DefaultTheme, legend: GraphLegendDefinition): GraphLegendDefinition;
10
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../js/graphs/utils.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,qBAAqB,EAAE,MAAM,gCAAgC,CAAC;AAevE;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,qBAAqB,GAAG,qBAAqB,CAkB9G"}