@darajs/components 1.0.0-a.1
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 +5 -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 +34 -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 +25 -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 +24 -0
- package/dist/common/button/button.d.ts.map +1 -0
- package/dist/common/button/button.js +46 -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 +26 -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 +54 -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 +36 -0
- package/dist/common/checkbox-group/checkbox-group.js.map +1 -0
- package/dist/common/code/code.d.ts +15 -0
- package/dist/common/code/code.d.ts.map +1 -0
- package/dist/common/code/code.js +41 -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 +21 -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 +19 -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 +24 -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 +52 -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 +21 -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 +45 -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 +28 -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 +186 -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 +28 -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 +105 -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 +14 -0
- package/dist/common/stack/stack.d.ts.map +1 -0
- package/dist/common/stack/stack.js +49 -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 +30 -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 +61 -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 +16 -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 +56 -0
- package/dist/common/table/table.d.ts.map +1 -0
- package/dist/common/table/table.js +404 -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-1.0.0a1-py3-none-any.whl +0 -0
- package/dist/graphs/causal-graph-viewer.d.ts +50 -0
- package/dist/graphs/causal-graph-viewer.d.ts.map +1 -0
- package/dist/graphs/causal-graph-viewer.js +32 -0
- package/dist/graphs/causal-graph-viewer.js.map +1 -0
- package/dist/graphs/graph-layout.d.ts +60 -0
- package/dist/graphs/graph-layout.d.ts.map +1 -0
- package/dist/graphs/graph-layout.js +110 -0
- package/dist/graphs/graph-layout.js.map +1 -0
- package/dist/graphs/index.d.ts +4 -0
- package/dist/graphs/index.d.ts.map +1 -0
- package/dist/graphs/index.js +4 -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/visual-edge-encoder.d.ts +32 -0
- package/dist/graphs/visual-edge-encoder.d.ts.map +1 -0
- package/dist/graphs/visual-edge-encoder.js +84 -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 +233 -0
- package/dist/plotting/plotly/plotly.js.map +1 -0
- package/dist/smart/code-editor.d.ts +11 -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 +123 -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 +6 -0
- package/dist/smart/index.d.ts.map +1 -0
- package/dist/smart/index.js +7 -0
- package/dist/smart/index.js.map +1 -0
- package/dist/umd/dara.components.umd.js +386628 -0
- package/dist/umd/style.css +745 -0
- package/package.json +87 -0
|
@@ -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,CAC1B,OAAO,CACV,CAAC,CAAC,CAAC,CACA,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,50 @@
|
|
|
1
|
+
import { ComponentProps } from 'react';
|
|
2
|
+
import { Action, StyledComponentProps, Variable } from '@darajs/core';
|
|
3
|
+
import { CausalGraph, EditorMode, CausalGraphViewer as UICausalGraphViewer, ZoomThresholds } from '@darajs/ui-causal-graph-editor';
|
|
4
|
+
import { GraphLayoutDefinition } from './graph-layout';
|
|
5
|
+
export interface CausalGraphViewerProps extends StyledComponentProps {
|
|
6
|
+
/** Optional additional legends to show */
|
|
7
|
+
additional_legends?: ComponentProps<typeof UICausalGraphViewer>['additionalLegends'];
|
|
8
|
+
/** Whether to allow node/edge selection even when editable = false */
|
|
9
|
+
allow_selection_when_not_editable?: boolean;
|
|
10
|
+
/** All available inputs; used to check which nodes are latent */
|
|
11
|
+
available_inputs?: string[];
|
|
12
|
+
/** The graph data to render */
|
|
13
|
+
causal_graph: Variable<CausalGraph> | CausalGraph;
|
|
14
|
+
/** Flag for disabling edge addition */
|
|
15
|
+
disable_edge_add?: boolean;
|
|
16
|
+
/** Flag for disabling latent node addition */
|
|
17
|
+
disable_latent_node_add?: boolean;
|
|
18
|
+
/** Flag for disabling node removal */
|
|
19
|
+
disable_node_removal?: boolean;
|
|
20
|
+
/** Allow editing */
|
|
21
|
+
editable?: boolean;
|
|
22
|
+
/** Graph viewer mode */
|
|
23
|
+
editor_mode: EditorMode;
|
|
24
|
+
/** Graph layout definition object */
|
|
25
|
+
graph_layout: GraphLayoutDefinition;
|
|
26
|
+
/** Array of node names that cannot be removed */
|
|
27
|
+
non_removable_nodes?: Array<string>;
|
|
28
|
+
/** Action def for clicking on an edge in the graph */
|
|
29
|
+
on_click_edge?: Action;
|
|
30
|
+
/** Action def for clicking on a node in the graph */
|
|
31
|
+
on_click_node?: Action;
|
|
32
|
+
/** Action def for any updates to the graph */
|
|
33
|
+
on_update?: Action;
|
|
34
|
+
/** Optional parameter to force a tooltip to use a particular font size */
|
|
35
|
+
tooltip_size?: number;
|
|
36
|
+
/** Whether to show verbose descriptions in the editor frame */
|
|
37
|
+
verbose_descriptions?: boolean;
|
|
38
|
+
/** Optional user-defined zoom thresholds to use instead of defaults */
|
|
39
|
+
zoom_thresholds?: ZoomThresholds;
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* A simple wrapper around the UICausalGraphViewer that calls into the Causalnet Extension to get the causal graph
|
|
43
|
+
* and display it
|
|
44
|
+
*
|
|
45
|
+
* @param props the component props
|
|
46
|
+
* @returns
|
|
47
|
+
*/
|
|
48
|
+
declare function CausalGraphViewer(props: CausalGraphViewerProps): JSX.Element;
|
|
49
|
+
export default CausalGraphViewer;
|
|
50
|
+
//# 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":"AAAA,OAAO,EAAE,cAAc,EAAW,MAAM,OAAO,CAAC;AAEhD,OAAO,EACH,MAAM,EAEN,oBAAoB,EACpB,QAAQ,EAKX,MAAM,cAAc,CAAC;AACtB,OAAO,EACH,WAAW,EACX,UAAU,EACV,iBAAiB,IAAI,mBAAmB,EACxC,cAAc,EACjB,MAAM,gCAAgC,CAAC;AAExC,OAAO,EAAE,qBAAqB,EAAyB,MAAM,gBAAgB,CAAC;AAE9E,MAAM,WAAW,sBAAuB,SAAQ,oBAAoB;IAChE,0CAA0C;IAC1C,kBAAkB,CAAC,EAAE,cAAc,CAAC,OAAO,mBAAmB,CAAC,CAAC,mBAAmB,CAAC,CAAC;IACrF,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,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,EAAE,UAAU,CAAC;IACxB,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,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,CA4CrE;AAED,eAAe,iBAAiB,CAAC"}
|
|
@@ -0,0 +1,32 @@
|
|
|
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 { CausalGraphViewer as UICausalGraphViewer, } from '@darajs/ui-causal-graph-editor';
|
|
5
|
+
import { parseLayoutDefinition } from './graph-layout';
|
|
6
|
+
const StyledGraphViewer = injectCss(UICausalGraphViewer);
|
|
7
|
+
/**
|
|
8
|
+
* A simple wrapper around the UICausalGraphViewer that calls into the Causalnet Extension to get the causal graph
|
|
9
|
+
* and display it
|
|
10
|
+
*
|
|
11
|
+
* @param props the component props
|
|
12
|
+
* @returns
|
|
13
|
+
*/
|
|
14
|
+
function CausalGraphViewer(props) {
|
|
15
|
+
const { pushNotification } = Notifications.useNotifications();
|
|
16
|
+
const [style, css] = useComponentStyles(props);
|
|
17
|
+
const [graphData, setCausalGraphVariable] = useVariable(props.causal_graph);
|
|
18
|
+
const [onClickNode] = useAction(props.on_click_node);
|
|
19
|
+
const [onClickEdge] = useAction(props.on_click_edge);
|
|
20
|
+
const [onUpdate] = useAction(props.on_update);
|
|
21
|
+
const graphLayout = useMemo(() => parseLayoutDefinition(props.graph_layout), []);
|
|
22
|
+
const onGraphUpdate = (value) => {
|
|
23
|
+
setCausalGraphVariable(value);
|
|
24
|
+
onUpdate(value);
|
|
25
|
+
};
|
|
26
|
+
if (!props.causal_graph) {
|
|
27
|
+
return null;
|
|
28
|
+
}
|
|
29
|
+
return (_jsx(StyledGraphViewer, { "$rawCss": css, additionalLegends: props.additional_legends, allowSelectionWhenNotEditable: props.allow_selection_when_not_editable, availableInputs: props.available_inputs, 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, style: style, tooltipSize: props.tooltip_size, verboseDescriptions: props.verbose_descriptions, zoomThresholds: props.zoom_thresholds }));
|
|
30
|
+
}
|
|
31
|
+
export default CausalGraphViewer;
|
|
32
|
+
//# 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":";AAAA,OAAO,EAAkB,OAAO,EAAE,MAAM,OAAO,CAAC;AAEhD,OAAO,EAEH,aAAa,EAGb,SAAS,EACT,SAAS,EACT,kBAAkB,EAClB,WAAW,GACd,MAAM,cAAc,CAAC;AACtB,OAAO,EAGH,iBAAiB,IAAI,mBAAmB,GAE3C,MAAM,gCAAgC,CAAC;AAExC,OAAO,EAAyB,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AAuC9E,MAAM,iBAAiB,GAAG,SAAS,CAAC,mBAAmB,CAAC,CAAC;AAEzD;;;;;;GAMG;AACH,SAAS,iBAAiB,CAAC,KAA6B;IACpD,MAAM,EAAE,gBAAgB,EAAE,GAAG,aAAa,CAAC,gBAAgB,EAAE,CAAC;IAC9D,MAAM,CAAC,KAAK,EAAE,GAAG,CAAC,GAAG,kBAAkB,CAAC,KAAK,CAAC,CAAC;IAE/C,MAAM,CAAC,SAAS,EAAE,sBAAsB,CAAC,GAAG,WAAW,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;IAC5E,MAAM,CAAC,WAAW,CAAC,GAAG,SAAS,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;IACrD,MAAM,CAAC,WAAW,CAAC,GAAG,SAAS,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;IACrD,MAAM,CAAC,QAAQ,CAAC,GAAG,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IAE9C,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,qBAAqB,CAAC,KAAK,CAAC,YAAY,CAAC,EAAE,EAAE,CAAC,CAAC;IAEjF,MAAM,aAAa,GAAG,CAAC,KAAkB,EAAQ,EAAE;QAC/C,sBAAsB,CAAC,KAAK,CAAC,CAAC;QAC9B,QAAQ,CAAC,KAAK,CAAC,CAAC;IACpB,CAAC,CAAC;IAEF,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE;QACrB,OAAO,IAAI,CAAC;KACf;IAED,OAAO,CACH,KAAC,iBAAiB,eACL,GAAG,EACZ,iBAAiB,EAAE,KAAK,CAAC,kBAAkB,EAC3C,6BAA6B,EAAE,KAAK,CAAC,iCAAiC,EACtE,eAAe,EAAE,KAAK,CAAC,gBAAgB,EACvC,cAAc,EAAE,KAAK,CAAC,gBAAgB,EACtC,oBAAoB,EAAE,KAAK,CAAC,uBAAuB,EACnD,kBAAkB,EAAE,KAAK,CAAC,oBAAoB,EAC9C,QAAQ,EAAE,KAAK,CAAC,QAAQ,EACxB,UAAU,EAAE,KAAK,CAAC,WAAW,EAC7B,SAAS,EAAE,SAAS,EACpB,WAAW,EAAE,WAAW,EACxB,iBAAiB,EAAE,KAAK,CAAC,mBAAmB,EAC5C,WAAW,EAAE,WAAW,EACxB,WAAW,EAAE,WAAW,EACxB,QAAQ,EAAE,gBAAgB,EAC1B,QAAQ,EAAE,aAAa,EACvB,KAAK,EAAE,KAAK,EACZ,WAAW,EAAE,KAAK,CAAC,YAAY,EAC/B,mBAAmB,EAAE,KAAK,CAAC,oBAAoB,EAC/C,cAAc,EAAE,KAAK,CAAC,eAAe,GACvC,CACL,CAAC;AACN,CAAC;AAED,eAAe,iBAAiB,CAAC"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import { GraphLayout, MarketingLayout, PlanarLayout } from '@darajs/ui-causal-graph-editor';
|
|
2
|
+
type GraphLayoutType = 'marketing' | 'planar' | 'spring' | 'circular' | 'fcose' | 'force_atlas' | 'custom';
|
|
3
|
+
interface BaseGraphLayoutDefinition {
|
|
4
|
+
layout_type: GraphLayoutType;
|
|
5
|
+
node_font_size?: number;
|
|
6
|
+
node_size?: number;
|
|
7
|
+
}
|
|
8
|
+
interface CircularLayoutDefinition extends BaseGraphLayoutDefinition {
|
|
9
|
+
layout_type: 'circular';
|
|
10
|
+
}
|
|
11
|
+
interface CustomLayoutDefinition extends BaseGraphLayoutDefinition {
|
|
12
|
+
layout_type: 'custom';
|
|
13
|
+
}
|
|
14
|
+
interface FcoseLayoutDefinition extends BaseGraphLayoutDefinition {
|
|
15
|
+
edge_elasticity?: number;
|
|
16
|
+
edge_length?: number;
|
|
17
|
+
energy?: number;
|
|
18
|
+
gravity?: number;
|
|
19
|
+
gravity_range?: number;
|
|
20
|
+
high_quality?: boolean;
|
|
21
|
+
iterations?: number;
|
|
22
|
+
layout_type: 'fcose';
|
|
23
|
+
node_repulsion?: number;
|
|
24
|
+
node_separation?: number;
|
|
25
|
+
}
|
|
26
|
+
interface ForceAtlasLayoutDefinition extends BaseGraphLayoutDefinition {
|
|
27
|
+
barnes_hut_optimize?: boolean;
|
|
28
|
+
edge_weight_influence?: number;
|
|
29
|
+
gravity?: number;
|
|
30
|
+
iterations?: number;
|
|
31
|
+
layout_type: 'force_atlas';
|
|
32
|
+
lin_log_mode?: boolean;
|
|
33
|
+
outbound_attraction_distribution?: boolean;
|
|
34
|
+
scaling_ratio?: number;
|
|
35
|
+
strong_gravity_mode?: boolean;
|
|
36
|
+
}
|
|
37
|
+
interface MarketingLayoutDefinition extends BaseGraphLayoutDefinition {
|
|
38
|
+
layout_type: 'marketing';
|
|
39
|
+
target_location?: MarketingLayout['targetLocation'];
|
|
40
|
+
}
|
|
41
|
+
interface PlanarLayoutDefinition extends BaseGraphLayoutDefinition {
|
|
42
|
+
layout_type: 'planar';
|
|
43
|
+
orientation?: PlanarLayout['orientation'];
|
|
44
|
+
}
|
|
45
|
+
interface SpringLayoutDefinition extends BaseGraphLayoutDefinition {
|
|
46
|
+
collision_force?: number;
|
|
47
|
+
gravity?: number;
|
|
48
|
+
layout_type: 'spring';
|
|
49
|
+
link_force?: number;
|
|
50
|
+
warmup_ticks: number;
|
|
51
|
+
}
|
|
52
|
+
export type GraphLayoutDefinition = CircularLayoutDefinition | CustomLayoutDefinition | FcoseLayoutDefinition | ForceAtlasLayoutDefinition | MarketingLayoutDefinition | PlanarLayoutDefinition | SpringLayoutDefinition;
|
|
53
|
+
/**
|
|
54
|
+
* Parse a backend graph layout definition into a graph layout understood by the UI component
|
|
55
|
+
*
|
|
56
|
+
* @param definition backend layout definition
|
|
57
|
+
*/
|
|
58
|
+
export declare function parseLayoutDefinition(definition: GraphLayoutDefinition): GraphLayout;
|
|
59
|
+
export {};
|
|
60
|
+
//# 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,EACX,eAAe,EACf,YAAY,EAEf,MAAM,gCAAgC,CAAC;AAGxC,KAAK,eAAe,GAAG,WAAW,GAAG,QAAQ,GAAG,QAAQ,GAAG,UAAU,GAAG,OAAO,GAAG,aAAa,GAAG,QAAQ,CAAC;AAE3G,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;IAC7D,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;IACjE,WAAW,EAAE,WAAW,CAAC;IACzB,eAAe,CAAC,EAAE,eAAe,CAAC,gBAAgB,CAAC,CAAC;CACvD;AAED,UAAU,sBAAuB,SAAQ,yBAAyB;IAC9D,WAAW,EAAE,QAAQ,CAAC;IACtB,WAAW,CAAC,EAAE,YAAY,CAAC,aAAa,CAAC,CAAC;CAC7C;AAED,UAAU,sBAAuB,SAAQ,yBAAyB;IAC9D,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;CACxB;AAED,MAAM,MAAM,qBAAqB,GAC3B,wBAAwB,GACxB,sBAAsB,GACtB,qBAAqB,GACrB,0BAA0B,GAC1B,yBAAyB,GACzB,sBAAsB,GACtB,sBAAsB,CAAC;AAE7B;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,UAAU,EAAE,qBAAqB,GAAG,WAAW,CA4IpF"}
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
import { CircularLayout, CustomLayout, FcoseLayout, ForceAtlasLayout, MarketingLayout, PlanarLayout, SpringLayout, } from '@darajs/ui-causal-graph-editor';
|
|
2
|
+
/**
|
|
3
|
+
* Parse a backend graph layout definition into a graph layout understood by the UI component
|
|
4
|
+
*
|
|
5
|
+
* @param definition backend layout definition
|
|
6
|
+
*/
|
|
7
|
+
export function parseLayoutDefinition(definition) {
|
|
8
|
+
let builder;
|
|
9
|
+
switch (definition.layout_type) {
|
|
10
|
+
case 'circular': {
|
|
11
|
+
builder = CircularLayout.Builder;
|
|
12
|
+
break;
|
|
13
|
+
}
|
|
14
|
+
case 'custom': {
|
|
15
|
+
builder = CustomLayout.Builder;
|
|
16
|
+
break;
|
|
17
|
+
}
|
|
18
|
+
case 'fcose': {
|
|
19
|
+
builder = FcoseLayout.Builder;
|
|
20
|
+
if (definition.edge_elasticity) {
|
|
21
|
+
builder.edgeElasticity(definition.edge_elasticity);
|
|
22
|
+
}
|
|
23
|
+
if (definition.edge_length) {
|
|
24
|
+
builder.edgeLength(definition.edge_length);
|
|
25
|
+
}
|
|
26
|
+
if (definition.gravity) {
|
|
27
|
+
builder.gravity(definition.gravity);
|
|
28
|
+
}
|
|
29
|
+
if (definition.gravity_range) {
|
|
30
|
+
builder.gravityRange(definition.gravity_range);
|
|
31
|
+
}
|
|
32
|
+
if (definition.energy) {
|
|
33
|
+
builder.energy(definition.energy);
|
|
34
|
+
}
|
|
35
|
+
if (definition.high_quality) {
|
|
36
|
+
builder.highQuality(definition.high_quality);
|
|
37
|
+
}
|
|
38
|
+
if (definition.iterations) {
|
|
39
|
+
builder.iterations(definition.iterations);
|
|
40
|
+
}
|
|
41
|
+
if (definition.node_repulsion) {
|
|
42
|
+
builder.nodeRepulsion(definition.node_repulsion);
|
|
43
|
+
}
|
|
44
|
+
if (definition.node_separation) {
|
|
45
|
+
builder.nodeSeparation(definition.node_separation);
|
|
46
|
+
}
|
|
47
|
+
break;
|
|
48
|
+
}
|
|
49
|
+
case 'force_atlas': {
|
|
50
|
+
builder = ForceAtlasLayout.Builder;
|
|
51
|
+
if (definition.barnes_hut_optimize) {
|
|
52
|
+
builder.barnesHutOptimize(definition.barnes_hut_optimize);
|
|
53
|
+
}
|
|
54
|
+
if (definition.edge_weight_influence) {
|
|
55
|
+
builder.edgeWeightInfluence(definition.edge_weight_influence);
|
|
56
|
+
}
|
|
57
|
+
if (definition.gravity) {
|
|
58
|
+
builder.gravity(definition.gravity);
|
|
59
|
+
}
|
|
60
|
+
if (definition.iterations) {
|
|
61
|
+
builder.iterations(definition.iterations);
|
|
62
|
+
}
|
|
63
|
+
if (definition.lin_log_mode) {
|
|
64
|
+
builder.linLogMode(definition.lin_log_mode);
|
|
65
|
+
}
|
|
66
|
+
if (definition.outbound_attraction_distribution) {
|
|
67
|
+
builder.outboundAttractionDistribution(definition.outbound_attraction_distribution);
|
|
68
|
+
}
|
|
69
|
+
if (definition.scaling_ratio) {
|
|
70
|
+
builder.scalingRatio(definition.scaling_ratio);
|
|
71
|
+
}
|
|
72
|
+
if (definition.strong_gravity_mode) {
|
|
73
|
+
builder.strongGravityMode(definition.strong_gravity_mode);
|
|
74
|
+
}
|
|
75
|
+
break;
|
|
76
|
+
}
|
|
77
|
+
case 'marketing': {
|
|
78
|
+
builder = MarketingLayout.Builder;
|
|
79
|
+
if (definition.target_location) {
|
|
80
|
+
builder.targetLocation(definition.target_location);
|
|
81
|
+
}
|
|
82
|
+
break;
|
|
83
|
+
}
|
|
84
|
+
case 'planar': {
|
|
85
|
+
builder = PlanarLayout.Builder;
|
|
86
|
+
if (definition.orientation) {
|
|
87
|
+
builder.orientation(definition.orientation);
|
|
88
|
+
}
|
|
89
|
+
break;
|
|
90
|
+
}
|
|
91
|
+
case 'spring': {
|
|
92
|
+
builder = SpringLayout.Builder;
|
|
93
|
+
if (definition.warmup_ticks) {
|
|
94
|
+
builder.warmupTicks(definition.warmup_ticks);
|
|
95
|
+
}
|
|
96
|
+
break;
|
|
97
|
+
}
|
|
98
|
+
default: {
|
|
99
|
+
throw new Error(`Unrecognised layout type: ${String(definition.layout_type)}`);
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
if (definition.node_size) {
|
|
103
|
+
builder.nodeSize(definition.node_size);
|
|
104
|
+
}
|
|
105
|
+
if (definition.node_font_size) {
|
|
106
|
+
builder.nodeFontSize(definition.node_font_size);
|
|
107
|
+
}
|
|
108
|
+
return builder.build();
|
|
109
|
+
}
|
|
110
|
+
//# 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 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../js/graphs/index.tsx"],"names":[],"mappings":"AAAA,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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../js/graphs/index.tsx"],"names":[],"mappings":"AAAA,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"}
|
|
@@ -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,CAAC,aAAa,CAAC,GAAG,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IAEnD,IAAI,OAAO,CAAC,OAAO,KAAK,KAAK,EAAE;QAC3B;;;;;;;;;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;YACE,MAAM,IAAI,KAAK,CAAC,uFAAuF,CAAC,CAAC;SAC5G;QACD,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;KAC1B;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,32 @@
|
|
|
1
|
+
import { Action, StyledComponentProps, Variable } from '@darajs/core';
|
|
2
|
+
import { CausalGraphNode, EdgeConstraint, ZoomThresholds } from '@darajs/ui-causal-graph-editor';
|
|
3
|
+
import { GraphLayoutDefinition } from './graph-layout';
|
|
4
|
+
interface VisualEdgeEncoderProps extends StyledComponentProps {
|
|
5
|
+
/** Whether to allow node/edge selection even when editable = false */
|
|
6
|
+
allow_selection_when_not_editable?: boolean;
|
|
7
|
+
/** Allow editing */
|
|
8
|
+
editable?: boolean;
|
|
9
|
+
/** Graph layout definition object */
|
|
10
|
+
graph_layout: GraphLayoutDefinition;
|
|
11
|
+
/** Edge constraints to show */
|
|
12
|
+
initial_constraints?: Variable<EdgeConstraint[]> | EdgeConstraint[];
|
|
13
|
+
/** Available nodes */
|
|
14
|
+
nodes: Variable<string[] | Record<string, CausalGraphNode>> | string[] | Record<string, CausalGraphNode>;
|
|
15
|
+
/** Action def for clicking on an edge in the graph */
|
|
16
|
+
on_click_edge?: Action;
|
|
17
|
+
/** Action def for clicking on a node in the graph */
|
|
18
|
+
on_click_node?: Action;
|
|
19
|
+
/** Handler called whenever constraints are updated */
|
|
20
|
+
on_update?: Action;
|
|
21
|
+
/** Optional parameter to force a tooltip to use a particular font size */
|
|
22
|
+
tooltip_size?: number;
|
|
23
|
+
/** Optional user-defined zoom thresholds to use instead of defaults */
|
|
24
|
+
zoom_thresholds?: ZoomThresholds;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* A wrapper using essentially a preset of the high level causal graph editor under the hood,
|
|
28
|
+
* exposing a similar API to SimpleEdgeEncoder + extra graph editor props which can be modified in this preset
|
|
29
|
+
*/
|
|
30
|
+
declare function VisualEdgeEncoder(props: VisualEdgeEncoderProps): JSX.Element;
|
|
31
|
+
export default VisualEdgeEncoder;
|
|
32
|
+
//# sourceMappingURL=visual-edge-encoder.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"visual-edge-encoder.d.ts","sourceRoot":"","sources":["../../js/graphs/visual-edge-encoder.tsx"],"names":[],"mappings":"AAEA,OAAO,EACH,MAAM,EAEN,oBAAoB,EACpB,QAAQ,EAKX,MAAM,cAAc,CAAC;AACtB,OAAO,EAGH,eAAe,EAEf,cAAc,EAId,cAAc,EACjB,MAAM,gCAAgC,CAAC;AAExC,OAAO,EAAE,qBAAqB,EAAyB,MAAM,gBAAgB,CAAC;AAE9E,UAAU,sBAAuB,SAAQ,oBAAoB;IACzD,sEAAsE;IACtE,iCAAiC,CAAC,EAAE,OAAO,CAAC;IAC5C,oBAAoB;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,qCAAqC;IACrC,YAAY,EAAE,qBAAqB,CAAC;IACpC,+BAA+B;IAC/B,mBAAmB,CAAC,EAAE,QAAQ,CAAC,cAAc,EAAE,CAAC,GAAG,cAAc,EAAE,CAAC;IACpE,sBAAsB;IACtB,KAAK,EAAE,QAAQ,CAAC,MAAM,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC,GAAG,MAAM,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;IACzG,sDAAsD;IACtD,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,qDAAqD;IACrD,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,sDAAsD;IACtD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,0EAA0E;IAC1E,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,uEAAuE;IACvE,eAAe,CAAC,EAAE,cAAc,CAAC;CACpC;AAqDD;;;GAGG;AACH,iBAAS,iBAAiB,CAAC,KAAK,EAAE,sBAAsB,GAAG,GAAG,CAAC,OAAO,CAyDrE;AAED,eAAe,iBAAiB,CAAC"}
|
|
@@ -0,0 +1,84 @@
|
|
|
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 { CausalGraphViewer, EdgeConstraintType, EdgeType, EditorMode, } from '@darajs/ui-causal-graph-editor';
|
|
5
|
+
import { parseLayoutDefinition } from './graph-layout';
|
|
6
|
+
const StyledGraphEditor = injectCss(CausalGraphViewer);
|
|
7
|
+
/**
|
|
8
|
+
* Parse initially defined constraints.
|
|
9
|
+
* Reverses backward directed edges.
|
|
10
|
+
*
|
|
11
|
+
* @param constraints constraints to parse
|
|
12
|
+
*/
|
|
13
|
+
function parseConstraints(constraints) {
|
|
14
|
+
if (!constraints) {
|
|
15
|
+
return [];
|
|
16
|
+
}
|
|
17
|
+
return constraints.map((c) => {
|
|
18
|
+
let constraintType = c.type;
|
|
19
|
+
let { source, target } = c;
|
|
20
|
+
// Reverse backward edges
|
|
21
|
+
if (constraintType === EdgeConstraintType.BACKWARD_DIRECTED) {
|
|
22
|
+
[source, target] = [target, source];
|
|
23
|
+
constraintType = EdgeConstraintType.DIRECTED;
|
|
24
|
+
}
|
|
25
|
+
return Object.assign(Object.assign({}, c), { source,
|
|
26
|
+
target, type: constraintType });
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
function isNodeList(nodes) {
|
|
30
|
+
return Array.isArray(nodes);
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Parse nodes provided by user to the uniform format
|
|
34
|
+
*
|
|
35
|
+
* @param nodes nodes to parse
|
|
36
|
+
*/
|
|
37
|
+
function parseNodes(nodes) {
|
|
38
|
+
if (isNodeList(nodes)) {
|
|
39
|
+
return nodes.reduce((acc, n) => {
|
|
40
|
+
return Object.assign(Object.assign({}, acc), { [n]: {} });
|
|
41
|
+
}, {});
|
|
42
|
+
}
|
|
43
|
+
return nodes;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* A wrapper using essentially a preset of the high level causal graph editor under the hood,
|
|
47
|
+
* exposing a similar API to SimpleEdgeEncoder + extra graph editor props which can be modified in this preset
|
|
48
|
+
*/
|
|
49
|
+
function VisualEdgeEncoder(props) {
|
|
50
|
+
const { pushNotification } = Notifications.useNotifications();
|
|
51
|
+
const [style, css] = useComponentStyles(props);
|
|
52
|
+
const [nodes] = useVariable(props.nodes);
|
|
53
|
+
const parsedNodes = useMemo(() => parseNodes(nodes), [nodes]);
|
|
54
|
+
const [initialConstraints] = useVariable(props.initial_constraints);
|
|
55
|
+
const parsedConstraints = useMemo(() => parseConstraints(initialConstraints), [initialConstraints]);
|
|
56
|
+
const graphLayout = useMemo(() => parseLayoutDefinition(props.graph_layout), []);
|
|
57
|
+
const [onClickEdge] = useAction(props.on_click_edge);
|
|
58
|
+
const [onClickNode] = useAction(props.on_click_node);
|
|
59
|
+
const [onUpdate] = useAction(props.on_update);
|
|
60
|
+
// Parse provided list of nodes into a graph data object that's understood by the graph editor
|
|
61
|
+
const graphData = useMemo(() => {
|
|
62
|
+
return {
|
|
63
|
+
// If initial constraints are passed, we need to also add edges for each constraint
|
|
64
|
+
edges: parsedConstraints.reduce((acc, c) => {
|
|
65
|
+
// Make sure the constraint is fully built - could be i.e. half-built by simple edge encoder
|
|
66
|
+
if (c.source && c.target) {
|
|
67
|
+
if (!(c.source in acc)) {
|
|
68
|
+
acc[c.source] = {};
|
|
69
|
+
}
|
|
70
|
+
acc[c.source][c.target] = {
|
|
71
|
+
edge_type: EdgeType.UNDIRECTED_EDGE,
|
|
72
|
+
meta: {},
|
|
73
|
+
};
|
|
74
|
+
}
|
|
75
|
+
return acc;
|
|
76
|
+
}, {}),
|
|
77
|
+
nodes: parsedNodes,
|
|
78
|
+
version: 'none', // doesn't matter as we don't output a whole graph
|
|
79
|
+
};
|
|
80
|
+
}, [parsedNodes, parsedConstraints]);
|
|
81
|
+
return (_jsx(StyledGraphEditor, { "$rawCss": css, allowSelectionWhenNotEditable: props.allow_selection_when_not_editable, editable: props.editable, editorMode: EditorMode.EDGE_ENCODER, graphData: graphData, graphLayout: graphLayout, initialConstraints: parsedConstraints, onClickEdge: onClickEdge, onClickNode: onClickNode, onEdgeConstraintsUpdate: onUpdate, onNotify: pushNotification, style: style, tooltipSize: props.tooltip_size, zoomThresholds: props.zoom_thresholds }));
|
|
82
|
+
}
|
|
83
|
+
export default VisualEdgeEncoder;
|
|
84
|
+
//# sourceMappingURL=visual-edge-encoder.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"visual-edge-encoder.js","sourceRoot":"","sources":["../../js/graphs/visual-edge-encoder.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAEhC,OAAO,EAEH,aAAa,EAGb,SAAS,EACT,SAAS,EACT,kBAAkB,EAClB,WAAW,GACd,MAAM,cAAc,CAAC;AACtB,OAAO,EAIH,iBAAiB,EAEjB,kBAAkB,EAClB,QAAQ,EACR,UAAU,GAEb,MAAM,gCAAgC,CAAC;AAExC,OAAO,EAAyB,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AAyB9E,MAAM,iBAAiB,GAAG,SAAS,CAAC,iBAAiB,CAAC,CAAC;AAEvD;;;;;GAKG;AACH,SAAS,gBAAgB,CAAC,WAA8B;IACpD,IAAI,CAAC,WAAW,EAAE;QACd,OAAO,EAAE,CAAC;KACb;IAED,OAAO,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;QACzB,IAAI,cAAc,GAAG,CAAC,CAAC,IAAI,CAAC;QAC5B,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC;QAE3B,yBAAyB;QACzB,IAAI,cAAc,KAAK,kBAAkB,CAAC,iBAAiB,EAAE;YACzD,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;YACpC,cAAc,GAAG,kBAAkB,CAAC,QAAQ,CAAC;SAChD;QAED,uCACO,CAAC,KACJ,MAAM;YACN,MAAM,EACN,IAAI,EAAE,cAAc,IACtB;IACN,CAAC,CAAC,CAAC;AACP,CAAC;AAED,SAAS,UAAU,CAAC,KAAiD;IACjE,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAChC,CAAC;AAED;;;;GAIG;AACH,SAAS,UAAU,CAAC,KAAiD;IACjE,IAAI,UAAU,CAAC,KAAK,CAAC,EAAE;QACnB,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE;YAC3B,uCAAY,GAAG,KAAE,CAAC,CAAC,CAAC,EAAE,EAAE,IAAG;QAC/B,CAAC,EAAE,EAAE,CAAC,CAAC;KACV;IAED,OAAO,KAAK,CAAC;AACjB,CAAC;AAED;;;GAGG;AACH,SAAS,iBAAiB,CAAC,KAA6B;IACpD,MAAM,EAAE,gBAAgB,EAAE,GAAG,aAAa,CAAC,gBAAgB,EAAE,CAAC;IAC9D,MAAM,CAAC,KAAK,EAAE,GAAG,CAAC,GAAG,kBAAkB,CAAC,KAAK,CAAC,CAAC;IAC/C,MAAM,CAAC,KAAK,CAAC,GAAG,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACzC,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;IAE9D,MAAM,CAAC,kBAAkB,CAAC,GAAG,WAAW,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC;IACpE,MAAM,iBAAiB,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,gBAAgB,CAAC,kBAAkB,CAAC,EAAE,CAAC,kBAAkB,CAAC,CAAC,CAAC;IAEpG,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,qBAAqB,CAAC,KAAK,CAAC,YAAY,CAAC,EAAE,EAAE,CAAC,CAAC;IAEjF,MAAM,CAAC,WAAW,CAAC,GAAG,SAAS,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;IACrD,MAAM,CAAC,WAAW,CAAC,GAAG,SAAS,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;IACrD,MAAM,CAAC,QAAQ,CAAC,GAAG,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IAE9C,8FAA8F;IAC9F,MAAM,SAAS,GAAG,OAAO,CAAc,GAAG,EAAE;QACxC,OAAO;YACH,mFAAmF;YACnF,KAAK,EAAE,iBAAiB,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE;gBACvC,4FAA4F;gBAC5F,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,MAAM,EAAE;oBACtB,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,GAAG,CAAC,EAAE;wBACpB,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC;qBACtB;oBAED,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG;wBACtB,SAAS,EAAE,QAAQ,CAAC,eAAe;wBACnC,IAAI,EAAE,EAAE;qBACX,CAAC;iBACL;gBAED,OAAO,GAAG,CAAC;YACf,CAAC,EAAE,EAAqD,CAAC;YACzD,KAAK,EAAE,WAAW;YAClB,OAAO,EAAE,MAAM,EAAE,kDAAkD;SACtE,CAAC;IACN,CAAC,EAAE,CAAC,WAAW,EAAE,iBAAiB,CAAC,CAAC,CAAC;IAErC,OAAO,CACH,KAAC,iBAAiB,eACL,GAAG,EACZ,6BAA6B,EAAE,KAAK,CAAC,iCAAiC,EACtE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EACxB,UAAU,EAAE,UAAU,CAAC,YAAY,EACnC,SAAS,EAAE,SAAS,EACpB,WAAW,EAAE,WAAW,EACxB,kBAAkB,EAAE,iBAAiB,EACrC,WAAW,EAAE,WAAW,EACxB,WAAW,EAAE,WAAW,EACxB,uBAAuB,EAAE,QAAQ,EACjC,QAAQ,EAAE,gBAAgB,EAC1B,KAAK,EAAE,KAAK,EACZ,WAAW,EAAE,KAAK,CAAC,YAAY,EAC/B,cAAc,EAAE,KAAK,CAAC,eAAe,GACvC,CACL,CAAC;AACN,CAAC;AAED,eAAe,iBAAiB,CAAC"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../js/index.tsx"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../js/index.tsx"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import type * as BokehLib from '@bokeh/bokehjs/build/js/lib';
|
|
2
|
+
import { Action, StyledComponentProps } from '@darajs/core';
|
|
3
|
+
interface BokehProps extends StyledComponentProps {
|
|
4
|
+
document: string;
|
|
5
|
+
events?: [string, Action][];
|
|
6
|
+
}
|
|
7
|
+
declare global {
|
|
8
|
+
interface Window {
|
|
9
|
+
/**
|
|
10
|
+
* Bokeh library
|
|
11
|
+
*/
|
|
12
|
+
Bokeh: typeof BokehLib;
|
|
13
|
+
/**
|
|
14
|
+
* Whether Bokeh is currently loading; this is set on window so that multiple Bokeh components
|
|
15
|
+
* won't try to load Bokeh at the same time
|
|
16
|
+
*/
|
|
17
|
+
bokehLoading?: boolean;
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* A component for displaying a serialized Bokeh Document. Takes a Bokeh Document that has been serialized
|
|
22
|
+
* to a JSON string.
|
|
23
|
+
*
|
|
24
|
+
* @param {BokehProps} props - the component props
|
|
25
|
+
*/
|
|
26
|
+
declare function Bokeh(props: BokehProps): JSX.Element;
|
|
27
|
+
export default Bokeh;
|
|
28
|
+
//# sourceMappingURL=bokeh.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bokeh.d.ts","sourceRoot":"","sources":["../../../js/plotting/bokeh/bokeh.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,QAAQ,MAAM,6BAA6B,CAAC;AAI7D,OAAO,EAAE,MAAM,EAAmB,oBAAoB,EAA4C,MAAM,cAAc,CAAC;AAiBvH,UAAU,UAAW,SAAQ,oBAAoB;IAC7C,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC;CAC/B;AAID,OAAO,CAAC,MAAM,CAAC;IACX,UAAU,MAAM;QACZ;;WAEG;QACH,KAAK,EAAE,OAAO,QAAQ,CAAC;QACvB;;;WAGG;QACH,YAAY,CAAC,EAAE,OAAO,CAAC;KAC1B;CACJ;AAGD;;;;;GAKG;AACH,iBAAS,KAAK,CAAC,KAAK,EAAE,UAAU,GAAG,GAAG,CAAC,OAAO,CA+G7C;AAED,eAAe,KAAK,CAAC"}
|