@hitachivantara/uikit-react-lab 3.45.4 → 3.45.7
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/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/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/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":"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"}
|
|
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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"}
|
|
@@ -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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"}
|