@hitachivantara/uikit-react-lab 3.45.5 → 3.45.8
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/QueryBuilder/QueryBuilder.d.ts +14 -2
- package/dist/QueryBuilder/QueryBuilder.js +67 -3
- package/dist/QueryBuilder/QueryBuilder.js.map +1 -1
- package/dist/QueryBuilder/RuleGroup/RuleGroup.js +76 -6
- package/dist/QueryBuilder/RuleGroup/RuleGroup.js.map +1 -1
- package/dist/QueryBuilder/RuleGroup/styles.js +4 -5
- package/dist/QueryBuilder/RuleGroup/styles.js.map +1 -1
- package/dist/Table/stories/TableColumnRenderers.stories.mdx +2 -1
- package/dist/Table/stories/TableHooks.stories.mdx +1 -1
- package/dist/legacy/QueryBuilder/QueryBuilder.d.ts +14 -2
- package/dist/legacy/QueryBuilder/QueryBuilder.js +67 -3
- package/dist/legacy/QueryBuilder/QueryBuilder.js.map +1 -1
- package/dist/legacy/QueryBuilder/RuleGroup/RuleGroup.js +74 -7
- package/dist/legacy/QueryBuilder/RuleGroup/RuleGroup.js.map +1 -1
- package/dist/legacy/QueryBuilder/RuleGroup/styles.js +4 -4
- package/dist/legacy/QueryBuilder/RuleGroup/styles.js.map +1 -1
- package/dist/legacy/Table/stories/TableColumnRenderers.stories.mdx +2 -1
- package/dist/legacy/Table/stories/TableHooks.stories.mdx +1 -1
- package/dist/modern/QueryBuilder/QueryBuilder.d.ts +14 -2
- package/dist/modern/QueryBuilder/QueryBuilder.js +67 -3
- package/dist/modern/QueryBuilder/QueryBuilder.js.map +1 -1
- package/dist/modern/QueryBuilder/RuleGroup/RuleGroup.js +74 -7
- package/dist/modern/QueryBuilder/RuleGroup/RuleGroup.js.map +1 -1
- package/dist/modern/QueryBuilder/RuleGroup/styles.js +4 -4
- package/dist/modern/QueryBuilder/RuleGroup/styles.js.map +1 -1
- package/dist/modern/Table/stories/TableColumnRenderers.stories.mdx +2 -1
- package/dist/modern/Table/stories/TableHooks.stories.mdx +1 -1
- package/package.json +3 -3
|
@@ -3,7 +3,19 @@ import { StandardProps } from "@material-ui/core";
|
|
|
3
3
|
|
|
4
4
|
import { Attribute, Query, QueryBuilderLabels, QueryCombinator, QueryOperator } from "./types";
|
|
5
5
|
|
|
6
|
-
export type HvQueryBuilderClassKey =
|
|
6
|
+
export type HvQueryBuilderClassKey =
|
|
7
|
+
| "root"
|
|
8
|
+
| "topGroup"
|
|
9
|
+
| "subGroup"
|
|
10
|
+
| "combinator"
|
|
11
|
+
| "topCombinator"
|
|
12
|
+
| "combinatorButton"
|
|
13
|
+
| "removeButton"
|
|
14
|
+
| "topRemoveButton"
|
|
15
|
+
| "rulesContainer"
|
|
16
|
+
| "subRulesContainer"
|
|
17
|
+
| "actionButtonContainer"
|
|
18
|
+
| "topActionButtonContainer";
|
|
7
19
|
|
|
8
20
|
export interface HvQueryBuilderProps
|
|
9
21
|
extends StandardProps<React.HTMLAttributes<HTMLDivElement>, HvQueryBuilderClassKey, "onChange"> {
|
|
@@ -38,4 +50,4 @@ export interface HvQueryBuilderProps
|
|
|
38
50
|
labels?: QueryBuilderLabels;
|
|
39
51
|
}
|
|
40
52
|
|
|
41
|
-
export default function
|
|
53
|
+
export default function HvQueryBuilder(props: HvQueryBuilderProps): JSX.Element | null;
|
|
@@ -66,7 +66,8 @@ var HvQueryBuilder = function HvQueryBuilder(_ref) {
|
|
|
66
66
|
combinators = _ref.combinators,
|
|
67
67
|
_ref$maxDepth = _ref.maxDepth,
|
|
68
68
|
maxDepth = _ref$maxDepth === void 0 ? 1 : _ref$maxDepth,
|
|
69
|
-
labels = _ref.labels
|
|
69
|
+
labels = _ref.labels,
|
|
70
|
+
classes = _ref.classes;
|
|
70
71
|
|
|
71
72
|
var _useState = (0, _react.useState)(),
|
|
72
73
|
_useState2 = (0, _slicedToArray2.default)(_useState, 2),
|
|
@@ -141,7 +142,8 @@ var HvQueryBuilder = function HvQueryBuilder(_ref) {
|
|
|
141
142
|
level: 0,
|
|
142
143
|
id: state.id,
|
|
143
144
|
combinator: state.combinator,
|
|
144
|
-
rules: state.rules
|
|
145
|
+
rules: state.rules,
|
|
146
|
+
classes: classes
|
|
145
147
|
}), /*#__PURE__*/_react.default.createElement(_ConfirmationDialog.default, {
|
|
146
148
|
isOpen: pendingAction != null,
|
|
147
149
|
onConfirm: onConfirmHandler,
|
|
@@ -156,8 +158,70 @@ var HvQueryBuilder = function HvQueryBuilder(_ref) {
|
|
|
156
158
|
|
|
157
159
|
process.env.NODE_ENV !== "production" ? HvQueryBuilder.propTypes = {
|
|
158
160
|
/**
|
|
159
|
-
*
|
|
161
|
+
* Override or extend the styles applied to the component.
|
|
162
|
+
* See CSS API tab for more details.
|
|
160
163
|
*/
|
|
164
|
+
classes: _propTypes.default.shape({
|
|
165
|
+
/**
|
|
166
|
+
* Styles applied to the component root class.
|
|
167
|
+
*/
|
|
168
|
+
root: _propTypes.default.string,
|
|
169
|
+
|
|
170
|
+
/**
|
|
171
|
+
* Styles applied to the top group container.
|
|
172
|
+
*/
|
|
173
|
+
topGroup: _propTypes.default.string,
|
|
174
|
+
|
|
175
|
+
/**
|
|
176
|
+
* Styles applied to the sub group containers.
|
|
177
|
+
*/
|
|
178
|
+
subGroup: _propTypes.default.string,
|
|
179
|
+
|
|
180
|
+
/**
|
|
181
|
+
* Styles applied to the multi-button combinator container.
|
|
182
|
+
*/
|
|
183
|
+
combinator: _propTypes.default.string,
|
|
184
|
+
|
|
185
|
+
/**
|
|
186
|
+
* Styles applied to the multi-button combinator container on the top group.
|
|
187
|
+
*/
|
|
188
|
+
topCombinator: _propTypes.default.string,
|
|
189
|
+
|
|
190
|
+
/**
|
|
191
|
+
* Styles applied to each combinator button.
|
|
192
|
+
*/
|
|
193
|
+
combinatorButton: _propTypes.default.string,
|
|
194
|
+
|
|
195
|
+
/**
|
|
196
|
+
* Styles applied to the remove button.
|
|
197
|
+
*/
|
|
198
|
+
removeButton: _propTypes.default.string,
|
|
199
|
+
|
|
200
|
+
/**
|
|
201
|
+
* Styles applied to the remove button on the top group.
|
|
202
|
+
*/
|
|
203
|
+
topRemoveButton: _propTypes.default.string,
|
|
204
|
+
|
|
205
|
+
/**
|
|
206
|
+
* Styles applied to the rules container.
|
|
207
|
+
*/
|
|
208
|
+
rulesContainer: _propTypes.default.string,
|
|
209
|
+
|
|
210
|
+
/**
|
|
211
|
+
* Styles applied to the sub rules container.
|
|
212
|
+
*/
|
|
213
|
+
subRulesContainer: _propTypes.default.string,
|
|
214
|
+
|
|
215
|
+
/**
|
|
216
|
+
* Styles applied to the action button container.
|
|
217
|
+
*/
|
|
218
|
+
actionButtonContainer: _propTypes.default.string,
|
|
219
|
+
|
|
220
|
+
/**
|
|
221
|
+
* Styles applied to the top action button container.
|
|
222
|
+
*/
|
|
223
|
+
topActionButtonContainer: _propTypes.default.string
|
|
224
|
+
}),
|
|
161
225
|
attributes: _propTypes.default.shape({
|
|
162
226
|
key: _propTypes.default.shape({
|
|
163
227
|
id: _propTypes.default.number,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"QueryBuilder.js","names":["HvQueryBuilder","attributes","query","onChange","operators","combinators","maxDepth","labels","pendingAction","askAction","currentAttributes","reducer","initialState","state","dispatchAction","prevState","setPrevState","defaultcontext","Context","context","initialTouched","current","type","onConfirmHandler","undefined","actions","forEach","action","onCancelHandler","id","combinator","rules","dialog","dialogTitle","dialogMessage","dialogConfirm","dialogCancel","dialogCloseTooltip","propTypes","PropTypes","shape","key","number","label","string","isRequired","value","any","order","arrayOf","operator","operand","attribute","func","instanceOf","Object","styles","name"],"sources":["../../src/QueryBuilder/QueryBuilder.js"],"sourcesContent":["import React, { useEffect, useMemo, useReducer, useRef, useState, useContext } from \"react\";\nimport PropTypes from \"prop-types\";\nimport isEqual from \"lodash/isEqual\";\nimport cloneDeep from \"lodash/cloneDeep\";\nimport { withStyles } from \"@material-ui/core\";\n\nimport Context from \"./Context\";\nimport RuleGroup from \"./RuleGroup\";\nimport ConfirmationDialog from \"./ConfirmationDialog\";\nimport { emptyGroup, clearNodeIds } from \"./utils\";\nimport reducer from \"./utils/reducer\";\nimport styles from \"./styles\";\n\n/**\n * **HvQueryBuilder** component allows you to create conditions and group them using logical operators.\n * It outputs a structured set of rules which can be easily parsed to create SQL/NoSQL/whatever queries.\n *\n * **PLEASE NOTE**: This component implementation is still a WIP. There might be breaking changes.\n */\nconst HvQueryBuilder = ({\n attributes = [],\n query,\n onChange,\n operators,\n combinators,\n maxDepth = 1,\n labels,\n}) => {\n const [pendingAction, askAction] = useState();\n const currentAttributes = useRef();\n const [state, dispatchAction] = useReducer(\n reducer,\n query,\n (initialState) => initialState || emptyGroup()\n );\n\n const initialState = query === state;\n const [prevState, setPrevState] = useState();\n\n const defaultcontext = useContext(Context);\n\n const context = useMemo(\n () => ({\n dispatchAction,\n askAction,\n attributes,\n operators: operators ?? defaultcontext.operators,\n combinators: combinators ?? defaultcontext.combinators,\n maxDepth: maxDepth ?? defaultcontext.maxDepth,\n labels: labels ?? defaultcontext.labels,\n initialTouched: initialState,\n }),\n [\n attributes,\n operators,\n defaultcontext.operators,\n defaultcontext.combinators,\n defaultcontext.maxDepth,\n defaultcontext.labels,\n combinators,\n maxDepth,\n labels,\n initialState,\n ]\n );\n\n useEffect(() => {\n if (currentAttributes.current == null) {\n // first run, nothing to do\n currentAttributes.current = attributes;\n } else if (currentAttributes.current !== attributes) {\n // attributes changed, the existing query is almost certain invalid, so reset it\n currentAttributes.current = attributes;\n dispatchAction({ type: \"reset-query\" });\n }\n }, [attributes]);\n\n // Propagate the change if the query is modified.\n useEffect(() => {\n if (!initialState && !isEqual(state, prevState)) {\n onChange?.(clearNodeIds(state));\n setPrevState(cloneDeep(state));\n }\n }, [state, prevState, initialState, onChange]);\n\n const onConfirmHandler = () => {\n if (pendingAction) {\n askAction(undefined);\n pendingAction.actions.forEach((action) => dispatchAction(action));\n }\n };\n\n const onCancelHandler = () => {\n askAction(undefined);\n };\n\n return (\n <Context.Provider value={context}>\n <RuleGroup level={0} id={state.id} combinator={state.combinator} rules={state.rules} />\n <ConfirmationDialog\n isOpen={pendingAction != null}\n onConfirm={onConfirmHandler}\n onCancel={onCancelHandler}\n title={pendingAction?.dialog.dialogTitle || \"\"}\n message={pendingAction?.dialog.dialogMessage || \"\"}\n confirmButtonLabel={pendingAction?.dialog.dialogConfirm || \"\"}\n cancelButtonLabel={pendingAction?.dialog.dialogCancel || \"\"}\n closeButtonTooltip={pendingAction?.dialog.dialogCloseTooltip || \"\"}\n />\n </Context.Provider>\n );\n};\n\nHvQueryBuilder.propTypes = {\n /**\n * The query rules attributes.\n */\n attributes: PropTypes.shape({\n key: PropTypes.shape({\n id: PropTypes.number,\n label: PropTypes.string.isRequired,\n type: PropTypes.string.isRequired,\n value: PropTypes.any,\n order: PropTypes.number,\n }),\n }).isRequired,\n /**\n * The query rules operators by attribute type and combinator.\n */\n operators: PropTypes.shape({\n type: PropTypes.arrayOf(\n PropTypes.shape({\n operator: PropTypes.string.isRequired,\n label: PropTypes.string.isRequired,\n combinators: PropTypes.arrayOf(PropTypes.string).isRequired,\n })\n ),\n }),\n /**\n * The query combinators operands.\n */\n combinators: PropTypes.arrayOf(\n PropTypes.shape({\n operand: PropTypes.string.isRequired,\n label: PropTypes.string.isRequired,\n })\n ),\n /**\n * The initial query representation.\n */\n query: PropTypes.shape({\n id: PropTypes.number,\n combinator: PropTypes.string.isRequired,\n rules: PropTypes.arrayOf(\n PropTypes.shape({\n id: PropTypes.number,\n attribute: PropTypes.string,\n operator: PropTypes.string,\n value: PropTypes.any,\n })\n ).isRequired,\n }),\n /**\n * Callback fired when query changes.\n */\n onChange: PropTypes.func,\n /**\n * Max depth of nested query groups.\n */\n maxDepth: PropTypes.number,\n /**\n * An object containing all the labels.\n */\n labels: PropTypes.instanceOf(Object),\n};\n\nexport default withStyles(styles, { name: \"HvQueryBuilder\" })(HvQueryBuilder);\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"QueryBuilder.js","names":["HvQueryBuilder","attributes","query","onChange","operators","combinators","maxDepth","labels","classes","pendingAction","askAction","currentAttributes","reducer","initialState","state","dispatchAction","prevState","setPrevState","defaultcontext","Context","context","initialTouched","current","type","onConfirmHandler","undefined","actions","forEach","action","onCancelHandler","id","combinator","rules","dialog","dialogTitle","dialogMessage","dialogConfirm","dialogCancel","dialogCloseTooltip","propTypes","PropTypes","shape","root","string","topGroup","subGroup","topCombinator","combinatorButton","removeButton","topRemoveButton","rulesContainer","subRulesContainer","actionButtonContainer","topActionButtonContainer","key","number","label","isRequired","value","any","order","arrayOf","operator","operand","attribute","func","instanceOf","Object","styles","name"],"sources":["../../src/QueryBuilder/QueryBuilder.js"],"sourcesContent":["import React, { useEffect, useMemo, useReducer, useRef, useState, useContext } from \"react\";\nimport PropTypes from \"prop-types\";\nimport isEqual from \"lodash/isEqual\";\nimport cloneDeep from \"lodash/cloneDeep\";\nimport { withStyles } from \"@material-ui/core\";\n\nimport Context from \"./Context\";\nimport RuleGroup from \"./RuleGroup\";\nimport ConfirmationDialog from \"./ConfirmationDialog\";\nimport { emptyGroup, clearNodeIds } from \"./utils\";\nimport reducer from \"./utils/reducer\";\nimport styles from \"./styles\";\n\n/**\n * **HvQueryBuilder** component allows you to create conditions and group them using logical operators.\n * It outputs a structured set of rules which can be easily parsed to create SQL/NoSQL/whatever queries.\n *\n * **PLEASE NOTE**: This component implementation is still a WIP. There might be breaking changes.\n */\nconst HvQueryBuilder = ({\n attributes = [],\n query,\n onChange,\n operators,\n combinators,\n maxDepth = 1,\n labels,\n classes,\n}) => {\n const [pendingAction, askAction] = useState();\n const currentAttributes = useRef();\n const [state, dispatchAction] = useReducer(\n reducer,\n query,\n (initialState) => initialState || emptyGroup()\n );\n\n const initialState = query === state;\n const [prevState, setPrevState] = useState();\n\n const defaultcontext = useContext(Context);\n\n const context = useMemo(\n () => ({\n dispatchAction,\n askAction,\n attributes,\n operators: operators ?? defaultcontext.operators,\n combinators: combinators ?? defaultcontext.combinators,\n maxDepth: maxDepth ?? defaultcontext.maxDepth,\n labels: labels ?? defaultcontext.labels,\n initialTouched: initialState,\n }),\n [\n attributes,\n operators,\n defaultcontext.operators,\n defaultcontext.combinators,\n defaultcontext.maxDepth,\n defaultcontext.labels,\n combinators,\n maxDepth,\n labels,\n initialState,\n ]\n );\n\n useEffect(() => {\n if (currentAttributes.current == null) {\n // first run, nothing to do\n currentAttributes.current = attributes;\n } else if (currentAttributes.current !== attributes) {\n // attributes changed, the existing query is almost certain invalid, so reset it\n currentAttributes.current = attributes;\n dispatchAction({ type: \"reset-query\" });\n }\n }, [attributes]);\n\n // Propagate the change if the query is modified.\n useEffect(() => {\n if (!initialState && !isEqual(state, prevState)) {\n onChange?.(clearNodeIds(state));\n setPrevState(cloneDeep(state));\n }\n }, [state, prevState, initialState, onChange]);\n\n const onConfirmHandler = () => {\n if (pendingAction) {\n askAction(undefined);\n pendingAction.actions.forEach((action) => dispatchAction(action));\n }\n };\n\n const onCancelHandler = () => {\n askAction(undefined);\n };\n\n return (\n <Context.Provider value={context}>\n <RuleGroup\n level={0}\n id={state.id}\n combinator={state.combinator}\n rules={state.rules}\n classes={classes}\n />\n <ConfirmationDialog\n isOpen={pendingAction != null}\n onConfirm={onConfirmHandler}\n onCancel={onCancelHandler}\n title={pendingAction?.dialog.dialogTitle || \"\"}\n message={pendingAction?.dialog.dialogMessage || \"\"}\n confirmButtonLabel={pendingAction?.dialog.dialogConfirm || \"\"}\n cancelButtonLabel={pendingAction?.dialog.dialogCancel || \"\"}\n closeButtonTooltip={pendingAction?.dialog.dialogCloseTooltip || \"\"}\n />\n </Context.Provider>\n );\n};\n\nHvQueryBuilder.propTypes = {\n /**\n * Override or extend the styles applied to the component.\n * See CSS API tab for more details.\n */\n classes: PropTypes.shape({\n /**\n * Styles applied to the component root class.\n */\n root: PropTypes.string,\n /**\n * Styles applied to the top group container.\n */\n topGroup: PropTypes.string,\n /**\n * Styles applied to the sub group containers.\n */\n subGroup: PropTypes.string,\n /**\n * Styles applied to the multi-button combinator container.\n */\n combinator: PropTypes.string,\n /**\n * Styles applied to the multi-button combinator container on the top group.\n */\n topCombinator: PropTypes.string,\n /**\n * Styles applied to each combinator button.\n */\n combinatorButton: PropTypes.string,\n /**\n * Styles applied to the remove button.\n */\n removeButton: PropTypes.string,\n /**\n * Styles applied to the remove button on the top group.\n */\n topRemoveButton: PropTypes.string,\n /**\n * Styles applied to the rules container.\n */\n rulesContainer: PropTypes.string,\n /**\n * Styles applied to the sub rules container.\n */\n subRulesContainer: PropTypes.string,\n /**\n * Styles applied to the action button container.\n */\n actionButtonContainer: PropTypes.string,\n /**\n * Styles applied to the top action button container.\n */\n topActionButtonContainer: PropTypes.string,\n }),\n attributes: PropTypes.shape({\n key: PropTypes.shape({\n id: PropTypes.number,\n label: PropTypes.string.isRequired,\n type: PropTypes.string.isRequired,\n value: PropTypes.any,\n order: PropTypes.number,\n }),\n }).isRequired,\n /**\n * The query rules operators by attribute type and combinator.\n */\n operators: PropTypes.shape({\n type: PropTypes.arrayOf(\n PropTypes.shape({\n operator: PropTypes.string.isRequired,\n label: PropTypes.string.isRequired,\n combinators: PropTypes.arrayOf(PropTypes.string).isRequired,\n })\n ),\n }),\n /**\n * The query combinators operands.\n */\n combinators: PropTypes.arrayOf(\n PropTypes.shape({\n operand: PropTypes.string.isRequired,\n label: PropTypes.string.isRequired,\n })\n ),\n /**\n * The initial query representation.\n */\n query: PropTypes.shape({\n id: PropTypes.number,\n combinator: PropTypes.string.isRequired,\n rules: PropTypes.arrayOf(\n PropTypes.shape({\n id: PropTypes.number,\n attribute: PropTypes.string,\n operator: PropTypes.string,\n value: PropTypes.any,\n })\n ).isRequired,\n }),\n /**\n * Callback fired when query changes.\n */\n onChange: PropTypes.func,\n /**\n * Max depth of nested query groups.\n */\n maxDepth: PropTypes.number,\n /**\n * An object containing all the labels.\n */\n labels: PropTypes.instanceOf(Object),\n};\n\nexport default withStyles(styles, { name: \"HvQueryBuilder\" })(HvQueryBuilder);\n"],"mappings":"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"}
|
|
@@ -29,6 +29,8 @@ var _react = _interopRequireWildcard(require("react"));
|
|
|
29
29
|
|
|
30
30
|
var _clsx = _interopRequireDefault(require("clsx"));
|
|
31
31
|
|
|
32
|
+
var _core = require("@material-ui/core");
|
|
33
|
+
|
|
32
34
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
33
35
|
|
|
34
36
|
var _uikitReactCore = require("@hitachivantara/uikit-react-core");
|
|
@@ -56,10 +58,8 @@ var RuleGroup = function RuleGroup(_ref) {
|
|
|
56
58
|
_ref$combinator = _ref.combinator,
|
|
57
59
|
combinator = _ref$combinator === void 0 ? "and" : _ref$combinator,
|
|
58
60
|
_ref$rules = _ref.rules,
|
|
59
|
-
rules = _ref$rules === void 0 ? [] : _ref$rules
|
|
60
|
-
|
|
61
|
-
level: level
|
|
62
|
-
});
|
|
61
|
+
rules = _ref$rules === void 0 ? [] : _ref$rules,
|
|
62
|
+
classes = _ref.classes;
|
|
63
63
|
var context = (0, _react.useContext)(_Context.default);
|
|
64
64
|
var dispatchAction = context.dispatchAction,
|
|
65
65
|
askAction = context.askAction,
|
|
@@ -138,7 +138,8 @@ var RuleGroup = function RuleGroup(_ref) {
|
|
|
138
138
|
key: rule.id || Math.random(),
|
|
139
139
|
level: level + 1
|
|
140
140
|
}, rule, {
|
|
141
|
-
id: rule.id
|
|
141
|
+
id: rule.id,
|
|
142
|
+
classes: classes
|
|
142
143
|
}));
|
|
143
144
|
}
|
|
144
145
|
|
|
@@ -197,11 +198,80 @@ var RuleGroup = function RuleGroup(_ref) {
|
|
|
197
198
|
};
|
|
198
199
|
|
|
199
200
|
process.env.NODE_ENV !== "production" ? RuleGroup.propTypes = {
|
|
201
|
+
/**
|
|
202
|
+
* Override or extend the styles applied to the component.
|
|
203
|
+
* See CSS API tab for more details.
|
|
204
|
+
*/
|
|
205
|
+
classes: _propTypes.default.shape({
|
|
206
|
+
/**
|
|
207
|
+
* Styles applied to the component root class.
|
|
208
|
+
*/
|
|
209
|
+
root: _propTypes.default.string,
|
|
210
|
+
|
|
211
|
+
/**
|
|
212
|
+
* Styles applied to the top group container.
|
|
213
|
+
*/
|
|
214
|
+
topGroup: _propTypes.default.string,
|
|
215
|
+
|
|
216
|
+
/**
|
|
217
|
+
* Styles applied to the sub group containers.
|
|
218
|
+
*/
|
|
219
|
+
subGroup: _propTypes.default.string,
|
|
220
|
+
|
|
221
|
+
/**
|
|
222
|
+
* Styles applied to the multi-button combinator container.
|
|
223
|
+
*/
|
|
224
|
+
combinator: _propTypes.default.string,
|
|
225
|
+
|
|
226
|
+
/**
|
|
227
|
+
* Styles applied to the multi-button combinator container on the top group.
|
|
228
|
+
*/
|
|
229
|
+
topCombinator: _propTypes.default.string,
|
|
230
|
+
|
|
231
|
+
/**
|
|
232
|
+
* Styles applied to each combinator button.
|
|
233
|
+
*/
|
|
234
|
+
combinatorButton: _propTypes.default.string,
|
|
235
|
+
|
|
236
|
+
/**
|
|
237
|
+
* Styles applied to the remove button.
|
|
238
|
+
*/
|
|
239
|
+
removeButton: _propTypes.default.string,
|
|
240
|
+
|
|
241
|
+
/**
|
|
242
|
+
* Styles applied to the remove button on the top group.
|
|
243
|
+
*/
|
|
244
|
+
topRemoveButton: _propTypes.default.string,
|
|
245
|
+
|
|
246
|
+
/**
|
|
247
|
+
* Styles applied to the rules container.
|
|
248
|
+
*/
|
|
249
|
+
rulesContainer: _propTypes.default.string,
|
|
250
|
+
|
|
251
|
+
/**
|
|
252
|
+
* Styles applied to the sub rules container.
|
|
253
|
+
*/
|
|
254
|
+
subRulesContainer: _propTypes.default.string,
|
|
255
|
+
|
|
256
|
+
/**
|
|
257
|
+
* Styles applied to the action button container.
|
|
258
|
+
*/
|
|
259
|
+
actionButtonContainer: _propTypes.default.string,
|
|
260
|
+
|
|
261
|
+
/**
|
|
262
|
+
* Styles applied to the top action button container.
|
|
263
|
+
*/
|
|
264
|
+
topActionButtonContainer: _propTypes.default.string
|
|
265
|
+
}),
|
|
200
266
|
id: _propTypes.default.number,
|
|
201
267
|
level: _propTypes.default.number,
|
|
202
268
|
combinator: _propTypes.default.string,
|
|
203
269
|
rules: _propTypes.default.array
|
|
204
270
|
} : void 0;
|
|
205
|
-
|
|
271
|
+
|
|
272
|
+
var _default = (0, _core.withStyles)(_styles.default, {
|
|
273
|
+
name: "RuleGroup"
|
|
274
|
+
})(RuleGroup);
|
|
275
|
+
|
|
206
276
|
exports.default = _default;
|
|
207
277
|
//# sourceMappingURL=RuleGroup.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RuleGroup.js","names":["RuleGroup","level","id","combinator","rules","classes","context","Context","dispatchAction","askAction","maxDepth","combinators","labels","normalizedMaxDepth","actionButtons","type","query","addRule","label","group","addGroup","DeleteIcon","delete","tooltip","onClickCombinator","item","operand","root","topGroup","subGroup","topCombinator","map","combinatorButton","removeButton","topRemoveButton","actions","dialog","ariaLabel","length","rulesContainer","subRulesContainer","rule","index","Math","random","isInvalid","some","r","i","attribute","empty","title","cursor","textDecoration","createCondition","spacer","createGroup","actionButtonContainer","topActionButtonContainer","propTypes","PropTypes","number","string","array"],"sources":["../../../src/QueryBuilder/RuleGroup/RuleGroup.js"],"sourcesContent":["import React, { useCallback, useContext } from \"react\";\nimport clsx from \"clsx\";\nimport PropTypes from \"prop-types\";\nimport {\n HvGrid,\n HvMultiButton,\n HvButton,\n HvEmptyState,\n HvTypography,\n withTooltip,\n} from \"@hitachivantara/uikit-react-core\";\nimport { Add, Delete, Info } from \"@hitachivantara/uikit-react-icons\";\n\nimport Context from \"../Context\";\nimport Rule from \"../Rule\";\nimport useStyles from \"./styles\";\n\nconst RuleGroup = ({ level = 0, id, combinator = \"and\", rules = [] }) => {\n const classes = useStyles({ level });\n const context = useContext(Context);\n\n const { dispatchAction, askAction, maxDepth, combinators, labels } = context;\n const normalizedMaxDepth = maxDepth - 1;\n\n const actionButtons = (\n <>\n <HvButton\n category=\"secondary\"\n onClick={() => {\n dispatchAction({ type: \"add-rule\", id });\n }}\n >\n <Add />\n {level === 0 && labels.query?.addRule?.label != null\n ? labels.query?.addRule?.label\n : labels.group.addRule.label}\n </HvButton>\n {level <= normalizedMaxDepth && (\n <HvButton\n category=\"secondary\"\n onClick={() => {\n dispatchAction({ type: \"add-group\", id });\n }}\n >\n <Add />\n {level === 0 && labels.query?.addGroup?.label != null\n ? labels.query?.addGroup?.label\n : labels.group.addGroup.label}\n </HvButton>\n )}\n </>\n );\n\n const DeleteIcon = withTooltip(\n () => <Delete />,\n level === 0 && labels.query?.delete?.tooltip\n ? labels.query?.delete?.tooltip\n : labels.group.delete.tooltip,\n \"top\"\n );\n\n const onClickCombinator = useCallback(\n (item) => {\n dispatchAction({\n type: \"set-combinator\",\n id,\n combinator: item.operand,\n });\n },\n [dispatchAction, id]\n );\n\n return (\n <div\n className={clsx(classes.root, {\n [classes.topGroup]: level === 0,\n [classes.subGroup]: level !== 0,\n })}\n >\n <HvGrid container>\n <HvGrid item>\n <HvMultiButton className={clsx(classes.combinator, classes.topCombinator)}>\n {combinators.map((item) => (\n <HvButton\n key={item.operand}\n className={classes.combinatorButton}\n selected={item.operand === combinator}\n onClick={() => item.operand && onClickCombinator(item)}\n >\n {item.label}\n </HvButton>\n ))}\n </HvMultiButton>\n </HvGrid>\n <HvGrid item>\n <HvButton\n icon\n className={clsx(classes.removeButton, classes.topRemoveButton)}\n onClick={() => {\n askAction({\n actions: [{ type: \"remove-node\", id }],\n dialog:\n level === 0 && labels.query?.delete != null\n ? labels.query.delete\n : labels.group.delete,\n });\n }}\n aria-label={\n level === 0 && labels.query?.delete?.ariaLabel\n ? labels.query?.delete?.ariaLabel\n : labels.group.delete.ariaLabel\n }\n >\n <DeleteIcon />\n </HvButton>\n </HvGrid>\n </HvGrid>\n {rules?.length > 0 && (\n <div\n className={clsx(classes.rulesContainer, {\n [classes.subRulesContainer]: level > 0,\n topRulesContainer: level === 0,\n })}\n >\n {rules.map((rule, index) => {\n if (\"combinator\" in rule) {\n return (\n <RuleGroup\n key={rule.id || Math.random()}\n level={level + 1}\n {...rule}\n id={rule.id}\n />\n );\n }\n\n const isInvalid =\n combinator === \"and\" &&\n rules.some((r, i) => {\n if (\"attribute\" in r) {\n if (r.attribute === rule.attribute && r.id !== rule.id && i < index) {\n return true;\n }\n }\n return false;\n });\n\n return (\n <Rule\n key={rule.id || Math.random()}\n {...rule}\n isInvalid={isInvalid}\n id={rule.id}\n combinator={combinator}\n />\n );\n })}\n </div>\n )}\n {rules?.length === 0 && (\n <HvEmptyState\n title={labels.empty?.title}\n message={\n <>\n <HvTypography\n variant=\"link\"\n component=\"a\"\n onClick={() => {\n dispatchAction({ type: \"add-rule\", id });\n }}\n style={{ cursor: \"pointer\", textDecoration: \"underline\" }}\n >\n {`${labels.empty?.createCondition}`}\n </HvTypography>\n {level <= normalizedMaxDepth && (\n <>\n {`${labels.empty?.spacer}`}\n <HvTypography\n variant=\"link\"\n component=\"a\"\n onClick={() => {\n dispatchAction({ type: \"add-group\", id });\n }}\n style={{ cursor: \"pointer\", textDecoration: \"underline\" }}\n >\n {`${labels.empty?.createGroup}`}\n </HvTypography>\n </>\n )}\n </>\n }\n icon={<Info />}\n />\n )}\n <HvGrid container>\n <HvGrid\n item\n className={clsx(classes.actionButtonContainer, classes.topActionButtonContainer)}\n >\n {actionButtons}\n </HvGrid>\n </HvGrid>\n </div>\n );\n};\n\nRuleGroup.propTypes = {\n id: PropTypes.number,\n level: PropTypes.number,\n combinator: PropTypes.string,\n rules: PropTypes.array,\n};\n\nexport default RuleGroup;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AAQA;;AAEA;;AACA;;AACA;;;;;;;;AAEA,IAAMA,SAAS,GAAG,SAAZA,SAAY,OAAuD;EAAA;;EAAA,sBAApDC,KAAoD;EAAA,IAApDA,KAAoD,2BAA5C,CAA4C;EAAA,IAAzCC,EAAyC,QAAzCA,EAAyC;EAAA,2BAArCC,UAAqC;EAAA,IAArCA,UAAqC,gCAAxB,KAAwB;EAAA,sBAAjBC,KAAiB;EAAA,IAAjBA,KAAiB,2BAAT,EAAS;EACvE,IAAMC,OAAO,GAAG,qBAAU;IAAEJ,KAAK,EAALA;EAAF,CAAV,CAAhB;EACA,IAAMK,OAAO,GAAG,uBAAWC,gBAAX,CAAhB;EAEA,IAAQC,cAAR,GAAqEF,OAArE,CAAQE,cAAR;EAAA,IAAwBC,SAAxB,GAAqEH,OAArE,CAAwBG,SAAxB;EAAA,IAAmCC,QAAnC,GAAqEJ,OAArE,CAAmCI,QAAnC;EAAA,IAA6CC,WAA7C,GAAqEL,OAArE,CAA6CK,WAA7C;EAAA,IAA0DC,MAA1D,GAAqEN,OAArE,CAA0DM,MAA1D;EACA,IAAMC,kBAAkB,GAAGH,QAAQ,GAAG,CAAtC;;EAEA,IAAMI,aAAa,gBACjB,yEACE,6BAAC,wBAAD;IACE,QAAQ,EAAC,WADX;IAEE,OAAO,EAAE,mBAAM;MACbN,cAAc,CAAC;QAAEO,IAAI,EAAE,UAAR;QAAoBb,EAAE,EAAFA;MAApB,CAAD,CAAd;IACD;EAJH,gCAME,6BAAC,oBAAD,OANF,GAOGD,KAAK,KAAK,CAAV,IAAe,kBAAAW,MAAM,CAACI,KAAP,yFAAcC,OAAd,gFAAuBC,KAAvB,KAAgC,IAA/C,qBACGN,MAAM,CAACI,KADV,4EACG,eAAcC,OADjB,0DACG,sBAAuBC,KAD1B,GAEGN,MAAM,CAACO,KAAP,CAAaF,OAAb,CAAqBC,KAT3B,CADF,EAYGjB,KAAK,IAAIY,kBAAT,iBACC,6BAAC,wBAAD;IACE,QAAQ,EAAC,WADX;IAEE,OAAO,EAAE,mBAAM;MACbL,cAAc,CAAC;QAAEO,IAAI,EAAE,WAAR;QAAqBb,EAAE,EAAFA;MAArB,CAAD,CAAd;IACD;EAJH,kCAME,6BAAC,oBAAD,OANF,GAOGD,KAAK,KAAK,CAAV,IAAe,mBAAAW,MAAM,CAACI,KAAP,2FAAcI,QAAd,gFAAwBF,KAAxB,KAAiC,IAAhD,qBACGN,MAAM,CAACI,KADV,4EACG,eAAcI,QADjB,0DACG,sBAAwBF,KAD3B,GAEGN,MAAM,CAACO,KAAP,CAAaC,QAAb,CAAsBF,KAT5B,CAbJ,CADF;;EA6BA,IAAMG,UAAU,GAAG,iCACjB;IAAA,0CAAM,6BAAC,uBAAD,OAAN;EAAA,CADiB,EAEjBpB,KAAK,KAAK,CAAV,sBAAeW,MAAM,CAACI,KAAtB,oEAAe,eAAcM,MAA7B,kDAAe,sBAAsBC,OAArC,qBACIX,MAAM,CAACI,KADX,4EACI,eAAcM,MADlB,0DACI,sBAAsBC,OAD1B,GAEIX,MAAM,CAACO,KAAP,CAAaG,MAAb,CAAoBC,OAJP,EAKjB,KALiB,CAAnB;EAQA,IAAMC,iBAAiB,GAAG,wBACxB,UAACC,IAAD,EAAU;IACRjB,cAAc,CAAC;MACbO,IAAI,EAAE,gBADO;MAEbb,EAAE,EAAFA,EAFa;MAGbC,UAAU,EAAEsB,IAAI,CAACC;IAHJ,CAAD,CAAd;EAKD,CAPuB,EAQxB,CAAClB,cAAD,EAAiBN,EAAjB,CARwB,CAA1B;EAWA,oBACE;IACE,SAAS,EAAE,mBAAKG,OAAO,CAACsB,IAAb,EACW1B,KAAK,KAAK,CADrB,GACRI,OAAO,CAACuB,QADA,GAERvB,OAAO,CAACwB,QAFA;EADb,gBAME,6BAAC,sBAAD;IAAQ,SAAS;EAAjB,gBACE,6BAAC,sBAAD;IAAQ,IAAI;EAAZ,gBACE,6BAAC,6BAAD;IAAe,SAAS,EAAE,mBAAKxB,OAAO,CAACF,UAAb,EAAyBE,OAAO,CAACyB,aAAjC;EAA1B,GACGnB,WAAW,CAACoB,GAAZ,CAAgB,UAACN,IAAD;IAAA,oBACf,6BAAC,wBAAD;MACE,GAAG,EAAEA,IAAI,CAACC,OADZ;MAEE,SAAS,EAAErB,OAAO,CAAC2B,gBAFrB;MAGE,QAAQ,EAAEP,IAAI,CAACC,OAAL,KAAiBvB,UAH7B;MAIE,OAAO,EAAE;QAAA,OAAMsB,IAAI,CAACC,OAAL,IAAgBF,iBAAiB,CAACC,IAAD,CAAvC;MAAA;IAJX,GAMGA,IAAI,CAACP,KANR,CADe;EAAA,CAAhB,CADH,CADF,CADF,eAeE,6BAAC,sBAAD;IAAQ,IAAI;EAAZ,gBACE,6BAAC,wBAAD;IACE,IAAI,MADN;IAEE,SAAS,EAAE,mBAAKb,OAAO,CAAC4B,YAAb,EAA2B5B,OAAO,CAAC6B,eAAnC,CAFb;IAGE,OAAO,EAAE,mBAAM;MAAA;;MACbzB,SAAS,CAAC;QACR0B,OAAO,EAAE,CAAC;UAAEpB,IAAI,EAAE,aAAR;UAAuBb,EAAE,EAAFA;QAAvB,CAAD,CADD;QAERkC,MAAM,EACJnC,KAAK,KAAK,CAAV,IAAe,mBAAAW,MAAM,CAACI,KAAP,kEAAcM,MAAd,KAAwB,IAAvC,GACIV,MAAM,CAACI,KAAP,CAAaM,MADjB,GAEIV,MAAM,CAACO,KAAP,CAAaG;MALX,CAAD,CAAT;IAOD,CAXH;IAYE,cACErB,KAAK,KAAK,CAAV,sBAAeW,MAAM,CAACI,KAAtB,oEAAe,eAAcM,MAA7B,kDAAe,sBAAsBe,SAArC,qBACIzB,MAAM,CAACI,KADX,4EACI,eAAcM,MADlB,0DACI,sBAAsBe,SAD1B,GAEIzB,MAAM,CAACO,KAAP,CAAaG,MAAb,CAAoBe;EAf5B,gBAkBE,6BAAC,UAAD,OAlBF,CADF,CAfF,CANF,EA4CG,CAAAjC,KAAK,SAAL,IAAAA,KAAK,WAAL,YAAAA,KAAK,CAAEkC,MAAP,IAAgB,CAAhB,iBACC;IACE,SAAS,EAAE,mBAAKjC,OAAO,CAACkC,cAAb,EACoBtC,KAAK,GAAG,CAD5B,IACRI,OAAO,CAACmC,iBADA,EAEUvC,KAAK,KAAK,CAFpB;EADb,GAMGG,KAAK,CAAC2B,GAAN,CAAU,UAACU,IAAD,EAAOC,KAAP,EAAiB;IAC1B,IAAI,gBAAgBD,IAApB,EAA0B;MACxB,oBACE,6BAAC,SAAD;QACE,GAAG,EAAEA,IAAI,CAACvC,EAAL,IAAWyC,IAAI,CAACC,MAAL,EADlB;QAEE,KAAK,EAAE3C,KAAK,GAAG;MAFjB,GAGMwC,IAHN;QAIE,EAAE,EAAEA,IAAI,CAACvC;MAJX,GADF;IAQD;;IAED,IAAM2C,SAAS,GACb1C,UAAU,KAAK,KAAf,IACAC,KAAK,CAAC0C,IAAN,CAAW,UAACC,CAAD,EAAIC,CAAJ,EAAU;MACnB,IAAI,eAAeD,CAAnB,EAAsB;QACpB,IAAIA,CAAC,CAACE,SAAF,KAAgBR,IAAI,CAACQ,SAArB,IAAkCF,CAAC,CAAC7C,EAAF,KAASuC,IAAI,CAACvC,EAAhD,IAAsD8C,CAAC,GAAGN,KAA9D,EAAqE;UACnE,OAAO,IAAP;QACD;MACF;;MACD,OAAO,KAAP;IACD,CAPD,CAFF;IAWA,oBACE,6BAAC,aAAD;MACE,GAAG,EAAED,IAAI,CAACvC,EAAL,IAAWyC,IAAI,CAACC,MAAL;IADlB,GAEMH,IAFN;MAGE,SAAS,EAAEI,SAHb;MAIE,EAAE,EAAEJ,IAAI,CAACvC,EAJX;MAKE,UAAU,EAAEC;IALd,GADF;EASD,CAhCA,CANH,CA7CJ,EAsFG,CAAAC,KAAK,SAAL,IAAAA,KAAK,WAAL,YAAAA,KAAK,CAAEkC,MAAP,MAAkB,CAAlB,iBACC,6BAAC,4BAAD;IACE,KAAK,mBAAE1B,MAAM,CAACsC,KAAT,kDAAE,cAAcC,KADvB;IAEE,OAAO,eACL,yEACE,6BAAC,4BAAD;MACE,OAAO,EAAC,MADV;MAEE,SAAS,EAAC,GAFZ;MAGE,OAAO,EAAE,mBAAM;QACb3C,cAAc,CAAC;UAAEO,IAAI,EAAE,UAAR;UAAoBb,EAAE,EAAFA;QAApB,CAAD,CAAd;MACD,CALH;MAME,KAAK,EAAE;QAAEkD,MAAM,EAAE,SAAV;QAAqBC,cAAc,EAAE;MAArC;IANT,+BAQMzC,MAAM,CAACsC,KARb,mDAQM,eAAcI,eARpB,EADF,EAWGrD,KAAK,IAAIY,kBAAT,iBACC,wFACMD,MAAM,CAACsC,KADb,mDACM,eAAcK,MADpB,gBAEE,6BAAC,4BAAD;MACE,OAAO,EAAC,MADV;MAEE,SAAS,EAAC,GAFZ;MAGE,OAAO,EAAE,mBAAM;QACb/C,cAAc,CAAC;UAAEO,IAAI,EAAE,WAAR;UAAqBb,EAAE,EAAFA;QAArB,CAAD,CAAd;MACD,CALH;MAME,KAAK,EAAE;QAAEkD,MAAM,EAAE,SAAV;QAAqBC,cAAc,EAAE;MAArC;IANT,+BAQMzC,MAAM,CAACsC,KARb,mDAQM,eAAcM,WARpB,EAFF,CAZJ,CAHJ;IA+BE,IAAI,iCAAE,6BAAC,qBAAD,OAAF;EA/BN,EAvFJ,eAyHE,6BAAC,sBAAD;IAAQ,SAAS;EAAjB,gBACE,6BAAC,sBAAD;IACE,IAAI,MADN;IAEE,SAAS,EAAE,mBAAKnD,OAAO,CAACoD,qBAAb,EAAoCpD,OAAO,CAACqD,wBAA5C;EAFb,GAIG5C,aAJH,CADF,CAzHF,CADF;AAoID,CA3LD;;AA6LA,wCAAAd,SAAS,CAAC2D,SAAV,GAAsB;EACpBzD,EAAE,EAAE0D,mBAAUC,MADM;EAEpB5D,KAAK,EAAE2D,mBAAUC,MAFG;EAGpB1D,UAAU,EAAEyD,mBAAUE,MAHF;EAIpB1D,KAAK,EAAEwD,mBAAUG;AAJG,CAAtB;eAOe/D,S"}
|
|
1
|
+
{"version":3,"file":"RuleGroup.js","names":["RuleGroup","level","id","combinator","rules","classes","context","Context","dispatchAction","askAction","maxDepth","combinators","labels","normalizedMaxDepth","actionButtons","type","query","addRule","label","group","addGroup","DeleteIcon","delete","tooltip","onClickCombinator","item","operand","root","topGroup","subGroup","topCombinator","map","combinatorButton","removeButton","topRemoveButton","actions","dialog","ariaLabel","length","rulesContainer","subRulesContainer","rule","index","Math","random","isInvalid","some","r","i","attribute","empty","title","cursor","textDecoration","createCondition","spacer","createGroup","actionButtonContainer","topActionButtonContainer","propTypes","PropTypes","shape","string","number","array","styles","name"],"sources":["../../../src/QueryBuilder/RuleGroup/RuleGroup.js"],"sourcesContent":["import React, { useCallback, useContext } from \"react\";\nimport clsx from \"clsx\";\nimport { withStyles } from \"@material-ui/core\";\nimport PropTypes from \"prop-types\";\nimport {\n HvGrid,\n HvMultiButton,\n HvButton,\n HvEmptyState,\n HvTypography,\n withTooltip,\n} from \"@hitachivantara/uikit-react-core\";\nimport { Add, Delete, Info } from \"@hitachivantara/uikit-react-icons\";\n\nimport Context from \"../Context\";\nimport Rule from \"../Rule\";\nimport styles from \"./styles\";\n\nconst RuleGroup = ({ level = 0, id, combinator = \"and\", rules = [], classes }) => {\n const context = useContext(Context);\n\n const { dispatchAction, askAction, maxDepth, combinators, labels } = context;\n const normalizedMaxDepth = maxDepth - 1;\n\n const actionButtons = (\n <>\n <HvButton\n category=\"secondary\"\n onClick={() => {\n dispatchAction({ type: \"add-rule\", id });\n }}\n >\n <Add />\n {level === 0 && labels.query?.addRule?.label != null\n ? labels.query?.addRule?.label\n : labels.group.addRule.label}\n </HvButton>\n {level <= normalizedMaxDepth && (\n <HvButton\n category=\"secondary\"\n onClick={() => {\n dispatchAction({ type: \"add-group\", id });\n }}\n >\n <Add />\n {level === 0 && labels.query?.addGroup?.label != null\n ? labels.query?.addGroup?.label\n : labels.group.addGroup.label}\n </HvButton>\n )}\n </>\n );\n\n const DeleteIcon = withTooltip(\n () => <Delete />,\n level === 0 && labels.query?.delete?.tooltip\n ? labels.query?.delete?.tooltip\n : labels.group.delete.tooltip,\n \"top\"\n );\n\n const onClickCombinator = useCallback(\n (item) => {\n dispatchAction({\n type: \"set-combinator\",\n id,\n combinator: item.operand,\n });\n },\n [dispatchAction, id]\n );\n\n return (\n <div\n className={clsx(classes.root, {\n [classes.topGroup]: level === 0,\n [classes.subGroup]: level !== 0,\n })}\n >\n <HvGrid container>\n <HvGrid item>\n <HvMultiButton className={clsx(classes.combinator, classes.topCombinator)}>\n {combinators.map((item) => (\n <HvButton\n key={item.operand}\n className={classes.combinatorButton}\n selected={item.operand === combinator}\n onClick={() => item.operand && onClickCombinator(item)}\n >\n {item.label}\n </HvButton>\n ))}\n </HvMultiButton>\n </HvGrid>\n <HvGrid item>\n <HvButton\n icon\n className={clsx(classes.removeButton, classes.topRemoveButton)}\n onClick={() => {\n askAction({\n actions: [{ type: \"remove-node\", id }],\n dialog:\n level === 0 && labels.query?.delete != null\n ? labels.query.delete\n : labels.group.delete,\n });\n }}\n aria-label={\n level === 0 && labels.query?.delete?.ariaLabel\n ? labels.query?.delete?.ariaLabel\n : labels.group.delete.ariaLabel\n }\n >\n <DeleteIcon />\n </HvButton>\n </HvGrid>\n </HvGrid>\n {rules?.length > 0 && (\n <div\n className={clsx(classes.rulesContainer, {\n [classes.subRulesContainer]: level > 0,\n topRulesContainer: level === 0,\n })}\n >\n {rules.map((rule, index) => {\n if (\"combinator\" in rule) {\n return (\n <RuleGroup\n key={rule.id || Math.random()}\n level={level + 1}\n {...rule}\n id={rule.id}\n classes={classes}\n />\n );\n }\n\n const isInvalid =\n combinator === \"and\" &&\n rules.some((r, i) => {\n if (\"attribute\" in r) {\n if (r.attribute === rule.attribute && r.id !== rule.id && i < index) {\n return true;\n }\n }\n return false;\n });\n\n return (\n <Rule\n key={rule.id || Math.random()}\n {...rule}\n isInvalid={isInvalid}\n id={rule.id}\n combinator={combinator}\n />\n );\n })}\n </div>\n )}\n {rules?.length === 0 && (\n <HvEmptyState\n title={labels.empty?.title}\n message={\n <>\n <HvTypography\n variant=\"link\"\n component=\"a\"\n onClick={() => {\n dispatchAction({ type: \"add-rule\", id });\n }}\n style={{ cursor: \"pointer\", textDecoration: \"underline\" }}\n >\n {`${labels.empty?.createCondition}`}\n </HvTypography>\n {level <= normalizedMaxDepth && (\n <>\n {`${labels.empty?.spacer}`}\n <HvTypography\n variant=\"link\"\n component=\"a\"\n onClick={() => {\n dispatchAction({ type: \"add-group\", id });\n }}\n style={{ cursor: \"pointer\", textDecoration: \"underline\" }}\n >\n {`${labels.empty?.createGroup}`}\n </HvTypography>\n </>\n )}\n </>\n }\n icon={<Info />}\n />\n )}\n <HvGrid container>\n <HvGrid\n item\n className={clsx(classes.actionButtonContainer, classes.topActionButtonContainer)}\n >\n {actionButtons}\n </HvGrid>\n </HvGrid>\n </div>\n );\n};\n\nRuleGroup.propTypes = {\n /**\n * Override or extend the styles applied to the component.\n * See CSS API tab for more details.\n */\n classes: PropTypes.shape({\n /**\n * Styles applied to the component root class.\n */\n root: PropTypes.string,\n /**\n * Styles applied to the top group container.\n */\n topGroup: PropTypes.string,\n /**\n * Styles applied to the sub group containers.\n */\n subGroup: PropTypes.string,\n /**\n * Styles applied to the multi-button combinator container.\n */\n combinator: PropTypes.string,\n /**\n * Styles applied to the multi-button combinator container on the top group.\n */\n topCombinator: PropTypes.string,\n /**\n * Styles applied to each combinator button.\n */\n combinatorButton: PropTypes.string,\n /**\n * Styles applied to the remove button.\n */\n removeButton: PropTypes.string,\n /**\n * Styles applied to the remove button on the top group.\n */\n topRemoveButton: PropTypes.string,\n /**\n * Styles applied to the rules container.\n */\n rulesContainer: PropTypes.string,\n /**\n * Styles applied to the sub rules container.\n */\n subRulesContainer: PropTypes.string,\n /**\n * Styles applied to the action button container.\n */\n actionButtonContainer: PropTypes.string,\n /**\n * Styles applied to the top action button container.\n */\n topActionButtonContainer: PropTypes.string,\n }),\n id: PropTypes.number,\n level: PropTypes.number,\n combinator: PropTypes.string,\n rules: PropTypes.array,\n};\n\nexport default withStyles(styles, { name: \"RuleGroup\" })(RuleGroup);\n"],"mappings":"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"}
|
|
@@ -5,9 +5,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.default = void 0;
|
|
7
7
|
|
|
8
|
-
var
|
|
9
|
-
|
|
10
|
-
var useStyles = (0, _core.makeStyles)(function (theme) {
|
|
8
|
+
var styles = function styles(theme) {
|
|
11
9
|
return {
|
|
12
10
|
root: {
|
|
13
11
|
position: "relative",
|
|
@@ -88,7 +86,8 @@ var useStyles = (0, _core.makeStyles)(function (theme) {
|
|
|
88
86
|
width: "100%"
|
|
89
87
|
}
|
|
90
88
|
};
|
|
91
|
-
}
|
|
92
|
-
|
|
89
|
+
};
|
|
90
|
+
|
|
91
|
+
var _default = styles;
|
|
93
92
|
exports.default = _default;
|
|
94
93
|
//# sourceMappingURL=styles.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"styles.js","names":["
|
|
1
|
+
{"version":3,"file":"styles.js","names":["styles","theme","root","position","padding","hv","spacing","sm","marginTop","marginBottom","border","palette","atmosphere","atmo4","subGroup","margin","minHeight","paddingBottom","content","zIndex","width","height","borderBottom","borderLeft","top","left","topGroup","backgroundColor","maxWidth","minWidth","combinator","topCombinator","combinatorButton","actionButtonContainer","marginLeft","topActionButtonContainer","bottom","md","right","removeButton","topRemoveButton","atmo2","rulesContainer","subRulesContainer","paddingLeft","paddingTop"],"sources":["../../../src/QueryBuilder/RuleGroup/styles.js"],"sourcesContent":["const styles = (theme) => ({\n root: {\n position: \"relative\",\n padding: theme.hv.spacing.sm,\n\n marginTop: 12,\n marginBottom: 32,\n\n border: `1px solid ${theme.hv.palette.atmosphere.atmo4}`,\n },\n subGroup: {\n margin: \"40px 14px 32px 20px\",\n minHeight: 120,\n paddingBottom: 60,\n\n \"&::before\": {\n content: '\"\"',\n position: \"absolute\",\n zIndex: 2,\n\n width: 21,\n height: 36,\n\n borderBottom: `1px solid ${theme.hv.palette.atmosphere.atmo4}`,\n borderLeft: `1px solid ${theme.hv.palette.atmosphere.atmo4}`,\n\n top: -38,\n left: -42,\n },\n \":not(.topRulesContainer)>&:last-child::after\": {\n content: '\"\"',\n position: \"absolute\",\n zIndex: 1,\n\n width: 32,\n height: \"100%\",\n\n borderLeft: `1px solid ${theme.hv.palette.atmosphere.atmo4}`,\n\n top: 0,\n left: -22,\n },\n },\n topGroup: {\n margin: theme.hv.spacing.sm,\n backgroundColor: \"transparent\",\n maxWidth: \"100%\",\n minWidth: 740,\n\n paddingBottom: theme.hv.spacing.sm * 3,\n },\n\n combinator: {\n minWidth: 80,\n },\n topCombinator: {\n position: \"absolute\",\n top: -theme.hv.spacing.sm,\n left: -theme.hv.spacing.sm,\n },\n\n combinatorButton: {},\n\n actionButtonContainer: {\n marginLeft: \"auto\",\n\n \"&>*\": {\n marginLeft: theme.hv.spacing.sm,\n },\n },\n topActionButtonContainer: {\n position: \"absolute\",\n bottom: -theme.hv.spacing.md,\n right: theme.hv.spacing.sm,\n },\n\n removeButton: {},\n topRemoveButton: {\n position: \"absolute\",\n top: -16,\n right: -16,\n backgroundColor: theme.hv.palette.atmosphere.atmo2,\n },\n\n rulesContainer: {},\n\n subRulesContainer: {\n borderLeft: `1px solid ${theme.hv.palette.atmosphere.atmo4}`,\n\n marginLeft: theme.hv.spacing.sm,\n marginBottom: theme.hv.spacing.md,\n paddingLeft: theme.hv.spacing.sm,\n\n paddingTop: 7,\n\n position: \"relative\",\n left: -41,\n\n width: \"100%\",\n },\n});\n\nexport default styles;\n"],"mappings":"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"}
|
|
@@ -21,7 +21,8 @@ import {
|
|
|
21
21
|
<Meta title="Lab/Table Column Renderers" />
|
|
22
22
|
|
|
23
23
|
# Table column renderers
|
|
24
|
-
|
|
24
|
+
|
|
25
|
+
The UI Kit library provides a collection of utility functions that, together with the <LinkTo kind="Lab/Table Hooks" story="Main" className="sbdocs sbdocs-a">Table Hooks</LinkTo>,
|
|
25
26
|
ease the setup of common column configurations, including the render function, alignment, missing data fallbacks and cell overflow.
|
|
26
27
|
|
|
27
28
|
They add a set of out of the box features, not meant to be 100% feature complete, but instead, ease the majority of use-cases we have been encountering. If you need any customization or extension to these renderers, please feel free to copy and customize them.
|
|
@@ -12,7 +12,7 @@ import * as stories from "./TableHooks.stories.js";
|
|
|
12
12
|
|
|
13
13
|
# Table hooks
|
|
14
14
|
|
|
15
|
-
The UI Kit library provides a collection of **custom hooks** that ease the integration with the <LinkTo kind="Lab/Table" story="Main" className="sbdocs-a">HvTable elements</LinkTo> and allows more advanced use cases and better data handling.
|
|
15
|
+
The UI Kit library provides a collection of **custom hooks** that ease the integration with the <LinkTo kind="Lab/Table" story="Main" className="sbdocs sbdocs-a">HvTable elements</LinkTo> and allows more advanced use cases and better data handling.
|
|
16
16
|
|
|
17
17
|
Our custom hooks are built on top of [React Table](https://react-table.tanstack.com) which is an "headless" UI utility library to build data tables while retaining control over markup and styles. It consists of a collection of, lightweight, composable and extensible custom React hooks.
|
|
18
18
|
|
|
@@ -3,7 +3,19 @@ import { StandardProps } from "@material-ui/core";
|
|
|
3
3
|
|
|
4
4
|
import { Attribute, Query, QueryBuilderLabels, QueryCombinator, QueryOperator } from "./types";
|
|
5
5
|
|
|
6
|
-
export type HvQueryBuilderClassKey =
|
|
6
|
+
export type HvQueryBuilderClassKey =
|
|
7
|
+
| "root"
|
|
8
|
+
| "topGroup"
|
|
9
|
+
| "subGroup"
|
|
10
|
+
| "combinator"
|
|
11
|
+
| "topCombinator"
|
|
12
|
+
| "combinatorButton"
|
|
13
|
+
| "removeButton"
|
|
14
|
+
| "topRemoveButton"
|
|
15
|
+
| "rulesContainer"
|
|
16
|
+
| "subRulesContainer"
|
|
17
|
+
| "actionButtonContainer"
|
|
18
|
+
| "topActionButtonContainer";
|
|
7
19
|
|
|
8
20
|
export interface HvQueryBuilderProps
|
|
9
21
|
extends StandardProps<React.HTMLAttributes<HTMLDivElement>, HvQueryBuilderClassKey, "onChange"> {
|
|
@@ -38,4 +50,4 @@ export interface HvQueryBuilderProps
|
|
|
38
50
|
labels?: QueryBuilderLabels;
|
|
39
51
|
}
|
|
40
52
|
|
|
41
|
-
export default function
|
|
53
|
+
export default function HvQueryBuilder(props: HvQueryBuilderProps): JSX.Element | null;
|
|
@@ -28,7 +28,8 @@ var HvQueryBuilder = function HvQueryBuilder(_ref) {
|
|
|
28
28
|
combinators = _ref.combinators,
|
|
29
29
|
_ref$maxDepth = _ref.maxDepth,
|
|
30
30
|
maxDepth = _ref$maxDepth === void 0 ? 1 : _ref$maxDepth,
|
|
31
|
-
labels = _ref.labels
|
|
31
|
+
labels = _ref.labels,
|
|
32
|
+
classes = _ref.classes;
|
|
32
33
|
|
|
33
34
|
var _useState = useState(),
|
|
34
35
|
_useState2 = _slicedToArray(_useState, 2),
|
|
@@ -103,7 +104,8 @@ var HvQueryBuilder = function HvQueryBuilder(_ref) {
|
|
|
103
104
|
level: 0,
|
|
104
105
|
id: state.id,
|
|
105
106
|
combinator: state.combinator,
|
|
106
|
-
rules: state.rules
|
|
107
|
+
rules: state.rules,
|
|
108
|
+
classes: classes
|
|
107
109
|
}), /*#__PURE__*/React.createElement(ConfirmationDialog, {
|
|
108
110
|
isOpen: pendingAction != null,
|
|
109
111
|
onConfirm: onConfirmHandler,
|
|
@@ -118,8 +120,70 @@ var HvQueryBuilder = function HvQueryBuilder(_ref) {
|
|
|
118
120
|
|
|
119
121
|
process.env.NODE_ENV !== "production" ? HvQueryBuilder.propTypes = {
|
|
120
122
|
/**
|
|
121
|
-
*
|
|
123
|
+
* Override or extend the styles applied to the component.
|
|
124
|
+
* See CSS API tab for more details.
|
|
122
125
|
*/
|
|
126
|
+
classes: PropTypes.shape({
|
|
127
|
+
/**
|
|
128
|
+
* Styles applied to the component root class.
|
|
129
|
+
*/
|
|
130
|
+
root: PropTypes.string,
|
|
131
|
+
|
|
132
|
+
/**
|
|
133
|
+
* Styles applied to the top group container.
|
|
134
|
+
*/
|
|
135
|
+
topGroup: PropTypes.string,
|
|
136
|
+
|
|
137
|
+
/**
|
|
138
|
+
* Styles applied to the sub group containers.
|
|
139
|
+
*/
|
|
140
|
+
subGroup: PropTypes.string,
|
|
141
|
+
|
|
142
|
+
/**
|
|
143
|
+
* Styles applied to the multi-button combinator container.
|
|
144
|
+
*/
|
|
145
|
+
combinator: PropTypes.string,
|
|
146
|
+
|
|
147
|
+
/**
|
|
148
|
+
* Styles applied to the multi-button combinator container on the top group.
|
|
149
|
+
*/
|
|
150
|
+
topCombinator: PropTypes.string,
|
|
151
|
+
|
|
152
|
+
/**
|
|
153
|
+
* Styles applied to each combinator button.
|
|
154
|
+
*/
|
|
155
|
+
combinatorButton: PropTypes.string,
|
|
156
|
+
|
|
157
|
+
/**
|
|
158
|
+
* Styles applied to the remove button.
|
|
159
|
+
*/
|
|
160
|
+
removeButton: PropTypes.string,
|
|
161
|
+
|
|
162
|
+
/**
|
|
163
|
+
* Styles applied to the remove button on the top group.
|
|
164
|
+
*/
|
|
165
|
+
topRemoveButton: PropTypes.string,
|
|
166
|
+
|
|
167
|
+
/**
|
|
168
|
+
* Styles applied to the rules container.
|
|
169
|
+
*/
|
|
170
|
+
rulesContainer: PropTypes.string,
|
|
171
|
+
|
|
172
|
+
/**
|
|
173
|
+
* Styles applied to the sub rules container.
|
|
174
|
+
*/
|
|
175
|
+
subRulesContainer: PropTypes.string,
|
|
176
|
+
|
|
177
|
+
/**
|
|
178
|
+
* Styles applied to the action button container.
|
|
179
|
+
*/
|
|
180
|
+
actionButtonContainer: PropTypes.string,
|
|
181
|
+
|
|
182
|
+
/**
|
|
183
|
+
* Styles applied to the top action button container.
|
|
184
|
+
*/
|
|
185
|
+
topActionButtonContainer: PropTypes.string
|
|
186
|
+
}),
|
|
123
187
|
attributes: PropTypes.shape({
|
|
124
188
|
key: PropTypes.shape({
|
|
125
189
|
id: PropTypes.number,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"QueryBuilder.js","names":["React","useEffect","useMemo","useReducer","useRef","useState","useContext","PropTypes","isEqual","cloneDeep","withStyles","Context","RuleGroup","ConfirmationDialog","emptyGroup","clearNodeIds","reducer","styles","HvQueryBuilder","attributes","query","onChange","operators","combinators","maxDepth","labels","pendingAction","askAction","currentAttributes","initialState","state","dispatchAction","prevState","setPrevState","defaultcontext","context","initialTouched","current","type","onConfirmHandler","undefined","actions","forEach","action","onCancelHandler","id","combinator","rules","dialog","dialogTitle","dialogMessage","dialogConfirm","dialogCancel","dialogCloseTooltip","propTypes","shape","key","number","label","string","isRequired","value","any","order","arrayOf","operator","operand","attribute","func","instanceOf","Object","name"],"sources":["../../../src/QueryBuilder/QueryBuilder.js"],"sourcesContent":["import React, { useEffect, useMemo, useReducer, useRef, useState, useContext } from \"react\";\nimport PropTypes from \"prop-types\";\nimport isEqual from \"lodash/isEqual\";\nimport cloneDeep from \"lodash/cloneDeep\";\nimport { withStyles } from \"@material-ui/core\";\n\nimport Context from \"./Context\";\nimport RuleGroup from \"./RuleGroup\";\nimport ConfirmationDialog from \"./ConfirmationDialog\";\nimport { emptyGroup, clearNodeIds } from \"./utils\";\nimport reducer from \"./utils/reducer\";\nimport styles from \"./styles\";\n\n/**\n * **HvQueryBuilder** component allows you to create conditions and group them using logical operators.\n * It outputs a structured set of rules which can be easily parsed to create SQL/NoSQL/whatever queries.\n *\n * **PLEASE NOTE**: This component implementation is still a WIP. There might be breaking changes.\n */\nconst HvQueryBuilder = ({\n attributes = [],\n query,\n onChange,\n operators,\n combinators,\n maxDepth = 1,\n labels,\n}) => {\n const [pendingAction, askAction] = useState();\n const currentAttributes = useRef();\n const [state, dispatchAction] = useReducer(\n reducer,\n query,\n (initialState) => initialState || emptyGroup()\n );\n\n const initialState = query === state;\n const [prevState, setPrevState] = useState();\n\n const defaultcontext = useContext(Context);\n\n const context = useMemo(\n () => ({\n dispatchAction,\n askAction,\n attributes,\n operators: operators ?? defaultcontext.operators,\n combinators: combinators ?? defaultcontext.combinators,\n maxDepth: maxDepth ?? defaultcontext.maxDepth,\n labels: labels ?? defaultcontext.labels,\n initialTouched: initialState,\n }),\n [\n attributes,\n operators,\n defaultcontext.operators,\n defaultcontext.combinators,\n defaultcontext.maxDepth,\n defaultcontext.labels,\n combinators,\n maxDepth,\n labels,\n initialState,\n ]\n );\n\n useEffect(() => {\n if (currentAttributes.current == null) {\n // first run, nothing to do\n currentAttributes.current = attributes;\n } else if (currentAttributes.current !== attributes) {\n // attributes changed, the existing query is almost certain invalid, so reset it\n currentAttributes.current = attributes;\n dispatchAction({ type: \"reset-query\" });\n }\n }, [attributes]);\n\n // Propagate the change if the query is modified.\n useEffect(() => {\n if (!initialState && !isEqual(state, prevState)) {\n onChange?.(clearNodeIds(state));\n setPrevState(cloneDeep(state));\n }\n }, [state, prevState, initialState, onChange]);\n\n const onConfirmHandler = () => {\n if (pendingAction) {\n askAction(undefined);\n pendingAction.actions.forEach((action) => dispatchAction(action));\n }\n };\n\n const onCancelHandler = () => {\n askAction(undefined);\n };\n\n return (\n <Context.Provider value={context}>\n <RuleGroup level={0} id={state.id} combinator={state.combinator} rules={state.rules} />\n <ConfirmationDialog\n isOpen={pendingAction != null}\n onConfirm={onConfirmHandler}\n onCancel={onCancelHandler}\n title={pendingAction?.dialog.dialogTitle || \"\"}\n message={pendingAction?.dialog.dialogMessage || \"\"}\n confirmButtonLabel={pendingAction?.dialog.dialogConfirm || \"\"}\n cancelButtonLabel={pendingAction?.dialog.dialogCancel || \"\"}\n closeButtonTooltip={pendingAction?.dialog.dialogCloseTooltip || \"\"}\n />\n </Context.Provider>\n );\n};\n\nHvQueryBuilder.propTypes = {\n /**\n * The query rules attributes.\n */\n attributes: PropTypes.shape({\n key: PropTypes.shape({\n id: PropTypes.number,\n label: PropTypes.string.isRequired,\n type: PropTypes.string.isRequired,\n value: PropTypes.any,\n order: PropTypes.number,\n }),\n }).isRequired,\n /**\n * The query rules operators by attribute type and combinator.\n */\n operators: PropTypes.shape({\n type: PropTypes.arrayOf(\n PropTypes.shape({\n operator: PropTypes.string.isRequired,\n label: PropTypes.string.isRequired,\n combinators: PropTypes.arrayOf(PropTypes.string).isRequired,\n })\n ),\n }),\n /**\n * The query combinators operands.\n */\n combinators: PropTypes.arrayOf(\n PropTypes.shape({\n operand: PropTypes.string.isRequired,\n label: PropTypes.string.isRequired,\n })\n ),\n /**\n * The initial query representation.\n */\n query: PropTypes.shape({\n id: PropTypes.number,\n combinator: PropTypes.string.isRequired,\n rules: PropTypes.arrayOf(\n PropTypes.shape({\n id: PropTypes.number,\n attribute: PropTypes.string,\n operator: PropTypes.string,\n value: PropTypes.any,\n })\n ).isRequired,\n }),\n /**\n * Callback fired when query changes.\n */\n onChange: PropTypes.func,\n /**\n * Max depth of nested query groups.\n */\n maxDepth: PropTypes.number,\n /**\n * An object containing all the labels.\n */\n labels: PropTypes.instanceOf(Object),\n};\n\nexport default withStyles(styles, { name: \"HvQueryBuilder\" })(HvQueryBuilder);\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"QueryBuilder.js","names":["React","useEffect","useMemo","useReducer","useRef","useState","useContext","PropTypes","isEqual","cloneDeep","withStyles","Context","RuleGroup","ConfirmationDialog","emptyGroup","clearNodeIds","reducer","styles","HvQueryBuilder","attributes","query","onChange","operators","combinators","maxDepth","labels","classes","pendingAction","askAction","currentAttributes","initialState","state","dispatchAction","prevState","setPrevState","defaultcontext","context","initialTouched","current","type","onConfirmHandler","undefined","actions","forEach","action","onCancelHandler","id","combinator","rules","dialog","dialogTitle","dialogMessage","dialogConfirm","dialogCancel","dialogCloseTooltip","propTypes","shape","root","string","topGroup","subGroup","topCombinator","combinatorButton","removeButton","topRemoveButton","rulesContainer","subRulesContainer","actionButtonContainer","topActionButtonContainer","key","number","label","isRequired","value","any","order","arrayOf","operator","operand","attribute","func","instanceOf","Object","name"],"sources":["../../../src/QueryBuilder/QueryBuilder.js"],"sourcesContent":["import React, { useEffect, useMemo, useReducer, useRef, useState, useContext } from \"react\";\nimport PropTypes from \"prop-types\";\nimport isEqual from \"lodash/isEqual\";\nimport cloneDeep from \"lodash/cloneDeep\";\nimport { withStyles } from \"@material-ui/core\";\n\nimport Context from \"./Context\";\nimport RuleGroup from \"./RuleGroup\";\nimport ConfirmationDialog from \"./ConfirmationDialog\";\nimport { emptyGroup, clearNodeIds } from \"./utils\";\nimport reducer from \"./utils/reducer\";\nimport styles from \"./styles\";\n\n/**\n * **HvQueryBuilder** component allows you to create conditions and group them using logical operators.\n * It outputs a structured set of rules which can be easily parsed to create SQL/NoSQL/whatever queries.\n *\n * **PLEASE NOTE**: This component implementation is still a WIP. There might be breaking changes.\n */\nconst HvQueryBuilder = ({\n attributes = [],\n query,\n onChange,\n operators,\n combinators,\n maxDepth = 1,\n labels,\n classes,\n}) => {\n const [pendingAction, askAction] = useState();\n const currentAttributes = useRef();\n const [state, dispatchAction] = useReducer(\n reducer,\n query,\n (initialState) => initialState || emptyGroup()\n );\n\n const initialState = query === state;\n const [prevState, setPrevState] = useState();\n\n const defaultcontext = useContext(Context);\n\n const context = useMemo(\n () => ({\n dispatchAction,\n askAction,\n attributes,\n operators: operators ?? defaultcontext.operators,\n combinators: combinators ?? defaultcontext.combinators,\n maxDepth: maxDepth ?? defaultcontext.maxDepth,\n labels: labels ?? defaultcontext.labels,\n initialTouched: initialState,\n }),\n [\n attributes,\n operators,\n defaultcontext.operators,\n defaultcontext.combinators,\n defaultcontext.maxDepth,\n defaultcontext.labels,\n combinators,\n maxDepth,\n labels,\n initialState,\n ]\n );\n\n useEffect(() => {\n if (currentAttributes.current == null) {\n // first run, nothing to do\n currentAttributes.current = attributes;\n } else if (currentAttributes.current !== attributes) {\n // attributes changed, the existing query is almost certain invalid, so reset it\n currentAttributes.current = attributes;\n dispatchAction({ type: \"reset-query\" });\n }\n }, [attributes]);\n\n // Propagate the change if the query is modified.\n useEffect(() => {\n if (!initialState && !isEqual(state, prevState)) {\n onChange?.(clearNodeIds(state));\n setPrevState(cloneDeep(state));\n }\n }, [state, prevState, initialState, onChange]);\n\n const onConfirmHandler = () => {\n if (pendingAction) {\n askAction(undefined);\n pendingAction.actions.forEach((action) => dispatchAction(action));\n }\n };\n\n const onCancelHandler = () => {\n askAction(undefined);\n };\n\n return (\n <Context.Provider value={context}>\n <RuleGroup\n level={0}\n id={state.id}\n combinator={state.combinator}\n rules={state.rules}\n classes={classes}\n />\n <ConfirmationDialog\n isOpen={pendingAction != null}\n onConfirm={onConfirmHandler}\n onCancel={onCancelHandler}\n title={pendingAction?.dialog.dialogTitle || \"\"}\n message={pendingAction?.dialog.dialogMessage || \"\"}\n confirmButtonLabel={pendingAction?.dialog.dialogConfirm || \"\"}\n cancelButtonLabel={pendingAction?.dialog.dialogCancel || \"\"}\n closeButtonTooltip={pendingAction?.dialog.dialogCloseTooltip || \"\"}\n />\n </Context.Provider>\n );\n};\n\nHvQueryBuilder.propTypes = {\n /**\n * Override or extend the styles applied to the component.\n * See CSS API tab for more details.\n */\n classes: PropTypes.shape({\n /**\n * Styles applied to the component root class.\n */\n root: PropTypes.string,\n /**\n * Styles applied to the top group container.\n */\n topGroup: PropTypes.string,\n /**\n * Styles applied to the sub group containers.\n */\n subGroup: PropTypes.string,\n /**\n * Styles applied to the multi-button combinator container.\n */\n combinator: PropTypes.string,\n /**\n * Styles applied to the multi-button combinator container on the top group.\n */\n topCombinator: PropTypes.string,\n /**\n * Styles applied to each combinator button.\n */\n combinatorButton: PropTypes.string,\n /**\n * Styles applied to the remove button.\n */\n removeButton: PropTypes.string,\n /**\n * Styles applied to the remove button on the top group.\n */\n topRemoveButton: PropTypes.string,\n /**\n * Styles applied to the rules container.\n */\n rulesContainer: PropTypes.string,\n /**\n * Styles applied to the sub rules container.\n */\n subRulesContainer: PropTypes.string,\n /**\n * Styles applied to the action button container.\n */\n actionButtonContainer: PropTypes.string,\n /**\n * Styles applied to the top action button container.\n */\n topActionButtonContainer: PropTypes.string,\n }),\n attributes: PropTypes.shape({\n key: PropTypes.shape({\n id: PropTypes.number,\n label: PropTypes.string.isRequired,\n type: PropTypes.string.isRequired,\n value: PropTypes.any,\n order: PropTypes.number,\n }),\n }).isRequired,\n /**\n * The query rules operators by attribute type and combinator.\n */\n operators: PropTypes.shape({\n type: PropTypes.arrayOf(\n PropTypes.shape({\n operator: PropTypes.string.isRequired,\n label: PropTypes.string.isRequired,\n combinators: PropTypes.arrayOf(PropTypes.string).isRequired,\n })\n ),\n }),\n /**\n * The query combinators operands.\n */\n combinators: PropTypes.arrayOf(\n PropTypes.shape({\n operand: PropTypes.string.isRequired,\n label: PropTypes.string.isRequired,\n })\n ),\n /**\n * The initial query representation.\n */\n query: PropTypes.shape({\n id: PropTypes.number,\n combinator: PropTypes.string.isRequired,\n rules: PropTypes.arrayOf(\n PropTypes.shape({\n id: PropTypes.number,\n attribute: PropTypes.string,\n operator: PropTypes.string,\n value: PropTypes.any,\n })\n ).isRequired,\n }),\n /**\n * Callback fired when query changes.\n */\n onChange: PropTypes.func,\n /**\n * Max depth of nested query groups.\n */\n maxDepth: PropTypes.number,\n /**\n * An object containing all the labels.\n */\n labels: PropTypes.instanceOf(Object),\n};\n\nexport default withStyles(styles, { name: \"HvQueryBuilder\" })(HvQueryBuilder);\n"],"mappings":"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"}
|