@hitachivantara/uikit-react-lab 3.45.3 → 3.45.6
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.js +67 -3
- package/dist/QueryBuilder/QueryBuilder.js.map +1 -1
- package/dist/QueryBuilder/RuleGroup/RuleGroup.js +79 -8
- package/dist/QueryBuilder/RuleGroup/RuleGroup.js.map +1 -1
- package/dist/QueryBuilder/RuleGroup/styles.js +5 -5
- package/dist/QueryBuilder/RuleGroup/styles.js.map +1 -1
- package/dist/legacy/QueryBuilder/QueryBuilder.js +67 -3
- package/dist/legacy/QueryBuilder/QueryBuilder.js.map +1 -1
- package/dist/legacy/QueryBuilder/RuleGroup/RuleGroup.js +77 -9
- package/dist/legacy/QueryBuilder/RuleGroup/RuleGroup.js.map +1 -1
- package/dist/legacy/QueryBuilder/RuleGroup/styles.js +5 -4
- package/dist/legacy/QueryBuilder/RuleGroup/styles.js.map +1 -1
- package/dist/modern/QueryBuilder/QueryBuilder.js +67 -3
- package/dist/modern/QueryBuilder/QueryBuilder.js.map +1 -1
- package/dist/modern/QueryBuilder/RuleGroup/RuleGroup.js +77 -9
- package/dist/modern/QueryBuilder/RuleGroup/RuleGroup.js.map +1 -1
- package/dist/modern/QueryBuilder/RuleGroup/styles.js +5 -4
- package/dist/modern/QueryBuilder/RuleGroup/styles.js.map +1 -1
- package/package.json +3 -3
|
@@ -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,16 +58,15 @@ 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,
|
|
66
66
|
maxDepth = context.maxDepth,
|
|
67
67
|
combinators = context.combinators,
|
|
68
68
|
labels = context.labels;
|
|
69
|
+
var normalizedMaxDepth = maxDepth - 1;
|
|
69
70
|
|
|
70
71
|
var actionButtons = /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_uikitReactCore.HvButton, {
|
|
71
72
|
category: "secondary",
|
|
@@ -75,7 +76,7 @@ var RuleGroup = function RuleGroup(_ref) {
|
|
|
75
76
|
id: id
|
|
76
77
|
});
|
|
77
78
|
}
|
|
78
|
-
}, _Add || (_Add = /*#__PURE__*/_react.default.createElement(_uikitReactIcons.Add, null)), level === 0 && ((_labels$query = labels.query) === null || _labels$query === void 0 ? void 0 : (_labels$query$addRule = _labels$query.addRule) === null || _labels$query$addRule === void 0 ? void 0 : _labels$query$addRule.label) != null ? (_labels$query2 = labels.query) === null || _labels$query2 === void 0 ? void 0 : (_labels$query2$addRul = _labels$query2.addRule) === null || _labels$query2$addRul === void 0 ? void 0 : _labels$query2$addRul.label : labels.group.addRule.label), level
|
|
79
|
+
}, _Add || (_Add = /*#__PURE__*/_react.default.createElement(_uikitReactIcons.Add, null)), level === 0 && ((_labels$query = labels.query) === null || _labels$query === void 0 ? void 0 : (_labels$query$addRule = _labels$query.addRule) === null || _labels$query$addRule === void 0 ? void 0 : _labels$query$addRule.label) != null ? (_labels$query2 = labels.query) === null || _labels$query2 === void 0 ? void 0 : (_labels$query2$addRul = _labels$query2.addRule) === null || _labels$query2$addRul === void 0 ? void 0 : _labels$query2$addRul.label : labels.group.addRule.label), level <= normalizedMaxDepth && /*#__PURE__*/_react.default.createElement(_uikitReactCore.HvButton, {
|
|
79
80
|
category: "secondary",
|
|
80
81
|
onClick: function onClick() {
|
|
81
82
|
dispatchAction({
|
|
@@ -137,7 +138,8 @@ var RuleGroup = function RuleGroup(_ref) {
|
|
|
137
138
|
key: rule.id || Math.random(),
|
|
138
139
|
level: level + 1
|
|
139
140
|
}, rule, {
|
|
140
|
-
id: rule.id
|
|
141
|
+
id: rule.id,
|
|
142
|
+
classes: classes
|
|
141
143
|
}));
|
|
142
144
|
}
|
|
143
145
|
|
|
@@ -172,7 +174,7 @@ var RuleGroup = function RuleGroup(_ref) {
|
|
|
172
174
|
cursor: "pointer",
|
|
173
175
|
textDecoration: "underline"
|
|
174
176
|
}
|
|
175
|
-
}, "".concat((_labels$empty2 = labels.empty) === null || _labels$empty2 === void 0 ? void 0 : _labels$empty2.createCondition)), level
|
|
177
|
+
}, "".concat((_labels$empty2 = labels.empty) === null || _labels$empty2 === void 0 ? void 0 : _labels$empty2.createCondition)), level <= normalizedMaxDepth && /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, "".concat((_labels$empty3 = labels.empty) === null || _labels$empty3 === void 0 ? void 0 : _labels$empty3.spacer), /*#__PURE__*/_react.default.createElement(_uikitReactCore.HvTypography, {
|
|
176
178
|
variant: "link",
|
|
177
179
|
component: "a",
|
|
178
180
|
onClick: function onClick() {
|
|
@@ -196,11 +198,80 @@ var RuleGroup = function RuleGroup(_ref) {
|
|
|
196
198
|
};
|
|
197
199
|
|
|
198
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
|
+
}),
|
|
199
266
|
id: _propTypes.default.number,
|
|
200
267
|
level: _propTypes.default.number,
|
|
201
268
|
combinator: _propTypes.default.string,
|
|
202
269
|
rules: _propTypes.default.array
|
|
203
270
|
} : void 0;
|
|
204
|
-
|
|
271
|
+
|
|
272
|
+
var _default = (0, _core.withStyles)(_styles.default, {
|
|
273
|
+
name: "RuleGroup"
|
|
274
|
+
})(RuleGroup);
|
|
275
|
+
|
|
205
276
|
exports.default = _default;
|
|
206
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","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\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 < maxDepth && (\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 === 0 && (\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",
|
|
@@ -19,6 +17,7 @@ var useStyles = (0, _core.makeStyles)(function (theme) {
|
|
|
19
17
|
subGroup: {
|
|
20
18
|
margin: "40px 14px 32px 20px",
|
|
21
19
|
minHeight: 120,
|
|
20
|
+
paddingBottom: 60,
|
|
22
21
|
"&::before": {
|
|
23
22
|
content: '""',
|
|
24
23
|
position: "absolute",
|
|
@@ -87,7 +86,8 @@ var useStyles = (0, _core.makeStyles)(function (theme) {
|
|
|
87
86
|
width: "100%"
|
|
88
87
|
}
|
|
89
88
|
};
|
|
90
|
-
}
|
|
91
|
-
|
|
89
|
+
};
|
|
90
|
+
|
|
91
|
+
var _default = styles;
|
|
92
92
|
exports.default = _default;
|
|
93
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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"}
|
|
@@ -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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"}
|