@quillsql/react 2.11.15 → 2.11.16

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 (67) hide show
  1. package/dist/cjs/ChartBuilder.d.ts +7 -4
  2. package/dist/cjs/ChartBuilder.d.ts.map +1 -1
  3. package/dist/cjs/ChartBuilder.js +11 -10
  4. package/dist/cjs/Dashboard.d.ts +1 -0
  5. package/dist/cjs/Dashboard.d.ts.map +1 -1
  6. package/dist/cjs/Dashboard.js +3 -3
  7. package/dist/cjs/ReportBuilder.d.ts +18 -10
  8. package/dist/cjs/ReportBuilder.d.ts.map +1 -1
  9. package/dist/cjs/ReportBuilder.js +125 -72
  10. package/dist/cjs/SQLEditor.d.ts +1 -7
  11. package/dist/cjs/SQLEditor.d.ts.map +1 -1
  12. package/dist/cjs/SQLEditor.js +19 -4
  13. package/dist/cjs/components/ReportBuilder/AddColumnPopover.d.ts +24 -1
  14. package/dist/cjs/components/ReportBuilder/AddColumnPopover.d.ts.map +1 -1
  15. package/dist/cjs/components/ReportBuilder/AddColumnPopover.js +26 -9
  16. package/dist/cjs/components/ReportBuilder/AddLimitPopover.d.ts +13 -2
  17. package/dist/cjs/components/ReportBuilder/AddLimitPopover.d.ts.map +1 -1
  18. package/dist/cjs/components/ReportBuilder/AddLimitPopover.js +18 -8
  19. package/dist/cjs/components/ReportBuilder/AddSortPopover.d.ts +2 -2
  20. package/dist/cjs/components/ReportBuilder/AddSortPopover.d.ts.map +1 -1
  21. package/dist/cjs/components/ReportBuilder/AddSortPopover.js +7 -7
  22. package/dist/cjs/components/ReportBuilder/ui.d.ts +0 -1
  23. package/dist/cjs/components/ReportBuilder/ui.d.ts.map +1 -1
  24. package/dist/cjs/components/ReportBuilder/ui.js +17 -22
  25. package/dist/cjs/components/ReportBuilder/util.d.ts +1 -0
  26. package/dist/cjs/components/ReportBuilder/util.d.ts.map +1 -1
  27. package/dist/cjs/components/ReportBuilder/util.js +20 -1
  28. package/dist/cjs/components/UiComponents.d.ts +15 -14
  29. package/dist/cjs/components/UiComponents.d.ts.map +1 -1
  30. package/dist/cjs/components/UiComponents.js +14 -9
  31. package/dist/cjs/utils/width.d.ts +12 -0
  32. package/dist/cjs/utils/width.d.ts.map +1 -0
  33. package/dist/cjs/utils/width.js +25 -0
  34. package/dist/esm/ChartBuilder.d.ts +7 -4
  35. package/dist/esm/ChartBuilder.d.ts.map +1 -1
  36. package/dist/esm/ChartBuilder.js +11 -10
  37. package/dist/esm/Dashboard.d.ts +1 -0
  38. package/dist/esm/Dashboard.d.ts.map +1 -1
  39. package/dist/esm/Dashboard.js +3 -3
  40. package/dist/esm/ReportBuilder.d.ts +18 -10
  41. package/dist/esm/ReportBuilder.d.ts.map +1 -1
  42. package/dist/esm/ReportBuilder.js +127 -74
  43. package/dist/esm/SQLEditor.d.ts +1 -7
  44. package/dist/esm/SQLEditor.d.ts.map +1 -1
  45. package/dist/esm/SQLEditor.js +19 -4
  46. package/dist/esm/components/ReportBuilder/AddColumnPopover.d.ts +24 -1
  47. package/dist/esm/components/ReportBuilder/AddColumnPopover.d.ts.map +1 -1
  48. package/dist/esm/components/ReportBuilder/AddColumnPopover.js +27 -10
  49. package/dist/esm/components/ReportBuilder/AddLimitPopover.d.ts +13 -2
  50. package/dist/esm/components/ReportBuilder/AddLimitPopover.d.ts.map +1 -1
  51. package/dist/esm/components/ReportBuilder/AddLimitPopover.js +19 -9
  52. package/dist/esm/components/ReportBuilder/AddSortPopover.d.ts +2 -2
  53. package/dist/esm/components/ReportBuilder/AddSortPopover.d.ts.map +1 -1
  54. package/dist/esm/components/ReportBuilder/AddSortPopover.js +7 -7
  55. package/dist/esm/components/ReportBuilder/ui.d.ts +0 -1
  56. package/dist/esm/components/ReportBuilder/ui.d.ts.map +1 -1
  57. package/dist/esm/components/ReportBuilder/ui.js +17 -21
  58. package/dist/esm/components/ReportBuilder/util.d.ts +1 -0
  59. package/dist/esm/components/ReportBuilder/util.d.ts.map +1 -1
  60. package/dist/esm/components/ReportBuilder/util.js +18 -0
  61. package/dist/esm/components/UiComponents.d.ts +15 -14
  62. package/dist/esm/components/UiComponents.d.ts.map +1 -1
  63. package/dist/esm/components/UiComponents.js +14 -9
  64. package/dist/esm/utils/width.d.ts +12 -0
  65. package/dist/esm/utils/width.d.ts.map +1 -0
  66. package/dist/esm/utils/width.js +21 -0
  67. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"AddColumnPopover.d.ts","sourceRoot":"","sources":["../../../../src/components/ReportBuilder/AddColumnPopover.tsx"],"names":[],"mappings":"AAoBA,MAAM,CAAC,OAAO,UAAU,gBAAgB,CAAC,EACvC,MAAM,EACN,kBAAkB,EAClB,qBAAqB,EACrB,eAAe,EACf,kBAAkB,EAClB,oBAAoB,EACpB,aAAa,EACb,YAAY,EACZ,OAAO,EACP,UAAU,EACV,KAAK,EACL,gBAAgB,EAChB,UAAU,EACV,YAAY,EACZ,QAAQ,EACR,SAAS,EACT,YAAY,EACZ,eAAe,EACf,MAAM,EACN,YAAY,GACb,EAAE,GAAG,2CAgML"}
1
+ {"version":3,"file":"AddColumnPopover.d.ts","sourceRoot":"","sources":["../../../../src/components/ReportBuilder/AddColumnPopover.tsx"],"names":[],"mappings":";AAmBA,OAAO,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAC;AAI1D,MAAM,CAAC,OAAO,UAAU,gBAAgB,CAAC,EACvC,MAAM,EACN,kBAAkB,EAClB,qBAAqB,EACrB,eAAe,EACf,kBAAkB,EAClB,oBAAoB,EACpB,aAAa,EACb,YAAY,EACZ,OAAO,EACP,UAAU,EACV,KAAK,EACL,gBAAgB,EAChB,UAAU,EACV,YAAY,EACZ,QAAQ,EACR,SAAS,EACT,YAAY,EACZ,eAAe,EACf,MAAM,EACN,YAAY,GACb,EAAE;IACD,MAAM,EAAE,GAAG,CAAC;IACZ,kBAAkB,EAAE,GAAG,CAAC;IACxB,qBAAqB,EAAE,GAAG,CAAC;IAC3B,eAAe,EAAE,GAAG,CAAC;IACrB,kBAAkB,EAAE,GAAG,CAAC;IACxB,oBAAoB,EAAE,GAAG,CAAC;IAC1B,aAAa,EAAE,GAAG,CAAC;IACnB,YAAY,EAAE,GAAG,CAAC;IAClB,OAAO,EAAE,GAAG,CAAC;IACb,UAAU,EAAE,GAAG,CAAC;IAChB,KAAK,EAAE,GAAG,CAAC;IACX,gBAAgB,EAAE,GAAG,CAAC;IACtB,UAAU,EAAE,GAAG,CAAC;IAChB,YAAY,EAAE,GAAG,CAAC;IAClB,QAAQ,EAAE,GAAG,CAAC;IACd,SAAS,EAAE,CAAC,KAAK,EAAE,uBAAuB,KAAK,GAAG,CAAC,OAAO,CAAC;IAC3D,YAAY,EAAE,GAAG,CAAC;IAClB,eAAe,EAAE,GAAG,CAAC;IACrB,MAAM,EAAE,GAAG,CAAC;IACZ,YAAY,EAAE,GAAG,CAAC;CACnB,2CAsNA"}
@@ -6,9 +6,19 @@ const core_1 = require("@dnd-kit/core");
6
6
  const sortable_1 = require("@dnd-kit/sortable");
