synapse-react-client 4.0.40 → 4.0.41
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/SWC.index.d.ts +1 -0
- package/dist/SWC.index.d.ts.map +1 -1
- package/dist/SWC.index.js +2 -1
- package/dist/SWC.index.js.map +1 -1
- package/dist/components/AccessRequirement/ImposeRestrictionDialog/ImposeRestrictionDialog.d.ts +1 -0
- package/dist/components/AccessRequirement/ImposeRestrictionDialog/ImposeRestrictionDialog.d.ts.map +1 -1
- package/dist/components/AccessRequirement/ImposeRestrictionDialog/ImposeRestrictionDialog.js +12 -12
- package/dist/components/AccessRequirement/ImposeRestrictionDialog/ImposeRestrictionDialog.js.map +1 -1
- package/dist/components/Aridhia/AridhiaAccessStatus.d.ts.map +1 -1
- package/dist/components/Aridhia/AridhiaAccessStatus.js +51 -48
- package/dist/components/Aridhia/AridhiaAccessStatus.js.map +1 -1
- package/dist/components/Authentication/Constants.d.ts +4 -0
- package/dist/components/Authentication/Constants.d.ts.map +1 -1
- package/dist/components/Authentication/Constants.js +5 -2
- package/dist/components/Authentication/Constants.js.map +1 -1
- package/dist/components/Authentication/RecoveryCodeGrid.d.ts.map +1 -1
- package/dist/components/Authentication/RecoveryCodeGrid.js +8 -1
- package/dist/components/Authentication/RecoveryCodeGrid.js.map +1 -1
- package/dist/components/Authentication/RegenerateBackupCodesWarning.js +4 -1
- package/dist/components/Authentication/RegenerateBackupCodesWarning.js.map +1 -1
- package/dist/components/Authentication/TOTPForm.d.ts.map +1 -1
- package/dist/components/Authentication/TOTPForm.js +20 -18
- package/dist/components/Authentication/TOTPForm.js.map +1 -1
- package/dist/components/Authentication/TwoFactorBackupCodes.d.ts.map +1 -1
- package/dist/components/Authentication/TwoFactorBackupCodes.js +41 -12
- package/dist/components/Authentication/TwoFactorBackupCodes.js.map +1 -1
- package/dist/components/Authentication/TwoFactorEnrollmentForm.d.ts.map +1 -1
- package/dist/components/Authentication/TwoFactorEnrollmentForm.js +74 -71
- package/dist/components/Authentication/TwoFactorEnrollmentForm.js.map +1 -1
- package/dist/components/DataGrid/components/ReorderColumnsDialog.d.ts.map +1 -1
- package/dist/components/DataGrid/components/ReorderColumnsDialog.js +43 -46
- package/dist/components/DataGrid/components/ReorderColumnsDialog.js.map +1 -1
- package/dist/components/FormTemplateEditor/ChoiceOptionsEditor.d.ts +11 -0
- package/dist/components/FormTemplateEditor/ChoiceOptionsEditor.d.ts.map +1 -0
- package/dist/components/FormTemplateEditor/ChoiceOptionsEditor.js +61 -0
- package/dist/components/FormTemplateEditor/ChoiceOptionsEditor.js.map +1 -0
- package/dist/components/FormTemplateEditor/FieldDefinitionDrawer.d.ts +33 -0
- package/dist/components/FormTemplateEditor/FieldDefinitionDrawer.d.ts.map +1 -0
- package/dist/components/FormTemplateEditor/FieldDefinitionDrawer.js +187 -0
- package/dist/components/FormTemplateEditor/FieldDefinitionDrawer.js.map +1 -0
- package/dist/components/FormTemplateEditor/FormTemplatePreview.d.ts +14 -0
- package/dist/components/FormTemplateEditor/FormTemplatePreview.d.ts.map +1 -0
- package/dist/components/FormTemplateEditor/FormTemplatePreview.js +83 -0
- package/dist/components/FormTemplateEditor/FormTemplatePreview.js.map +1 -0
- package/dist/components/FormTemplateEditor/JsonSchemaBodyEditor.d.ts +13 -0
- package/dist/components/FormTemplateEditor/JsonSchemaBodyEditor.d.ts.map +1 -0
- package/dist/components/FormTemplateEditor/JsonSchemaBodyEditor.js +33 -0
- package/dist/components/FormTemplateEditor/JsonSchemaBodyEditor.js.map +1 -0
- package/dist/components/FormTemplateEditor/formTemplateValidation.d.ts +32 -0
- package/dist/components/FormTemplateEditor/formTemplateValidation.d.ts.map +1 -0
- package/dist/components/FormTemplateEditor/formTemplateValidation.js +75 -0
- package/dist/components/FormTemplateEditor/formTemplateValidation.js.map +1 -0
- package/dist/components/FormTemplateEditor/schemaFieldUtils.d.ts +25 -0
- package/dist/components/FormTemplateEditor/schemaFieldUtils.d.ts.map +1 -0
- package/dist/components/FormTemplateEditor/schemaFieldUtils.js +66 -0
- package/dist/components/FormTemplateEditor/schemaFieldUtils.js.map +1 -0
- package/dist/components/FormTemplateEditor/useSaveFormTemplate.d.ts +28 -0
- package/dist/components/FormTemplateEditor/useSaveFormTemplate.d.ts.map +1 -0
- package/dist/components/FormTemplateEditor/useSaveFormTemplate.js +39 -0
- package/dist/components/FormTemplateEditor/useSaveFormTemplate.js.map +1 -0
- package/dist/components/FormTemplateEditor/utils.d.ts +21 -0
- package/dist/components/FormTemplateEditor/utils.d.ts.map +1 -0
- package/dist/components/FormTemplateEditor/utils.js +27 -0
- package/dist/components/FormTemplateEditor/utils.js.map +1 -0
- package/dist/components/JsonSchemaForm/CustomFormContext.d.ts +1 -1
- package/dist/components/JsonSchemaForm/CustomFormContext.d.ts.map +1 -1
- package/dist/components/JsonSchemaForm/JsonSchemaForm.css +1 -1
- package/dist/components/JsonSchemaForm/JsonSchemaForm.module.js +1 -1
- package/dist/components/JsonSchemaForm/JsonSchemaForm.module.js.map +1 -1
- package/dist/components/JsonSchemaForm/JsonSchemaForm.module.scss +6 -1
- package/dist/components/JsonSchemaForm/templates/RJSFInputLabel.d.ts.map +1 -1
- package/dist/components/JsonSchemaForm/templates/RJSFInputLabel.js +4 -0
- package/dist/components/JsonSchemaForm/templates/RJSFInputLabel.js.map +1 -1
- package/dist/components/QueryBuilder/FilterConditionRow.css +1 -1
- package/dist/components/QueryBuilder/FilterConditionRow.d.ts +2 -0
- package/dist/components/QueryBuilder/FilterConditionRow.d.ts.map +1 -1
- package/dist/components/QueryBuilder/FilterConditionRow.js +112 -109
- package/dist/components/QueryBuilder/FilterConditionRow.js.map +1 -1
- package/dist/components/QueryBuilder/FilterConditionRow.module.js +10 -11
- package/dist/components/QueryBuilder/FilterConditionRow.module.js.map +1 -1
- package/dist/components/QueryBuilder/FilterConditionRow.module.scss +0 -5
- package/dist/components/QueryBuilder/FilterGroupNode.css +1 -1
- package/dist/components/QueryBuilder/FilterGroupNode.d.ts +4 -0
- package/dist/components/QueryBuilder/FilterGroupNode.d.ts.map +1 -1
- package/dist/components/QueryBuilder/FilterGroupNode.js +85 -51
- package/dist/components/QueryBuilder/FilterGroupNode.js.map +1 -1
- package/dist/components/QueryBuilder/FilterGroupNode.module.js +10 -9
- package/dist/components/QueryBuilder/FilterGroupNode.module.js.map +1 -1
- package/dist/components/QueryBuilder/FilterGroupNode.module.scss +9 -0
- package/dist/components/QueryBuilder/QBDragHandle.d.ts +10 -0
- package/dist/components/QueryBuilder/QBDragHandle.d.ts.map +1 -0
- package/dist/components/QueryBuilder/QBDragHandle.js +22 -0
- package/dist/components/QueryBuilder/QBDragHandle.js.map +1 -0
- package/dist/components/QueryBuilder/QueryBuilderControls.d.ts.map +1 -1
- package/dist/components/QueryBuilder/QueryBuilderControls.js +112 -107
- package/dist/components/QueryBuilder/QueryBuilderControls.js.map +1 -1
- package/dist/components/QueryBuilder/qbTreeToReadable.js +11 -11
- package/dist/components/QueryBuilder/queryBuilderDnd.d.ts +27 -0
- package/dist/components/QueryBuilder/queryBuilderDnd.d.ts.map +1 -0
- package/dist/components/QueryBuilder/queryBuilderDnd.js +41 -0
- package/dist/components/QueryBuilder/queryBuilderDnd.js.map +1 -0
- package/dist/components/QueryBuilder/queryBuilderDrag.css +1 -0
- package/dist/components/QueryBuilder/queryBuilderDrag.module.js +8 -0
- package/dist/components/QueryBuilder/queryBuilderDrag.module.js.map +1 -0
- package/dist/components/QueryBuilder/queryBuilderDrag.module.scss +12 -0
- package/dist/components/QueryBuilder/queryBuilderOperations.d.ts +13 -0
- package/dist/components/QueryBuilder/queryBuilderOperations.d.ts.map +1 -1
- package/dist/components/QueryBuilder/queryBuilderOperations.js +39 -36
- package/dist/components/QueryBuilder/queryBuilderOperations.js.map +1 -1
- package/dist/components/QueryWrapperPlotNav/QueryWrapperPlotNav.d.ts.map +1 -1
- package/dist/components/QueryWrapperPlotNav/QueryWrapperPlotNav.js +46 -47
- package/dist/components/QueryWrapperPlotNav/QueryWrapperPlotNav.js.map +1 -1
- package/dist/components/entity/page/title_bar/EntityPageTitleBar.d.ts +0 -1
- package/dist/components/entity/page/title_bar/EntityPageTitleBar.d.ts.map +1 -1
- package/dist/components/entity/page/title_bar/EntityPageTitleBar.js +35 -36
- package/dist/components/entity/page/title_bar/EntityPageTitleBar.js.map +1 -1
- package/dist/components/styled/LeftRightPanel.d.ts.map +1 -1
- package/dist/components/styled/LeftRightPanel.js +19 -2
- package/dist/components/styled/LeftRightPanel.js.map +1 -1
- package/dist/mocks/accessRequirement/mockFormTemplates.d.ts +2 -2
- package/dist/mocks/accessRequirement/mockFormTemplates.d.ts.map +1 -1
- package/dist/mocks/accessRequirement/mockFormTemplates.js +7 -14
- package/dist/mocks/accessRequirement/mockFormTemplates.js.map +1 -1
- package/dist/mocks/accessRequirement/mockJsonSchemas.d.ts +4 -1
- package/dist/mocks/accessRequirement/mockJsonSchemas.d.ts.map +1 -1
- package/dist/mocks/accessRequirement/mockJsonSchemas.js +36 -15
- package/dist/mocks/accessRequirement/mockJsonSchemas.js.map +1 -1
- package/dist/mocks/msw/handlers/asyncJobHandlers.d.ts +41 -14
- package/dist/mocks/msw/handlers/asyncJobHandlers.d.ts.map +1 -1
- package/dist/mocks/msw/handlers/asyncJobHandlers.js +53 -44
- package/dist/mocks/msw/handlers/asyncJobHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/chatHandlers.d.ts.map +1 -1
- package/dist/mocks/msw/handlers/chatHandlers.js +19 -13
- package/dist/mocks/msw/handlers/chatHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/schemaHandlers.d.ts +2 -1
- package/dist/mocks/msw/handlers/schemaHandlers.d.ts.map +1 -1
- package/dist/mocks/msw/handlers/schemaHandlers.js +13 -7
- package/dist/mocks/msw/handlers/schemaHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/searchQueryHandlers.d.ts.map +1 -1
- package/dist/mocks/msw/handlers/searchQueryHandlers.js +24 -18
- package/dist/mocks/msw/handlers/searchQueryHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/tableQueryHandlers.d.ts.map +1 -1
- package/dist/mocks/msw/handlers/tableQueryHandlers.js +35 -16
- package/dist/mocks/msw/handlers/tableQueryHandlers.js.map +1 -1
- package/dist/synapse-queries/KeyFactory.d.ts +1 -2
- package/dist/synapse-queries/KeyFactory.d.ts.map +1 -1
- package/dist/synapse-queries/KeyFactory.js +2 -5
- package/dist/synapse-queries/KeyFactory.js.map +1 -1
- package/dist/synapse-queries/dataaccess/index.d.ts +0 -1
- package/dist/synapse-queries/dataaccess/index.d.ts.map +1 -1
- package/dist/synapse-queries/dataaccess/index.js +3 -4
- package/dist/synapse-queries/index.js +180 -184
- package/dist/synapse-queries/jsonschema/useCreateJsonSchema.d.ts +9 -0
- package/dist/synapse-queries/jsonschema/useCreateJsonSchema.d.ts.map +1 -0
- package/dist/synapse-queries/jsonschema/useCreateJsonSchema.js +22 -0
- package/dist/synapse-queries/jsonschema/useCreateJsonSchema.js.map +1 -0
- package/dist/testutils/vitest.setup.js +18 -9
- package/dist/testutils/vitest.setup.js.map +1 -1
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/dist/utils/APIConstants.d.ts +1 -0
- package/dist/utils/APIConstants.d.ts.map +1 -1
- package/dist/utils/APIConstants.js +2 -2
- package/dist/utils/APIConstants.js.map +1 -1
- package/dist/utils/appendFinalQueryParamKey.d.ts.map +1 -1
- package/dist/utils/appendFinalQueryParamKey.js +4 -1
- package/dist/utils/appendFinalQueryParamKey.js.map +1 -1
- package/dist/utils/featureflag/FeatureFlags.d.ts +1 -0
- package/dist/utils/featureflag/FeatureFlags.d.ts.map +1 -1
- package/dist/utils/featureflag/FeatureFlags.js +1 -1
- package/dist/utils/featureflag/FeatureFlags.js.map +1 -1
- package/dist/utils/functions/ArrayUtils.d.ts +3 -0
- package/dist/utils/functions/ArrayUtils.d.ts.map +1 -1
- package/dist/utils/functions/ArrayUtils.js +7 -1
- package/dist/utils/functions/ArrayUtils.js.map +1 -1
- package/dist/utils/jsonschema/generateDataAccessSchema.d.ts +26 -0
- package/dist/utils/jsonschema/generateDataAccessSchema.d.ts.map +1 -0
- package/dist/utils/jsonschema/generateDataAccessSchema.js +28 -0
- package/dist/utils/jsonschema/generateDataAccessSchema.js.map +1 -0
- package/dist/utils/jsonschema/submissionContext.d.ts +86 -0
- package/dist/utils/jsonschema/submissionContext.d.ts.map +1 -0
- package/dist/utils/jsonschema/submissionContext.js +186 -0
- package/dist/utils/jsonschema/submissionContext.js.map +1 -0
- package/package.json +5 -3
- package/dist/components/AccessRequirement/AddConditionsForUseButton/AddConditionsForUseButton.d.ts +0 -6
- package/dist/components/AccessRequirement/AddConditionsForUseButton/AddConditionsForUseButton.d.ts.map +0 -1
- package/dist/components/AccessRequirement/AddConditionsForUseButton/AddConditionsForUseButton.js +0 -32
- package/dist/components/AccessRequirement/AddConditionsForUseButton/AddConditionsForUseButton.js.map +0 -1
- package/dist/components/entity/page/title_bar/TitleBarProperties.d.ts +0 -9
- package/dist/components/entity/page/title_bar/TitleBarProperties.d.ts.map +0 -1
- package/dist/components/entity/page/title_bar/TitleBarProperties.js +0 -24
- package/dist/components/entity/page/title_bar/TitleBarProperties.js.map +0 -1
- package/dist/synapse-queries/dataaccess/useGenerateDataAccessSchema.d.ts +0 -21
- package/dist/synapse-queries/dataaccess/useGenerateDataAccessSchema.d.ts.map +0 -1
- package/dist/synapse-queries/dataaccess/useGenerateDataAccessSchema.js +0 -34
- package/dist/synapse-queries/dataaccess/useGenerateDataAccessSchema.js.map +0 -1
|
@@ -1,100 +1,134 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
1
|
+
import { isQBGroup as e } from "./QueryBuilderTypes.js";
|
|
2
|
+
import { groupDropZoneData as t, groupDropZoneId as n } from "./queryBuilderDnd.js";
|
|
3
|
+
import { useQueryBuilderInternalContext as r } from "./QueryBuilderInternalContext.js";
|
|
4
|
+
import i from "./queryBuilderDrag.module.js";
|
|
5
|
+
import { QBDragHandle as a } from "./QBDragHandle.js";
|
|
6
|
+
import { FilterConditionRow as o } from "./FilterConditionRow.js";
|
|
7
|
+
import s from "./FilterGroupNode.module.js";
|
|
8
|
+
import { Button as c, ToggleButton as l, ToggleButtonGroup as u } from "@mui/material";
|
|
9
|
+
import { jsx as d, jsxs as f } from "react/jsx-runtime";
|
|
10
|
+
import { useForkRef as p } from "@mui/material/utils";
|
|
11
|
+
import { useSortable as m } from "@dnd-kit/react/sortable";
|
|
12
|
+
import { pointerIntersection as h } from "@dnd-kit/collision";
|
|
13
|
+
import { useDroppable as g } from "@dnd-kit/react";
|
|
7
14
|
//#region src/components/QueryBuilder/FilterGroupNode.tsx
|
|
8
|
-
function
|
|
9
|
-
let { group:
|
|
10
|
-
|
|
11
|
-
|
|
15
|
+
function _(b) {
|
|
16
|
+
let { group: x, isRoot: S = !1, parentGroupId: C, index: w, depth: T = 0 } = b, { addConditionAt: E, addChildGroupAt: D, clearGroupAt: O, updateGroupAt: k, removeGroupAt: A } = r(), { ref: j, handleRef: M, isDragSource: N } = m({
|
|
17
|
+
id: x.id,
|
|
18
|
+
index: w ?? 0,
|
|
19
|
+
group: C ?? x.id,
|
|
20
|
+
disabled: {
|
|
21
|
+
draggable: S,
|
|
22
|
+
droppable: !0
|
|
23
|
+
}
|
|
24
|
+
}), { ref: P, isDropTarget: F } = g({
|
|
25
|
+
id: n(x.id),
|
|
26
|
+
data: t(x.id),
|
|
27
|
+
collisionDetector: h,
|
|
28
|
+
collisionPriority: T
|
|
29
|
+
}), I = p(j, P), L = {
|
|
30
|
+
"--qb-accent-color": v(x),
|
|
31
|
+
"--qb-pill-color": v(x)
|
|
12
32
|
};
|
|
13
|
-
return /* @__PURE__ */
|
|
14
|
-
|
|
15
|
-
|
|
33
|
+
return /* @__PURE__ */ f("div", {
|
|
34
|
+
ref: I,
|
|
35
|
+
className: `${s.group} ${S ? "" : s.nested}${N ? ` ${i.dragSource}` : ""}${F ? ` ${s.dropTarget}` : ""}`,
|
|
36
|
+
style: L,
|
|
16
37
|
role: "group",
|
|
17
|
-
"aria-label":
|
|
18
|
-
"data-qb-node-id":
|
|
19
|
-
children: [/* @__PURE__ */
|
|
20
|
-
className:
|
|
38
|
+
"aria-label": y(x),
|
|
39
|
+
"data-qb-node-id": x.id,
|
|
40
|
+
children: [/* @__PURE__ */ f("div", {
|
|
41
|
+
className: s.header,
|
|
21
42
|
children: [
|
|
22
|
-
/* @__PURE__ */
|
|
43
|
+
!S && /* @__PURE__ */ d(a, {
|
|
44
|
+
handleRef: M,
|
|
45
|
+
label: "Drag condition group into another condition group"
|
|
46
|
+
}),
|
|
47
|
+
/* @__PURE__ */ f(u, {
|
|
23
48
|
size: "small",
|
|
24
|
-
className:
|
|
49
|
+
className: s.combinator,
|
|
25
50
|
exclusive: !0,
|
|
26
|
-
value:
|
|
51
|
+
value: x.combinator,
|
|
27
52
|
"aria-label": "Boolean combinator",
|
|
28
53
|
onChange: (e, t) => {
|
|
29
|
-
t != null &&
|
|
54
|
+
t != null && k(x.id, { combinator: t });
|
|
30
55
|
},
|
|
31
|
-
children: [/* @__PURE__ */
|
|
56
|
+
children: [/* @__PURE__ */ d(l, {
|
|
32
57
|
value: "AND",
|
|
33
58
|
"aria-label": "AND",
|
|
34
59
|
children: "AND"
|
|
35
|
-
}), /* @__PURE__ */
|
|
60
|
+
}), /* @__PURE__ */ d(l, {
|
|
36
61
|
value: "OR",
|
|
37
62
|
"aria-label": "OR",
|
|
38
63
|
children: "OR"
|
|
39
64
|
})]
|
|
40
65
|
}),
|
|
41
|
-
/* @__PURE__ */
|
|
66
|
+
/* @__PURE__ */ d(l, {
|
|
42
67
|
size: "small",
|
|
43
68
|
value: "not",
|
|
44
|
-
selected:
|
|
45
|
-
className:
|
|
69
|
+
selected: x.not,
|
|
70
|
+
className: s.notToggle,
|
|
46
71
|
"aria-label": "Negate this group",
|
|
47
|
-
"aria-pressed":
|
|
48
|
-
onChange: () =>
|
|
72
|
+
"aria-pressed": x.not,
|
|
73
|
+
onChange: () => k(x.id, { not: !x.not }),
|
|
49
74
|
children: "Exclude (NOT)"
|
|
50
75
|
}),
|
|
51
|
-
/* @__PURE__ */
|
|
52
|
-
className:
|
|
76
|
+
/* @__PURE__ */ f("div", {
|
|
77
|
+
className: s.actions,
|
|
53
78
|
children: [
|
|
54
|
-
/* @__PURE__ */
|
|
55
|
-
className:
|
|
79
|
+
/* @__PURE__ */ d(c, {
|
|
80
|
+
className: s.actionButton,
|
|
56
81
|
size: "small",
|
|
57
|
-
onClick: () =>
|
|
82
|
+
onClick: () => E(x.id),
|
|
58
83
|
children: "+ Condition"
|
|
59
84
|
}),
|
|
60
|
-
/* @__PURE__ */
|
|
61
|
-
className:
|
|
85
|
+
/* @__PURE__ */ d(c, {
|
|
86
|
+
className: s.actionButton,
|
|
62
87
|
size: "small",
|
|
63
|
-
onClick: () =>
|
|
88
|
+
onClick: () => D(x.id),
|
|
64
89
|
children: "+ Condition Group"
|
|
65
90
|
}),
|
|
66
|
-
/* @__PURE__ */
|
|
67
|
-
className:
|
|
91
|
+
/* @__PURE__ */ d(c, {
|
|
92
|
+
className: s.actionButton,
|
|
68
93
|
size: "small",
|
|
69
|
-
onClick: () =>
|
|
70
|
-
disabled:
|
|
94
|
+
onClick: () => O(x.id),
|
|
95
|
+
disabled: x.children.length === 0,
|
|
71
96
|
children: "Clear"
|
|
72
97
|
}),
|
|
73
|
-
!
|
|
74
|
-
className:
|
|
98
|
+
!S && /* @__PURE__ */ d(c, {
|
|
99
|
+
className: s.actionButton,
|
|
75
100
|
size: "small",
|
|
76
|
-
onClick: () =>
|
|
101
|
+
onClick: () => A(x.id),
|
|
77
102
|
children: "Delete Condition Group"
|
|
78
103
|
})
|
|
79
104
|
]
|
|
80
105
|
})
|
|
81
106
|
]
|
|
82
|
-
}), /* @__PURE__ */
|
|
83
|
-
className:
|
|
84
|
-
children:
|
|
85
|
-
className:
|
|
107
|
+
}), /* @__PURE__ */ d("div", {
|
|
108
|
+
className: s.children,
|
|
109
|
+
children: x.children.length === 0 ? /* @__PURE__ */ d("div", {
|
|
110
|
+
className: s.emptyState,
|
|
86
111
|
children: "No conditions yet, add one above"
|
|
87
|
-
}) :
|
|
112
|
+
}) : x.children.map((t, n) => e(t) ? /* @__PURE__ */ d(_, {
|
|
113
|
+
group: t,
|
|
114
|
+
parentGroupId: x.id,
|
|
115
|
+
index: n,
|
|
116
|
+
depth: T + 1
|
|
117
|
+
}, t.id) : /* @__PURE__ */ d(o, {
|
|
118
|
+
condition: t,
|
|
119
|
+
parentGroupId: x.id,
|
|
120
|
+
index: n
|
|
121
|
+
}, t.id))
|
|
88
122
|
})]
|
|
89
123
|
});
|
|
90
124
|
}
|
|
91
|
-
function
|
|
125
|
+
function v(e) {
|
|
92
126
|
return e.not ? "var(--synapse-error)" : e.combinator === "OR" ? "var(--synapse-warning)" : "var(--synapse-primary-action-color)";
|
|
93
127
|
}
|
|
94
|
-
function
|
|
128
|
+
function y(e) {
|
|
95
129
|
return `${e.not ? "excluded " : ""}${e.combinator} filter group`;
|
|
96
130
|
}
|
|
97
131
|
//#endregion
|
|
98
|
-
export {
|
|
132
|
+
export { _ as FilterGroupNode };
|
|
99
133
|
|
|
100
134
|
//# sourceMappingURL=FilterGroupNode.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FilterGroupNode.js","names":[],"sources":["../../../src/components/QueryBuilder/FilterGroupNode.tsx"],"sourcesContent":["import { Button, ToggleButton, ToggleButtonGroup } from '@mui/material'\nimport { CSSProperties } from 'react'\nimport { FilterConditionRow } from './FilterConditionRow'\nimport styles from './FilterGroupNode.module.scss'\nimport { useQueryBuilderInternalContext } from './QueryBuilderInternalContext'\nimport { isQBGroup, QBGroup } from './QueryBuilderTypes'\n\nexport type FilterGroupNodeProps = {\n group: QBGroup\n isRoot?: boolean\n}\n\nexport function FilterGroupNode(props: FilterGroupNodeProps) {\n const { group, isRoot = false } = props\n const {\n addConditionAt,\n addChildGroupAt,\n clearGroupAt,\n updateGroupAt,\n removeGroupAt,\n } = useQueryBuilderInternalContext()\n\n const style: CSSProperties = {\n ['--qb-accent-color' as string]: accentColorFor(group),\n ['--qb-pill-color' as string]: accentColorFor(group),\n }\n\n return (\n <div\n className={`${styles.group} ${isRoot ? '' : styles.nested}`}\n style={style}\n role=\"group\"\n aria-label={groupAriaLabel(group)}\n data-qb-node-id={group.id}\n >\n <div className={styles.header}>\n <ToggleButtonGroup\n size=\"small\"\n className={styles.combinator}\n exclusive\n value={group.combinator}\n aria-label=\"Boolean combinator\"\n onChange={(_event, next) => {\n if (next == null) return\n updateGroupAt(group.id, { combinator: next })\n }}\n >\n <ToggleButton value=\"AND\" aria-label=\"AND\">\n AND\n </ToggleButton>\n <ToggleButton value=\"OR\" aria-label=\"OR\">\n OR\n </ToggleButton>\n </ToggleButtonGroup>\n\n <ToggleButton\n size=\"small\"\n value=\"not\"\n selected={group.not}\n className={styles.notToggle}\n aria-label=\"Negate this group\"\n aria-pressed={group.not}\n onChange={() => updateGroupAt(group.id, { not: !group.not })}\n >\n Exclude (NOT)\n </ToggleButton>\n\n <div className={styles.actions}>\n <Button\n className={styles.actionButton}\n size=\"small\"\n onClick={() => addConditionAt(group.id)}\n >\n + Condition\n </Button>\n <Button\n className={styles.actionButton}\n size=\"small\"\n onClick={() => addChildGroupAt(group.id)}\n >\n + Condition Group\n </Button>\n <Button\n className={styles.actionButton}\n size=\"small\"\n onClick={() => clearGroupAt(group.id)}\n disabled={group.children.length === 0}\n >\n Clear\n </Button>\n {!isRoot && (\n <Button\n className={styles.actionButton}\n size=\"small\"\n onClick={() => removeGroupAt(group.id)}\n >\n Delete Condition Group\n </Button>\n )}\n </div>\n </div>\n\n <div className={styles.children}>\n {group.children.length === 0 ? (\n <div className={styles.emptyState}>\n No conditions yet, add one above\n </div>\n ) : (\n group.children.map(child => {\n if (isQBGroup(child)) {\n return <FilterGroupNode
|
|
1
|
+
{"version":3,"file":"FilterGroupNode.js","names":[],"sources":["../../../src/components/QueryBuilder/FilterGroupNode.tsx"],"sourcesContent":["import { Button, ToggleButton, ToggleButtonGroup } from '@mui/material'\nimport { useForkRef } from '@mui/material/utils'\nimport { pointerIntersection } from '@dnd-kit/collision'\nimport { useDroppable } from '@dnd-kit/react'\nimport { useSortable } from '@dnd-kit/react/sortable'\nimport { CSSProperties } from 'react'\nimport { FilterConditionRow } from './FilterConditionRow'\nimport styles from './FilterGroupNode.module.scss'\nimport { QBDragHandle } from './QBDragHandle'\nimport dragStyles from './queryBuilderDrag.module.scss'\nimport { groupDropZoneData, groupDropZoneId } from './queryBuilderDnd'\nimport { useQueryBuilderInternalContext } from './QueryBuilderInternalContext'\nimport { isQBGroup, QBGroup } from './QueryBuilderTypes'\n\nexport type FilterGroupNodeProps = {\n group: QBGroup\n isRoot?: boolean\n parentGroupId?: string\n index?: number\n /** Nesting level, used to resolve drops into the innermost group. */\n depth?: number\n}\n\nexport function FilterGroupNode(props: FilterGroupNodeProps) {\n const { group, isRoot = false, parentGroupId, index, depth = 0 } = props\n const {\n addConditionAt,\n addChildGroupAt,\n clearGroupAt,\n updateGroupAt,\n removeGroupAt,\n } = useQueryBuilderInternalContext()\n\n // Groups become drop targets only through the `useDroppable` zone below.\n // Keep the sortable's droppable half disabled unless `useQueryBuilderDrag`\n // also resolves sortable targets: for any target the app doesn't reposition\n // in `onDragOver`, dnd-kit's OptimisticSortingPlugin moves the DOM node\n // itself, and React's next commit throws `NotFoundError` on `removeChild`.\n const {\n ref: sortableRef,\n handleRef,\n isDragSource,\n } = useSortable({\n id: group.id,\n index: index ?? 0,\n group: parentGroupId ?? group.id,\n disabled: { draggable: isRoot, droppable: true },\n })\n\n // `useQueryBuilderDrag` identifies the target group by `data.groupId`. Zones\n // nest inside their groups, so the pointer is inside every ancestor of the\n // group it is over; hit-testing by pointer and ranking by depth selects the\n // innermost. `collisionPriority` replaces the ranking a detector returns, so\n // the detector has to be one that reports nothing but pointer hits —\n // otherwise a deeper zone the dragged box merely overlaps outranks the zone\n // the pointer is actually in.\n const { ref: dropZoneRef, isDropTarget } = useDroppable({\n id: groupDropZoneId(group.id),\n data: groupDropZoneData(group.id),\n collisionDetector: pointerIntersection,\n collisionPriority: depth,\n })\n\n // The drag source and the drop zone are the same element.\n const groupRef = useForkRef(sortableRef, dropZoneRef)\n\n const style: CSSProperties = {\n ['--qb-accent-color' as string]: accentColorFor(group),\n ['--qb-pill-color' as string]: accentColorFor(group),\n }\n\n return (\n <div\n ref={groupRef}\n className={`${styles.group} ${isRoot ? '' : styles.nested}${\n isDragSource ? ` ${dragStyles.dragSource}` : ''\n }${isDropTarget ? ` ${styles.dropTarget}` : ''}`}\n style={style}\n role=\"group\"\n aria-label={groupAriaLabel(group)}\n data-qb-node-id={group.id}\n >\n <div className={styles.header}>\n {!isRoot && (\n <QBDragHandle\n handleRef={handleRef}\n label=\"Drag condition group into another condition group\"\n />\n )}\n <ToggleButtonGroup\n size=\"small\"\n className={styles.combinator}\n exclusive\n value={group.combinator}\n aria-label=\"Boolean combinator\"\n onChange={(_event, next) => {\n if (next == null) return\n updateGroupAt(group.id, { combinator: next })\n }}\n >\n <ToggleButton value=\"AND\" aria-label=\"AND\">\n AND\n </ToggleButton>\n <ToggleButton value=\"OR\" aria-label=\"OR\">\n OR\n </ToggleButton>\n </ToggleButtonGroup>\n\n <ToggleButton\n size=\"small\"\n value=\"not\"\n selected={group.not}\n className={styles.notToggle}\n aria-label=\"Negate this group\"\n aria-pressed={group.not}\n onChange={() => updateGroupAt(group.id, { not: !group.not })}\n >\n Exclude (NOT)\n </ToggleButton>\n\n <div className={styles.actions}>\n <Button\n className={styles.actionButton}\n size=\"small\"\n onClick={() => addConditionAt(group.id)}\n >\n + Condition\n </Button>\n <Button\n className={styles.actionButton}\n size=\"small\"\n onClick={() => addChildGroupAt(group.id)}\n >\n + Condition Group\n </Button>\n <Button\n className={styles.actionButton}\n size=\"small\"\n onClick={() => clearGroupAt(group.id)}\n disabled={group.children.length === 0}\n >\n Clear\n </Button>\n {!isRoot && (\n <Button\n className={styles.actionButton}\n size=\"small\"\n onClick={() => removeGroupAt(group.id)}\n >\n Delete Condition Group\n </Button>\n )}\n </div>\n </div>\n\n <div className={styles.children}>\n {group.children.length === 0 ? (\n <div className={styles.emptyState}>\n No conditions yet, add one above\n </div>\n ) : (\n group.children.map((child, childIndex) => {\n if (isQBGroup(child)) {\n return (\n <FilterGroupNode\n key={child.id}\n group={child}\n parentGroupId={group.id}\n index={childIndex}\n depth={depth + 1}\n />\n )\n }\n return (\n <FilterConditionRow\n key={child.id}\n condition={child}\n parentGroupId={group.id}\n index={childIndex}\n />\n )\n })\n )}\n </div>\n </div>\n )\n}\n\nfunction accentColorFor(group: QBGroup): string {\n if (group.not) return 'var(--synapse-error)'\n if (group.combinator === 'OR') return 'var(--synapse-warning)'\n return 'var(--synapse-primary-action-color)'\n}\n\nfunction groupAriaLabel(group: QBGroup): string {\n const modifier = group.not ? 'excluded ' : ''\n return `${modifier}${group.combinator} filter group`\n}\n"],"mappings":"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"}
|
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
import './FilterGroupNode.css';var e = {
|
|
2
|
-
group: "
|
|
3
|
-
nested: "
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
2
|
+
group: "_group_ryxud_1",
|
|
3
|
+
nested: "_nested_ryxud_7",
|
|
4
|
+
dropTarget: "_dropTarget_ryxud_11",
|
|
5
|
+
header: "_header_ryxud_16",
|
|
6
|
+
combinator: "_combinator_ryxud_24",
|
|
7
|
+
notToggle: "_notToggle_ryxud_43",
|
|
8
|
+
actions: "_actions_ryxud_57",
|
|
9
|
+
actionButton: "_actionButton_ryxud_64",
|
|
10
|
+
children: "_children_ryxud_72",
|
|
11
|
+
emptyState: "_emptyState_ryxud_78"
|
|
11
12
|
};
|
|
12
13
|
//#endregion
|
|
13
14
|
export { e as default };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FilterGroupNode.module.js","names":[],"sources":["../../../src/components/QueryBuilder/FilterGroupNode.module.scss"],"sourcesContent":[".group {\n position: relative;\n padding: 8px 0 8px 16px;\n border-left: 2px solid\n var(--qb-accent-color, var(--synapse-primary-action-color));\n border-radius: 2px 0 0 2px;\n\n &.nested {\n margin-top: 4px;\n margin-bottom: 4px;\n }\n}\n\n.header {\n display: flex;\n align-items: center;\n gap: 12px;\n flex-wrap: wrap;\n margin-bottom: 4px;\n}\n\n.combinator :global(.MuiToggleButton-root) {\n text-transform: none;\n padding: 2px 12px;\n min-width: 44px;\n font-weight: 700;\n border-color: var(--synapse-gray-dark);\n color: var(--synapse-gray-regular);\n}\n\n.combinator :global(.MuiToggleButton-root.Mui-selected) {\n background-color: var(--qb-accent-color, var(--synapse-primary-action-color));\n color: white;\n border-color: var(--qb-accent-color, var(--synapse-primary-action-color));\n}\n\n.combinator :global(.MuiToggleButton-root.Mui-selected:hover) {\n background-color: var(--qb-accent-color, var(--synapse-primary-action-color));\n}\n\n.notToggle {\n text-transform: none;\n padding: 2px 12px;\n border-color: var(--synapse-gray-dark);\n color: var(--synapse-gray-regular);\n font-weight: 600;\n font-size: 13px;\n\n &:global(.Mui-selected),\n &:global(.Mui-selected:hover) {\n background-color: var(--synapse-error);\n color: white;\n border-color: var(--synapse-error);\n }\n}\n\n.actions {\n display: flex;\n align-items: center;\n gap: 4px;\n margin-left: auto;\n}\n\n.actionButton {\n text-transform: none;\n padding: 2px 8px;\n min-width: 0;\n font-weight: 500;\n color: var(--synapse-primary-action-color);\n}\n\n.children {\n display: flex;\n flex-direction: column;\n gap: 2px;\n}\n\n.emptyState {\n padding: 8px 4px;\n color: var(--synapse-gray-deemphasized);\n font-style: italic;\n font-size: 13px;\n}\n"],"mappings":""}
|
|
1
|
+
{"version":3,"file":"FilterGroupNode.module.js","names":[],"sources":["../../../src/components/QueryBuilder/FilterGroupNode.module.scss"],"sourcesContent":[".group {\n position: relative;\n padding: 8px 0 8px 16px;\n border-left: 2px solid\n var(--qb-accent-color, var(--synapse-primary-action-color));\n border-radius: 2px 0 0 2px;\n\n &.nested {\n margin-top: 4px;\n margin-bottom: 4px;\n }\n\n // Groups are the only drop targets, so this marks which one a release\n // would land in. The dragged node has already moved here by the time it\n // shows, so the highlight reads as confirmation rather than a preview.\n &.dropTarget {\n border-radius: 3px;\n box-shadow: inset 0 0 0 2px\n var(--qb-accent-color, var(--synapse-primary-action-color));\n }\n}\n\n.header {\n display: flex;\n align-items: center;\n gap: 12px;\n flex-wrap: wrap;\n margin-bottom: 4px;\n}\n\n.combinator :global(.MuiToggleButton-root) {\n text-transform: none;\n padding: 2px 12px;\n min-width: 44px;\n font-weight: 700;\n border-color: var(--synapse-gray-dark);\n color: var(--synapse-gray-regular);\n}\n\n.combinator :global(.MuiToggleButton-root.Mui-selected) {\n background-color: var(--qb-accent-color, var(--synapse-primary-action-color));\n color: white;\n border-color: var(--qb-accent-color, var(--synapse-primary-action-color));\n}\n\n.combinator :global(.MuiToggleButton-root.Mui-selected:hover) {\n background-color: var(--qb-accent-color, var(--synapse-primary-action-color));\n}\n\n.notToggle {\n text-transform: none;\n padding: 2px 12px;\n border-color: var(--synapse-gray-dark);\n color: var(--synapse-gray-regular);\n font-weight: 600;\n font-size: 13px;\n\n &:global(.Mui-selected),\n &:global(.Mui-selected:hover) {\n background-color: var(--synapse-error);\n color: white;\n border-color: var(--synapse-error);\n }\n}\n\n.actions {\n display: flex;\n align-items: center;\n gap: 4px;\n margin-left: auto;\n}\n\n.actionButton {\n text-transform: none;\n padding: 2px 8px;\n min-width: 0;\n font-weight: 500;\n color: var(--synapse-primary-action-color);\n}\n\n.children {\n display: flex;\n flex-direction: column;\n gap: 2px;\n}\n\n.emptyState {\n padding: 8px 4px;\n color: var(--synapse-gray-deemphasized);\n font-style: italic;\n font-size: 13px;\n}\n"],"mappings":""}
|
|
@@ -9,6 +9,15 @@
|
|
|
9
9
|
margin-top: 4px;
|
|
10
10
|
margin-bottom: 4px;
|
|
11
11
|
}
|
|
12
|
+
|
|
13
|
+
// Groups are the only drop targets, so this marks which one a release
|
|
14
|
+
// would land in. The dragged node has already moved here by the time it
|
|
15
|
+
// shows, so the highlight reads as confirmation rather than a preview.
|
|
16
|
+
&.dropTarget {
|
|
17
|
+
border-radius: 3px;
|
|
18
|
+
box-shadow: inset 0 0 0 2px
|
|
19
|
+
var(--qb-accent-color, var(--synapse-primary-action-color));
|
|
20
|
+
}
|
|
12
21
|
}
|
|
13
22
|
|
|
14
23
|
.header {
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { Ref } from 'react';
|
|
2
|
+
export type QBDragHandleProps = {
|
|
3
|
+
/** `handleRef` from `useSortable`, which binds the drag sensor here. */
|
|
4
|
+
handleRef: Ref<HTMLButtonElement>;
|
|
5
|
+
/** Names the drag for both the tooltip and the accessible name. */
|
|
6
|
+
label: string;
|
|
7
|
+
};
|
|
8
|
+
/** The grip that starts a drag on a condition or a condition group. */
|
|
9
|
+
export declare function QBDragHandle(props: QBDragHandleProps): import("react/jsx-runtime").JSX.Element;
|
|
10
|
+
//# sourceMappingURL=QBDragHandle.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"QBDragHandle.d.ts","sourceRoot":"","sources":["../../../src/components/QueryBuilder/QBDragHandle.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAA;AAG3B,MAAM,MAAM,iBAAiB,GAAG;IAC9B,wEAAwE;IACxE,SAAS,EAAE,GAAG,CAAC,iBAAiB,CAAC,CAAA;IACjC,mEAAmE;IACnE,KAAK,EAAE,MAAM,CAAA;CACd,CAAA;AAED,uEAAuE;AACvE,wBAAgB,YAAY,CAAC,KAAK,EAAE,iBAAiB,2CAcpD"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import e from "./queryBuilderDrag.module.js";
|
|
2
|
+
import { IconButton as t, Tooltip as n } from "@mui/material";
|
|
3
|
+
import { jsx as r } from "react/jsx-runtime";
|
|
4
|
+
import i from "@mui/icons-material/DragIndicator";
|
|
5
|
+
//#region src/components/QueryBuilder/QBDragHandle.tsx
|
|
6
|
+
function a(a) {
|
|
7
|
+
let { handleRef: o, label: s } = a;
|
|
8
|
+
return /* @__PURE__ */ r(n, {
|
|
9
|
+
title: s,
|
|
10
|
+
children: /* @__PURE__ */ r(t, {
|
|
11
|
+
ref: o,
|
|
12
|
+
size: "small",
|
|
13
|
+
className: e.dragHandle,
|
|
14
|
+
"aria-label": s,
|
|
15
|
+
children: /* @__PURE__ */ r(i, { fontSize: "small" })
|
|
16
|
+
})
|
|
17
|
+
});
|
|
18
|
+
}
|
|
19
|
+
//#endregion
|
|
20
|
+
export { a as QBDragHandle };
|
|
21
|
+
|
|
22
|
+
//# sourceMappingURL=QBDragHandle.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"QBDragHandle.js","names":[],"sources":["../../../src/components/QueryBuilder/QBDragHandle.tsx"],"sourcesContent":["import DragIndicatorIcon from '@mui/icons-material/DragIndicator'\nimport { IconButton, Tooltip } from '@mui/material'\nimport { Ref } from 'react'\nimport styles from './queryBuilderDrag.module.scss'\n\nexport type QBDragHandleProps = {\n /** `handleRef` from `useSortable`, which binds the drag sensor here. */\n handleRef: Ref<HTMLButtonElement>\n /** Names the drag for both the tooltip and the accessible name. */\n label: string\n}\n\n/** The grip that starts a drag on a condition or a condition group. */\nexport function QBDragHandle(props: QBDragHandleProps) {\n const { handleRef, label } = props\n return (\n <Tooltip title={label}>\n <IconButton\n ref={handleRef}\n size=\"small\"\n className={styles.dragHandle}\n aria-label={label}\n >\n <DragIndicatorIcon fontSize=\"small\" />\n </IconButton>\n </Tooltip>\n )\n}\n"],"mappings":";;;;;AAaA,SAAgB,EAAa,GAA0B;CACrD,IAAM,EAAE,cAAW,aAAU;CAC7B,OACE,kBAAC,GAAD;EAAS,OAAO;YACd,kBAAC,GAAD;GACE,KAAK;GACL,MAAK;GACL,WAAW,EAAO;GAClB,cAAY;aAEZ,kBAAC,GAAD,EAAmB,UAAS,QAAS,CAAA;EAC3B,CAAA;CACL,CAAA;AAEb"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"QueryBuilderControls.d.ts","sourceRoot":"","sources":["../../../src/components/QueryBuilder/QueryBuilderControls.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"QueryBuilderControls.d.ts","sourceRoot":"","sources":["../../../src/components/QueryBuilder/QueryBuilderControls.tsx"],"names":[],"mappings":"AAqBA,OAAO,EAAe,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAI1D,MAAM,MAAM,yBAAyB,GAAG;IACtC,iEAAiE;IACjE,IAAI,EAAE,OAAO,GAAG,IAAI,CAAA;IACpB,2DAA2D;IAC3D,YAAY,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAA;IACrC;;;OAGG;IACH,kBAAkB,CAAC,EAAE,OAAO,CAAA;CAC7B,CAAA;AAID;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,yBAAyB,2CAkLpE"}
|
|
@@ -3,22 +3,24 @@ import { useQueryContext as t } from "../QueryContext/QueryContext.js";
|
|
|
3
3
|
import "../QueryContext/index.js";
|
|
4
4
|
import { useQueryVisualizationContext as n } from "../QueryVisualizationWrapper/QueryVisualizationContext.js";
|
|
5
5
|
import "../QueryVisualizationWrapper/index.js";
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
10
|
-
import {
|
|
11
|
-
import m from "./
|
|
12
|
-
import {
|
|
13
|
-
import {
|
|
14
|
-
import
|
|
15
|
-
import {
|
|
16
|
-
import {
|
|
6
|
+
import { addChildGroup as r, addConditionToGroup as i, clearGroup as a, defaultQBGroup as o, removeNode as s, updateCondition as c, updateGroup as l } from "./queryBuilderOperations.js";
|
|
7
|
+
import { qbNodeToApiFilter as u } from "./queryBuilderTranslation.js";
|
|
8
|
+
import { useQueryBuilderDrag as d } from "./queryBuilderDnd.js";
|
|
9
|
+
import { useQBCombinedSql as f } from "./useQBCombinedSql.js";
|
|
10
|
+
import { useQBFacetSourceMetadata as p } from "./useQBFacetSourceMetadata.js";
|
|
11
|
+
import { QueryBuilderInternalContextProvider as m } from "./QueryBuilderInternalContext.js";
|
|
12
|
+
import { FilterGroupNode as h } from "./FilterGroupNode.js";
|
|
13
|
+
import { qbTreeToReadable as g } from "./qbTreeToReadable.js";
|
|
14
|
+
import _ from "./QueryBuilderControls.module.js";
|
|
15
|
+
import { useCallback as v, useMemo as y, useState as b } from "react";
|
|
16
|
+
import { Button as x, ToggleButton as S, ToggleButtonGroup as C } from "@mui/material";
|
|
17
|
+
import { jsx as w, jsxs as T } from "react/jsx-runtime";
|
|
18
|
+
import { DragDropProvider as E } from "@dnd-kit/react";
|
|
17
19
|
//#region src/components/QueryBuilder/QueryBuilderControls.tsx
|
|
18
|
-
function
|
|
19
|
-
let { tree:
|
|
20
|
-
let t =
|
|
21
|
-
|
|
20
|
+
function D(D) {
|
|
21
|
+
let { tree: O, onTreeChange: k, onlyFacetedColumns: A = !1 } = D, { columnModels: j, facetResults: M } = p(), { executeQueryRequest: N } = t(), P = O ?? o(), F = v(() => {
|
|
22
|
+
let t = u(P);
|
|
23
|
+
N((n) => {
|
|
22
24
|
let r = (n.query.additionalFilters ?? []).filter((t) => !e(t)), i = t ? [...r, t] : r;
|
|
23
25
|
return {
|
|
24
26
|
...n,
|
|
@@ -28,111 +30,114 @@ function T(T) {
|
|
|
28
30
|
}
|
|
29
31
|
};
|
|
30
32
|
});
|
|
31
|
-
}, [
|
|
32
|
-
|
|
33
|
-
}, [
|
|
34
|
-
|
|
35
|
-
}, [
|
|
36
|
-
|
|
37
|
-
}, [
|
|
38
|
-
|
|
39
|
-
}, [
|
|
40
|
-
|
|
41
|
-
}, [
|
|
42
|
-
|
|
43
|
-
}, [
|
|
44
|
-
|
|
45
|
-
}, [
|
|
46
|
-
columnModels:
|
|
47
|
-
facetResults:
|
|
48
|
-
onlyFacetedColumns:
|
|
49
|
-
getColumnDisplayName:
|
|
50
|
-
addConditionAt:
|
|
51
|
-
addChildGroupAt:
|
|
52
|
-
clearGroupAt:
|
|
53
|
-
updateGroupAt:
|
|
54
|
-
removeGroupAt:
|
|
55
|
-
updateConditionAt:
|
|
56
|
-
removeConditionAt:
|
|
33
|
+
}, [P, N]), { getColumnDisplayName: I } = n(), [L, R] = b("plain-english"), z = v((e) => {
|
|
34
|
+
k(i(P, e, null, null));
|
|
35
|
+
}, [P, k]), B = v((e) => {
|
|
36
|
+
k(r(P, e));
|
|
37
|
+
}, [P, k]), V = v((e) => {
|
|
38
|
+
k(a(P, e));
|
|
39
|
+
}, [P, k]), H = v((e, t) => {
|
|
40
|
+
k(l(P, e, t));
|
|
41
|
+
}, [P, k]), U = v((e) => {
|
|
42
|
+
k(s(P, e));
|
|
43
|
+
}, [P, k]), W = v((e, t) => {
|
|
44
|
+
k(c(P, e, t));
|
|
45
|
+
}, [P, k]), G = v((e) => {
|
|
46
|
+
k(s(P, e));
|
|
47
|
+
}, [P, k]), K = d(P, k), q = y(() => ({
|
|
48
|
+
columnModels: j,
|
|
49
|
+
facetResults: M,
|
|
50
|
+
onlyFacetedColumns: A,
|
|
51
|
+
getColumnDisplayName: I,
|
|
52
|
+
addConditionAt: z,
|
|
53
|
+
addChildGroupAt: B,
|
|
54
|
+
clearGroupAt: V,
|
|
55
|
+
updateGroupAt: H,
|
|
56
|
+
removeGroupAt: U,
|
|
57
|
+
updateConditionAt: W,
|
|
58
|
+
removeConditionAt: G
|
|
57
59
|
}), [
|
|
58
|
-
|
|
60
|
+
j,
|
|
61
|
+
M,
|
|
59
62
|
A,
|
|
60
|
-
|
|
61
|
-
P,
|
|
62
|
-
L,
|
|
63
|
-
R,
|
|
63
|
+
I,
|
|
64
64
|
z,
|
|
65
65
|
B,
|
|
66
66
|
V,
|
|
67
67
|
H,
|
|
68
|
-
U
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
68
|
+
U,
|
|
69
|
+
W,
|
|
70
|
+
G
|
|
71
|
+
]), J = y(() => g(P, I), [P, I]), { data: Y, isPending: X, error: Z } = f(L === "sql" ? P : null);
|
|
72
|
+
return /* @__PURE__ */ w(m, {
|
|
73
|
+
value: q,
|
|
74
|
+
children: /* @__PURE__ */ w(E, {
|
|
75
|
+
...K,
|
|
76
|
+
children: /* @__PURE__ */ T("div", {
|
|
77
|
+
className: _.root,
|
|
78
|
+
children: [
|
|
79
|
+
/* @__PURE__ */ T("div", {
|
|
80
|
+
className: _.summaryBar,
|
|
81
|
+
children: [/* @__PURE__ */ T("div", {
|
|
82
|
+
className: _.summaryHeader,
|
|
83
|
+
children: [/* @__PURE__ */ w("span", {
|
|
84
|
+
className: _.summaryLabel,
|
|
85
|
+
children: "Query Summary"
|
|
86
|
+
}), /* @__PURE__ */ T(C, {
|
|
87
|
+
className: _.summaryModeToggle,
|
|
88
|
+
size: "small",
|
|
89
|
+
exclusive: !0,
|
|
90
|
+
value: L,
|
|
91
|
+
onChange: (e, t) => {
|
|
92
|
+
t != null && R(t);
|
|
93
|
+
},
|
|
94
|
+
"aria-label": "Query summary display mode",
|
|
95
|
+
children: [/* @__PURE__ */ w(S, {
|
|
96
|
+
value: "plain-english",
|
|
97
|
+
"aria-label": "Show summary",
|
|
98
|
+
children: "Summary"
|
|
99
|
+
}), /* @__PURE__ */ w(S, {
|
|
100
|
+
value: "sql",
|
|
101
|
+
"aria-label": "Show SQL",
|
|
102
|
+
children: "SQL"
|
|
103
|
+
})]
|
|
99
104
|
})]
|
|
105
|
+
}), /* @__PURE__ */ w("div", {
|
|
106
|
+
className: _.summaryContent,
|
|
107
|
+
"aria-live": "polite",
|
|
108
|
+
"aria-atomic": "true",
|
|
109
|
+
children: L === "plain-english" ? J : Z ? /* @__PURE__ */ T("span", {
|
|
110
|
+
className: _.sqlError,
|
|
111
|
+
children: ["Could not load SQL preview: ", Z.message]
|
|
112
|
+
}) : X ? /* @__PURE__ */ w("span", {
|
|
113
|
+
className: _.sqlPlaceholder,
|
|
114
|
+
children: "Loading SQL…"
|
|
115
|
+
}) : /* @__PURE__ */ w("code", {
|
|
116
|
+
className: _.sqlText,
|
|
117
|
+
children: Y
|
|
118
|
+
})
|
|
100
119
|
})]
|
|
101
|
-
}),
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
className:
|
|
113
|
-
children:
|
|
120
|
+
}),
|
|
121
|
+
/* @__PURE__ */ w(h, {
|
|
122
|
+
group: P,
|
|
123
|
+
isRoot: !0
|
|
124
|
+
}),
|
|
125
|
+
/* @__PURE__ */ w("div", {
|
|
126
|
+
className: _.applyRow,
|
|
127
|
+
children: /* @__PURE__ */ w(x, {
|
|
128
|
+
variant: "contained",
|
|
129
|
+
color: "primary",
|
|
130
|
+
onClick: F,
|
|
131
|
+
className: _.applyButton,
|
|
132
|
+
children: "Update Results"
|
|
114
133
|
})
|
|
115
|
-
})]
|
|
116
|
-
}),
|
|
117
|
-
/* @__PURE__ */ C(d, {
|
|
118
|
-
group: M,
|
|
119
|
-
isRoot: !0
|
|
120
|
-
}),
|
|
121
|
-
/* @__PURE__ */ C("div", {
|
|
122
|
-
className: m.applyRow,
|
|
123
|
-
children: /* @__PURE__ */ C(b, {
|
|
124
|
-
variant: "contained",
|
|
125
|
-
color: "primary",
|
|
126
|
-
onClick: N,
|
|
127
|
-
className: m.applyButton,
|
|
128
|
-
children: "Update Results"
|
|
129
134
|
})
|
|
130
|
-
|
|
131
|
-
|
|
135
|
+
]
|
|
136
|
+
})
|
|
132
137
|
})
|
|
133
138
|
});
|
|
134
139
|
}
|
|
135
140
|
//#endregion
|
|
136
|
-
export {
|
|
141
|
+
export { D as QueryBuilderControls };
|
|
137
142
|
|
|
138
143
|
//# sourceMappingURL=QueryBuilderControls.js.map
|