@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 @@
1
+ {"version":3,"file":"carousel.d.ts","sourceRoot":"","sources":["../../../js/common/carousel/carousel.tsx"],"names":[],"mappings":"AAEA,OAAO,EACH,MAAM,EACN,iBAAiB,EAEjB,oBAAoB,EACpB,QAAQ,EAKX,MAAM,cAAc,CAAC;AACtB,OAAO,EAA0B,YAAY,IAAI,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAE/F,UAAU,YAAa,SAAQ,IAAI,CAAC,cAAc,EAAE,WAAW,CAAC;IAC5D,SAAS,CAAC,EAAE,iBAAiB,CAAC;IAC9B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;CACxB;AACD,UAAU,aAAc,SAAQ,oBAAoB;IAChD,0CAA0C;IAC1C,SAAS,EAAE,MAAM,CAAC;IAClB,mCAAmC;IACnC,KAAK,EAAE,KAAK,CAAC,YAAY,CAAC,GAAG,QAAQ,CAAC,YAAY,EAAE,CAAC,CAAC;IACtD,6DAA6D;IAC7D,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,gCAAgC;IAChC,KAAK,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;CAC5B;AAID;;;;;GAKG;AACH,iBAAS,QAAQ,CAAC,KAAK,EAAE,aAAa,GAAG,GAAG,CAAC,OAAO,CA8CnD;AAED,eAAe,QAAQ,CAAC"}
@@ -0,0 +1,42 @@
1
+ var __rest = (this && this.__rest) || function (s, e) {
2
+ var t = {};
3
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
4
+ t[p] = s[p];
5
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
6
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
7
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
8
+ t[p[i]] = s[p[i]];
9
+ }
10
+ return t;
11
+ };
12
+ import { jsx as _jsx } from "react/jsx-runtime";
13
+ import { useMemo } from 'react';
14
+ import { DynamicComponent, injectCss, useAction, useComponentStyles, useVariable, } from '@darajs/core';
15
+ import { Carousel as UICarousel } from '@darajs/ui-components';
16
+ const StyledCarousel = injectCss(UICarousel);
17
+ /**
18
+ * The carousel component accepts a list of Items and displays them in a standard carousel format, beginning with the
19
+ * first item in the list.
20
+ *
21
+ * @param props the component props
22
+ */
23
+ function Carousel(props) {
24
+ const [items] = useVariable(props.items);
25
+ const [value, setValue] = useVariable(props.value);
26
+ const [onCarouselAction] = useAction(props.onchange);
27
+ function handleChange(val) {
28
+ setValue(val);
29
+ onCarouselAction(val);
30
+ }
31
+ const remappedItems = useMemo(() => items.map((item) => {
32
+ const { component } = item, rest = __rest(item, ["component"]);
33
+ if (component) {
34
+ return Object.assign(Object.assign({}, rest), { component: _jsx(DynamicComponent, { component: component }), imageAlt: item.image_alt, imageHeight: item.image_height, imageWidth: item.image_width });
35
+ }
36
+ return Object.assign(Object.assign({}, rest), { imageAlt: item.image_alt, imageHeight: item.image_height, imageWidth: item.image_width });
37
+ }), [items]);
38
+ const [style, css] = useComponentStyles(props);
39
+ return (_jsx(StyledCarousel, { "$rawCss": css, className: props.className, items: remappedItems, onChange: handleChange, style: style, value: value }));
40
+ }
41
+ export default Carousel;
42
+ //# sourceMappingURL=carousel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"carousel.js","sourceRoot":"","sources":["../../../js/common/carousel/carousel.tsx"],"names":[],"mappings":";;;;;;;;;;;;AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAEhC,OAAO,EAGH,gBAAgB,EAGhB,SAAS,EACT,SAAS,EACT,kBAAkB,EAClB,WAAW,GACd,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAkC,MAAM,uBAAuB,CAAC;AAmB/F,MAAM,cAAc,GAAG,SAAS,CAAC,UAAU,CAAC,CAAC;AAE7C;;;;;GAKG;AACH,SAAS,QAAQ,CAAC,KAAoB;IAClC,MAAM,CAAC,KAAK,CAAC,GAAG,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACzC,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACnD,MAAM,CAAC,gBAAgB,CAAC,GAAG,SAAS,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IAErD,SAAS,YAAY,CAAC,GAAW;QAC7B,QAAQ,CAAC,GAAG,CAAC,CAAC;QACd,gBAAgB,CAAC,GAAG,CAAC,CAAC;IAC1B,CAAC;IAED,MAAM,aAAa,GAAG,OAAO,CACzB,GAAG,EAAE,CACD,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QACf,MAAM,EAAE,SAAS,KAAc,IAAI,EAAb,IAAI,UAAK,IAAI,EAA7B,aAAsB,CAAO,CAAC;QAEpC,IAAI,SAAS,EAAE;YACX,uCACO,IAAI,KACP,SAAS,EAAE,KAAC,gBAAgB,IAAC,SAAS,EAAE,SAAS,GAAI,EACrD,QAAQ,EAAE,IAAI,CAAC,SAAS,EACxB,WAAW,EAAE,IAAI,CAAC,YAAY,EAC9B,UAAU,EAAE,IAAI,CAAC,WAAW,IAC9B;SACL;QAED,uCACO,IAAI,KACP,QAAQ,EAAE,IAAI,CAAC,SAAS,EACxB,WAAW,EAAE,IAAI,CAAC,YAAY,EAC9B,UAAU,EAAE,IAAI,CAAC,WAAW,IAC9B;IACN,CAAC,CAAC,EACN,CAAC,KAAK,CAAC,CACV,CAAC;IAEF,MAAM,CAAC,KAAK,EAAE,GAAG,CAAC,GAAG,kBAAkB,CAAC,KAAK,CAAC,CAAC;IAC/C,OAAO,CACH,KAAC,cAAc,eACF,GAAG,EACZ,SAAS,EAAE,KAAK,CAAC,SAAS,EAC1B,KAAK,EAAE,aAAa,EACpB,QAAQ,EAAE,YAAY,EACtB,KAAK,EAAE,KAAK,EACZ,KAAK,EAAE,KAAK,GACd,CACL,CAAC;AACN,CAAC;AAED,eAAe,QAAQ,CAAC"}
@@ -0,0 +1,24 @@
1
+ import { Variable } from '@darajs/core';
2
+ import { Item } from '@darajs/ui-components';
3
+ import { FormComponentProps } from '../types';
4
+ interface CheckboxGroupProps extends FormComponentProps {
5
+ /** Pass through the className property */
6
+ className: string;
7
+ /** The list of items to choose from */
8
+ items: Array<Item> | Variable<Item[]>;
9
+ /** Whether to show checkboxes in list style */
10
+ list_styling: boolean;
11
+ /** The number of items that can be selected at one time */
12
+ select_max: number;
13
+ /** The minimum number of items that should be selected at one time */
14
+ select_min: number;
15
+ }
16
+ /**
17
+ * The CheckboxGroup component allows users to choose from a list of checkboxes. Checkboxes can also have a maximum number of
18
+ * items which may be selected at one given time.
19
+ *
20
+ * @param props the component props
21
+ */
22
+ declare function CheckboxGroup(props: CheckboxGroupProps): JSX.Element;
23
+ export default CheckboxGroup;
24
+ //# sourceMappingURL=checkbox-group.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"checkbox-group.d.ts","sourceRoot":"","sources":["../../../js/common/checkbox-group/checkbox-group.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAyD,MAAM,cAAc,CAAC;AAC/F,OAAO,EAAE,IAAI,EAA+B,MAAM,uBAAuB,CAAC;AAG1E,OAAO,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAI9C,UAAU,kBAAmB,SAAQ,kBAAkB;IACnD,0CAA0C;IAC1C,SAAS,EAAE,MAAM,CAAC;IAClB,uCAAuC;IACvC,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;IACtC,+CAA+C;IAC/C,YAAY,EAAE,OAAO,CAAC;IACtB,2DAA2D;IAC3D,UAAU,EAAE,MAAM,CAAC;IACnB,sEAAsE;IACtE,UAAU,EAAE,MAAM,CAAC;CACtB;AAID;;;;;GAKG;AACH,iBAAS,aAAa,CAAC,KAAK,EAAE,kBAAkB,GAAG,GAAG,CAAC,OAAO,CAqC7D;AAED,eAAe,aAAa,CAAC"}
@@ -0,0 +1,36 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { useCallback } from 'react';
3
+ import { injectCss, useAction, useComponentStyles, useVariable } from '@darajs/core';
4
+ import { CheckboxGroup as UiCheckbox } from '@darajs/ui-components';
5
+ import { useFormContext } from '../context';
6
+ const StyledCheckbox = injectCss(UiCheckbox);
7
+ // Disabling rules-of-hook as the assumption is that props changing the type of the select won't change
8
+ /* eslint-disable react-hooks/rules-of-hooks */
9
+ /**
10
+ * The CheckboxGroup component allows users to choose from a list of checkboxes. Checkboxes can also have a maximum number of
11
+ * items which may be selected at one given time.
12
+ *
13
+ * @param props the component props
14
+ */
15
+ function CheckboxGroup(props) {
16
+ const formCtx = useFormContext(props);
17
+ const [items] = useVariable(props.items);
18
+ const [value, setValue] = useVariable(formCtx.resolveInitialValue([]));
19
+ const [style, css] = useComponentStyles(props);
20
+ const [onChangeAction] = useAction(props.onchange);
21
+ const onChange = useCallback((values) => {
22
+ let newValues;
23
+ if (Array.isArray(values)) {
24
+ newValues = values.map((item) => item.value);
25
+ }
26
+ else {
27
+ newValues = values.value;
28
+ }
29
+ setValue(newValues);
30
+ onChangeAction(newValues);
31
+ formCtx.updateForm(newValues);
32
+ }, [setValue]);
33
+ return (_jsx(StyledCheckbox, { "$rawCss": css, className: props.className, isListStyle: props.list_styling, items: items, onChange: onChange, selectMax: props.select_max, selectMin: props.select_min, style: style, values: items.filter((item) => value.includes(item.value)) }));
34
+ }
35
+ export default CheckboxGroup;
36
+ //# sourceMappingURL=checkbox-group.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"checkbox-group.js","sourceRoot":"","sources":["../../../js/common/checkbox-group/checkbox-group.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AAEpC,OAAO,EAAY,SAAS,EAAE,SAAS,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC/F,OAAO,EAAQ,aAAa,IAAI,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAE1E,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAG5C,MAAM,cAAc,GAAG,SAAS,CAAC,UAAU,CAAC,CAAC;AAe7C,uGAAuG;AACvG,+CAA+C;AAC/C;;;;;GAKG;AACH,SAAS,aAAa,CAAC,KAAyB;IAC5C,MAAM,OAAO,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;IACtC,MAAM,CAAC,KAAK,CAAC,GAAG,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACzC,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,WAAW,CAAC,OAAO,CAAC,mBAAmB,CAAC,EAAE,CAAC,CAAC,CAAC;IACvE,MAAM,CAAC,KAAK,EAAE,GAAG,CAAC,GAAG,kBAAkB,CAAC,KAAK,CAAC,CAAC;IAC/C,MAAM,CAAC,cAAc,CAAC,GAAG,SAAS,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IAEnD,MAAM,QAAQ,GAAG,WAAW,CACxB,CAAC,MAA0B,EAAE,EAAE;QAC3B,IAAI,SAAS,CAAC;QAEd,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;YACvB,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SAChD;aAAM;YACH,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC;SAC5B;QAED,QAAQ,CAAC,SAAS,CAAC,CAAC;QACpB,cAAc,CAAC,SAAS,CAAC,CAAC;QAC1B,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;IAClC,CAAC,EACD,CAAC,QAAQ,CAAC,CACb,CAAC;IAEF,OAAO,CACH,KAAC,cAAc,eACF,GAAG,EACZ,SAAS,EAAE,KAAK,CAAC,SAAS,EAC1B,WAAW,EAAE,KAAK,CAAC,YAAY,EAC/B,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,QAAQ,EAClB,SAAS,EAAE,KAAK,CAAC,UAAU,EAC3B,SAAS,EAAE,KAAK,CAAC,UAAU,EAC3B,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,IAAU,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,GAClE,CACL,CAAC;AACN,CAAC;AAED,eAAe,aAAa,CAAC"}
@@ -0,0 +1,15 @@
1
+ import { Language } from 'prism-react-renderer';
2
+ import { StyledComponentProps, Variable } from '@darajs/core';
3
+ declare enum CodeComponentThemes {
4
+ DARK = "dark",
5
+ LIGHT = "light"
6
+ }
7
+ interface CodeProps extends StyledComponentProps {
8
+ className: string;
9
+ code: string | Variable<string>;
10
+ language: Language;
11
+ theme?: CodeComponentThemes;
12
+ }
13
+ declare function Code(props: CodeProps): JSX.Element;
14
+ export default Code;
15
+ //# sourceMappingURL=code.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"code.d.ts","sourceRoot":"","sources":["../../../js/common/code/code.tsx"],"names":[],"mappings":"AAAA,OAAkB,EAAE,QAAQ,EAA4B,MAAM,sBAAsB,CAAC;AAIrF,OAAO,EAAE,oBAAoB,EAAE,QAAQ,EAA8C,MAAM,cAAc,CAAC;AAG1G,aAAK,mBAAmB;IACpB,IAAI,SAAS;IACb,KAAK,UAAU;CAClB;AAED,UAAU,SAAU,SAAQ,oBAAoB;IAC5C,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC;IAChC,QAAQ,EAAE,QAAQ,CAAC;IACnB,KAAK,CAAC,EAAE,mBAAmB,CAAC;CAC/B;AAiBD,iBAAS,IAAI,CAAC,KAAK,EAAE,SAAS,GAAG,GAAG,CAAC,OAAO,CAyC3C;AAED,eAAe,IAAI,CAAC"}
@@ -0,0 +1,41 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { createElement as _createElement } from "react";
3
+ import Highlight, { defaultProps } from 'prism-react-renderer';
4
+ import duotoneDark from 'prism-react-renderer/themes/duotoneDark';
5
+ import duotoneLight from 'prism-react-renderer/themes/duotoneLight';
6
+ import { injectCss, useComponentStyles, useVariable } from '@darajs/core';
7
+ import styled, { darkTheme, theme, useTheme } from '@darajs/styled-components';
8
+ var CodeComponentThemes;
9
+ (function (CodeComponentThemes) {
10
+ CodeComponentThemes["DARK"] = "dark";
11
+ CodeComponentThemes["LIGHT"] = "light";
12
+ })(CodeComponentThemes || (CodeComponentThemes = {}));
13
+ const StyledPre = styled.pre `
14
+ min-width: fit-content;
15
+ margin: 0;
16
+ padding: 1rem;
17
+
18
+ background-color: ${(props) => (props.isLightTheme ? theme.colors.blue1 : darkTheme.colors.blue1)} !important;
19
+ border-radius: 0.25rem;
20
+ `;
21
+ const StyledCode = injectCss(StyledPre);
22
+ function Code(props) {
23
+ const themeCtx = useTheme();
24
+ const [rootStyle, css] = useComponentStyles(props);
25
+ const [code] = useVariable(props.code);
26
+ function getTheme() {
27
+ if (props.theme) {
28
+ if (props.theme === CodeComponentThemes.LIGHT) {
29
+ return duotoneLight;
30
+ }
31
+ return duotoneDark;
32
+ }
33
+ if (themeCtx.themeType === 'dark') {
34
+ return duotoneDark;
35
+ }
36
+ return duotoneLight;
37
+ }
38
+ return (_jsx(Highlight, Object.assign({}, defaultProps, { code: code, language: props.language, theme: getTheme(), children: ({ className, style, tokens, getLineProps, getTokenProps }) => (_jsx(StyledCode, { "$rawCss": css, className: className, isLightTheme: props.theme !== 'dark', style: Object.assign(Object.assign({}, rootStyle), style), children: tokens.map((line, i) => (_createElement("div", Object.assign({}, getLineProps({ key: i, line }), { key: i }), line.map((token, key) => (_createElement("span", Object.assign({}, getTokenProps({ key, token }), { key: key }))))))) })) })));
39
+ }
40
+ export default Code;
41
+ //# sourceMappingURL=code.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"code.js","sourceRoot":"","sources":["../../../js/common/code/code.tsx"],"names":[],"mappings":";;AAAA,OAAO,SAAS,EAAE,EAAwB,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACrF,OAAO,WAAW,MAAM,yCAAyC,CAAC;AAClE,OAAO,YAAY,MAAM,0CAA0C,CAAC;AAEpE,OAAO,EAAkC,SAAS,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC1G,OAAO,MAAM,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAE/E,IAAK,mBAGJ;AAHD,WAAK,mBAAmB;IACpB,oCAAa,CAAA;IACb,sCAAe,CAAA;AACnB,CAAC,EAHI,mBAAmB,KAAnB,mBAAmB,QAGvB;AAaD,MAAM,SAAS,GAAG,MAAM,CAAC,GAAG,CAAgB;;;;;wBAKpB,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC;;CAEpG,CAAC;AAEF,MAAM,UAAU,GAAG,SAAS,CAAC,SAAS,CAAC,CAAC;AAExC,SAAS,IAAI,CAAC,KAAgB;IAC1B,MAAM,QAAQ,GAAG,QAAQ,EAAE,CAAC;IAC5B,MAAM,CAAC,SAAS,EAAE,GAAG,CAAC,GAAG,kBAAkB,CAAC,KAAK,CAAC,CAAC;IACnD,MAAM,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAEvC,SAAS,QAAQ;QACb,IAAI,KAAK,CAAC,KAAK,EAAE;YACb,IAAI,KAAK,CAAC,KAAK,KAAK,mBAAmB,CAAC,KAAK,EAAE;gBAC3C,OAAO,YAAY,CAAC;aACvB;YACD,OAAO,WAAW,CAAC;SACtB;QACD,IAAI,QAAQ,CAAC,SAAS,KAAK,MAAM,EAAE;YAC/B,OAAO,WAAW,CAAC;SACtB;QACD,OAAO,YAAY,CAAC;IACxB,CAAC;IAED,OAAO,CACH,KAAC,SAAS,oBAAK,YAAY,IAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,YAC/E,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,aAAa,EAAE,EAAE,EAAE,CAAC,CAC5D,KAAC,UAAU,eACE,GAAG,EACZ,SAAS,EAAE,SAAS,EACpB,YAAY,EAAE,KAAK,CAAC,KAAK,KAAK,MAAM,EACpC,KAAK,kCACE,SAAS,GACT,KAAK,aAGX,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,CACrB,wCAAS,YAAY,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,IAAE,GAAG,EAAE,CAAC,KAC1C,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE,CAAC,CACtB,yCAAU,aAAa,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,IAAE,GAAG,EAAE,GAAG,IAAI,CACxD,CAAC,CACA,CACT,CAAC,GACO,CAChB,IACO,CACf,CAAC;AACN,CAAC;AAED,eAAe,IAAI,CAAC"}
@@ -0,0 +1,23 @@
1
+ import { Action, StyledComponentProps, Variable } from '@darajs/core';
2
+ import { ComponentItem } from '../types';
3
+ interface ComponentSelectListProps extends StyledComponentProps {
4
+ /** The items to display, each should have a title, subtitle and component */
5
+ items: Array<ComponentItem>;
6
+ /** An optional prop to specify the number of items per row, 3 by default */
7
+ items_per_row?: number;
8
+ /** An optional flag for allowing selecting multiple cards, false by default */
9
+ multi_select?: boolean;
10
+ /** An optional Action for listening to changes in the selected items */
11
+ on_select?: Action;
12
+ /** The optional selected items, can be an array of titles if multiSelect is true otherwise a title */
13
+ selected_items?: Variable<Array<string> | string>;
14
+ }
15
+ /**
16
+ * The ComponentSelectList component creates a list of card of selectable cards containing either images or plots.
17
+ * The plot should be passed as a component instance.
18
+ *
19
+ * @param {ComponentSelectListProps} props - the component props
20
+ */
21
+ declare function ComponentSelectList(props: ComponentSelectListProps): JSX.Element;
22
+ export default ComponentSelectList;
23
+ //# sourceMappingURL=component-select-list.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"component-select-list.d.ts","sourceRoot":"","sources":["../../../js/common/component-select-list/component-select-list.tsx"],"names":[],"mappings":"AAGA,OAAO,EACH,MAAM,EAEN,oBAAoB,EACpB,QAAQ,EAKX,MAAM,cAAc,CAAC;AAGtB,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,UAAU,wBAAyB,SAAQ,oBAAoB;IAC3D,6EAA6E;IAC7E,KAAK,EAAE,KAAK,CAAC,aAAa,CAAC,CAAC;IAC5B,4EAA4E;IAC5E,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,+EAA+E;IAC/E,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,wEAAwE;IACxE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,sGAAsG;IACtG,cAAc,CAAC,EAAE,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC;CACrD;AAID;;;;;GAKG;AACH,iBAAS,mBAAmB,CAAC,KAAK,EAAE,wBAAwB,GAAG,GAAG,CAAC,OAAO,CA8BzE;AAED,eAAe,mBAAmB,CAAC"}
@@ -0,0 +1,29 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import castArray from 'lodash/castArray';
3
+ import { useCallback } from 'react';
4
+ import { DynamicComponent, injectCss, useAction, useComponentStyles, useVariable, } from '@darajs/core';
5
+ import { ComponentSelectList as UIComponentSelectList } from '@darajs/ui-components';
6
+ const StyledComponentSelectList = injectCss(UIComponentSelectList);
7
+ /**
8
+ * The ComponentSelectList component creates a list of card of selectable cards containing either images or plots.
9
+ * The plot should be passed as a component instance.
10
+ *
11
+ * @param {ComponentSelectListProps} props - the component props
12
+ */
13
+ function ComponentSelectList(props) {
14
+ const [style, css] = useComponentStyles(props);
15
+ const [selectedItems, setSelectedItems] = useVariable(props.selected_items);
16
+ const [onSelect] = useAction(props.on_select);
17
+ const updateSelectedItems = useCallback((items) => {
18
+ const newSelectedItems = props.multi_select ? items : items[0] || null;
19
+ setSelectedItems === null || setSelectedItems === void 0 ? void 0 : setSelectedItems(newSelectedItems);
20
+ onSelect === null || onSelect === void 0 ? void 0 : onSelect(newSelectedItems);
21
+ }, [onSelect, props.multi_select, setSelectedItems]);
22
+ // Replacing the plots with Dynamic Component with the plot as its component
23
+ const remappedItems = props.items.map((item) => {
24
+ return Object.assign(Object.assign({}, item), { component: _jsx(DynamicComponent, { component: item.component }) });
25
+ });
26
+ return (_jsx(StyledComponentSelectList, { "$rawCss": css, items: remappedItems, itemsPerRow: props.items_per_row, multiSelect: props.multi_select, onSelect: updateSelectedItems, selectedItems: selectedItems && castArray(selectedItems), style: style }));
27
+ }
28
+ export default ComponentSelectList;
29
+ //# sourceMappingURL=component-select-list.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"component-select-list.js","sourceRoot":"","sources":["../../../js/common/component-select-list/component-select-list.tsx"],"names":[],"mappings":";AAAA,OAAO,SAAS,MAAM,kBAAkB,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AAEpC,OAAO,EAEH,gBAAgB,EAGhB,SAAS,EACT,SAAS,EACT,kBAAkB,EAClB,WAAW,GACd,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,mBAAmB,IAAI,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAiBrF,MAAM,yBAAyB,GAAG,SAAS,CAAC,qBAAqB,CAAC,CAAC;AAEnE;;;;;GAKG;AACH,SAAS,mBAAmB,CAAC,KAA+B;IACxD,MAAM,CAAC,KAAK,EAAE,GAAG,CAAC,GAAG,kBAAkB,CAAC,KAAK,CAAC,CAAC;IAC/C,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAG,WAAW,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;IAC5E,MAAM,CAAC,QAAQ,CAAC,GAAG,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IAE9C,MAAM,mBAAmB,GAAG,WAAW,CACnC,CAAC,KAAoB,EAAQ,EAAE;QAC3B,MAAM,gBAAgB,GAAG,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;QACvE,gBAAgB,aAAhB,gBAAgB,uBAAhB,gBAAgB,CAAG,gBAAgB,CAAC,CAAC;QACrC,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAG,gBAAgB,CAAC,CAAC;IACjC,CAAC,EACD,CAAC,QAAQ,EAAE,KAAK,CAAC,YAAY,EAAE,gBAAgB,CAAC,CACnD,CAAC;IAEF,4EAA4E;IAC5E,MAAM,aAAa,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QAC3C,uCAAY,IAAI,KAAE,SAAS,EAAE,KAAC,gBAAgB,IAAC,SAAS,EAAE,IAAI,CAAC,SAAS,GAAI,IAAG;IACnF,CAAC,CAAC,CAAC;IAEH,OAAO,CACH,KAAC,yBAAyB,eACb,GAAG,EACZ,KAAK,EAAE,aAAa,EACpB,WAAW,EAAE,KAAK,CAAC,aAAa,EAChC,WAAW,EAAE,KAAK,CAAC,YAAY,EAC/B,QAAQ,EAAE,mBAAmB,EAC7B,aAAa,EAAE,aAAa,IAAI,SAAS,CAAC,aAAa,CAAC,EACxD,KAAK,EAAE,KAAK,GACd,CACL,CAAC;AACN,CAAC;AAED,eAAe,mBAAmB,CAAC"}
@@ -0,0 +1,19 @@
1
+ export declare enum ComponentType {
2
+ ANCHOR = "anchor",
3
+ BUTTON = "button",
4
+ CAROUSEL = "carousel",
5
+ CODE = "code",
6
+ COMPONENT_SELECT_LIST = "component_select_list",
7
+ FORM_PAGE = "form_page",
8
+ HEADING = "heading",
9
+ HTML_RAW = "html_raw",
10
+ ICON = "icon",
11
+ PARAGRAPH = "paragraph",
12
+ PROGRESS_BAR = "progress_bar",
13
+ SPACER = "spacer",
14
+ STACK = "stack",
15
+ TABLE = "table",
16
+ TEXT = "text",
17
+ TOOLTIP = "tooltip"
18
+ }
19
+ //# sourceMappingURL=constants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../js/common/constants.tsx"],"names":[],"mappings":"AACA,oBAAY,aAAa;IACrB,MAAM,WAAW;IACjB,MAAM,WAAW;IACjB,QAAQ,aAAa;IACrB,IAAI,SAAS;IACb,qBAAqB,0BAA0B;IAC/C,SAAS,cAAc;IACvB,OAAO,YAAY;IACnB,QAAQ,aAAa;IACrB,IAAI,SAAS;IACb,SAAS,cAAc;IACvB,YAAY,iBAAiB;IAC7B,MAAM,WAAW;IACjB,KAAK,UAAU;IACf,KAAK,UAAU;IACf,IAAI,SAAS;IACb,OAAO,YAAY;CACtB"}
@@ -0,0 +1,21 @@
1
+ // eslint-disable-next-line import/prefer-default-export
2
+ export var ComponentType;
3
+ (function (ComponentType) {
4
+ ComponentType["ANCHOR"] = "anchor";
5
+ ComponentType["BUTTON"] = "button";
6
+ ComponentType["CAROUSEL"] = "carousel";
7
+ ComponentType["CODE"] = "code";
8
+ ComponentType["COMPONENT_SELECT_LIST"] = "component_select_list";
9
+ ComponentType["FORM_PAGE"] = "form_page";
10
+ ComponentType["HEADING"] = "heading";
11
+ ComponentType["HTML_RAW"] = "html_raw";
12
+ ComponentType["ICON"] = "icon";
13
+ ComponentType["PARAGRAPH"] = "paragraph";
14
+ ComponentType["PROGRESS_BAR"] = "progress_bar";
15
+ ComponentType["SPACER"] = "spacer";
16
+ ComponentType["STACK"] = "stack";
17
+ ComponentType["TABLE"] = "table";
18
+ ComponentType["TEXT"] = "text";
19
+ ComponentType["TOOLTIP"] = "tooltip";
20
+ })(ComponentType || (ComponentType = {}));
21
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../js/common/constants.tsx"],"names":[],"mappings":"AAAA,wDAAwD;AACxD,MAAM,CAAN,IAAY,aAiBX;AAjBD,WAAY,aAAa;IACrB,kCAAiB,CAAA;IACjB,kCAAiB,CAAA;IACjB,sCAAqB,CAAA;IACrB,8BAAa,CAAA;IACb,gEAA+C,CAAA;IAC/C,wCAAuB,CAAA;IACvB,oCAAmB,CAAA;IACnB,sCAAqB,CAAA;IACrB,8BAAa,CAAA;IACb,wCAAuB,CAAA;IACvB,8CAA6B,CAAA;IAC7B,kCAAiB,CAAA;IACjB,gCAAe,CAAA;IACf,gCAAe,CAAA;IACf,8BAAa,CAAA;IACb,oCAAmB,CAAA;AACvB,CAAC,EAjBW,aAAa,KAAb,aAAa,QAiBxB"}
@@ -0,0 +1,21 @@
1
+ /// <reference types="react" />
2
+ import { Variable } from '@darajs/core';
3
+ import { FormComponentProps } from '../types';
4
+ export interface FormContextValue {
5
+ /** current form values in the format id: component value */
6
+ formValues: Record<string, any>;
7
+ /** defines the initial value a form component should take */
8
+ resolveInitialValue: (defaultValue?: any, variable?: Variable<any>, id?: any) => any;
9
+ /** defines how the form context should be updated */
10
+ updateForm: (value: any, id?: string) => void;
11
+ }
12
+ declare const formCtx: import("react").Context<FormContextValue>;
13
+ export default formCtx;
14
+ export interface UseFormContextAPI {
15
+ /** defines the initial value a form component should take */
16
+ resolveInitialValue: (defaultValue?: any) => any;
17
+ /** defines how the form context should be updated */
18
+ updateForm: (value: any) => void;
19
+ }
20
+ export declare function useFormContext(props: FormComponentProps): UseFormContextAPI;
21
+ //# sourceMappingURL=form-context.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"form-context.d.ts","sourceRoot":"","sources":["../../../js/common/context/form-context.tsx"],"names":[],"mappings":";AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAExC,OAAO,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAE9C,MAAM,WAAW,gBAAgB;IAC7B,4DAA4D;IAC5D,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAChC,6DAA6D;IAC7D,mBAAmB,EAAE,CAAC,YAAY,CAAC,EAAE,GAAG,EAAE,QAAQ,CAAC,EAAE,QAAQ,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,EAAE,GAAG,KAAK,GAAG,CAAC;IACrF,qDAAqD;IACrD,UAAU,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;CACjD;AAED,QAAA,MAAM,OAAO,2CAAwC,CAAC;AAEtD,eAAe,OAAO,CAAC;AAEvB,MAAM,WAAW,iBAAiB;IAC9B,6DAA6D;IAC7D,mBAAmB,EAAE,CAAC,YAAY,CAAC,EAAE,GAAG,KAAK,GAAG,CAAC;IACjD,qDAAqD;IACrD,UAAU,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,IAAI,CAAC;CACpC;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,kBAAkB,GAAG,iBAAiB,CA4B3E"}
@@ -0,0 +1,28 @@
1
+ import { createContext, useContext, useRef } from 'react';
2
+ const formCtx = createContext(null);
3
+ export default formCtx;
4
+ export function useFormContext(props) {
5
+ const formContext = useContext(formCtx);
6
+ const idRef = useRef(null);
7
+ const isMounted = useRef(false);
8
+ // if component is not in a form, then it doesn't need to update it
9
+ if (formContext === null) {
10
+ return {
11
+ resolveInitialValue: (defaultValue) => { var _a; return (_a = props.value) !== null && _a !== void 0 ? _a : defaultValue; },
12
+ // eslint-disable-next-line @typescript-eslint/no-empty-function
13
+ updateForm: () => { },
14
+ };
15
+ }
16
+ // if components in a form we check they have valid unique ids
17
+ if (isMounted.current === false) {
18
+ isMounted.current = true;
19
+ if (!props.id) {
20
+ throw new Error('Attempted to add a form interactive component without an id');
21
+ }
22
+ idRef.current = props.id;
23
+ }
24
+ const updateForm = (value) => formContext.updateForm(value, idRef.current);
25
+ const resolveInitialValue = (defaultValue) => formContext.resolveInitialValue(defaultValue, props.value, idRef.current);
26
+ return { resolveInitialValue, updateForm };
27
+ }
28
+ //# sourceMappingURL=form-context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"form-context.js","sourceRoot":"","sources":["../../../js/common/context/form-context.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAe1D,MAAM,OAAO,GAAG,aAAa,CAAmB,IAAI,CAAC,CAAC;AAEtD,eAAe,OAAO,CAAC;AASvB,MAAM,UAAU,cAAc,CAAC,KAAyB;IACpD,MAAM,WAAW,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC;IACxC,MAAM,KAAK,GAAG,MAAM,CAAS,IAAI,CAAC,CAAC;IACnC,MAAM,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAEhC,mEAAmE;IACnE,IAAI,WAAW,KAAK,IAAI,EAAE;QACtB,OAAO;YACH,mBAAmB,EAAE,CAAC,YAAkB,EAAE,EAAE,WAAC,OAAA,MAAA,KAAK,CAAC,KAAK,mCAAI,YAAY,CAAA,EAAA;YACxE,gEAAgE;YAChE,UAAU,EAAE,GAAG,EAAE,GAAE,CAAC;SACvB,CAAC;KACL;IAED,8DAA8D;IAC9D,IAAI,SAAS,CAAC,OAAO,KAAK,KAAK,EAAE;QAC7B,SAAS,CAAC,OAAO,GAAG,IAAI,CAAC;QACzB,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE;YACX,MAAM,IAAI,KAAK,CAAC,6DAA6D,CAAC,CAAC;SAClF;QACD,KAAK,CAAC,OAAO,GAAG,KAAK,CAAC,EAAE,CAAC;KAC5B;IAED,MAAM,UAAU,GAAG,CAAC,KAAU,EAAQ,EAAE,CAAC,WAAW,CAAC,UAAU,CAAC,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;IACtF,MAAM,mBAAmB,GAAG,CAAC,YAAkB,EAAO,EAAE,CACpD,WAAW,CAAC,mBAAmB,CAAC,YAAY,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;IAE9E,OAAO,EAAE,mBAAmB,EAAE,UAAU,EAAE,CAAC;AAC/C,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { default as FormCtx, useFormContext } from './form-context';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../js/common/context/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { default as FormCtx, useFormContext } from './form-context';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../js/common/context/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC"}
@@ -0,0 +1,31 @@
1
+ import { Variable } from '@darajs/core';
2
+ import { FormComponentProps } from '../types';
3
+ /**
4
+ * Parse a server datetime string to a Date object
5
+ */
6
+ export declare function parseDateString(date: string | Date): Date;
7
+ interface DatepickerProps extends FormComponentProps {
8
+ /** Date format displayed - default: dd/MM/yyyy */
9
+ date_format?: string;
10
+ /** If the time is selectable - default: off */
11
+ enable_time: boolean;
12
+ /** Maximum date available - default: no max */
13
+ max_date?: string;
14
+ /** Minimum date available - default: no min */
15
+ min_date?: string;
16
+ /** If range is true, create two datepickers side by side */
17
+ range: boolean;
18
+ /** Whether datepicker closes when a date is selected - default: closes */
19
+ select_close: boolean;
20
+ /** Date variable to read and update */
21
+ value?: Variable<string | [string, string]>;
22
+ }
23
+ /**
24
+ * A component for rendering a calendar from which a date is selectable. If range is true, creates two datepickers
25
+ * that allow a date range to be specified. The date variable that will be updated when selecting a date.
26
+ *
27
+ * @param props - the component props
28
+ */
29
+ declare function Datepicker(props: DatepickerProps): JSX.Element;
30
+ export default Datepicker;
31
+ //# sourceMappingURL=datepicker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"datepicker.d.ts","sourceRoot":"","sources":["../../../js/common/datepicker/datepicker.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAE,QAAQ,EAAyD,MAAM,cAAc,CAAC;AAK/F,OAAO,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAS9C;;GAEG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,CAczD;AAED,UAAU,eAAgB,SAAQ,kBAAkB;IAChD,kDAAkD;IAClD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,+CAA+C;IAC/C,WAAW,EAAE,OAAO,CAAC;IACrB,+CAA+C;IAC/C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,+CAA+C;IAC/C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,4DAA4D;IAC5D,KAAK,EAAE,OAAO,CAAC;IACf,0EAA0E;IAC1E,YAAY,EAAE,OAAO,CAAC;IACtB,uCAAuC;IAEvC,KAAK,CAAC,EAAE,QAAQ,CAAC,MAAM,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;CAC/C;AACD;;;;;GAKG;AACH,iBAAS,UAAU,CAAC,KAAK,EAAE,eAAe,GAAG,GAAG,CAAC,OAAO,CAkDvD;AAED,eAAe,UAAU,CAAC"}
@@ -0,0 +1,70 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { formatISO, parseISO } from 'date-fns';
3
+ import { useEffect, useMemo, useRef } from 'react';
4
+ import { injectCss, useAction, useComponentStyles, useVariable } from '@darajs/core';
5
+ import styled from '@darajs/styled-components';
6
+ import { DatePicker as UIDatePicker } from '@darajs/ui-components';
7
+ import { useFormContext } from '../context';
8
+ const DatepickerDiv = styled.div `
9
+ display: flex;
10
+ flex-direction: row;
11
+ align-items: center;
12
+ `;
13
+ const StyledDatepickerDiv = injectCss(DatepickerDiv);
14
+ /**
15
+ * Parse a server datetime string to a Date object
16
+ */
17
+ export function parseDateString(date) {
18
+ if (!date) {
19
+ return;
20
+ }
21
+ if (date instanceof Date) {
22
+ return date;
23
+ }
24
+ const parsed = parseISO(date);
25
+ if (Number.isNaN(parsed.getTime())) {
26
+ return;
27
+ }
28
+ return parsed;
29
+ }
30
+ /**
31
+ * A component for rendering a calendar from which a date is selectable. If range is true, creates two datepickers
32
+ * that allow a date range to be specified. The date variable that will be updated when selecting a date.
33
+ *
34
+ * @param props - the component props
35
+ */
36
+ function Datepicker(props) {
37
+ const formCtx = useFormContext(props);
38
+ const [style, css] = useComponentStyles(props);
39
+ const [value, setValue] = useVariable(formCtx.resolveInitialValue());
40
+ const [onChangeAction] = useAction(props.onchange);
41
+ const isFirstRender = useRef(true);
42
+ const onChange = (date) => {
43
+ if (!isFirstRender.current && ((!Array.isArray(date) && date) || (Array.isArray(date) && date[0] && date[1]))) {
44
+ let newDate;
45
+ if (Array.isArray(date)) {
46
+ newDate = [formatISO(date[0]), formatISO(date[1])];
47
+ }
48
+ else {
49
+ newDate = formatISO(date);
50
+ }
51
+ setValue(newDate);
52
+ onChangeAction(newDate);
53
+ formCtx.updateForm(newDate);
54
+ }
55
+ };
56
+ useEffect(() => {
57
+ if (isFirstRender.current) {
58
+ isFirstRender.current = false;
59
+ }
60
+ }, []);
61
+ const formattedValue = useMemo(() => {
62
+ if (props.range && value) {
63
+ return [parseDateString(value === null || value === void 0 ? void 0 : value[0]), parseDateString(value === null || value === void 0 ? void 0 : value[1])];
64
+ }
65
+ return parseDateString(value);
66
+ }, [value, props.range]);
67
+ return (_jsx(StyledDatepickerDiv, { "$rawCss": css, style: style, children: _jsx(UIDatePicker, { dateFormat: props.date_format, maxDate: parseDateString(props.max_date), minDate: parseDateString(props.min_date), onChange: onChange, popperStrategy: "fixed", selectsRange: props.range, shouldCloseOnSelect: props.select_close, showTimeInput: props.enable_time, value: formattedValue }) }));
68
+ }
69
+ export default Datepicker;
70
+ //# sourceMappingURL=datepicker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"datepicker.js","sourceRoot":"","sources":["../../../js/common/datepicker/datepicker.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ import { Action, DataVariable, StyledComponentProps } from '@darajs/core';
2
+ interface DropzoneProps extends StyledComponentProps {
3
+ /** Optional comma-separated list of accepted MIME-types */
4
+ accept?: string;
5
+ /** the action to trigger when a file is successfully uploaded */
6
+ on_drop?: Action;
7
+ /** optional resolver to use for the data */
8
+ resolver_id?: string;
9
+ /** variable to store data in */
10
+ target?: DataVariable;
11
+ }
12
+ /**
13
+ * A wrapper around the UploadDropzone component that enables files to upload to the data extension. When a file is
14
+ * successfully uploaded it will update the name variable and trigger the onUpload action.
15
+ * @param {DropzoneProps} props - the component props
16
+ */
17
+ declare function UploadDropzone(props: DropzoneProps): JSX.Element;
18
+ export default UploadDropzone;
19
+ //# sourceMappingURL=dropzone.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dropzone.d.ts","sourceRoot":"","sources":["../../../js/common/dropzone/dropzone.tsx"],"names":[],"mappings":"AAEA,OAAO,EACH,MAAM,EAEN,YAAY,EAEZ,oBAAoB,EAMvB,MAAM,cAAc,CAAC;AAmDtB,UAAU,aAAc,SAAQ,oBAAoB;IAChD,2DAA2D;IAC3D,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,iEAAiE;IACjE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,4CAA4C;IAC5C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gCAAgC;IAChC,MAAM,CAAC,EAAE,YAAY,CAAC;CACzB;AAKD;;;;GAIG;AACH,iBAAS,cAAc,CAAC,KAAK,EAAE,aAAa,GAAG,GAAG,CAAC,OAAO,CA+DzD;AAED,eAAe,cAAc,CAAC"}
@@ -0,0 +1,101 @@
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
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
11
+ import { useState } from 'react';
12
+ import { Center, DefaultFallback, injectCss, request, useAction, useComponentStyles, useSessionToken, } from '@darajs/core';
13
+ import styled, { useTheme } from '@darajs/styled-components';
14
+ import { Button, UploadDropzone as UIUploadDropzone } from '@darajs/ui-components';
15
+ import { Check } from '@darajs/ui-icons';
16
+ import { HTTP_METHOD, validateResponse } from '@darajs/ui-utils';
17
+ const status = {
18
+ FAILED: 'FAILED',
19
+ INITIALIZED: 'INITIALIZED',
20
+ LOADING: 'LOADING',
21
+ SUCCESS: 'SUCCESS',
22
+ };
23
+ const StyledCheck = styled(Check) `
24
+ color: ${(props) => props.theme.colors.success};
25
+ `;
26
+ const Heading = styled.h2 `
27
+ margin-bottom: 1rem;
28
+ color: ${(props) => props.theme.colors.text};
29
+ `;
30
+ function uploadFileToExtension(file, sessionToken, variableId, resolver_id) {
31
+ return __awaiter(this, void 0, void 0, function* () {
32
+ const formData = new FormData();
33
+ formData.append('data', file);
34
+ if (resolver_id) {
35
+ formData.append('resolver_id', resolver_id);
36
+ }
37
+ const url = new URL('/api/core/data/upload', window.location.origin);
38
+ if (variableId) {
39
+ url.searchParams.set('data_uid', variableId);
40
+ }
41
+ const res = yield request(url, {
42
+ body: formData,
43
+ headers: { Authorization: `Bearer ${sessionToken}` },
44
+ method: HTTP_METHOD.POST,
45
+ });
46
+ yield validateResponse(res, `Failed to upload file: ${file.name}`);
47
+ const result = yield res.json();
48
+ return { newStatus: result.status };
49
+ });
50
+ }
51
+ const StyledDropzone = injectCss(UIUploadDropzone);
52
+ const StyledCenter = injectCss(Center);
53
+ /**
54
+ * A wrapper around the UploadDropzone component that enables files to upload to the data extension. When a file is
55
+ * successfully uploaded it will update the name variable and trigger the onUpload action.
56
+ * @param {DropzoneProps} props - the component props
57
+ */
58
+ function UploadDropzone(props) {
59
+ const theme = useTheme();
60
+ const [style, css] = useComponentStyles(props);
61
+ const [currentStatus, setCurrentStatus] = useState(status.INITIALIZED);
62
+ const [errorMessage, setErrorMessage] = useState();
63
+ const [onFileDrop] = useAction(props.on_drop);
64
+ const sessionToken = useSessionToken();
65
+ const onDrop = (acceptedFiles) => __awaiter(this, void 0, void 0, function* () {
66
+ var _a;
67
+ if (acceptedFiles.length === 1) {
68
+ setCurrentStatus(status.LOADING);
69
+ try {
70
+ const { newStatus } = yield uploadFileToExtension(acceptedFiles[0], sessionToken, (_a = props.target) === null || _a === void 0 ? void 0 : _a.uid, props.resolver_id);
71
+ setCurrentStatus(newStatus);
72
+ }
73
+ catch (err) {
74
+ setErrorMessage(err.message);
75
+ setCurrentStatus(status.FAILED);
76
+ throw err;
77
+ }
78
+ onFileDrop(acceptedFiles[0]);
79
+ }
80
+ else {
81
+ setErrorMessage('Upload failed. Please individually drop CSV files');
82
+ setCurrentStatus(status.FAILED);
83
+ }
84
+ });
85
+ const onReset = () => {
86
+ setCurrentStatus(status.INITIALIZED);
87
+ setErrorMessage(undefined);
88
+ };
89
+ if (currentStatus === status.SUCCESS) {
90
+ return (_jsxs(StyledCenter, { "$rawCss": css, style: style, children: [_jsx(StyledCheck, { size: "10x" }), _jsx(Heading, { children: "Upload Successful" }), _jsx(Button, { onClick: onReset, styling: "secondary", children: "Upload Again" })] }));
91
+ }
92
+ if (currentStatus === status.FAILED) {
93
+ return (_jsxs(StyledCenter, { "$rawCss": css, style: style, children: [_jsx("span", { style: { color: theme.colors.error, textAlign: 'center' }, children: errorMessage }), _jsx(Heading, { children: "Upload Failed" }), _jsx(Button, { onClick: onReset, styling: "ghost", children: "Upload Again" })] }));
94
+ }
95
+ if (currentStatus === status.LOADING) {
96
+ return _jsx(DefaultFallback, {});
97
+ }
98
+ return _jsx(StyledDropzone, { "$rawCss": css, accept: props.accept, onDrop: onDrop, style: style });
99
+ }
100
+ export default UploadDropzone;
101
+ //# sourceMappingURL=dropzone.js.map