7
7
  const utilities_1 = require("@dnd-kit/utilities");
8
8
  const Context_1 = require("../../Context");
9
+ const width_1 = require("../../utils/width");
10
+ const textProcessing_1 = require("../../utils/textProcessing");
9
11
  function AddColumnPopover({ onSave, orderedColumnNames, setOrderedColumnNames, selectedColumns, setSelectedColumns, isSelectedAllColumns, clearAllState, nameToColumn, baseAst, setBaseAst, pivot, initialTableName, defaultAST, defaultTable, setPivot, TextInput, SelectColumn, SecondaryButton, Button, HandleButton, }) {
10
12
  const [theme] = (0, react_1.useContext)(Context_1.ThemeContext);
11
13
  const [search, setSearch] = (0, react_1.useState)('');
14
+ const [searchResults, setSearchResults] = (0, react_1.useState)(orderedColumnNames);
15
+ const textInputContainerRef = (0, react_1.useRef)(null);
16
+ const [searchInputWidth, setSearchInputWidth] = (0, react_1.useState)(200);
17
+ (0, react_1.useEffect)(() => {
18
+ // Since the TextInput component takes a required numeric width parameter,
19
+ // we dynamically calculate the width of this component onload here.
20
+ (0, width_1.updateFirstChildWidth)(textInputContainerRef, setSearchInputWidth);
21
+ }, []);
12
22
  const sensors = (0, core_1.useSensors)((0, core_1.useSensor)(core_1.PointerSensor), (0, core_1.useSensor)(core_1.KeyboardSensor, {
13
23
  coordinateGetter: sortable_1.sortableKeyboardCoordinates,
14
24
  }));
@@ -29,25 +39,32 @@ function AddColumnPopover({ onSave, orderedColumnNames, setOrderedColumnNames, s
29
39
  const { valueField, rowField, columnField } = pivot;
30
40
  return [valueField, rowField, columnField].filter(Boolean);
31
41
  };
32
- const searchResults = orderedColumnNames
33
- .filter((row) => {
34
- const [table, _column] = row.split('.');
35
- return (selectedColumns.length === 0 || selectedColumns[0].startsWith(table));
36
- })
37
- .filter((row) => search.length === 0 || row.includes(search));
42
+ (0, react_1.useEffect)(() => {
43
+ setSearchResults(orderedColumnNames
44
+ .filter((row) => {
45
+ const [table, _column] = row.split('.');
46
+ return (selectedColumns.length === 0 || selectedColumns[0].startsWith(table));
47
+ })
48
+ .filter((row) => search.length === 0 ||
49
+ row.includes(search) ||
50
+ (0, textProcessing_1.snakeCaseToTitleCase)(row)
51
+ .toLowerCase()
52
+ .includes(search.toLowerCase())));
53
+ }, [search, orderedColumnNames, selectedColumns]);
38
54
  return ((0, jsx_runtime_1.jsxs)("div", { style: {
39
55
  display: 'flex',
40
56
  flexDirection: 'column',
41
57
  gap: 2,
42
58
  minWidth: 300,
43
59
  maxHeight: 500,
44
- }, children: [(0, jsx_runtime_1.jsx)("div", { style: {
60
+ }, children: [(0, jsx_runtime_1.jsx)("div", { ref: textInputContainerRef, style: {
45
61
  position: 'relative',
46
62
  display: 'flex',
47
63
  flexDirection: 'row',
48
64
  alignItems: 'center',
49
65
  marginTop: 2,
50
- }, children: (0, jsx_runtime_1.jsx)(TextInput, { type: "text", value: search, placeholder: 'Search...', style: { marginBottom: 6, width: '100%' }, onChange: (e) => setSearch(e.target.value) }) }), (0, jsx_runtime_1.jsx)(core_1.DndContext, { sensors: sensors, collisionDetection: core_1.closestCenter, onDragEnd: handleDragEnd, children: (0, jsx_runtime_1.jsx)(sortable_1.SortableContext, { items: orderedColumnNames, strategy: sortable_1.verticalListSortingStrategy, children: (0, jsx_runtime_1.jsxs)("div", { style: {
66
+ marginBottom: 6,
67
+ }, children: (0, jsx_runtime_1.jsx)(TextInput, { id: 'add_column_search_bar', value: search, placeholder: 'Search...', width: searchInputWidth, onChange: (e) => setSearch(e.target.value) }) }), (0, jsx_runtime_1.jsx)(core_1.DndContext, { sensors: sensors, collisionDetection: core_1.closestCenter, onDragEnd: handleDragEnd, children: (0, jsx_runtime_1.jsx)(sortable_1.SortableContext, { items: orderedColumnNames, strategy: sortable_1.verticalListSortingStrategy, children: (0, jsx_runtime_1.jsxs)("div", { style: {
51
68
  display: 'flex',
52
69
  flexDirection: 'column',
53
70
  gap: 8,
@@ -62,7 +79,7 @@ function AddColumnPopover({ onSave, orderedColumnNames, setOrderedColumnNames, s
62
79
  gap: 8,
63
80
  justifyContent: 'end',
64
81
  marginTop: 12,
65
- }, children: [selectedColumns.length > 0 && !isSelectedAllColumns() && ((0, jsx_runtime_1.jsx)(SecondaryButton, { onClick: () => setSelectedColumns(orderedColumnNames.filter((row) => {
82
+ }, children: [selectedColumns.length > 0 && !isSelectedAllColumns() && ((0, jsx_runtime_1.jsx)(SecondaryButton, { onClick: () => setSelectedColumns(searchResults.filter((row) => {
66
83
  const [table, _column] = row.split('.');
67
84
  return selectedColumns[0].startsWith(table);
68
85
  })), label: "Select all" })), selectedColumns.length > 0 && isSelectedAllColumns() && ((0, jsx_runtime_1.jsx)(SecondaryButton, { onClick: () => setSelectedColumns([]), label: "Clear" })), (0, jsx_runtime_1.jsx)(Button, { onClick: () => {
@@ -1,3 +1,14 @@
1
- export declare const LimitSentence: ({ limit, handleDelete, setOpenPopover, onSave, popoverTitle, LimitPopover, EditPopover, children, }: any) => import("react/jsx-runtime").JSX.Element;
2
- export declare const AddLimitPopover: ({ onSave, initialLimit, isEdit, onDelete, }: any) => import("react/jsx-runtime").JSX.Element;
1
+ /// <reference types="react" />
2
+ import { ButtonComponentProps, TextInputComponentProps } from '../UiComponents';
3
+ export declare const LimitSentence: ({ limit, handleDelete, setOpenPopover, onSave, popoverTitle, LimitPopover, EditPopover, TextInput, Button, SecondaryButton, children, }: any) => import("react/jsx-runtime").JSX.Element;
4
+ export interface AddLimitPopoverProps {
5
+ onSave: (limit: number) => void;
6
+ initialLimit?: number;
7
+ isEdit?: boolean;
8
+ onDelete?: () => void;
9
+ TextInput?: (props: TextInputComponentProps) => JSX.Element;
10
+ Button?: (props: ButtonComponentProps) => JSX.Element;
11
+ SecondaryButton?: (props: ButtonComponentProps) => JSX.Element;
12
+ }
13
+ export declare const AddLimitPopover: ({ onSave, initialLimit, isEdit, onDelete, TextInput, Button, SecondaryButton, }: AddLimitPopoverProps) => import("react/jsx-runtime").JSX.Element;
3
14
  //# sourceMappingURL=AddLimitPopover.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"AddLimitPopover.d.ts","sourceRoot":"","sources":["../../../../src/components/ReportBuilder/AddLimitPopover.tsx"],"names":[],"mappings":"AAaA,eAAO,MAAM,aAAa,wGASvB,GAAG,4CAiCL,CAAC;AAEF,eAAO,MAAM,eAAe,gDAKzB,GAAG,4CAmCL,CAAC"}
1
+ {"version":3,"file":"AddLimitPopover.d.ts","sourceRoot":"","sources":["../../../../src/components/ReportBuilder/AddLimitPopover.tsx"],"names":[],"mappings":";AAEA,OAAO,EACL,oBAAoB,EAIpB,uBAAuB,EACxB,MAAM,iBAAiB,CAAC;AAUzB,eAAO,MAAM,aAAa,4IAYvB,GAAG,4CAoCL,CAAC;AAEF,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAChC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,uBAAuB,KAAK,GAAG,CAAC,OAAO,CAAC;IAC5D,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,oBAAoB,KAAK,GAAG,CAAC,OAAO,CAAC;IACtD,eAAe,CAAC,EAAE,CAAC,KAAK,EAAE,oBAAoB,KAAK,GAAG,CAAC,OAAO,CAAC;CAChE;AAED,eAAO,MAAM,eAAe,oFAQzB,oBAAoB,4CA+CtB,CAAC"}
@@ -5,12 +5,11 @@ const jsx_runtime_1 = require("react/jsx-runtime");
5
5
  const react_1 = require("react");
6
6
  const UiComponents_1 = require("../UiComponents");
7
7
  const Context_1 = require("../../Context");
8
- const ui_1 = require("./ui");
9
8
  const SORT_VALUE_TO_LABEL = {
10
9
  ASC: 'ascending',
11
10
  DESC: 'descending',
12
11
  };
13
- const LimitSentence = ({ limit, handleDelete, setOpenPopover, onSave, popoverTitle = 'Edit limit', LimitPopover, EditPopover, children, }) => {
12
+ const LimitSentence = ({ limit, handleDelete, setOpenPopover, onSave, popoverTitle = 'Edit limit', LimitPopover, EditPopover, TextInput = UiComponents_1.QuillTextInput, Button = UiComponents_1.MemoizedButton, SecondaryButton = UiComponents_1.MemoizedSecondaryButton, children, }) => {
14
13
  const [isOpen, setIsOpen] = (0, react_1.useState)(false);
15
14
  const handleClickDelete = (e) => {
16
15
  setOpenPopover(null);
@@ -23,21 +22,32 @@ const LimitSentence = ({ limit, handleDelete, setOpenPopover, onSave, popoverTit
23
22
  filterLabel: `limit ${limit.value[0].value}`, onClickDelete: handleClickDelete, popoverTitle: popoverTitle, popoverChildren: (0, jsx_runtime_1.jsx)(EditPopover, { onSave: (column, direction) => {
24
23
  setIsOpen(false);
25
24
  onSave(column, direction);
26
- }, isEdit: true, onDelete: handleClickDelete, initialLimit: limit.value[0].value }), isOpen: isOpen, setIsOpen: setIsOpen, onDelete: () => {
25
+ }, isEdit: true, onDelete: handleClickDelete, initialLimit: limit.value[0].value, TextInput: TextInput, Button: Button, SecondaryButton: SecondaryButton }), isOpen: isOpen, setIsOpen: setIsOpen, onDelete: () => {
27
26
  handleDelete();
28
27
  } }) }));
29
28
  };
30
29
  exports.LimitSentence = LimitSentence;
31
- const AddLimitPopover = ({ onSave, initialLimit, isEdit, onDelete, }) => {
32
- const [limit, setLimit] = (0, react_1.useState)(initialLimit || 0);
30
+ const AddLimitPopover = ({ onSave, initialLimit = 0, isEdit = false, onDelete = () => { }, TextInput = UiComponents_1.QuillTextInput, Button = UiComponents_1.MemoizedButton, SecondaryButton = UiComponents_1.MemoizedSecondaryButton, }) => {
31
+ const [limit, setLimit] = (0, react_1.useState)(initialLimit);
33
32
  const [theme] = (0, react_1.useContext)(Context_1.ThemeContext);
34
- return ((0, jsx_runtime_1.jsxs)("div", { style: { display: 'flex', flexDirection: 'column', gap: 12 }, children: [(0, jsx_runtime_1.jsx)("div", { style: { display: 'flex', flexDirection: 'row', gap: 12, padding: '6px 0px' }, children: (0, jsx_runtime_1.jsx)(ui_1.QuillTextInput, { value: limit, type: "number", style: { width: 200, minHeight: 32, padding: '6px 12px' }, onChange: (e) => {
35
- setLimit(e.target.value);
33
+ return ((0, jsx_runtime_1.jsxs)("div", { style: { display: 'flex', flexDirection: 'column', gap: 12 }, children: [(0, jsx_runtime_1.jsx)("div", { style: {
34
+ display: 'flex',
35
+ flexDirection: 'row',
36
+ gap: 12,
37
+ padding: '6px 0px',
38
+ }, children: (0, jsx_runtime_1.jsx)(TextInput, { id: 'add_limit_input', value: limit, width: 200,
39
+ // style={{ minHeight: 32, padding: '6px 12px' }}
40
+ onChange: (e) => {
41
+ if (Number.isNaN(parseFloat(e.target.value || '0'))) {
42
+ alert('Please input a number.');
43
+ return;
44
+ }
45
+ setLimit(parseFloat(e.target.value || '0'));
36
46
  } }) }), (0, jsx_runtime_1.jsx)("div", { style: {
37
47
  display: 'flex',
38
48
  flexDirection: 'row',
39
49
  justifyContent: 'end',
40
50
  gap: 12,
41
- }, children: isEdit ? ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(UiComponents_1.MemoizedSecondaryButton, { onClick: onDelete, label: "Delete" }), (0, jsx_runtime_1.jsx)(UiComponents_1.MemoizedButton, { onClick: () => onSave(limit), label: "Edit limit" })] })) : ((0, jsx_runtime_1.jsx)(UiComponents_1.MemoizedButton, { onClick: () => onSave(limit), label: "Add limit" })) })] }));
51
+ }, children: isEdit ? ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(SecondaryButton, { onClick: onDelete, label: "Delete" }), (0, jsx_runtime_1.jsx)(Button, { onClick: () => onSave(limit), label: "Edit limit" })] })) : ((0, jsx_runtime_1.jsx)(Button, { onClick: () => onSave(limit), label: "Add limit" })) })] }));
42
52
  };
43
53
  exports.AddLimitPopover = AddLimitPopover;
@@ -1,3 +1,3 @@
1
- export declare const SortSentence: ({ sortData, keyPrefix, columns, handleDelete, setEditPopoverKey, setOpenPopover, setActiveEditItem, setIsPending, setActivePath, onSave, popoverTitle, SortPopover, EditPopover, children, }: any) => import("react/jsx-runtime").JSX.Element | undefined;
2
- export declare const AddSortPopover: ({ onSave, columns, isEdit, onDelete, column, }: any) => import("react/jsx-runtime").JSX.Element;
1
+ export declare const SortSentence: ({ sortData, keyPrefix, columns, handleDelete, setEditPopoverKey, setOpenPopover, setActiveEditItem, setIsPending, setActivePath, onSave, popoverTitle, SortPopover, EditPopover, Select, Button, SecondaryButton, children, }: any) => import("react/jsx-runtime").JSX.Element | null;
2
+ export declare const AddSortPopover: ({ onSave, columns, isEdit, onDelete, column, Select, Button, SecondaryButton, }: any) => import("react/jsx-runtime").JSX.Element;
3
3
  //# sourceMappingURL=AddSortPopover.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"AddSortPopover.d.ts","sourceRoot":"","sources":["../../../../src/components/ReportBuilder/AddSortPopover.tsx"],"names":[],"mappings":"AAYA,eAAO,MAAM,YAAY,iMAetB,GAAG,wDA2CL,CAAC;AAEF,eAAO,MAAM,cAAc,mDAMxB,GAAG,4CAiEL,CAAC"}
1
+ {"version":3,"file":"AddSortPopover.d.ts","sourceRoot":"","sources":["../../../../src/components/ReportBuilder/AddSortPopover.tsx"],"names":[],"mappings":"AAYA,eAAO,MAAM,YAAY,kOAkBtB,GAAG,mDA8CL,CAAC;AAEF,eAAO,MAAM,cAAc,oFASxB,GAAG,4CAiEL,CAAC"}
@@ -11,7 +11,7 @@ const SORT_VALUE_TO_LABEL = {
11
11
  ASC: 'ascending',
12
12
  DESC: 'descending',
13
13
  };
14
- const SortSentence = ({ sortData, keyPrefix, columns, handleDelete, setEditPopoverKey, setOpenPopover, setActiveEditItem, setIsPending, setActivePath, onSave, popoverTitle = 'Edit Sort', SortPopover, EditPopover, children, }) => {
14
+ const SortSentence = ({ sortData, keyPrefix, columns, handleDelete, setEditPopoverKey, setOpenPopover, setActiveEditItem, setIsPending, setActivePath, onSave, popoverTitle = 'Edit Sort', SortPopover, EditPopover, Select = QuillSelect_1.QuillSelectComponent, Button = UiComponents_1.MemoizedButton, SecondaryButton = UiComponents_1.MemoizedSecondaryButton, children, }) => {
15
15
  const [isOpen, setIsOpen] = (0, react_1.useState)(false);
16
16
  const handleClickDelete = (e) => {
17
17
  e.stopPropagation(); // don't call onClick handler
@@ -22,7 +22,7 @@ const SortSentence = ({ sortData, keyPrefix, columns, handleDelete, setEditPopov
22
22
  setEditPopoverKey(null);
23
23
  };
24
24
  if (!sortData && (!sortData.expr.column || !sortData.expr.value)) {
25
- return;
25
+ return null;
26
26
  }
27
27
  return ((0, jsx_runtime_1.jsx)("div", { children: (0, jsx_runtime_1.jsx)(SortPopover
28
28
  // @ts-ignore
@@ -31,14 +31,14 @@ const SortSentence = ({ sortData, keyPrefix, columns, handleDelete, setEditPopov
31
31
  filterLabel: `${(0, textProcessing_1.snakeCaseToTitleCase)(sortData.expr.column) || (0, textProcessing_1.snakeCaseToTitleCase)(sortData.expr.value)} ${SORT_VALUE_TO_LABEL[sortData.type]}`, onClickDelete: handleClickDelete, popoverTitle: popoverTitle, popoverChildren: (0, jsx_runtime_1.jsx)(EditPopover, { onSave: (column, direction) => {
32
32
  setIsOpen(false);
33
33
  onSave(column, direction);
34
- }, columns: columns, isEdit: true, onDelete: handleClickDelete, column: sortData.expr.column || sortData.expr.value }), isOpen: isOpen, setIsOpen: setIsOpen, onDelete: () => {
34
+ }, columns: columns, isEdit: true, onDelete: handleClickDelete, column: sortData.expr.column || sortData.expr.value, Select: Select, Button: Button, SecondaryButton: SecondaryButton }), isOpen: isOpen, setIsOpen: setIsOpen, onDelete: () => {
35
35
  setIsPending(false);
36
36
  setActiveEditItem(null);
37
37
  setActivePath(null);
38
38
  } }) }));
39
39
  };
40
40
  exports.SortSentence = SortSentence;
41
- const AddSortPopover = ({ onSave, columns, isEdit, onDelete, column, }) => {
41
+ const AddSortPopover = ({ onSave, columns, isEdit, onDelete, column, Select = QuillSelect_1.QuillSelectComponent, Button = UiComponents_1.MemoizedButton, SecondaryButton = UiComponents_1.MemoizedSecondaryButton, }) => {
42
42
  const [sortColumn, setSortColumn] = (0, react_1.useState)(column || '');
43
43
  const [sortDirection, setSortDirection] = (0, react_1.useState)('ASC');
44
44
  const [theme] = (0, react_1.useContext)(Context_1.ThemeContext);
@@ -47,14 +47,14 @@ const AddSortPopover = ({ onSave, columns, isEdit, onDelete, column, }) => {
47
47
  flexDirection: 'row',
48
48
  gap: 12,
49
49
  padding: '6px 0px',
50
- }, children: [(0, jsx_runtime_1.jsx)(QuillSelect_1.QuillSelectComponent, { theme: theme, value: sortColumn, onChange: (value) => {
50
+ }, children: [(0, jsx_runtime_1.jsx)(Select, { theme: theme, value: sortColumn, onChange: (value) => {
51
51
  setSortColumn(value);
52
52
  }, options: [
53
53
  ...columns.map((column) => ({
54
54
  label: (0, textProcessing_1.snakeCaseToTitleCase)(column.split('.')[1] || ''),
55
55
  value: column.split('.')[1],
56
56
  })),
57
- ] }), (0, jsx_runtime_1.jsx)(QuillSelect_1.QuillSelectComponent, { theme: theme, value: sortDirection, onChange: (value) => {
57
+ ] }), (0, jsx_runtime_1.jsx)(Select, { theme: theme, value: sortDirection, onChange: (value) => {
58
58
  setSortDirection(value);
59
59
  }, options: [
60
60
  { label: 'Ascending', value: 'ASC' },
@@ -64,6 +64,6 @@ const AddSortPopover = ({ onSave, columns, isEdit, onDelete, column, }) => {
64
64
  flexDirection: 'row',
65
65
  justifyContent: 'end',
66
66
  gap: 12,
67
- }, children: isEdit ? ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(UiComponents_1.MemoizedSecondaryButton, { onClick: onDelete, label: "Delete" }), (0, jsx_runtime_1.jsx)(UiComponents_1.MemoizedButton, { onClick: () => onSave(sortColumn, sortDirection), label: "Edit sort" })] })) : ((0, jsx_runtime_1.jsx)(UiComponents_1.MemoizedButton, { onClick: () => onSave(sortColumn, sortDirection), label: "Add sort" })) })] }));
67
+ }, children: isEdit ? ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(SecondaryButton, { onClick: onDelete, label: "Delete" }), (0, jsx_runtime_1.jsx)(Button, { onClick: () => onSave(sortColumn, sortDirection), label: "Edit sort" })] })) : ((0, jsx_runtime_1.jsx)(Button, { onClick: () => onSave(sortColumn, sortDirection), label: "Add sort" })) })] }));
68
68
  };
69
69
  exports.AddSortPopover = AddSortPopover;
@@ -7,7 +7,6 @@
7
7
  */
8
8
  export declare const QuillButton: ({ children, ...props }: any) => import("react/jsx-runtime").JSX.Element;
9
9
  export declare const QuillSecondaryButton: ({ children, ...props }: any) => import("react/jsx-runtime").JSX.Element;
10
- export declare const QuillTextInput: (props: any) => import("react/jsx-runtime").JSX.Element;
11
10
  export declare const QuillReportBuilderTable: ({ rows, columns, error, ...props }: any) => import("react/jsx-runtime").JSX.Element;
12
11
  export declare const QuillTag: import("react").ForwardRefExoticComponent<Omit<any, "ref"> & import("react").RefAttributes<unknown>>;
13
12
  export declare const QuillSidebarHeading: ({ label }: any) => import("react/jsx-runtime").JSX.Element;
@@ -1 +1 @@
1
- {"version":3,"file":"ui.d.ts","sourceRoot":"","sources":["../../../../src/components/ReportBuilder/ui.tsx"],"names":[],"mappings":";AAiBA;;;;;GAKG;AAEH,eAAO,MAAM,WAAW,2BAA4B,GAAG,4CA2BtD,CAAC;AAEF,eAAO,MAAM,oBAAoB,2BAA4B,GAAG,4CA2B/D,CAAC;AAEF,eAAO,MAAM,cAAc,UAAW,GAAG,4CAuBxC,CAAC;AAEF,eAAO,MAAM,uBAAuB,uCAKjC,GAAG,4CAiBL,CAAC;AAEF,eAAO,MAAM,QAAQ,sGAoFpB,CAAC;AAGF,eAAO,MAAM,mBAAmB,cAAe,GAAG,4CAEjD,CAAC;AAGF,eAAO,MAAM,sBAAsB,cAAe,GAAG,4CAEpD,CAAC;AAGF,eAAO,MAAM,YAAY,sGAiBxB,CAAC;AAGF,eAAO,MAAM,eAAe,sGAuB3B,CAAC;AAEF,eAAO,MAAM,WAAW,2BAA4B,GAAG,4CAUtD,CAAC;AAEF,wBAAgB,eAAe,CAAC,EAC9B,OAAO,EACP,QAAQ,EACR,KAAU,EACV,OAAO,EACP,MAAM,GACP,EAAE,GAAG,2CAgDL;AAED,eAAO,MAAM,YAAY,sGAkCxB,CAAC;AAGF,eAAO,MAAM,iBAAiB,+CAwE7B,CAAC;AAEF,eAAO,MAAM,iBAAiB,gDAK3B,GAAG,4CA6CL,CAAC;AAGF,eAAO,MAAM,oBAAoB,kCAAmC,GAAG,4CAiDtE,CAAC;AAGF,eAAO,MAAM,uBAAuB,+CAMnC,CAAC;AAGF,eAAO,MAAM,sBAAsB,+CAMlC,CAAC;AAEF,eAAO,MAAM,mBAAmB;;;GAG/B,CAAC;AAEF,eAAO,MAAM,SAAS,sGAIrB,CAAC;AAEF,eAAO,MAAM,WAAW,8DAMrB,GAAG,4CAwBL,CAAC;AAEF,eAAO,MAAM,kBAAkB,4FAO5B,GAAG,4CAqBL,CAAC;AAEF,eAAO,MAAM,gBAAgB,sFAO1B,GAAG,4CAqBL,CAAC;AAEF,eAAO,MAAM,UAAU,sTAuBpB,GAAG,4CAqFL,CAAC;AAEF,eAAO,MAAM,gBAAgB,oDAK1B,GAAG,4CAeL,CAAC"}
1
+ {"version":3,"file":"ui.d.ts","sourceRoot":"","sources":["../../../../src/components/ReportBuilder/ui.tsx"],"names":[],"mappings":";AAiBA;;;;;GAKG;AAEH,eAAO,MAAM,WAAW,2BAA4B,GAAG,4CA2BtD,CAAC;AAEF,eAAO,MAAM,oBAAoB,2BAA4B,GAAG,4CA2B/D,CAAC;AAEF,eAAO,MAAM,uBAAuB,uCAKjC,GAAG,4CAiBL,CAAC;AAEF,eAAO,MAAM,QAAQ,sGAoFpB,CAAC;AAGF,eAAO,MAAM,mBAAmB,cAAe,GAAG,4CAEjD,CAAC;AAGF,eAAO,MAAM,sBAAsB,cAAe,GAAG,4CAEpD,CAAC;AAGF,eAAO,MAAM,YAAY,sGAiBxB,CAAC;AAGF,eAAO,MAAM,eAAe,sGAuB3B,CAAC;AAEF,eAAO,MAAM,WAAW,2BAA4B,GAAG,4CAUtD,CAAC;AAEF,wBAAgB,eAAe,CAAC,EAC9B,OAAO,EACP,QAAQ,EACR,KAAU,EACV,OAAO,EACP,MAAM,GACP,EAAE,GAAG,2CAgDL;AAED,eAAO,MAAM,YAAY,sGAkCxB,CAAC;AAGF,eAAO,MAAM,iBAAiB,+CAwE7B,CAAC;AAEF,eAAO,MAAM,iBAAiB,gDAK3B,GAAG,4CA6CL,CAAC;AAGF,eAAO,MAAM,oBAAoB,kCAAmC,GAAG,4CAiDtE,CAAC;AAGF,eAAO,MAAM,uBAAuB,+CAMnC,CAAC;AAGF,eAAO,MAAM,sBAAsB,+CAMlC,CAAC;AAEF,eAAO,MAAM,mBAAmB;;;GAG/B,CAAC;AAEF,eAAO,MAAM,SAAS,sGAIrB,CAAC;AAEF,eAAO,MAAM,WAAW,8DAMrB,GAAG,4CA+BL,CAAC;AAEF,eAAO,MAAM,kBAAkB,4FAO5B,GAAG,4CAqBL,CAAC;AAEF,eAAO,MAAM,gBAAgB,sFAO1B,GAAG,4CAqBL,CAAC;AAEF,eAAO,MAAM,UAAU,sTAuBpB,GAAG,4CAqFL,CAAC;AAEF,eAAO,MAAM,gBAAgB,oDAK1B,GAAG,4CAsBL,CAAC"}
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.AddFilterPopover = exports.TagWrapper = exports.QuillSortPopover = exports.QuillFilterPopover = exports.EditPopover = exports.QuillTabs = exports.DEFAULT_TAB_OPTIONS = exports.QuillTableLoadingState = exports.QuillButtonLoadingState = exports.QuillDraggableColumn = exports.QuillSelectColumn = exports.QuillHandleButton = exports.QuillPopover = exports.MemoizedPopover = exports.QuillSelect = exports.CustomContainer = exports.QuillSidebar = exports.QuillSidebarSubHeading = exports.QuillSidebarHeading = exports.QuillTag = exports.QuillReportBuilderTable = exports.QuillTextInput = exports.QuillSecondaryButton = exports.QuillButton = void 0;
6
+ exports.AddFilterPopover = exports.TagWrapper = exports.QuillSortPopover = exports.QuillFilterPopover = exports.EditPopover = exports.QuillTabs = exports.DEFAULT_TAB_OPTIONS = exports.QuillTableLoadingState = exports.QuillButtonLoadingState = exports.QuillDraggableColumn = exports.QuillSelectColumn = exports.QuillHandleButton = exports.QuillPopover = exports.MemoizedPopover = exports.QuillSelect = exports.CustomContainer = exports.QuillSidebar = exports.QuillSidebarSubHeading = exports.QuillSidebarHeading = exports.QuillTag = exports.QuillReportBuilderTable = exports.QuillSecondaryButton = exports.QuillButton = void 0;
7
7
  const jsx_runtime_1 = require("react/jsx-runtime");
8
8
  const react_1 = require("react");
9
9
  const UiComponents_1 = require("../UiComponents");
@@ -60,25 +60,6 @@ const QuillSecondaryButton = ({ children, ...props }) => {
60
60
  }, children: children }));
61
61
  };
62
62
  exports.QuillSecondaryButton = QuillSecondaryButton;
63
- const QuillTextInput = (props) => {
64
- const [theme] = (0, react_1.useContext)(Context_1.ThemeContext);
65
- return ((0, jsx_runtime_1.jsx)("input", { ...props, style: {
66
- color: theme?.primaryTextColor,
67
- backgroundColor: theme?.backgroundColor || 'white',
68
- fontFamily: theme?.fontFamily,
69
- fontWeight: 'medium',
70
- borderWidth: '1px',
71
- borderColor: theme?.borderColor || '#E7E7E7',
72
- borderStyle: 'solid',
73
- borderRadius: '6px',
74
- boxShadow: 'rgba(0, 0, 0, 0.1) 0px 1px 5px 0px',
75
- padding: '0 12px',
76
- display: 'block',
77
- minHeight: 32,
78
- ...props.style,
79
- } }));
80
- };
81
- exports.QuillTextInput = QuillTextInput;
82
63
  const QuillReportBuilderTable = ({ rows, columns, error, ...props }) => {
83
64
  const reformattedColumns = columns.map((c) => ({ label: c, field: c }));
84
65
  return ((0, jsx_runtime_1.jsx)("div", { style: { height: '100%', overflow: 'auto' }, children: (0, jsx_runtime_1.jsx)(QuillTable_1.default, { rows: rows, columns: reformattedColumns, rowsPerPage: 10, showDownloadCSVButton: rows?.length > 0, downloadCSV: () => (0, csv_1.downloadCSV)({ rows, fields: reformattedColumns, name: 'my_report' }), emptyStateLabel: error || 'No results', ...props }) }));
@@ -324,6 +305,13 @@ exports.DEFAULT_TAB_OPTIONS = [
324
305
  ];
325
306
  exports.QuillTabs = (0, react_1.forwardRef)(({ options = exports.DEFAULT_TAB_OPTIONS, ...props }, ref) => ((0, jsx_runtime_1.jsx)(UiComponents_1.MemoizedTabs, { ref: ref, options: options, ...props })));
326
307
  const EditPopover = ({ onSave, onDelete, Button, renderNode, activeEditItem, }) => {
308
+ const handleOnClick = () => {
309
+ if (!(0, util_1.allNumericNodesValidInTree)(activeEditItem)) {
310
+ alert('Please input a number.');
311
+ return;
312
+ }
313
+ onSave();
314
+ };
327
315
  return ((0, jsx_runtime_1.jsxs)("div", { style: {
328
316
  display: 'flex',
329
317
  flexDirection: 'column',
@@ -334,7 +322,7 @@ const EditPopover = ({ onSave, onDelete, Button, renderNode, activeEditItem, })
334
322
  justifyContent: 'end',
335
323
  gap: 8,
336
324
  width: '100%',
337
- }, children: [(0, jsx_runtime_1.jsx)(UiComponents_1.MemoizedSecondaryButton, { onClick: onDelete, label: "Delete" }), (0, jsx_runtime_1.jsx)(Button, { onClick: onSave, label: "Save" })] })] }));
325
+ }, children: [(0, jsx_runtime_1.jsx)(UiComponents_1.MemoizedSecondaryButton, { onClick: onDelete, label: "Delete" }), (0, jsx_runtime_1.jsx)(Button, { onClick: handleOnClick, label: "Save" })] })] }));
338
326
  };
