@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.
- package/LICENSE +201 -0
- package/README.md +37 -0
- package/dist/common/accordion/accordion.d.ts +17 -0
- package/dist/common/accordion/accordion.d.ts.map +1 -0
- package/dist/common/accordion/accordion.js +36 -0
- package/dist/common/accordion/accordion.js.map +1 -0
- package/dist/common/anchor/anchor.d.ts +17 -0
- package/dist/common/anchor/anchor.d.ts.map +1 -0
- package/dist/common/anchor/anchor.js +40 -0
- package/dist/common/anchor/anchor.js.map +1 -0
- package/dist/common/bullet-list/bullet_list.d.ts +16 -0
- package/dist/common/bullet-list/bullet_list.d.ts.map +1 -0
- package/dist/common/bullet-list/bullet_list.js +17 -0
- package/dist/common/bullet-list/bullet_list.js.map +1 -0
- package/dist/common/button/button.d.ts +27 -0
- package/dist/common/button/button.d.ts.map +1 -0
- package/dist/common/button/button.js +47 -0
- package/dist/common/button/button.js.map +1 -0
- package/dist/common/button-bar/button-bar.d.ts +22 -0
- package/dist/common/button-bar/button-bar.d.ts.map +1 -0
- package/dist/common/button-bar/button-bar.js +27 -0
- package/dist/common/button-bar/button-bar.js.map +1 -0
- package/dist/common/card/card.d.ts +24 -0
- package/dist/common/card/card.d.ts.map +1 -0
- package/dist/common/card/card.js +58 -0
- package/dist/common/card/card.js.map +1 -0
- package/dist/common/carousel/carousel.d.ts +27 -0
- package/dist/common/carousel/carousel.d.ts.map +1 -0
- package/dist/common/carousel/carousel.js +42 -0
- package/dist/common/carousel/carousel.js.map +1 -0
- package/dist/common/checkbox-group/checkbox-group.d.ts +24 -0
- package/dist/common/checkbox-group/checkbox-group.d.ts.map +1 -0
- package/dist/common/checkbox-group/checkbox-group.js +37 -0
- package/dist/common/checkbox-group/checkbox-group.js.map +1 -0
- package/dist/common/code/code.d.ts +12 -0
- package/dist/common/code/code.d.ts.map +1 -0
- package/dist/common/code/code.js +11 -0
- package/dist/common/code/code.js.map +1 -0
- package/dist/common/component-select-list/component-select-list.d.ts +23 -0
- package/dist/common/component-select-list/component-select-list.d.ts.map +1 -0
- package/dist/common/component-select-list/component-select-list.js +29 -0
- package/dist/common/component-select-list/component-select-list.js.map +1 -0
- package/dist/common/constants.d.ts +19 -0
- package/dist/common/constants.d.ts.map +1 -0
- package/dist/common/constants.js +21 -0
- package/dist/common/constants.js.map +1 -0
- package/dist/common/context/form-context.d.ts +20 -0
- package/dist/common/context/form-context.d.ts.map +1 -0
- package/dist/common/context/form-context.js +28 -0
- package/dist/common/context/form-context.js.map +1 -0
- package/dist/common/context/index.d.ts +2 -0
- package/dist/common/context/index.d.ts.map +1 -0
- package/dist/common/context/index.js +2 -0
- package/dist/common/context/index.js.map +1 -0
- package/dist/common/datepicker/datepicker.d.ts +31 -0
- package/dist/common/datepicker/datepicker.d.ts.map +1 -0
- package/dist/common/datepicker/datepicker.js +70 -0
- package/dist/common/datepicker/datepicker.js.map +1 -0
- package/dist/common/dropzone/dropzone.d.ts +21 -0
- package/dist/common/dropzone/dropzone.d.ts.map +1 -0
- package/dist/common/dropzone/dropzone.js +101 -0
- package/dist/common/dropzone/dropzone.js.map +1 -0
- package/dist/common/form/form.d.ts +11 -0
- package/dist/common/form/form.d.ts.map +1 -0
- package/dist/common/form/form.js +46 -0
- package/dist/common/form/form.js.map +1 -0
- package/dist/common/form-page/form-page.d.ts +12 -0
- package/dist/common/form-page/form-page.d.ts.map +1 -0
- package/dist/common/form-page/form-page.js +18 -0
- package/dist/common/form-page/form-page.js.map +1 -0
- package/dist/common/grid/column.d.ts +20 -0
- package/dist/common/grid/column.d.ts.map +1 -0
- package/dist/common/grid/column.js +22 -0
- package/dist/common/grid/column.js.map +1 -0
- package/dist/common/grid/grid.d.ts +18 -0
- package/dist/common/grid/grid.d.ts.map +1 -0
- package/dist/common/grid/grid.js +31 -0
- package/dist/common/grid/grid.js.map +1 -0
- package/dist/common/grid/row.d.ts +22 -0
- package/dist/common/grid/row.d.ts.map +1 -0
- package/dist/common/grid/row.js +236 -0
- package/dist/common/grid/row.js.map +1 -0
- package/dist/common/heading/heading.d.ts +9 -0
- package/dist/common/heading/heading.d.ts.map +1 -0
- package/dist/common/heading/heading.js +14 -0
- package/dist/common/heading/heading.js.map +1 -0
- package/dist/common/html-raw/html-raw.d.ts +15 -0
- package/dist/common/html-raw/html-raw.d.ts.map +1 -0
- package/dist/common/html-raw/html-raw.js +22 -0
- package/dist/common/html-raw/html-raw.js.map +1 -0
- package/dist/common/icon/icon.d.ts +8 -0
- package/dist/common/icon/icon.d.ts.map +1 -0
- package/dist/common/icon/icon.js +11 -0
- package/dist/common/icon/icon.js.map +1 -0
- package/dist/common/if/if.d.ts +27 -0
- package/dist/common/if/if.d.ts.map +1 -0
- package/dist/common/if/if.js +53 -0
- package/dist/common/if/if.js.map +1 -0
- package/dist/common/image/image.d.ts +15 -0
- package/dist/common/image/image.d.ts.map +1 -0
- package/dist/common/image/image.js +19 -0
- package/dist/common/image/image.js.map +1 -0
- package/dist/common/index.d.ts +43 -0
- package/dist/common/index.d.ts.map +1 -0
- package/dist/common/index.js +41 -0
- package/dist/common/index.js.map +1 -0
- package/dist/common/input/input.d.ts +20 -0
- package/dist/common/input/input.d.ts.map +1 -0
- package/dist/common/input/input.js +57 -0
- package/dist/common/input/input.js.map +1 -0
- package/dist/common/label/label.d.ts +21 -0
- package/dist/common/label/label.d.ts.map +1 -0
- package/dist/common/label/label.js +30 -0
- package/dist/common/label/label.js.map +1 -0
- package/dist/common/markdown/markdown.d.ts +17 -0
- package/dist/common/markdown/markdown.d.ts.map +1 -0
- package/dist/common/markdown/markdown.js +19 -0
- package/dist/common/markdown/markdown.js.map +1 -0
- package/dist/common/modal/modal.d.ts +15 -0
- package/dist/common/modal/modal.d.ts.map +1 -0
- package/dist/common/modal/modal.js +19 -0
- package/dist/common/modal/modal.js.map +1 -0
- package/dist/common/overlay/overlay.d.ts +16 -0
- package/dist/common/overlay/overlay.d.ts.map +1 -0
- package/dist/common/overlay/overlay.js +31 -0
- package/dist/common/overlay/overlay.js.map +1 -0
- package/dist/common/paragraph/paragraph.d.ts +9 -0
- package/dist/common/paragraph/paragraph.d.ts.map +1 -0
- package/dist/common/paragraph/paragraph.js +10 -0
- package/dist/common/paragraph/paragraph.js.map +1 -0
- package/dist/common/progress-bar/progress-bar.d.ts +17 -0
- package/dist/common/progress-bar/progress-bar.d.ts.map +1 -0
- package/dist/common/progress-bar/progress-bar.js +23 -0
- package/dist/common/progress-bar/progress-bar.js.map +1 -0
- package/dist/common/radio-group/radio-group.d.ts +21 -0
- package/dist/common/radio-group/radio-group.d.ts.map +1 -0
- package/dist/common/radio-group/radio-group.js +30 -0
- package/dist/common/radio-group/radio-group.js.map +1 -0
- package/dist/common/select/select.d.ts +31 -0
- package/dist/common/select/select.d.ts.map +1 -0
- package/dist/common/select/select.js +129 -0
- package/dist/common/select/select.js.map +1 -0
- package/dist/common/slider/slider.d.ts +29 -0
- package/dist/common/slider/slider.d.ts.map +1 -0
- package/dist/common/slider/slider.js +38 -0
- package/dist/common/slider/slider.js.map +1 -0
- package/dist/common/spacer/spacer.d.ts +10 -0
- package/dist/common/spacer/spacer.d.ts.map +1 -0
- package/dist/common/spacer/spacer.js +30 -0
- package/dist/common/spacer/spacer.js.map +1 -0
- package/dist/common/stack/stack.d.ts +12 -0
- package/dist/common/stack/stack.d.ts.map +1 -0
- package/dist/common/stack/stack.js +42 -0
- package/dist/common/stack/stack.js.map +1 -0
- package/dist/common/switch/switch.d.ts +14 -0
- package/dist/common/switch/switch.d.ts.map +1 -0
- package/dist/common/switch/switch.js +31 -0
- package/dist/common/switch/switch.js.map +1 -0
- package/dist/common/tabbed-card/tabbed-card.d.ts +24 -0
- package/dist/common/tabbed-card/tabbed-card.d.ts.map +1 -0
- package/dist/common/tabbed-card/tabbed-card.js +62 -0
- package/dist/common/tabbed-card/tabbed-card.js.map +1 -0
- package/dist/common/table/cells/adaptive-precision-cell.d.ts +9 -0
- package/dist/common/table/cells/adaptive-precision-cell.d.ts.map +1 -0
- package/dist/common/table/cells/adaptive-precision-cell.js +30 -0
- package/dist/common/table/cells/adaptive-precision-cell.js.map +1 -0
- package/dist/common/table/cells/badge-formatter-cell.d.ts +19 -0
- package/dist/common/table/cells/badge-formatter-cell.d.ts.map +1 -0
- package/dist/common/table/cells/badge-formatter-cell.js +18 -0
- package/dist/common/table/cells/badge-formatter-cell.js.map +1 -0
- package/dist/common/table/cells/code-cell.d.ts +12 -0
- package/dist/common/table/cells/code-cell.d.ts.map +1 -0
- package/dist/common/table/cells/code-cell.js +19 -0
- package/dist/common/table/cells/code-cell.js.map +1 -0
- package/dist/common/table/cells/compare-cell.d.ts +13 -0
- package/dist/common/table/cells/compare-cell.d.ts.map +1 -0
- package/dist/common/table/cells/compare-cell.js +34 -0
- package/dist/common/table/cells/compare-cell.js.map +1 -0
- package/dist/common/table/cells/formatted-text-cell.d.ts +9 -0
- package/dist/common/table/cells/formatted-text-cell.d.ts.map +1 -0
- package/dist/common/table/cells/formatted-text-cell.js +15 -0
- package/dist/common/table/cells/formatted-text-cell.js.map +1 -0
- package/dist/common/table/cells/index.d.ts +11 -0
- package/dist/common/table/cells/index.d.ts.map +1 -0
- package/dist/common/table/cells/index.js +11 -0
- package/dist/common/table/cells/index.js.map +1 -0
- package/dist/common/table/cells/link-cell.d.ts +10 -0
- package/dist/common/table/cells/link-cell.d.ts.map +1 -0
- package/dist/common/table/cells/link-cell.js +15 -0
- package/dist/common/table/cells/link-cell.js.map +1 -0
- package/dist/common/table/cells/number-cell.d.ts +11 -0
- package/dist/common/table/cells/number-cell.d.ts.map +1 -0
- package/dist/common/table/cells/number-cell.js +16 -0
- package/dist/common/table/cells/number-cell.js.map +1 -0
- package/dist/common/table/cells/number-intl-cell.d.ts +11 -0
- package/dist/common/table/cells/number-intl-cell.d.ts.map +1 -0
- package/dist/common/table/cells/number-intl-cell.js +16 -0
- package/dist/common/table/cells/number-intl-cell.js.map +1 -0
- package/dist/common/table/cells/percentage-cell.d.ts +11 -0
- package/dist/common/table/cells/percentage-cell.d.ts.map +1 -0
- package/dist/common/table/cells/percentage-cell.js +16 -0
- package/dist/common/table/cells/percentage-cell.js.map +1 -0
- package/dist/common/table/cells/threshold-formatted-cell.d.ts +15 -0
- package/dist/common/table/cells/threshold-formatted-cell.d.ts.map +1 -0
- package/dist/common/table/cells/threshold-formatted-cell.js +20 -0
- package/dist/common/table/cells/threshold-formatted-cell.js.map +1 -0
- package/dist/common/table/table.d.ts +60 -0
- package/dist/common/table/table.d.ts.map +1 -0
- package/dist/common/table/table.js +456 -0
- package/dist/common/table/table.js.map +1 -0
- package/dist/common/text/text.d.ts +12 -0
- package/dist/common/text/text.d.ts.map +1 -0
- package/dist/common/text/text.js +23 -0
- package/dist/common/text/text.js.map +1 -0
- package/dist/common/textarea/textarea.d.ts +19 -0
- package/dist/common/textarea/textarea.d.ts.map +1 -0
- package/dist/common/textarea/textarea.js +42 -0
- package/dist/common/textarea/textarea.js.map +1 -0
- package/dist/common/tooltip/tooltip.d.ts +18 -0
- package/dist/common/tooltip/tooltip.d.ts.map +1 -0
- package/dist/common/tooltip/tooltip.js +18 -0
- package/dist/common/tooltip/tooltip.js.map +1 -0
- package/dist/common/types.d.ts +26 -0
- package/dist/common/types.d.ts.map +1 -0
- package/dist/common/types.js +9 -0
- package/dist/common/types.js.map +1 -0
- package/dist/dara_components-0.4.8-py3-none-any.whl +0 -0
- package/dist/graphs/causal-graph-viewer.d.ts +55 -0
- package/dist/graphs/causal-graph-viewer.d.ts.map +1 -0
- package/dist/graphs/causal-graph-viewer.js +44 -0
- package/dist/graphs/causal-graph-viewer.js.map +1 -0
- package/dist/graphs/graph-layout.d.ts +65 -0
- package/dist/graphs/graph-layout.d.ts.map +1 -0
- package/dist/graphs/graph-layout.js +152 -0
- package/dist/graphs/graph-layout.js.map +1 -0
- package/dist/graphs/index.d.ts +8 -0
- package/dist/graphs/index.d.ts.map +1 -0
- package/dist/graphs/index.js +6 -0
- package/dist/graphs/index.js.map +1 -0
- package/dist/graphs/node-hierarchy-builder.d.ts +24 -0
- package/dist/graphs/node-hierarchy-builder.d.ts.map +1 -0
- package/dist/graphs/node-hierarchy-builder.js +40 -0
- package/dist/graphs/node-hierarchy-builder.js.map +1 -0
- package/dist/graphs/utils.d.ts +10 -0
- package/dist/graphs/utils.d.ts.map +1 -0
- package/dist/graphs/utils.js +31 -0
- package/dist/graphs/utils.js.map +1 -0
- package/dist/graphs/visual-edge-encoder.d.ts +38 -0
- package/dist/graphs/visual-edge-encoder.d.ts.map +1 -0
- package/dist/graphs/visual-edge-encoder.js +94 -0
- package/dist/graphs/visual-edge-encoder.js.map +1 -0
- package/dist/index.d.ts +5 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +5 -0
- package/dist/index.js.map +1 -0
- package/dist/plotting/bokeh/bokeh.d.ts +28 -0
- package/dist/plotting/bokeh/bokeh.d.ts.map +1 -0
- package/dist/plotting/bokeh/bokeh.js +125 -0
- package/dist/plotting/bokeh/bokeh.js.map +1 -0
- package/dist/plotting/index.d.ts +4 -0
- package/dist/plotting/index.d.ts.map +1 -0
- package/dist/plotting/index.js +5 -0
- package/dist/plotting/index.js.map +1 -0
- package/dist/plotting/matplotlib/matplotlib.d.ts +12 -0
- package/dist/plotting/matplotlib/matplotlib.d.ts.map +1 -0
- package/dist/plotting/matplotlib/matplotlib.js +14 -0
- package/dist/plotting/matplotlib/matplotlib.js.map +1 -0
- package/dist/plotting/plotly/plotly.d.ts +60 -0
- package/dist/plotting/plotly/plotly.d.ts.map +1 -0
- package/dist/plotting/plotly/plotly.js +235 -0
- package/dist/plotting/plotly/plotly.js.map +1 -0
- package/dist/smart/chat/chat.d.ts +16 -0
- package/dist/smart/chat/chat.d.ts.map +1 -0
- package/dist/smart/chat/chat.js +174 -0
- package/dist/smart/chat/chat.js.map +1 -0
- package/dist/smart/code-editor.d.ts +12 -0
- package/dist/smart/code-editor.d.ts.map +1 -0
- package/dist/smart/code-editor.js +15 -0
- package/dist/smart/code-editor.js.map +1 -0
- package/dist/smart/data-slicer-filter/data-slicer-filter.d.ts +47 -0
- package/dist/smart/data-slicer-filter/data-slicer-filter.d.ts.map +1 -0
- package/dist/smart/data-slicer-filter/data-slicer-filter.js +124 -0
- package/dist/smart/data-slicer-filter/data-slicer-filter.js.map +1 -0
- package/dist/smart/filter-status-button/filter-status-button.d.ts +14 -0
- package/dist/smart/filter-status-button/filter-status-button.d.ts.map +1 -0
- package/dist/smart/filter-status-button/filter-status-button.js +49 -0
- package/dist/smart/filter-status-button/filter-status-button.js.map +1 -0
- package/dist/smart/hierarchy-selector/hierarchy-selector.d.ts +23 -0
- package/dist/smart/hierarchy-selector/hierarchy-selector.d.ts.map +1 -0
- package/dist/smart/hierarchy-selector/hierarchy-selector.js +17 -0
- package/dist/smart/hierarchy-selector/hierarchy-selector.js.map +1 -0
- package/dist/smart/hierarchy-viewer/hierarchy-viewer.d.ts +16 -0
- package/dist/smart/hierarchy-viewer/hierarchy-viewer.d.ts.map +1 -0
- package/dist/smart/hierarchy-viewer/hierarchy-viewer.js +17 -0
- package/dist/smart/hierarchy-viewer/hierarchy-viewer.js.map +1 -0
- package/dist/smart/index.d.ts +7 -0
- package/dist/smart/index.d.ts.map +1 -0
- package/dist/smart/index.js +8 -0
- package/dist/smart/index.js.map +1 -0
- package/dist/umd/dara.components.umd.js +387222 -0
- package/dist/umd/style.css +745 -0
- 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"}
|
|
Binary file
|
|
@@ -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"}
|