@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.
Files changed (294) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +5 -0
  3. package/dist/common/accordion/accordion.d.ts +17 -0
  4. package/dist/common/accordion/accordion.d.ts.map +1 -0
  5. package/dist/common/accordion/accordion.js +34 -0
  6. package/dist/common/accordion/accordion.js.map +1 -0
  7. package/dist/common/anchor/anchor.d.ts +17 -0
  8. package/dist/common/anchor/anchor.d.ts.map +1 -0
  9. package/dist/common/anchor/anchor.js +25 -0
  10. package/dist/common/anchor/anchor.js.map +1 -0
  11. package/dist/common/bullet-list/bullet_list.d.ts +16 -0
  12. package/dist/common/bullet-list/bullet_list.d.ts.map +1 -0
  13. package/dist/common/bullet-list/bullet_list.js +17 -0
  14. package/dist/common/bullet-list/bullet_list.js.map +1 -0
  15. package/dist/common/button/button.d.ts +24 -0
  16. package/dist/common/button/button.d.ts.map +1 -0
  17. package/dist/common/button/button.js +46 -0
  18. package/dist/common/button/button.js.map +1 -0
  19. package/dist/common/button-bar/button-bar.d.ts +22 -0
  20. package/dist/common/button-bar/button-bar.d.ts.map +1 -0
  21. package/dist/common/button-bar/button-bar.js +26 -0
  22. package/dist/common/button-bar/button-bar.js.map +1 -0
  23. package/dist/common/card/card.d.ts +24 -0
  24. package/dist/common/card/card.d.ts.map +1 -0
  25. package/dist/common/card/card.js +54 -0
  26. package/dist/common/card/card.js.map +1 -0
  27. package/dist/common/carousel/carousel.d.ts +27 -0
  28. package/dist/common/carousel/carousel.d.ts.map +1 -0
  29. package/dist/common/carousel/carousel.js +42 -0
  30. package/dist/common/carousel/carousel.js.map +1 -0
  31. package/dist/common/checkbox-group/checkbox-group.d.ts +24 -0
  32. package/dist/common/checkbox-group/checkbox-group.d.ts.map +1 -0
  33. package/dist/common/checkbox-group/checkbox-group.js +36 -0
  34. package/dist/common/checkbox-group/checkbox-group.js.map +1 -0
  35. package/dist/common/code/code.d.ts +15 -0
  36. package/dist/common/code/code.d.ts.map +1 -0
  37. package/dist/common/code/code.js +41 -0
  38. package/dist/common/code/code.js.map +1 -0
  39. package/dist/common/component-select-list/component-select-list.d.ts +23 -0
  40. package/dist/common/component-select-list/component-select-list.d.ts.map +1 -0
  41. package/dist/common/component-select-list/component-select-list.js +29 -0
  42. package/dist/common/component-select-list/component-select-list.js.map +1 -0
  43. package/dist/common/constants.d.ts +19 -0
  44. package/dist/common/constants.d.ts.map +1 -0
  45. package/dist/common/constants.js +21 -0
  46. package/dist/common/constants.js.map +1 -0
  47. package/dist/common/context/form-context.d.ts +21 -0
  48. package/dist/common/context/form-context.d.ts.map +1 -0
  49. package/dist/common/context/form-context.js +28 -0
  50. package/dist/common/context/form-context.js.map +1 -0
  51. package/dist/common/context/index.d.ts +2 -0
  52. package/dist/common/context/index.d.ts.map +1 -0
  53. package/dist/common/context/index.js +2 -0
  54. package/dist/common/context/index.js.map +1 -0
  55. package/dist/common/datepicker/datepicker.d.ts +31 -0
  56. package/dist/common/datepicker/datepicker.d.ts.map +1 -0
  57. package/dist/common/datepicker/datepicker.js +70 -0
  58. package/dist/common/datepicker/datepicker.js.map +1 -0
  59. package/dist/common/dropzone/dropzone.d.ts +19 -0
  60. package/dist/common/dropzone/dropzone.d.ts.map +1 -0
  61. package/dist/common/dropzone/dropzone.js +101 -0
  62. package/dist/common/dropzone/dropzone.js.map +1 -0
  63. package/dist/common/form/form.d.ts +11 -0
  64. package/dist/common/form/form.d.ts.map +1 -0
  65. package/dist/common/form/form.js +46 -0
  66. package/dist/common/form/form.js.map +1 -0
  67. package/dist/common/form-page/form-page.d.ts +12 -0
  68. package/dist/common/form-page/form-page.d.ts.map +1 -0
  69. package/dist/common/form-page/form-page.js +18 -0
  70. package/dist/common/form-page/form-page.js.map +1 -0
  71. package/dist/common/grid/column.d.ts +24 -0
  72. package/dist/common/grid/column.d.ts.map +1 -0
  73. package/dist/common/grid/column.js +22 -0
  74. package/dist/common/grid/column.js.map +1 -0
  75. package/dist/common/grid/grid.d.ts +18 -0
  76. package/dist/common/grid/grid.d.ts.map +1 -0
  77. package/dist/common/grid/grid.js +31 -0
  78. package/dist/common/grid/grid.js.map +1 -0
  79. package/dist/common/grid/row.d.ts +22 -0
  80. package/dist/common/grid/row.d.ts.map +1 -0
  81. package/dist/common/grid/row.js +236 -0
  82. package/dist/common/grid/row.js.map +1 -0
  83. package/dist/common/heading/heading.d.ts +9 -0
  84. package/dist/common/heading/heading.d.ts.map +1 -0
  85. package/dist/common/heading/heading.js +14 -0
  86. package/dist/common/heading/heading.js.map +1 -0
  87. package/dist/common/html-raw/html-raw.d.ts +15 -0
  88. package/dist/common/html-raw/html-raw.d.ts.map +1 -0
  89. package/dist/common/html-raw/html-raw.js +22 -0
  90. package/dist/common/html-raw/html-raw.js.map +1 -0
  91. package/dist/common/icon/icon.d.ts +8 -0
  92. package/dist/common/icon/icon.d.ts.map +1 -0
  93. package/dist/common/icon/icon.js +11 -0
  94. package/dist/common/icon/icon.js.map +1 -0
  95. package/dist/common/if/if.d.ts +27 -0
  96. package/dist/common/if/if.d.ts.map +1 -0
  97. package/dist/common/if/if.js +52 -0
  98. package/dist/common/if/if.js.map +1 -0
  99. package/dist/common/image/image.d.ts +15 -0
  100. package/dist/common/image/image.d.ts.map +1 -0
  101. package/dist/common/image/image.js +21 -0
  102. package/dist/common/image/image.js.map +1 -0
  103. package/dist/common/index.d.ts +43 -0
  104. package/dist/common/index.d.ts.map +1 -0
  105. package/dist/common/index.js +41 -0
  106. package/dist/common/index.js.map +1 -0
  107. package/dist/common/input/input.d.ts +20 -0
  108. package/dist/common/input/input.d.ts.map +1 -0
  109. package/dist/common/input/input.js +45 -0
  110. package/dist/common/input/input.js.map +1 -0
  111. package/dist/common/label/label.d.ts +21 -0
  112. package/dist/common/label/label.d.ts.map +1 -0
  113. package/dist/common/label/label.js +28 -0
  114. package/dist/common/label/label.js.map +1 -0
  115. package/dist/common/markdown/markdown.d.ts +17 -0
  116. package/dist/common/markdown/markdown.d.ts.map +1 -0
  117. package/dist/common/markdown/markdown.js +186 -0
  118. package/dist/common/markdown/markdown.js.map +1 -0
  119. package/dist/common/modal/modal.d.ts +15 -0
  120. package/dist/common/modal/modal.d.ts.map +1 -0
  121. package/dist/common/modal/modal.js +19 -0
  122. package/dist/common/modal/modal.js.map +1 -0
  123. package/dist/common/overlay/overlay.d.ts +16 -0
  124. package/dist/common/overlay/overlay.d.ts.map +1 -0
  125. package/dist/common/overlay/overlay.js +31 -0
  126. package/dist/common/overlay/overlay.js.map +1 -0
  127. package/dist/common/paragraph/paragraph.d.ts +9 -0
  128. package/dist/common/paragraph/paragraph.d.ts.map +1 -0
  129. package/dist/common/paragraph/paragraph.js +10 -0
  130. package/dist/common/paragraph/paragraph.js.map +1 -0
  131. package/dist/common/progress-bar/progress-bar.d.ts +17 -0
  132. package/dist/common/progress-bar/progress-bar.d.ts.map +1 -0
  133. package/dist/common/progress-bar/progress-bar.js +23 -0
  134. package/dist/common/progress-bar/progress-bar.js.map +1 -0
  135. package/dist/common/radio-group/radio-group.d.ts +21 -0
  136. package/dist/common/radio-group/radio-group.d.ts.map +1 -0
  137. package/dist/common/radio-group/radio-group.js +28 -0
  138. package/dist/common/radio-group/radio-group.js.map +1 -0
  139. package/dist/common/select/select.d.ts +31 -0
  140. package/dist/common/select/select.d.ts.map +1 -0
  141. package/dist/common/select/select.js +105 -0
  142. package/dist/common/select/select.js.map +1 -0
  143. package/dist/common/slider/slider.d.ts +29 -0
  144. package/dist/common/slider/slider.d.ts.map +1 -0
  145. package/dist/common/slider/slider.js +38 -0
  146. package/dist/common/slider/slider.js.map +1 -0
  147. package/dist/common/spacer/spacer.d.ts +10 -0
  148. package/dist/common/spacer/spacer.d.ts.map +1 -0
  149. package/dist/common/spacer/spacer.js +30 -0
  150. package/dist/common/spacer/spacer.js.map +1 -0
  151. package/dist/common/stack/stack.d.ts +14 -0
  152. package/dist/common/stack/stack.d.ts.map +1 -0
  153. package/dist/common/stack/stack.js +49 -0
  154. package/dist/common/stack/stack.js.map +1 -0
  155. package/dist/common/switch/switch.d.ts +14 -0
  156. package/dist/common/switch/switch.d.ts.map +1 -0
  157. package/dist/common/switch/switch.js +30 -0
  158. package/dist/common/switch/switch.js.map +1 -0
  159. package/dist/common/tabbed-card/tabbed-card.d.ts +24 -0
  160. package/dist/common/tabbed-card/tabbed-card.d.ts.map +1 -0
  161. package/dist/common/tabbed-card/tabbed-card.js +61 -0
  162. package/dist/common/tabbed-card/tabbed-card.js.map +1 -0
  163. package/dist/common/table/cells/adaptive-precision-cell.d.ts +9 -0
  164. package/dist/common/table/cells/adaptive-precision-cell.d.ts.map +1 -0
  165. package/dist/common/table/cells/adaptive-precision-cell.js +30 -0
  166. package/dist/common/table/cells/adaptive-precision-cell.js.map +1 -0
  167. package/dist/common/table/cells/badge-formatter-cell.d.ts +19 -0
  168. package/dist/common/table/cells/badge-formatter-cell.d.ts.map +1 -0
  169. package/dist/common/table/cells/badge-formatter-cell.js +16 -0
  170. package/dist/common/table/cells/badge-formatter-cell.js.map +1 -0
  171. package/dist/common/table/cells/code-cell.d.ts +12 -0
  172. package/dist/common/table/cells/code-cell.d.ts.map +1 -0
  173. package/dist/common/table/cells/code-cell.js +19 -0
  174. package/dist/common/table/cells/code-cell.js.map +1 -0
  175. package/dist/common/table/cells/compare-cell.d.ts +13 -0
  176. package/dist/common/table/cells/compare-cell.d.ts.map +1 -0
  177. package/dist/common/table/cells/compare-cell.js +34 -0
  178. package/dist/common/table/cells/compare-cell.js.map +1 -0
  179. package/dist/common/table/cells/formatted-text-cell.d.ts +9 -0
  180. package/dist/common/table/cells/formatted-text-cell.d.ts.map +1 -0
  181. package/dist/common/table/cells/formatted-text-cell.js +15 -0
  182. package/dist/common/table/cells/formatted-text-cell.js.map +1 -0
  183. package/dist/common/table/cells/index.d.ts +11 -0
  184. package/dist/common/table/cells/index.d.ts.map +1 -0
  185. package/dist/common/table/cells/index.js +11 -0
  186. package/dist/common/table/cells/index.js.map +1 -0
  187. package/dist/common/table/cells/link-cell.d.ts +10 -0
  188. package/dist/common/table/cells/link-cell.d.ts.map +1 -0
  189. package/dist/common/table/cells/link-cell.js +15 -0
  190. package/dist/common/table/cells/link-cell.js.map +1 -0
  191. package/dist/common/table/cells/number-cell.d.ts +11 -0
  192. package/dist/common/table/cells/number-cell.d.ts.map +1 -0
  193. package/dist/common/table/cells/number-cell.js +16 -0
  194. package/dist/common/table/cells/number-cell.js.map +1 -0
  195. package/dist/common/table/cells/number-intl-cell.d.ts +11 -0
  196. package/dist/common/table/cells/number-intl-cell.d.ts.map +1 -0
  197. package/dist/common/table/cells/number-intl-cell.js +16 -0
  198. package/dist/common/table/cells/number-intl-cell.js.map +1 -0
  199. package/dist/common/table/cells/percentage-cell.d.ts +11 -0
  200. package/dist/common/table/cells/percentage-cell.d.ts.map +1 -0
  201. package/dist/common/table/cells/percentage-cell.js +16 -0
  202. package/dist/common/table/cells/percentage-cell.js.map +1 -0
  203. package/dist/common/table/cells/threshold-formatted-cell.d.ts +15 -0
  204. package/dist/common/table/cells/threshold-formatted-cell.d.ts.map +1 -0
  205. package/dist/common/table/cells/threshold-formatted-cell.js +20 -0
  206. package/dist/common/table/cells/threshold-formatted-cell.js.map +1 -0
  207. package/dist/common/table/table.d.ts +56 -0
  208. package/dist/common/table/table.d.ts.map +1 -0
  209. package/dist/common/table/table.js +404 -0
  210. package/dist/common/table/table.js.map +1 -0
  211. package/dist/common/text/text.d.ts +12 -0
  212. package/dist/common/text/text.d.ts.map +1 -0
  213. package/dist/common/text/text.js +23 -0
  214. package/dist/common/text/text.js.map +1 -0
  215. package/dist/common/textarea/textarea.d.ts +19 -0
  216. package/dist/common/textarea/textarea.d.ts.map +1 -0
  217. package/dist/common/textarea/textarea.js +42 -0
  218. package/dist/common/textarea/textarea.js.map +1 -0
  219. package/dist/common/tooltip/tooltip.d.ts +18 -0
  220. package/dist/common/tooltip/tooltip.d.ts.map +1 -0
  221. package/dist/common/tooltip/tooltip.js +18 -0
  222. package/dist/common/tooltip/tooltip.js.map +1 -0
  223. package/dist/common/types.d.ts +26 -0
  224. package/dist/common/types.d.ts.map +1 -0
  225. package/dist/common/types.js +9 -0
  226. package/dist/common/types.js.map +1 -0
  227. package/dist/dara_components-1.0.0a1-py3-none-any.whl +0 -0
  228. package/dist/graphs/causal-graph-viewer.d.ts +50 -0
  229. package/dist/graphs/causal-graph-viewer.d.ts.map +1 -0
  230. package/dist/graphs/causal-graph-viewer.js +32 -0
  231. package/dist/graphs/causal-graph-viewer.js.map +1 -0
  232. package/dist/graphs/graph-layout.d.ts +60 -0
  233. package/dist/graphs/graph-layout.d.ts.map +1 -0
  234. package/dist/graphs/graph-layout.js +110 -0
  235. package/dist/graphs/graph-layout.js.map +1 -0
  236. package/dist/graphs/index.d.ts +4 -0
  237. package/dist/graphs/index.d.ts.map +1 -0
  238. package/dist/graphs/index.js +4 -0
  239. package/dist/graphs/index.js.map +1 -0
  240. package/dist/graphs/node-hierarchy-builder.d.ts +24 -0
  241. package/dist/graphs/node-hierarchy-builder.d.ts.map +1 -0
  242. package/dist/graphs/node-hierarchy-builder.js +40 -0
  243. package/dist/graphs/node-hierarchy-builder.js.map +1 -0
  244. package/dist/graphs/visual-edge-encoder.d.ts +32 -0
  245. package/dist/graphs/visual-edge-encoder.d.ts.map +1 -0
  246. package/dist/graphs/visual-edge-encoder.js +84 -0
  247. package/dist/graphs/visual-edge-encoder.js.map +1 -0
  248. package/dist/index.d.ts +5 -0
  249. package/dist/index.d.ts.map +1 -0
  250. package/dist/index.js +5 -0
  251. package/dist/index.js.map +1 -0
  252. package/dist/plotting/bokeh/bokeh.d.ts +28 -0
  253. package/dist/plotting/bokeh/bokeh.d.ts.map +1 -0
  254. package/dist/plotting/bokeh/bokeh.js +125 -0
  255. package/dist/plotting/bokeh/bokeh.js.map +1 -0
  256. package/dist/plotting/index.d.ts +4 -0
  257. package/dist/plotting/index.d.ts.map +1 -0
  258. package/dist/plotting/index.js +5 -0
  259. package/dist/plotting/index.js.map +1 -0
  260. package/dist/plotting/matplotlib/matplotlib.d.ts +12 -0
  261. package/dist/plotting/matplotlib/matplotlib.d.ts.map +1 -0
  262. package/dist/plotting/matplotlib/matplotlib.js +14 -0
  263. package/dist/plotting/matplotlib/matplotlib.js.map +1 -0
  264. package/dist/plotting/plotly/plotly.d.ts +60 -0
  265. package/dist/plotting/plotly/plotly.d.ts.map +1 -0
  266. package/dist/plotting/plotly/plotly.js +233 -0
  267. package/dist/plotting/plotly/plotly.js.map +1 -0
  268. package/dist/smart/code-editor.d.ts +11 -0
  269. package/dist/smart/code-editor.d.ts.map +1 -0
  270. package/dist/smart/code-editor.js +15 -0
  271. package/dist/smart/code-editor.js.map +1 -0
  272. package/dist/smart/data-slicer-filter/data-slicer-filter.d.ts +47 -0
  273. package/dist/smart/data-slicer-filter/data-slicer-filter.d.ts.map +1 -0
  274. package/dist/smart/data-slicer-filter/data-slicer-filter.js +123 -0
  275. package/dist/smart/data-slicer-filter/data-slicer-filter.js.map +1 -0
  276. package/dist/smart/filter-status-button/filter-status-button.d.ts +14 -0
  277. package/dist/smart/filter-status-button/filter-status-button.d.ts.map +1 -0
  278. package/dist/smart/filter-status-button/filter-status-button.js +49 -0
  279. package/dist/smart/filter-status-button/filter-status-button.js.map +1 -0
  280. package/dist/smart/hierarchy-selector/hierarchy-selector.d.ts +23 -0
  281. package/dist/smart/hierarchy-selector/hierarchy-selector.d.ts.map +1 -0
  282. package/dist/smart/hierarchy-selector/hierarchy-selector.js +17 -0
  283. package/dist/smart/hierarchy-selector/hierarchy-selector.js.map +1 -0
  284. package/dist/smart/hierarchy-viewer/hierarchy-viewer.d.ts +16 -0
  285. package/dist/smart/hierarchy-viewer/hierarchy-viewer.d.ts.map +1 -0
  286. package/dist/smart/hierarchy-viewer/hierarchy-viewer.js +17 -0
  287. package/dist/smart/hierarchy-viewer/hierarchy-viewer.js.map +1 -0
  288. package/dist/smart/index.d.ts +6 -0
  289. package/dist/smart/index.d.ts.map +1 -0
  290. package/dist/smart/index.js +7 -0
  291. package/dist/smart/index.js.map +1 -0
  292. package/dist/umd/dara.components.umd.js +386628 -0
  293. package/dist/umd/style.css +745 -0
  294. 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