339
327
  exports.EditPopover = EditPopover;
340
328
  const QuillFilterPopover = ({ filterLabel, onClickDeleteFilter, popoverTitle, popoverChildren, isOpen, setIsOpen, }) => {
@@ -425,10 +413,17 @@ const TagWrapper = ({ isCard, isRow, editPopoverKey, keyPrefix, formData, active
425
413
  };
426
414
  exports.TagWrapper = TagWrapper;
427
415
  const AddFilterPopover = ({ onSave, Button, renderNode, activeEditItem, }) => {
416
+ const handleOnClick = () => {
417
+ if (!(0, util_1.allNumericNodesValidInTree)(activeEditItem)) {
418
+ alert('Please input a number.');
419
+ return;
420
+ }
421
+ onSave();
422
+ };
428
423
  return ((0, jsx_runtime_1.jsxs)("div", { style: { display: 'flex', flexDirection: 'column', gap: 12 }, children: [activeEditItem && renderNode(activeEditItem), (0, jsx_runtime_1.jsx)("div", { style: {
429
424
  display: 'flex',
430
425
  flexDirection: 'row',
431
426
  justifyContent: 'end',
432
- }, children: (0, jsx_runtime_1.jsx)(Button, { onClick: onSave, label: 'Add filter' }) })] }));
427
+ }, children: (0, jsx_runtime_1.jsx)(Button, { onClick: handleOnClick, label: 'Add filter' }) })] }));
433
428
  };
