@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,56 @@
|
|
|
1
|
+
import { Action, AnyDataVariable, StyledComponentProps, Variable } from '@darajs/core';
|
|
2
|
+
interface TableProps extends StyledComponentProps {
|
|
3
|
+
/**
|
|
4
|
+
* Column definitions
|
|
5
|
+
*/
|
|
6
|
+
columns?: ColumnProps[] | Variable<ColumnProps[]>;
|
|
7
|
+
/**
|
|
8
|
+
* Data
|
|
9
|
+
*/
|
|
10
|
+
data: AnyDataVariable;
|
|
11
|
+
/**
|
|
12
|
+
* When specified, a set number of rows is displayed
|
|
13
|
+
*/
|
|
14
|
+
max_rows?: number;
|
|
15
|
+
/**
|
|
16
|
+
* Whether multiple selections are allowed
|
|
17
|
+
*/
|
|
18
|
+
multi_select?: boolean;
|
|
19
|
+
/**
|
|
20
|
+
* Onclick handler; when provided, select action is added to the table
|
|
21
|
+
*/
|
|
22
|
+
onclick_row?: Action;
|
|
23
|
+
/**
|
|
24
|
+
* List of searchable columns
|
|
25
|
+
*/
|
|
26
|
+
search_columns?: Array<string>;
|
|
27
|
+
/**
|
|
28
|
+
* Whether the table is searchable
|
|
29
|
+
*/
|
|
30
|
+
searchable: boolean;
|
|
31
|
+
/**
|
|
32
|
+
* List of selected row indices
|
|
33
|
+
*/
|
|
34
|
+
selected_indices?: Variable<Array<number>>;
|
|
35
|
+
/**
|
|
36
|
+
* When set to true hides the checkboxes column of table
|
|
37
|
+
*/
|
|
38
|
+
show_checkboxes?: boolean;
|
|
39
|
+
}
|
|
40
|
+
interface ColumnProps {
|
|
41
|
+
align?: string;
|
|
42
|
+
col_id: string;
|
|
43
|
+
filter?: 'text' | 'categorical' | 'numeric' | 'datetime';
|
|
44
|
+
formatter?: {
|
|
45
|
+
[k: string]: any;
|
|
46
|
+
};
|
|
47
|
+
label?: string;
|
|
48
|
+
sticky?: string;
|
|
49
|
+
tooltip?: string;
|
|
50
|
+
type?: 'number' | 'string' | 'datetime';
|
|
51
|
+
unique_items?: Array<string>;
|
|
52
|
+
width?: string;
|
|
53
|
+
}
|
|
54
|
+
declare function Table(props: TableProps): JSX.Element;
|
|
55
|
+
export default Table;
|
|
56
|
+
//# sourceMappingURL=table.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"table.d.ts","sourceRoot":"","sources":["../../../js/common/table/table.tsx"],"names":[],"mappings":"AAKA,OAAO,EACH,MAAM,EACN,eAAe,EAIf,oBAAoB,EACpB,QAAQ,EAOX,MAAM,cAAc,CAAC;AAkBtB,UAAU,UAAW,SAAQ,oBAAoB;IAC7C;;OAEG;IAEH,OAAO,CAAC,EAAE,WAAW,EAAE,GAAG,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAC;IAClD;;OAEG;IACH,IAAI,EAAE,eAAe,CAAC;IACtB;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;OAEG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;OAEG;IACH,cAAc,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IAC/B;;OAEG;IACH,UAAU,EAAE,OAAO,CAAC;IACpB;;OAEG;IACH,gBAAgB,CAAC,EAAE,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;IAC3C;;OAEG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;CAC7B;AAED,UAAU,WAAW;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,GAAG,aAAa,GAAG,SAAS,GAAG,UAAU,CAAC;IACzD,SAAS,CAAC,EAAE;QAAE,CAAC,CAAC,EAAE,MAAM,GAAG,GAAG,CAAA;KAAE,CAAC;IACjC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,QAAQ,GAAG,QAAQ,GAAG,UAAU,CAAC;IACxC,YAAY,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAC;CAClB;AAyPD,iBAAS,KAAK,CAAC,KAAK,EAAE,UAAU,GAAG,GAAG,CAAC,OAAO,CAgQ7C;AAED,eAAe,KAAK,CAAC"}
|
|
@@ -0,0 +1,404 @@
|
|
|
1
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
2
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
4
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
5
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
6
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
7
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
|
+
});
|
|
9
|
+
};
|
|
10
|
+
var __rest = (this && this.__rest) || function (s, e) {
|
|
11
|
+
var t = {};
|
|
12
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
13
|
+
t[p] = s[p];
|
|
14
|
+
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
15
|
+
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
16
|
+
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
17
|
+
t[p[i]] = s[p[i]];
|
|
18
|
+
}
|
|
19
|
+
return t;
|
|
20
|
+
};
|
|
21
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
22
|
+
import { formatISO } from 'date-fns';
|
|
23
|
+
import debounce from 'lodash/debounce';
|
|
24
|
+
import isEqual from 'lodash/isEqual';
|
|
25
|
+
import { useCallback, useEffect, useMemo, useRef, useState } from 'react';
|
|
26
|
+
import { combineFilters, injectCss, useAction, useComponentStyles, useDataVariable, useVariable, } from '@darajs/core';
|
|
27
|
+
import styled from '@darajs/styled-components';
|
|
28
|
+
import { Input, Table as UiTable, useInfiniteLoader } from '@darajs/ui-components';
|
|
29
|
+
import { useThrottledState } from '@darajs/ui-utils';
|
|
30
|
+
import { AdaptivePrecisionCell, BadgeFormattedCell, CodeCell, CompareCell, FormattedTextCell, LinkCell, NumberCell, NumberIntlCell, PercentageCell, ThresholdFormattedCell, } from './cells';
|
|
31
|
+
const coerceValueToUnit = (num) => {
|
|
32
|
+
if (num < 0)
|
|
33
|
+
return -1;
|
|
34
|
+
if (num > 0)
|
|
35
|
+
return 1;
|
|
36
|
+
return 0;
|
|
37
|
+
};
|
|
38
|
+
const compareDateStrings = (a, b) => coerceValueToUnit(new Date(a).getTime() - new Date(b).getTime());
|
|
39
|
+
const compareNumberStrings = (a, b) => coerceValueToUnit(Number(a) - Number(b));
|
|
40
|
+
const compareStrings = (a, b) => coerceValueToUnit(a.localeCompare(b));
|
|
41
|
+
const columnSortTypes = {
|
|
42
|
+
datetime: (a, b, id) => compareDateStrings(a.values[id], b.values[id]),
|
|
43
|
+
number: (a, b, id) => compareNumberStrings(a.values[id], b.values[id]),
|
|
44
|
+
string: (a, b, id) => compareStrings(a.values[id], b.values[id]),
|
|
45
|
+
};
|
|
46
|
+
const TableSearch = styled.div `
|
|
47
|
+
display: flex;
|
|
48
|
+
justify-content: flex-end;
|
|
49
|
+
padding: 1rem 1rem 0rem 1rem;
|
|
50
|
+
`;
|
|
51
|
+
function getCellRenderer(formatter) {
|
|
52
|
+
if (formatter.type === 'adaptive_precision') {
|
|
53
|
+
return AdaptivePrecisionCell();
|
|
54
|
+
}
|
|
55
|
+
if (formatter.type === 'code') {
|
|
56
|
+
return CodeCell(formatter.language);
|
|
57
|
+
}
|
|
58
|
+
if (formatter.type === 'compare') {
|
|
59
|
+
return CompareCell(formatter.condition, formatter.target);
|
|
60
|
+
}
|
|
61
|
+
if (formatter.type === 'datetime') {
|
|
62
|
+
return UiTable.cells.DATETIME(formatter.format);
|
|
63
|
+
}
|
|
64
|
+
if (formatter.type === 'formatted_text') {
|
|
65
|
+
return FormattedTextCell();
|
|
66
|
+
}
|
|
67
|
+
if (formatter.type === 'number') {
|
|
68
|
+
return NumberCell(formatter.precision);
|
|
69
|
+
}
|
|
70
|
+
if (formatter.type === 'number_intl') {
|
|
71
|
+
return NumberIntlCell(formatter.locales, formatter.options);
|
|
72
|
+
}
|
|
73
|
+
if (formatter.type === 'percent') {
|
|
74
|
+
return PercentageCell(formatter.precision);
|
|
75
|
+
}
|
|
76
|
+
if (formatter.type === 'link') {
|
|
77
|
+
return LinkCell();
|
|
78
|
+
}
|
|
79
|
+
if (formatter.type === 'threshold') {
|
|
80
|
+
return ThresholdFormattedCell(formatter.thresholds);
|
|
81
|
+
}
|
|
82
|
+
if (formatter.type === 'badge') {
|
|
83
|
+
return BadgeFormattedCell(formatter.badges);
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
function mapColumns(columns) {
|
|
87
|
+
if (columns) {
|
|
88
|
+
return columns.map((column) => (Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({ Header: column.label ? column.label : column.col_id, accessor: column.col_id }, (column.align && { align: column.align })), (column.filter && { filter: column.filter })), (column.formatter && { Cell: getCellRenderer(column.formatter) })), (column.sticky && { sticky: column.sticky })), (column.width && { maxWidth: column.width, width: column.width })), (column.type && { sortType: columnSortTypes[column.type] })), (column.unique_items && { uniqueItems: column.unique_items })), (column.tooltip && { tooltip: column.tooltip }))));
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
const INDEX_COL = '__index__';
|
|
92
|
+
var NumericOperator;
|
|
93
|
+
(function (NumericOperator) {
|
|
94
|
+
NumericOperator["BT"] = "Between";
|
|
95
|
+
NumericOperator["EQ"] = "Equal to";
|
|
96
|
+
NumericOperator["GT"] = "Greater than";
|
|
97
|
+
NumericOperator["LT"] = "Less than";
|
|
98
|
+
NumericOperator["NE"] = "Not equal to";
|
|
99
|
+
NumericOperator["None"] = "None";
|
|
100
|
+
})(NumericOperator || (NumericOperator = {}));
|
|
101
|
+
var DateOperator;
|
|
102
|
+
(function (DateOperator) {
|
|
103
|
+
DateOperator["BT"] = "Between";
|
|
104
|
+
DateOperator["EQ"] = "On date";
|
|
105
|
+
DateOperator["GT"] = "After";
|
|
106
|
+
DateOperator["LT"] = "Before";
|
|
107
|
+
DateOperator["None"] = "None";
|
|
108
|
+
})(DateOperator || (DateOperator = {}));
|
|
109
|
+
function selectedToOperator(selected) {
|
|
110
|
+
switch (selected) {
|
|
111
|
+
case NumericOperator.EQ:
|
|
112
|
+
return 'EQ';
|
|
113
|
+
case DateOperator.EQ:
|
|
114
|
+
return 'EQ';
|
|
115
|
+
case NumericOperator.GT:
|
|
116
|
+
return 'GT';
|
|
117
|
+
case DateOperator.GT:
|
|
118
|
+
return 'GT';
|
|
119
|
+
case NumericOperator.LT:
|
|
120
|
+
return 'LT';
|
|
121
|
+
case DateOperator.LT:
|
|
122
|
+
return 'LT';
|
|
123
|
+
case NumericOperator.BT:
|
|
124
|
+
return 'BT';
|
|
125
|
+
case DateOperator.BT:
|
|
126
|
+
return 'BT';
|
|
127
|
+
case NumericOperator.NE:
|
|
128
|
+
return 'NE';
|
|
129
|
+
default:
|
|
130
|
+
return null;
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
/**
|
|
134
|
+
* Gets the results returned by each filter on the table and sets it in a query format that can be consumed
|
|
135
|
+
*
|
|
136
|
+
* @param filters a list containing the results from each filter that is currently applied
|
|
137
|
+
*/
|
|
138
|
+
function filtersToFilterQuery(filters) {
|
|
139
|
+
if (filters.length === 0) {
|
|
140
|
+
return null;
|
|
141
|
+
}
|
|
142
|
+
return {
|
|
143
|
+
clauses: filters
|
|
144
|
+
.map((filt) => {
|
|
145
|
+
// eslint-disable-next-line prefer-const
|
|
146
|
+
let cleanValue = null;
|
|
147
|
+
let operator = null;
|
|
148
|
+
if (typeof filt.value === 'string') {
|
|
149
|
+
operator = 'CONTAINS';
|
|
150
|
+
cleanValue = filt.value.trim();
|
|
151
|
+
}
|
|
152
|
+
else if (Array.isArray(filt.value)) {
|
|
153
|
+
// the operator is only here so that the filter can be acepted by the backend
|
|
154
|
+
operator = 'EQ';
|
|
155
|
+
cleanValue = filt.value.map((val) => val.value);
|
|
156
|
+
}
|
|
157
|
+
else if (!filt.value.selected || filt.value.selected === 'None') {
|
|
158
|
+
// invalid operator
|
|
159
|
+
return null;
|
|
160
|
+
}
|
|
161
|
+
else {
|
|
162
|
+
operator = selectedToOperator(filt.value.selected);
|
|
163
|
+
cleanValue = filt.value.value;
|
|
164
|
+
}
|
|
165
|
+
if (String(cleanValue).length === 0) {
|
|
166
|
+
return null;
|
|
167
|
+
}
|
|
168
|
+
return {
|
|
169
|
+
column: filt.id,
|
|
170
|
+
operator,
|
|
171
|
+
value: cleanValue,
|
|
172
|
+
};
|
|
173
|
+
})
|
|
174
|
+
.filter(Boolean),
|
|
175
|
+
combinator: 'AND',
|
|
176
|
+
};
|
|
177
|
+
}
|
|
178
|
+
/**
|
|
179
|
+
* Infer which columns are datetime columns and should be formatted.
|
|
180
|
+
*
|
|
181
|
+
* If column has datetime formatter, datetime filter, or type=datetime then its a datetime column
|
|
182
|
+
*/
|
|
183
|
+
function getDatetimeColumns(columns) {
|
|
184
|
+
if (columns) {
|
|
185
|
+
return columns
|
|
186
|
+
.filter((col) => { var _a; return ((_a = col === null || col === void 0 ? void 0 : col.formatter) === null || _a === void 0 ? void 0 : _a.type) === 'datetime' || col.type === 'datetime' || col.filter === 'datetime'; })
|
|
187
|
+
.map((c) => c.col_id);
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
/**
|
|
191
|
+
* Clean up the index column from rows.
|
|
192
|
+
*
|
|
193
|
+
* @param rows rows to remove the index column from
|
|
194
|
+
*/
|
|
195
|
+
function cleanIndex(rows) {
|
|
196
|
+
return rows.map((r) => {
|
|
197
|
+
const _a = r, _b = INDEX_COL, _ = _a[_b], rest = __rest(_a, [typeof _b === "symbol" ? _b : _b + ""]);
|
|
198
|
+
return rest;
|
|
199
|
+
});
|
|
200
|
+
}
|
|
201
|
+
/**
|
|
202
|
+
* Type guard for checking whether column is of type `ColumnProps`
|
|
203
|
+
*
|
|
204
|
+
* @param column column to check for
|
|
205
|
+
*/
|
|
206
|
+
function isColumnProp(column) {
|
|
207
|
+
return column.col_id !== undefined;
|
|
208
|
+
}
|
|
209
|
+
/**
|
|
210
|
+
* Gets columns and ensures they return an Array of ColumnProps
|
|
211
|
+
*
|
|
212
|
+
* @param columns columns to be converted into correct format
|
|
213
|
+
*/
|
|
214
|
+
function getColumnProps(columns) {
|
|
215
|
+
return columns.map((col) => {
|
|
216
|
+
if (isColumnProp(col)) {
|
|
217
|
+
return col;
|
|
218
|
+
}
|
|
219
|
+
if (typeof col === 'string') {
|
|
220
|
+
return { col_id: col };
|
|
221
|
+
}
|
|
222
|
+
throw new Error('Columns could not be rendered, check that your data is correct and columns are passed as a List');
|
|
223
|
+
});
|
|
224
|
+
}
|
|
225
|
+
const TableWrapper = injectCss('div');
|
|
226
|
+
function Table(props) {
|
|
227
|
+
const [searchQuery, setSearchQuery] = useState(null);
|
|
228
|
+
const getData = useDataVariable(props.data);
|
|
229
|
+
const [selectedRowIndices, setSelectedRowIndices] = useVariable(props.selected_indices);
|
|
230
|
+
const [columnsProp] = useVariable(props.columns);
|
|
231
|
+
const [resolvedColumns, setResolvedColumns] = useState(null);
|
|
232
|
+
useEffect(() => {
|
|
233
|
+
// prop provided, just parse the columns provided
|
|
234
|
+
if (columnsProp) {
|
|
235
|
+
setResolvedColumns(getColumnProps(columnsProp));
|
|
236
|
+
return;
|
|
237
|
+
}
|
|
238
|
+
// prop not provided, find columns from data
|
|
239
|
+
getData(null, {
|
|
240
|
+
limit: 1,
|
|
241
|
+
offset: 0,
|
|
242
|
+
})
|
|
243
|
+
.then((dataset) => {
|
|
244
|
+
const columns = Object.keys(dataset.data[0]);
|
|
245
|
+
const columnsWithoutIndex = columns.filter((col) => col !== '__index__');
|
|
246
|
+
setResolvedColumns(getColumnProps(columnsWithoutIndex));
|
|
247
|
+
})
|
|
248
|
+
.catch((err) => {
|
|
249
|
+
throw new Error(err);
|
|
250
|
+
});
|
|
251
|
+
}, [columnsProp, getData]);
|
|
252
|
+
const debouncedSetSearchQuery = useMemo(() => debounce(setSearchQuery, 500), [setSearchQuery]);
|
|
253
|
+
const [sortingRules, setSortingRules] = useThrottledState([], 300);
|
|
254
|
+
const [filters, setFilters] = useThrottledState([], 500);
|
|
255
|
+
const datetimeColumns = useMemo(() => getDatetimeColumns(resolvedColumns), [resolvedColumns]);
|
|
256
|
+
const fetchData = useCallback((startIndex, stopIndex) => __awaiter(this, void 0, void 0, function* () {
|
|
257
|
+
const response = yield getData(combineFilters('AND', [filtersToFilterQuery(filters), searchQuery]), {
|
|
258
|
+
limit: stopIndex - startIndex,
|
|
259
|
+
offset: startIndex,
|
|
260
|
+
sort: sortingRules[0],
|
|
261
|
+
});
|
|
262
|
+
return {
|
|
263
|
+
data: response.data.map((row) => {
|
|
264
|
+
for (const val of datetimeColumns) {
|
|
265
|
+
// Format datetime timestamps to dates
|
|
266
|
+
if (typeof row[val] === 'number') {
|
|
267
|
+
row[val] = formatISO(row[val]);
|
|
268
|
+
}
|
|
269
|
+
}
|
|
270
|
+
return row;
|
|
271
|
+
}),
|
|
272
|
+
totalCount: response.totalCount,
|
|
273
|
+
};
|
|
274
|
+
}), [filters, searchQuery, getData, sortingRules, resolvedColumns]);
|
|
275
|
+
const extraDataCache = useRef({});
|
|
276
|
+
const { getItem, onItemsRendered, itemCount: totalCount } = useInfiniteLoader(fetchData);
|
|
277
|
+
/**
|
|
278
|
+
* Returns a row by index
|
|
279
|
+
* - first tries to retrieve it from the loader data
|
|
280
|
+
* - if not found, tries to retrieve it from the extraDataCache
|
|
281
|
+
* - if not found, fetches a few rows around the index and stores them in the extraDataCache
|
|
282
|
+
*
|
|
283
|
+
* @param idx index of row to get
|
|
284
|
+
*/
|
|
285
|
+
function getRowByIndex(idx) {
|
|
286
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
287
|
+
const loaderItem = getItem(idx);
|
|
288
|
+
// item available in current window
|
|
289
|
+
if (loaderItem) {
|
|
290
|
+
return loaderItem;
|
|
291
|
+
}
|
|
292
|
+
// This should only happen if user changes selectedRow from the outside
|
|
293
|
+
// and the row has not been loaded yet
|
|
294
|
+
// populate cache with a few rows around the index if row not in cache
|
|
295
|
+
if (!extraDataCache.current[idx]) {
|
|
296
|
+
const { data } = yield fetchData(idx - 5, idx + 5);
|
|
297
|
+
for (const row of data) {
|
|
298
|
+
extraDataCache.current[row[INDEX_COL]] = row;
|
|
299
|
+
}
|
|
300
|
+
}
|
|
301
|
+
return extraDataCache.current[idx];
|
|
302
|
+
});
|
|
303
|
+
}
|
|
304
|
+
useEffect(() => {
|
|
305
|
+
extraDataCache.current = {};
|
|
306
|
+
}, [getData]);
|
|
307
|
+
const [style, css] = useComponentStyles(props);
|
|
308
|
+
const [onClickRow] = useAction(props.onclick_row);
|
|
309
|
+
const columns = useMemo(() => {
|
|
310
|
+
const mappedCols = mapColumns(resolvedColumns);
|
|
311
|
+
if ((props.show_checkboxes && props.onclick_row) || props.selected_indices) {
|
|
312
|
+
mappedCols === null || mappedCols === void 0 ? void 0 : mappedCols.unshift(UiTable.ActionColumn([UiTable.Actions.SELECT], 'select_box_col', 'left', true));
|
|
313
|
+
}
|
|
314
|
+
return mappedCols;
|
|
315
|
+
}, [resolvedColumns, props.onclick_row]);
|
|
316
|
+
const onSelect = useCallback((row) => __awaiter(this, void 0, void 0, function* () {
|
|
317
|
+
// If selected row has already been selected
|
|
318
|
+
if ((selectedRowIndices !== null && selectedRowIndices !== void 0 ? selectedRowIndices : []).find((idx) => row[INDEX_COL] === idx) !== undefined) {
|
|
319
|
+
// Remove it from selected indices
|
|
320
|
+
const newSelectedIndices = (selectedRowIndices !== null && selectedRowIndices !== void 0 ? selectedRowIndices : []).filter((idx) => row[INDEX_COL] !== idx);
|
|
321
|
+
setSelectedRowIndices(newSelectedIndices);
|
|
322
|
+
if (props.multi_select) {
|
|
323
|
+
const selectedRows = yield Promise.all(newSelectedIndices.map((idx) => getRowByIndex(idx)));
|
|
324
|
+
// In multiselect mode, send selected rows
|
|
325
|
+
onClickRow(cleanIndex(selectedRows));
|
|
326
|
+
}
|
|
327
|
+
else {
|
|
328
|
+
onClickRow(null);
|
|
329
|
+
}
|
|
330
|
+
}
|
|
331
|
+
else {
|
|
332
|
+
let newSelectedIndices = [...(selectedRowIndices !== null && selectedRowIndices !== void 0 ? selectedRowIndices : []), row[INDEX_COL]];
|
|
333
|
+
// If not in multiselect mode then only the new row is selected
|
|
334
|
+
if (!props.multi_select) {
|
|
335
|
+
newSelectedIndices = [row[INDEX_COL]];
|
|
336
|
+
}
|
|
337
|
+
setSelectedRowIndices(newSelectedIndices);
|
|
338
|
+
const selectedRows = yield Promise.all(newSelectedIndices.map((idx) => getRowByIndex(idx)));
|
|
339
|
+
onClickRow(cleanIndex(selectedRows));
|
|
340
|
+
}
|
|
341
|
+
}), [selectedRowIndices, getItem]);
|
|
342
|
+
const onAction = useCallback((actionId, row) => {
|
|
343
|
+
if (actionId === UiTable.Actions.SELECT.id) {
|
|
344
|
+
onSelect(row);
|
|
345
|
+
}
|
|
346
|
+
}, [onSelect]);
|
|
347
|
+
const searchColumns = useMemo(() => {
|
|
348
|
+
if (props.search_columns) {
|
|
349
|
+
return props.search_columns;
|
|
350
|
+
}
|
|
351
|
+
return [];
|
|
352
|
+
}, []);
|
|
353
|
+
const onSearchChange = (searchTerm) => {
|
|
354
|
+
const searchTermClean = searchTerm.trim().toLowerCase();
|
|
355
|
+
// Construct filter query
|
|
356
|
+
const newSearchQuery = searchTermClean.length > 0
|
|
357
|
+
? {
|
|
358
|
+
clauses: searchColumns.map((col) => ({
|
|
359
|
+
column: col,
|
|
360
|
+
operator: 'CONTAINS',
|
|
361
|
+
value: searchTermClean,
|
|
362
|
+
})),
|
|
363
|
+
combinator: 'OR',
|
|
364
|
+
}
|
|
365
|
+
: null;
|
|
366
|
+
debouncedSetSearchQuery(newSearchQuery);
|
|
367
|
+
};
|
|
368
|
+
const onFilter = (newFilters) => {
|
|
369
|
+
if (newFilters.length !== filters.length || !isEqual(newFilters, filters)) {
|
|
370
|
+
setFilters(newFilters);
|
|
371
|
+
}
|
|
372
|
+
return Promise.resolve();
|
|
373
|
+
};
|
|
374
|
+
const onSort = (sort) => {
|
|
375
|
+
if (sort.length !== sortingRules.length || !isEqual(sort, sortingRules)) {
|
|
376
|
+
setSortingRules(sort);
|
|
377
|
+
}
|
|
378
|
+
};
|
|
379
|
+
/**
|
|
380
|
+
* Item getter which also appends whether the row is selected or not
|
|
381
|
+
*
|
|
382
|
+
* @param idx index
|
|
383
|
+
*/
|
|
384
|
+
const getItemWithSelected = useCallback((idx) => {
|
|
385
|
+
const row = getItem(idx);
|
|
386
|
+
if (!row) {
|
|
387
|
+
return undefined;
|
|
388
|
+
}
|
|
389
|
+
return Object.assign(Object.assign({}, row), { selected: (selectedRowIndices !== null && selectedRowIndices !== void 0 ? selectedRowIndices : []).includes(row[INDEX_COL]) });
|
|
390
|
+
}, [getItem, selectedRowIndices]);
|
|
391
|
+
return (_jsxs(TableWrapper, { "$rawCss": css, style: Object.assign({ display: 'flex', flex: '1 1 auto', flexDirection: 'column',
|
|
392
|
+
// Set a min height so at the very least Table shows header and one row
|
|
393
|
+
minHeight: '96px', overflow: 'auto', position: 'relative' }, style), children: [props.searchable && (_jsx(TableSearch, { children: _jsx(Input, { onChange: onSearchChange, placeholder: "Search Table..." }) })), resolvedColumns && (_jsx("div", { style: {
|
|
394
|
+
bottom: 0,
|
|
395
|
+
height: '100%',
|
|
396
|
+
left: 0,
|
|
397
|
+
padding: props.searchable ? '0.5rem 1rem 1rem 1rem' : '1rem',
|
|
398
|
+
position: 'absolute',
|
|
399
|
+
right: 0,
|
|
400
|
+
top: 0,
|
|
401
|
+
}, children: _jsx(UiTable, { columns: columns, getItem: getItemWithSelected, itemCount: totalCount, maxRows: props.max_rows, onAction: onAction, onClickRow: props.onclick_row && onSelect, onFilter: onFilter, onItemsRendered: onItemsRendered, onSort: onSort, style: { padding: 0 } }) }))] }));
|
|
402
|
+
}
|
|
403
|
+
export default Table;
|
|
404
|
+
//# sourceMappingURL=table.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"table.js","sourceRoot":"","sources":["../../../js/common/table/table.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { StyledComponentProps, Variable } from '@darajs/core';
|
|
2
|
+
interface TextProps extends StyledComponentProps {
|
|
3
|
+
bold: boolean;
|
|
4
|
+
className: string;
|
|
5
|
+
formatted?: boolean;
|
|
6
|
+
italic: boolean;
|
|
7
|
+
text: string | Variable<string>;
|
|
8
|
+
underline: boolean;
|
|
9
|
+
}
|
|
10
|
+
declare function Text(props: TextProps): JSX.Element;
|
|
11
|
+
export default Text;
|
|
12
|
+
//# sourceMappingURL=text.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"text.d.ts","sourceRoot":"","sources":["../../../js/common/text/text.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAc,oBAAoB,EAAE,QAAQ,EAA8C,MAAM,cAAc,CAAC;AAGtH,UAAU,SAAU,SAAQ,oBAAoB;IAC5C,IAAI,EAAE,OAAO,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,MAAM,EAAE,OAAO,CAAC;IAChB,IAAI,EAAE,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC;IAChC,SAAS,EAAE,OAAO,CAAC;CACtB;AAKD,iBAAS,IAAI,CAAC,KAAK,EAAE,SAAS,GAAG,GAAG,CAAC,OAAO,CAgD3C;AAED,eAAe,IAAI,CAAC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { useContext } from 'react';
|
|
3
|
+
import { DisplayCtx, injectCss, useComponentStyles, useVariable } from '@darajs/core';
|
|
4
|
+
import { useTheme } from '@darajs/styled-components';
|
|
5
|
+
const StyledSpan = injectCss('span');
|
|
6
|
+
const StyledTag = injectCss('div');
|
|
7
|
+
function Text(props) {
|
|
8
|
+
var _a;
|
|
9
|
+
const [style, css] = useComponentStyles(props);
|
|
10
|
+
const [text] = useVariable(props.text);
|
|
11
|
+
const theme = useTheme();
|
|
12
|
+
// Consume display context, return appropriate text element
|
|
13
|
+
const display_ctx = useContext(DisplayCtx);
|
|
14
|
+
// Add a default to the text color if it's not in a button or anchor
|
|
15
|
+
const color = ['anchor', 'button'].includes(display_ctx.component) ? props.color : props.color || theme.colors.text;
|
|
16
|
+
if (['anchor', 'paragraph'].includes(display_ctx.component)) {
|
|
17
|
+
return (_jsx(StyledSpan, { "$rawCss": css, className: props.className, style: Object.assign(Object.assign({}, style), { border: (_a = props === null || props === void 0 ? void 0 : props.border) !== null && _a !== void 0 ? _a : 'none', color, fontStyle: props.italic ? 'italic' : 'normal', fontWeight: props.bold ? 'bold' : 'normal', marginRight: '0.1em', textAlign: props.align, textDecoration: props.underline ? 'underline' : '' }), children: `${typeof text === 'string' ? text.trimEnd() : text} ` }));
|
|
18
|
+
}
|
|
19
|
+
const tag = props.formatted ? 'pre' : 'div';
|
|
20
|
+
return (_jsx(StyledTag, { "$rawCss": css, as: tag, className: props.className, style: Object.assign(Object.assign({}, style), { color, margin: '0', textAlign: props.align }), children: text }));
|
|
21
|
+
}
|
|
22
|
+
export default Text;
|
|
23
|
+
//# sourceMappingURL=text.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"text.js","sourceRoot":"","sources":["../../../js/common/text/text.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAEnC,OAAO,EAAE,UAAU,EAAkC,SAAS,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AACtH,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAWrD,MAAM,UAAU,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;AACrC,MAAM,SAAS,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC;AAEnC,SAAS,IAAI,CAAC,KAAgB;;IAC1B,MAAM,CAAC,KAAK,EAAE,GAAG,CAAC,GAAG,kBAAkB,CAAC,KAAK,CAAC,CAAC;IAC/C,MAAM,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACvC,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAC;IAEzB,2DAA2D;IAC3D,MAAM,WAAW,GAAG,UAAU,CAAC,UAAU,CAAC,CAAC;IAE3C,oEAAoE;IACpE,MAAM,KAAK,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC;IAEpH,IAAI,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,SAAS,CAAC,EAAE;QACzD,OAAO,CACH,KAAC,UAAU,eACE,GAAG,EACZ,SAAS,EAAE,KAAK,CAAC,SAAS,EAC1B,KAAK,kCACE,KAAK,KACR,MAAM,EAAE,MAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,MAAM,mCAAI,MAAM,EAC/B,KAAK,EACL,SAAS,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,EAC7C,UAAU,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,EAC1C,WAAW,EAAE,OAAO,EACpB,SAAS,EAAE,KAAK,CAAC,KAAK,EACtB,cAAc,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,eAGrD,GAAG,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,IAAI,GAAG,GAC9C,CAChB,CAAC;KACL;IAED,MAAM,GAAG,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC;IAC5C,OAAO,CACH,KAAC,SAAS,eACG,GAAG,EACZ,EAAE,EAAE,GAAG,EACP,SAAS,EAAE,KAAK,CAAC,SAAS,EAC1B,KAAK,kCACE,KAAK,KACR,KAAK,EACL,MAAM,EAAE,GAAG,EACX,SAAS,EAAE,KAAK,CAAC,KAAK,eAGzB,IAAI,GACG,CACf,CAAC;AACN,CAAC;AAED,eAAe,IAAI,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { Variable } from '@darajs/core';
|
|
2
|
+
import { FormComponentProps } from '../types';
|
|
3
|
+
interface TextareaProps extends FormComponentProps {
|
|
4
|
+
/** If true, cursor will start in the textarea */
|
|
5
|
+
autofocus: boolean;
|
|
6
|
+
/** An optional property which sets whether the textarea is resizable, and if so, in which directions */
|
|
7
|
+
resize?: 'none' | 'both' | 'horizontal' | 'vertical' | 'block' | 'inline';
|
|
8
|
+
/** A text variable that supplies the default value and updates when text is entered */
|
|
9
|
+
value?: Variable<string>;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* A component that creates a textarea. The text is stored as a variable and updated as the user types in the
|
|
13
|
+
* given area. If autofocus is true, cursor begins in the textarea.
|
|
14
|
+
*
|
|
15
|
+
* @param {TextareaProps} props - the component props
|
|
16
|
+
*/
|
|
17
|
+
declare function Textarea(props: TextareaProps): JSX.Element;
|
|
18
|
+
export default Textarea;
|
|
19
|
+
//# sourceMappingURL=textarea.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"textarea.d.ts","sourceRoot":"","sources":["../../../js/common/textarea/textarea.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAE,QAAQ,EAAyD,MAAM,cAAc,CAAC;AAI/F,OAAO,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAE9C,UAAU,aAAc,SAAQ,kBAAkB;IAC9C,iDAAiD;IACjD,SAAS,EAAE,OAAO,CAAC;IACnB,wGAAwG;IACxG,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,YAAY,GAAG,UAAU,GAAG,OAAO,GAAG,QAAQ,CAAC;IAC1E,uFAAuF;IAEvF,KAAK,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;CAC5B;AAID;;;;;GAKG;AACH,iBAAS,QAAQ,CAAC,KAAK,EAAE,aAAa,GAAG,GAAG,CAAC,OAAO,CAyCnD;AAED,eAAe,QAAQ,CAAC"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import _debounce from 'lodash/debounce';
|
|
3
|
+
import { useEffect, useMemo, useState } from 'react';
|
|
4
|
+
import { injectCss, useAction, useComponentStyles, useVariable } from '@darajs/core';
|
|
5
|
+
import { Textarea as UITextarea } from '@darajs/ui-components';
|
|
6
|
+
import { useFormContext } from '../context';
|
|
7
|
+
const StyledTextarea = injectCss(UITextarea);
|
|
8
|
+
/**
|
|
9
|
+
* A component that creates a textarea. The text is stored as a variable and updated as the user types in the
|
|
10
|
+
* given area. If autofocus is true, cursor begins in the textarea.
|
|
11
|
+
*
|
|
12
|
+
* @param {TextareaProps} props - the component props
|
|
13
|
+
*/
|
|
14
|
+
function Textarea(props) {
|
|
15
|
+
const formCtx = useFormContext(props);
|
|
16
|
+
const [style, css] = useComponentStyles(props);
|
|
17
|
+
const [value, setValue] = useVariable(formCtx.resolveInitialValue());
|
|
18
|
+
const [internalValue, setInternalValue] = useState(value);
|
|
19
|
+
const [onInputAction] = useAction(props.onchange);
|
|
20
|
+
const debouncedAction = useMemo(() => _debounce(onInputAction, 500), [onInputAction]);
|
|
21
|
+
const debouncedSetValue = useMemo(() => _debounce(setValue, 500), [setValue]);
|
|
22
|
+
const debouncedUpdateForm = useMemo(() => _debounce(formCtx.updateForm, 500), [formCtx.updateForm]);
|
|
23
|
+
function handleChange(val) {
|
|
24
|
+
// immediately update internal state
|
|
25
|
+
setInternalValue(val);
|
|
26
|
+
// debounce the update to the variable and the form to prevent multiple updates being fired at once
|
|
27
|
+
debouncedSetValue(val);
|
|
28
|
+
debouncedAction(val);
|
|
29
|
+
debouncedUpdateForm(val);
|
|
30
|
+
}
|
|
31
|
+
useEffect(() => {
|
|
32
|
+
// cancel in-progress debounced actions to make sure the variable value takes precedence
|
|
33
|
+
debouncedAction.cancel();
|
|
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,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,CAAC,aAAa,CAAC,GAAG,SAAS,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IAElD,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,eAAe,CAAC,MAAM,EAAE,CAAC;QACzB,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,CAsBjD;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
|