434
429
  exports.AddFilterPopover = AddFilterPopover;
@@ -74,4 +74,5 @@ export declare const getDateFilterInfo: (node: any) => {
74
74
  intervalPaths: any;
75
75
  };
76
76
  export declare function removeNonSelectedTableReferences(ast: any, table: string): any;
77
+ export declare function allNumericNodesValidInTree(node: any): boolean;
77
78
  //# sourceMappingURL=util.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../../../../src/components/ReportBuilder/util.ts"],"names":[],"mappings":"AAOA;;GAEG;AACH,eAAO,MAAM,qBAAqB,SAAU,GAAG,YAW9C,CAAC;AAEF,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,GAAG,WAa1C;AAED,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,GAAG,WAK5C;AAGD,eAAO,MAAM,WAAW,SAAU,GAAG,YAuBpC,CAAC;AAKF,eAAO,MAAM,oBAAoB,SAAU,GAAG,QAE7C,CAAC;AAEF,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,GAAG;;;;;;;;EAU3C;AAKD,eAAO,MAAM,eAAe,QAAS,GAAG,QAMvC,CAAC;AAEF,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,WAiBvD;AAED,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,GAAG,iBAQjD;AAED,wBAAgB,+BAA+B,CAC7C,IAAI,EAAE,GAAG,EACT,YAAY,EAAE,MAAM,GACnB,MAAM,GAAG,IAAI,CAOf;AAQD,wBAAgB,4BAA4B,CAC1C,IAAI,EAAE,GAAG,EACT,YAAY,EAAE,MAAM,GACnB,MAAM,GAAG,IAAI,CAWf;AAED,wBAAgB,gCAAgC,CAC9C,IAAI,EAAE,GAAG,EACT,YAAY,EAAE,MAAM,GACnB,MAAM,GAAG,IAAI,CAOf;AAMD,eAAO,MAAM,mBAAmB,SAAU,GAAG,gBAAgB,MAAM,YA4BlE,CAAC;AAIF,eAAO,MAAM,2BAA2B,SAAU,GAAG,YAUpD,CAAC;AAIF,eAAO,MAAM,oBAAoB,SACzB,GAAG,gBACK,MAAM,KACnB,OAoBF,CAAC;AAEF,eAAO,MAAM,qBAAqB,SAAU,GAAG,gBAAgB,MAAM,QAYpE,CAAC;AAEF,eAAO,MAAM,4BAA4B,SAAU,GAAG,KAAG,OAUxD,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,SAAU,GAAG,QA4B3C,CAAC;AAGF,eAAO,MAAM,UAAU,eAAgB,MAAM,SAe5C,CAAC;AAmBF;;;;;;;GAOG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,GAAG,EAAE,YAAY,CAAC,EAAE,MAAM,UAsBvE;AAED;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,GAAG,UAgB9C;AAED,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,GAAG,EAAE,YAAY,CAAC,EAAE,MAAM,sBAmBtE;AAED;;;GAGG;AACH,eAAO,MAAM,iBAAiB,SAAU,GAAG,YAU1C,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,eAAe,SAAU,GAAG,YAOxC,CAAC;AAEF,wBAAgB,aAAa,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,WAehD;AAED,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,GAAG,GACV,QAAQ,GAAG,QAAQ,GAAG,MAAM,GAAG,SAAS,CAyB1C;AAED,eAAO,MAAM,QAAQ,QAAS,GAAG,QAAoC,CAAC;AAEtE,eAAO,MAAM,QAAQ,MAAO,MAAM,WAA2C,CAAC;AA4L9E,eAAO,MAAM,iBAAiB,SAAU,GAAG;;;;;;;CAc1C,CAAC;AAqCF,wBAAgB,gCAAgC,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,OAQvE"}
1
+ {"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../../../../src/components/ReportBuilder/util.ts"],"names":[],"mappings":"AAOA;;GAEG;AACH,eAAO,MAAM,qBAAqB,SAAU,GAAG,YAW9C,CAAC;AAEF,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,GAAG,WAa1C;AAED,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,GAAG,WAK5C;AAGD,eAAO,MAAM,WAAW,SAAU,GAAG,YAuBpC,CAAC;AAKF,eAAO,MAAM,oBAAoB,SAAU,GAAG,QAE7C,CAAC;AAEF,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,GAAG;;;;;;;;EAU3C;AAKD,eAAO,MAAM,eAAe,QAAS,GAAG,QAMvC,CAAC;AAEF,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,WAiBvD;AAED,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,GAAG,iBAQjD;AAED,wBAAgB,+BAA+B,CAC7C,IAAI,EAAE,GAAG,EACT,YAAY,EAAE,MAAM,GACnB,MAAM,GAAG,IAAI,CAOf;AAQD,wBAAgB,4BAA4B,CAC1C,IAAI,EAAE,GAAG,EACT,YAAY,EAAE,MAAM,GACnB,MAAM,GAAG,IAAI,CAWf;AAED,wBAAgB,gCAAgC,CAC9C,IAAI,EAAE,GAAG,EACT,YAAY,EAAE,MAAM,GACnB,MAAM,GAAG,IAAI,CAOf;AAMD,eAAO,MAAM,mBAAmB,SAAU,GAAG,gBAAgB,MAAM,YA4BlE,CAAC;AAIF,eAAO,MAAM,2BAA2B,SAAU,GAAG,YAUpD,CAAC;AAIF,eAAO,MAAM,oBAAoB,SACzB,GAAG,gBACK,MAAM,KACnB,OAoBF,CAAC;AAEF,eAAO,MAAM,qBAAqB,SAAU,GAAG,gBAAgB,MAAM,QAYpE,CAAC;AAEF,eAAO,MAAM,4BAA4B,SAAU,GAAG,KAAG,OAUxD,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,SAAU,GAAG,QA4B3C,CAAC;AAGF,eAAO,MAAM,UAAU,eAAgB,MAAM,SAe5C,CAAC;AAmBF;;;;;;;GAOG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,GAAG,EAAE,YAAY,CAAC,EAAE,MAAM,UAsBvE;AAED;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,GAAG,UAgB9C;AAED,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,GAAG,EAAE,YAAY,CAAC,EAAE,MAAM,sBAmBtE;AAED;;;GAGG;AACH,eAAO,MAAM,iBAAiB,SAAU,GAAG,YAU1C,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,eAAe,SAAU,GAAG,YAOxC,CAAC;AAEF,wBAAgB,aAAa,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,WAehD;AAED,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,GAAG,GACV,QAAQ,GAAG,QAAQ,GAAG,MAAM,GAAG,SAAS,CAyB1C;AAED,eAAO,MAAM,QAAQ,QAAS,GAAG,QAAoC,CAAC;AAEtE,eAAO,MAAM,QAAQ,MAAO,MAAM,WAA2C,CAAC;AA4L9E,eAAO,MAAM,iBAAiB,SAAU,GAAG;;;;;;;CAc1C,CAAC;AAqCF,wBAAgB,gCAAgC,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,OAQvE;AAED,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,GAAG,GAAG,OAAO,CAe7D"}
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  // A collection of reusable, pure, utility functions for the Report Builder.
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
- exports.removeNonSelectedTableReferences = exports.getDateFilterInfo = exports.trimEndS = exports.deepCopy = exports.getPostgresBasicType = exports.showNodeAsRow = exports.isExtractEquals = exports.isDateTruncEquals = exports.tryConvertDateEquality = exports.extractSuffixToString = exports.dateTruncSuffixToString = exports.newUTCDate = exports.isColumnComparison = exports.isTheCurrentIntervalBigQuery = exports.isThePreviousInterval = exports.isTheCurrentInterval = exports.isInTheLastIntervalBigQuery = exports.isInTheLastInterval = exports.getInThePreviousIntervalSentence = exports.getInTheLastIntervalSentence = exports.getInTheCurrentIntervalSentence = exports.formatDateComparisonNode = exports.areObjectsEqualish = exports.isColumnDateish = exports.generateColumnExpr = exports.isColumnReferenceish = exports.isDateTrunc = exports.hasTopLevelOrBoolean = exports.isTopLevelBoolean = exports.isNodeEmptyCollection = void 0;
4
+ exports.allNumericNodesValidInTree = exports.removeNonSelectedTableReferences = exports.getDateFilterInfo = exports.trimEndS = exports.deepCopy = exports.getPostgresBasicType = exports.showNodeAsRow = exports.isExtractEquals = exports.isDateTruncEquals = exports.tryConvertDateEquality = exports.extractSuffixToString = exports.dateTruncSuffixToString = exports.newUTCDate = exports.isColumnComparison = exports.isTheCurrentIntervalBigQuery = exports.isThePreviousInterval = exports.isTheCurrentInterval = exports.isInTheLastIntervalBigQuery = exports.isInTheLastInterval = exports.getInThePreviousIntervalSentence = exports.getInTheLastIntervalSentence = exports.getInTheCurrentIntervalSentence = exports.formatDateComparisonNode = exports.areObjectsEqualish = exports.isColumnDateish = exports.generateColumnExpr = exports.isColumnReferenceish = exports.isDateTrunc = exports.hasTopLevelOrBoolean = exports.isTopLevelBoolean = exports.isNodeEmptyCollection = void 0;
5
5
  const date_fns_1 = require("date-fns");
6
6
  const bigDateMap_1 = require("./bigDateMap");
7
7
  const textProcessing_1 = require("../../utils/textProcessing");
@@ -695,3 +695,22 @@ function removeNonSelectedTableReferences(ast, table) {
695
695
  return ast;
696
696
  }
697
697
  exports.removeNonSelectedTableReferences = removeNonSelectedTableReferences;
698
+ function allNumericNodesValidInTree(node) {
699
+ if (!node)
700
+ return true;
701
+ if (node.type === 'number') {
702
+ const value = parseFloat(node.value);
703
+ console.log(node.value, value);
704
+ if (Number.isNaN(value)) {
705
+ return false;
706
+ }
707
+ else {
708
+ node.value = value;
709
+ return true;
710
+ }
711
+ }
712
+ const isLeftValid = allNumericNodesValidInTree(node.left);
713
+ const isRightValid = allNumericNodesValidInTree(node.right);
714
+ return isLeftValid && isRightValid;
715
+ }
716
+ exports.allNumericNodesValidInTree = allNumericNodesValidInTree;
@@ -1,4 +1,4 @@
1
- import React from 'react';
1
+ import React, { CSSProperties } from 'react';
2
2
  export interface Option {
3
3
  value: string;
4
4
  label: string;
@@ -9,7 +9,8 @@ export interface SelectComponentProps {
9
9
  options: Option[];
10
10
  disabled?: boolean;
11
11
  label?: string;
12
- theme: any;
12
+ theme?: any;
13
+ style?: CSSProperties;
13
14
  }
14
15
  export interface ButtonComponentProps {
15
16
  onClick: () => void;
@@ -31,13 +32,15 @@ export interface TableComponentProps {
31
32
  rowsPerPage?: number;
32
33
  emptyStateLabel?: string;
33
34
  }
35
+ /**
36
+ * An input element used to accept data from the user.
37
+ */
34
38
  export interface TextInputComponentProps {
35
- onChange: (e: any) => void;
36
- value: string;
37
39
  id: string;
38
- placeholder: string;
39
- theme?: any;
40
- width?: string;
40
+ width: number;
41
+ value: string | number | undefined | null;
42
+ placeholder?: string;
43
+ onChange: (event: React.ChangeEvent<HTMLInputElement>) => void;
41
44
  }
42
45
  export interface ModalComponentProps {
43
46
  children: any;
@@ -61,13 +64,11 @@ export interface DeleteButtonProps {
61
64
  onClick: () => void;
62
65
  style: any;
63
66
  }
64
- export declare const QuillTextInput: ({ value, onChange, placeholder, id, theme, }: TextInputComponentProps) => import("react/jsx-runtime").JSX.Element;
65
- export declare const MemoizedTextInput: ({ value, onChange, placeholder, id }: {
66
- value: any;
67
- onChange: any;
68
- placeholder: any;
69
- id: any;
70
- }) => import("react/jsx-runtime").JSX.Element;
67
+ /**
68
+ * The fallback TextInput element for Quill.
69
+ */
70
+ export declare const QuillTextInput: ({ id, value, width, placeholder, onChange, }: TextInputComponentProps) => import("react/jsx-runtime").JSX.Element;
71
+ export declare const MemoizedTextInput: ({ value, onChange, placeholder, id, }: TextInputComponentProps) => import("react/jsx-runtime").JSX.Element;
71
72
  export declare const MemoizedButton: ({ label, onClick, primary, isLoading, }: {
72
73
  label: any;
73
74
  onClick: any;
@@ -1 +1 @@
1
- {"version":3,"file":"UiComponents.d.ts","sourceRoot":"","sources":["../../../src/components/UiComponents.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"UiComponents.d.ts","sourceRoot":"","sources":["../../../src/components/UiComponents.tsx"],"names":[],"mappings":"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"}
@@ -6,7 +6,11 @@ const jsx_runtime_1 = require("react/jsx-runtime");
6
6
  const react_1 = require("react");
7
7
  const assets_1 = require("../assets");
8
8
  const Context_1 = require("../Context");
9
- const QuillTextInput = ({ value, onChange, placeholder, id, theme, }) => {
9
+ /**
10
+ * The fallback TextInput element for Quill.
11
+ */
12
+ const QuillTextInput = ({ id, value, width, placeholder, onChange, }) => {
13
+ const [theme] = (0, react_1.useContext)(Context_1.ThemeContext);
10
14
  return ((0, jsx_runtime_1.jsx)("input", { style: {
11
15
  display: 'flex',
12
16
  height: 40,
@@ -17,15 +21,16 @@ const QuillTextInput = ({ value, onChange, placeholder, id, theme, }) => {
17
21
  fontSize: 14,
18
22
  boxSizing: 'border-box',
19
23
  paddingLeft: 13,
20
- backgroundColor: theme.backgroundColor,
21
- color: theme.primaryTextColor,
22
- fontFamily: theme.fontFamily,
23
- width: 200,
24
- minWidth: 200,
25
- }, id: id, type: "text", value: value, onChange: (event) => onChange(event.target.value), placeholder: placeholder }));
24
+ backgroundColor: theme?.backgroundColor,
25
+ color: theme?.primaryTextColor,
26
+ fontFamily: theme?.fontFamily,
27
+ width: width,
28
+ minWidth: width,
29
+ }, id: id, value: value, placeholder: placeholder, onChange: onChange }));
26
30
  };
27
31
  exports.QuillTextInput = QuillTextInput;
28
- const MemoizedTextInput = ({ value, onChange, placeholder, id }) => {
32
+ // TODO: depreciate this component in favor of QuillTextInput (or vice versa)
33
+ const MemoizedTextInput = ({ value, onChange, placeholder, id, }) => {
29
34
  const [theme] = (0, react_1.useContext)(Context_1.ThemeContext);
30
35
  return ((0, jsx_runtime_1.jsxs)("div", { style: { position: 'relative' }, children: [(0, jsx_runtime_1.jsx)("style", { children: `
31
36
  .quill-text-input {
@@ -42,7 +47,7 @@ const MemoizedTextInput = ({ value, onChange, placeholder, id }) => {
42
47
  padding-top: 0px;
43
48
  padding-bottom: 0px;
44
49
  box-sizing: border-box;
45
- }` }), (0, jsx_runtime_1.jsx)("input", { id: id, className: "quill-text-input", type: "text", value: value, onChange: (event) => onChange(event.target.value), placeholder: placeholder, style: { fontFamily: theme?.fontFamily } })] }));
50
+ }` }), (0, jsx_runtime_1.jsx)("input", { id: id, className: "quill-text-input", type: "text", value: value, onChange: onChange, placeholder: placeholder, style: { fontFamily: theme?.fontFamily } })] }));
46
51
  };
47
52
  exports.MemoizedTextInput = MemoizedTextInput;
48
53
  const MemoizedButton = ({ label, onClick, primary = true, isLoading = false, }) => {
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Calculates the width that the first child of the given container should be
3
+ * such that the first child takes up as much space as possible in the container
4
+ * without crowding out the rest of its siblings. Also respects flexbox gap.
5
+ * @param containerRef the ref of the container element
6
+ * @param setState a callback to set the new width of the first child
7
+ * @param options config options ('gap' sets the size of the flexbox gap)
8
+ */
9
+ export declare const updateFirstChildWidth: (containerRef: React.RefObject<HTMLElement>, setState: (value: React.SetStateAction<number>) => void, options?: {
10
+ gap: number;
11
+ }) => void;
12
+ //# sourceMappingURL=width.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"width.d.ts","sourceRoot":"","sources":["../../../src/utils/width.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,eAAO,MAAM,qBAAqB,iBAClB,MAAM,SAAS,CAAC,WAAW,CAAC,oBACxB,MAAM,cAAc,CAAC,MAAM,CAAC,KAAK,IAAI,YAC9C;IAAE,GAAG,EAAE,MAAM,CAAA;CAAE,SAazB,CAAC"}
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.updateFirstChildWidth = void 0;
4
+ /**
5
+ * Calculates the width that the first child of the given container should be
6
+ * such that the first child takes up as much space as possible in the container
7
+ * without crowding out the rest of its siblings. Also respects flexbox gap.
8
+ * @param containerRef the ref of the container element
9
+ * @param setState a callback to set the new width of the first child
10
+ * @param options config options ('gap' sets the size of the flexbox gap)
11
+ */
12
+ const updateFirstChildWidth = (containerRef, setState, options = { gap: 0 }) => {
13
+ if (containerRef.current) {
14
+ const element = containerRef.current;
15
+ const totalWidth = element.getBoundingClientRect().width;
16
+ const gapWidth = options.gap * (element.childElementCount - 1);
17
+ let siblingsWidth = 0;
18
+ const children = Array.from(containerRef.current.children);
19
+ for (let i = 1; i < children.length; i++) {
20
+ siblingsWidth += children[i].getBoundingClientRect().width;
21
+ }
22
+ setState(totalWidth - siblingsWidth - gapWidth);
23
+ }
24
+ };
25
+ exports.updateFirstChildWidth = updateFirstChildWidth;
@@ -1,7 +1,7 @@
1
- import React from 'react';
1
+ import React, { CSSProperties } from 'react';
2
2
  import { QuillTheme } from './QuillProvider';
3
3
  import { Pivot } from './internals/ReportBuilder/PivotModal';
4
- import { SelectComponentProps, TextInputComponentProps, ButtonComponentProps, ModalComponentProps, HeaderProps, LabelProps, TextProps, DeleteButtonProps, MemoizedPopoverProps } from './components/UiComponents';
4
+ import { SelectComponentProps, TextInputComponentProps, ButtonComponentProps, ModalComponentProps, HeaderProps, LabelProps, TextProps, MemoizedPopoverProps } from './components/UiComponents';
5
5
  import { Column } from './models/Tables';
6
6
  import { Field } from './hooks/useQuill';
7
7
  export declare const numberFormatOptions: string[];
@@ -13,10 +13,13 @@ interface ChartBuilderProps {
13
13
  TextInput?: (props: TextInputComponentProps) => JSX.Element;
14
14
  Button?: (props: ButtonComponentProps) => JSX.Element;
15
15
  SecondaryButton?: (props: ButtonComponentProps) => JSX.Element;
16
+ DeleteButton?: (props: {
17
+ onClick: any;
18
+ style: CSSProperties;
19
+ }) => JSX.Element;
16
20
  Header?: (props: HeaderProps) => JSX.Element;
17
21
  Label?: (props: LabelProps) => JSX.Element;
18
22
  Text?: (props: TextProps) => JSX.Element;
19
- DeleteButton?: (props: DeleteButtonProps) => JSX.Element;
20
23
  Modal?: (props: ModalComponentProps) => JSX.Element;
21
24
  Popover?: (props: MemoizedPopoverProps) => JSX.Element;
22
25
  rows: {
@@ -55,7 +58,7 @@ interface ChartBuilderProps {
55
58
  organizationName?: string;
56
59
  }
57
60
  export declare function ChartBuilderWithModal(props: ChartBuilderProps): import("react/jsx-runtime").JSX.Element;
58
- export default function ChartBuilder({ TextInput, Select, Button, SecondaryButton, Header, Label, DeleteButton, Text, Popover, isOpen, isEditMode, horizontalView, pivot, setIsOpen, rows, columns, query, queryNoDateColumn, dateRange: dr, formHeaderStyle, formLabelStyle, showTableFormatOptions, showDateFieldOptions, showAccessControlOptions, showDashboardDropdown, onAddToDashboardComplete, onDelete, fields: fieldsProp, dashboardItem, recommendedPivots: rp, createdPivots: cp, destinationDashboard, dateColumn, buttonLabel, organizationName, pivotData, }: ChartBuilderProps): import("react/jsx-runtime").JSX.Element | undefined;
61
+ export default function ChartBuilder({ TextInput, Select, Button, SecondaryButton, Header, Label, DeleteButton, Text, Popover, isOpen, isEditMode, horizontalView, pivot, setIsOpen, rows, columns, query, queryNoDateColumn, dateRange: dr, formHeaderStyle, formLabelStyle, showTableFormatOptions, showDateFieldOptions, showAccessControlOptions, showDashboardDropdown, onAddToDashboardComplete, onDelete, fields: fieldsProp, dashboardItem, recommendedPivots: rp, createdPivots: cp, destinationDashboard, dateColumn, buttonLabel, organizationName, pivotData, }: ChartBuilderProps): import("react/jsx-runtime").JSX.Element | null;
59
62
  export declare function DashboardFilterModal({ isOpen, setIsOpen, override, theme, issues, }: {
60
63
  isOpen: boolean;
61
64
  setIsOpen: (e: boolean) => void;
@@ -1 +1 @@
1
- {"version":3,"file":"ChartBuilder.d.ts","sourceRoot":"","sources":["../../src/ChartBuilder.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ChartBuilder.d.ts","sourceRoot":"","sources":["../../src/ChartBuilder.tsx"],"names":[],"mappings":"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"}