@carbon/ibm-products 2.43.2-canary.54 → 2.43.2-canary.55
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/css/index-full-carbon.css +8 -2
- package/css/index-full-carbon.css.map +1 -1
- package/css/index-full-carbon.min.css +1 -1
- package/css/index-full-carbon.min.css.map +1 -1
- package/css/index-without-carbon.css +8 -2
- package/css/index-without-carbon.css.map +1 -1
- package/css/index-without-carbon.min.css +1 -1
- package/css/index-without-carbon.min.css.map +1 -1
- package/css/index.css +8 -2
- package/css/index.css.map +1 -1
- package/css/index.min.css +1 -1
- package/css/index.min.css.map +1 -1
- package/es/components/ConditionBuilder/ConditionBlock/ConditionBlock.js +21 -11
- package/es/components/ConditionBuilder/ConditionBuilder.js +15 -5
- package/es/components/ConditionBuilder/ConditionBuilderActions/ConditionBuilderActions.d.ts +2 -2
- package/es/components/ConditionBuilder/ConditionBuilderActions/ConditionBuilderActions.js +58 -36
- package/es/components/ConditionBuilder/ConditionBuilderAdd/ConditionBuilderAdd.d.ts +3 -1
- package/es/components/ConditionBuilder/ConditionBuilderAdd/ConditionBuilderAdd.js +21 -9
- package/es/components/ConditionBuilder/ConditionBuilderButton/ConditionBuilderButton.d.ts +4 -1
- package/es/components/ConditionBuilder/ConditionBuilderButton/ConditionBuilderButton.js +14 -4
- package/es/components/ConditionBuilder/ConditionBuilderConnector/ConditionConnector.js +8 -4
- package/es/components/ConditionBuilder/ConditionBuilderConnector/GroupConnector.js +17 -9
- package/es/components/ConditionBuilder/ConditionBuilderContent/ConditionBuilderContent.js +19 -10
- package/es/components/ConditionBuilder/ConditionBuilderContext/ConditionBuilderProvider.d.ts +12 -6
- package/es/components/ConditionBuilder/ConditionBuilderContext/ConditionBuilderProvider.js +20 -7
- package/es/components/ConditionBuilder/ConditionBuilderContext/DataConfigs.d.ts +2 -1
- package/es/components/ConditionBuilder/ConditionBuilderContext/DataConfigs.js +18 -17
- package/es/components/ConditionBuilder/ConditionBuilderContext/translationObject.d.ts +36 -39
- package/es/components/ConditionBuilder/ConditionBuilderContext/translationObject.js +36 -38
- package/es/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItem.js +20 -12
- package/es/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemDate/ConditionBuilderItemDate.js +8 -3
- package/es/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemNumber/ConditionBuilderItemNumber.js +9 -7
- package/es/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemOption/ItemOption.js +9 -4
- package/es/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemOption/ItemOptionForValueField.js +10 -5
- package/es/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemText/ConditionBuilderItemText.d.ts +5 -1
- package/es/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemText/ConditionBuilderItemText.js +19 -7
- package/es/components/ConditionBuilder/ConditionGroupBuilder/ConditionGroupBuilder.js +23 -17
- package/es/components/ConditionBuilder/ConditionPreview/ConditionPreview.d.ts +3 -1
- package/es/components/ConditionBuilder/ConditionPreview/ConditionPreview.js +31 -14
- package/es/components/ConditionBuilder/utils/useTranslations.d.ts +1 -0
- package/es/components/ConditionBuilder/utils/useTranslations.js +26 -0
- package/es/components/ConditionBuilder/utils/util.js +1 -9
- package/lib/components/ConditionBuilder/ConditionBlock/ConditionBlock.js +20 -10
- package/lib/components/ConditionBuilder/ConditionBuilder.js +15 -5
- package/lib/components/ConditionBuilder/ConditionBuilderActions/ConditionBuilderActions.d.ts +2 -2
- package/lib/components/ConditionBuilder/ConditionBuilderActions/ConditionBuilderActions.js +56 -33
- package/lib/components/ConditionBuilder/ConditionBuilderAdd/ConditionBuilderAdd.d.ts +3 -1
- package/lib/components/ConditionBuilder/ConditionBuilderAdd/ConditionBuilderAdd.js +20 -8
- package/lib/components/ConditionBuilder/ConditionBuilderButton/ConditionBuilderButton.d.ts +4 -1
- package/lib/components/ConditionBuilder/ConditionBuilderButton/ConditionBuilderButton.js +13 -3
- package/lib/components/ConditionBuilder/ConditionBuilderConnector/ConditionConnector.js +6 -2
- package/lib/components/ConditionBuilder/ConditionBuilderConnector/GroupConnector.js +16 -8
- package/lib/components/ConditionBuilder/ConditionBuilderContent/ConditionBuilderContent.js +18 -9
- package/lib/components/ConditionBuilder/ConditionBuilderContext/ConditionBuilderProvider.d.ts +12 -6
- package/lib/components/ConditionBuilder/ConditionBuilderContext/ConditionBuilderProvider.js +20 -7
- package/lib/components/ConditionBuilder/ConditionBuilderContext/DataConfigs.d.ts +2 -1
- package/lib/components/ConditionBuilder/ConditionBuilderContext/DataConfigs.js +17 -17
- package/lib/components/ConditionBuilder/ConditionBuilderContext/translationObject.d.ts +36 -39
- package/lib/components/ConditionBuilder/ConditionBuilderContext/translationObject.js +36 -38
- package/lib/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItem.js +19 -11
- package/lib/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemDate/ConditionBuilderItemDate.js +8 -3
- package/lib/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemNumber/ConditionBuilderItemNumber.js +8 -6
- package/lib/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemOption/ItemOption.js +8 -3
- package/lib/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemOption/ItemOptionForValueField.js +9 -4
- package/lib/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemText/ConditionBuilderItemText.d.ts +5 -1
- package/lib/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemText/ConditionBuilderItemText.js +18 -6
- package/lib/components/ConditionBuilder/ConditionGroupBuilder/ConditionGroupBuilder.js +21 -15
- package/lib/components/ConditionBuilder/ConditionPreview/ConditionPreview.d.ts +3 -1
- package/lib/components/ConditionBuilder/ConditionPreview/ConditionPreview.js +30 -13
- package/lib/components/ConditionBuilder/utils/useTranslations.d.ts +1 -0
- package/lib/components/ConditionBuilder/utils/useTranslations.js +30 -0
- package/lib/components/ConditionBuilder/utils/util.js +0 -9
- package/package.json +3 -3
- package/scss/components/ConditionBuilder/styles/_conditionBuilderCondition.scss +5 -1
- package/scss/components/ConditionBuilder/styles/_conditionBuilderItem.scss +3 -1
@@ -5,35 +5,43 @@
|
|
5
5
|
* LICENSE file in the root directory of this source tree.
|
6
6
|
*/
|
7
7
|
|
8
|
+
import { slicedToArray as _slicedToArray, objectSpread2 as _objectSpread2 } from '../../../_virtual/_rollupPluginBabelHelpers.js';
|
8
9
|
import React__default, { useContext } from 'react';
|
9
10
|
import { ConditionBuilderItem } from '../ConditionBuilderItem/ConditionBuilderItem.js';
|
10
|
-
import { blockClass,
|
11
|
+
import { blockClass, connectorConfig } from '../ConditionBuilderContext/DataConfigs.js';
|
11
12
|
import { ItemOption } from '../ConditionBuilderItem/ConditionBuilderItemOption/ItemOption.js';
|
12
|
-
import { focusThisField } from '../utils/util.js';
|
13
13
|
import { ConditionBuilderContext } from '../ConditionBuilderContext/ConditionBuilderProvider.js';
|
14
|
+
import { useTranslations } from '../utils/useTranslations.js';
|
14
15
|
|
15
16
|
var GroupConnector = function GroupConnector() {
|
16
17
|
var _useContext = useContext(ConditionBuilderContext),
|
17
|
-
rootState = _useContext.rootState
|
18
|
+
rootState = _useContext.rootState,
|
19
|
+
setRootState = _useContext.setRootState;
|
20
|
+
var _useTranslations = useTranslations(['conditionText']),
|
21
|
+
_useTranslations2 = _slicedToArray(_useTranslations, 1),
|
22
|
+
conditionText = _useTranslations2[0];
|
23
|
+
var onStatementChangeHandler = function onStatementChangeHandler(updatedStatement) {
|
24
|
+
setRootState(_objectSpread2(_objectSpread2({}, rootState), {}, {
|
25
|
+
operator: updatedStatement
|
26
|
+
}));
|
27
|
+
};
|
18
28
|
return /*#__PURE__*/React__default.createElement("div", {
|
19
|
-
className: "".concat(blockClass, "__group-separator"),
|
29
|
+
className: "".concat(blockClass, "__group-separator ").concat(blockClass, "__group-separator-row"),
|
20
30
|
role: "row",
|
21
31
|
tabIndex: -1,
|
22
32
|
"aria-level": 1
|
23
33
|
}, /*#__PURE__*/React__default.createElement(ConditionBuilderItem, {
|
24
34
|
label: rootState.operator,
|
25
|
-
title:
|
35
|
+
title: conditionText,
|
26
36
|
"data-name": "connectorField",
|
27
37
|
popOverClassName: "".concat(blockClass, "__gap"),
|
28
38
|
className: "".concat(blockClass, "__statement-button")
|
29
39
|
}, /*#__PURE__*/React__default.createElement(ItemOption, {
|
30
40
|
conditionState: {
|
31
41
|
value: rootState.operator,
|
32
|
-
label:
|
33
|
-
},
|
34
|
-
onChange: function onChange(v, e) {
|
35
|
-
focusThisField(e);
|
42
|
+
label: conditionText
|
36
43
|
},
|
44
|
+
onChange: onStatementChangeHandler,
|
37
45
|
config: {
|
38
46
|
options: connectorConfig
|
39
47
|
}
|
@@ -12,14 +12,15 @@ import { Button, Section, Heading } from '@carbon/react';
|
|
12
12
|
import { Add, TextNewLine } from '@carbon/react/icons';
|
13
13
|
import ConditionGroupBuilder from '../ConditionGroupBuilder/ConditionGroupBuilder.js';
|
14
14
|
import { ConditionBuilderContext, emptyState } from '../ConditionBuilderContext/ConditionBuilderProvider.js';
|
15
|
-
import { blockClass
|
15
|
+
import { blockClass } from '../ConditionBuilderContext/DataConfigs.js';
|
16
16
|
import { ConditionBuilderButton } from '../ConditionBuilderButton/ConditionBuilderButton.js';
|
17
17
|
import uuidv4 from '../../../global/js/utils/uuidv4.js';
|
18
18
|
import ConditionPreview from '../ConditionPreview/ConditionPreview.js';
|
19
19
|
import GroupConnector from '../ConditionBuilderConnector/GroupConnector.js';
|
20
20
|
import ConditionBuilderActions from '../ConditionBuilderActions/ConditionBuilderActions.js';
|
21
|
+
import { useTranslations } from '../utils/useTranslations.js';
|
21
22
|
|
22
|
-
var _Heading, _GroupConnector
|
23
|
+
var _Heading, _GroupConnector;
|
23
24
|
var ConditionBuilderContent = function ConditionBuilderContent(_ref) {
|
24
25
|
var _rootState$groups2;
|
25
26
|
var startConditionLabel = _ref.startConditionLabel,
|
@@ -41,6 +42,9 @@ var ConditionBuilderContent = function ConditionBuilderContent(_ref) {
|
|
41
42
|
_useState4 = _slicedToArray(_useState3, 2),
|
42
43
|
showConditionGroupPreview = _useState4[0],
|
43
44
|
setShowConditionGroupPreview = _useState4[1];
|
45
|
+
var _useTranslations = useTranslations(['addConditionGroupText']),
|
46
|
+
_useTranslations2 = _slicedToArray(_useTranslations, 1),
|
47
|
+
addConditionGroupText = _useTranslations2[0];
|
44
48
|
useEffect(function () {
|
45
49
|
var _rootState$groups;
|
46
50
|
if (rootState !== null && rootState !== void 0 && (_rootState$groups = rootState.groups) !== null && _rootState$groups !== void 0 && _rootState$groups.length) {
|
@@ -101,7 +105,7 @@ var ConditionBuilderContent = function ConditionBuilderContent(_ref) {
|
|
101
105
|
}));
|
102
106
|
};
|
103
107
|
return /*#__PURE__*/React__default.createElement(React__default.Fragment, null, !isConditionBuilderActive && /*#__PURE__*/React__default.createElement(Button, {
|
104
|
-
className: "".concat(blockClass, "
|
108
|
+
className: "".concat(blockClass, "__addConditionText-button"),
|
105
109
|
renderIcon: function renderIcon(props) {
|
106
110
|
return /*#__PURE__*/React__default.createElement(Add, _extends({
|
107
111
|
size: 16
|
@@ -151,18 +155,23 @@ var ConditionBuilderContent = function ConditionBuilderContent(_ref) {
|
|
151
155
|
onMouseLeave: function onMouseLeave() {
|
152
156
|
setShowConditionGroupPreview(false);
|
153
157
|
},
|
154
|
-
className: "".concat(blockClass, "
|
158
|
+
className: "".concat(blockClass, "__addConditionGroupText "),
|
155
159
|
hideLabel: true,
|
156
|
-
label:
|
160
|
+
label: addConditionGroupText,
|
157
161
|
wrapperProps: {
|
158
162
|
role: 'gridcell',
|
159
|
-
'aria-label':
|
163
|
+
'aria-label': addConditionGroupText
|
160
164
|
}
|
161
|
-
})), showConditionGroupPreview &&
|
162
|
-
previewType: "newGroup"
|
163
|
-
|
165
|
+
})), showConditionGroupPreview && /*#__PURE__*/React__default.createElement(ConditionPreview, {
|
166
|
+
previewType: "newGroup",
|
167
|
+
group: {
|
168
|
+
groupOperator: rootState.operator
|
169
|
+
}
|
170
|
+
}))), isConditionBuilderActive && actions && /*#__PURE__*/React__default.createElement(ConditionBuilderActions, {
|
164
171
|
actions: actions,
|
165
|
-
className: "".concat(blockClass, "__actions-container")
|
172
|
+
className: "".concat(blockClass, "__actions-container"),
|
173
|
+
variant: variant,
|
174
|
+
conditionBuilderRef: conditionBuilderRef
|
166
175
|
}));
|
167
176
|
};
|
168
177
|
var ConditionBuilderContent$1 = ConditionBuilderContent;
|
package/es/components/ConditionBuilder/ConditionBuilderContext/ConditionBuilderProvider.d.ts
CHANGED
@@ -21,21 +21,27 @@ export namespace ConditionBuilderProvider {
|
|
21
21
|
let getOptions: PropTypes.Requireable<(...args: any[]) => any>;
|
22
22
|
let inputConfig: PropTypes.Validator<NonNullable<PropTypes.InferProps<{
|
23
23
|
properties: PropTypes.Requireable<(PropTypes.InferProps<{
|
24
|
-
id: PropTypes.
|
25
|
-
label: PropTypes.
|
24
|
+
id: PropTypes.Validator<string>;
|
25
|
+
label: PropTypes.Validator<string>;
|
26
26
|
icon: PropTypes.Requireable<object>;
|
27
|
-
type: PropTypes.
|
27
|
+
type: PropTypes.Validator<string>;
|
28
28
|
config: PropTypes.Requireable<PropTypes.InferProps<{
|
29
29
|
options: PropTypes.Requireable<(PropTypes.InferProps<{
|
30
|
-
id: PropTypes.
|
31
|
-
label: PropTypes.
|
30
|
+
id: PropTypes.Validator<string>;
|
31
|
+
label: PropTypes.Validator<string>;
|
32
32
|
icon: PropTypes.Requireable<object>;
|
33
33
|
}> | null | undefined)[]>;
|
34
|
-
|
34
|
+
component: PropTypes.Requireable<(...args: any[]) => any>;
|
35
|
+
operators: PropTypes.Requireable<(PropTypes.InferProps<{
|
36
|
+
id: PropTypes.Validator<string>;
|
37
|
+
label: PropTypes.Validator<string>;
|
38
|
+
}> | null | undefined)[]>;
|
39
|
+
long: PropTypes.Requireable<boolean>;
|
35
40
|
}>>;
|
36
41
|
}> | null | undefined)[]>;
|
37
42
|
}>>>;
|
38
43
|
let popOverSearchThreshold: PropTypes.Validator<number>;
|
44
|
+
let translateWithId: PropTypes.Requireable<(...args: any[]) => any>;
|
39
45
|
let variant: PropTypes.Validator<string>;
|
40
46
|
}
|
41
47
|
}
|
@@ -62,7 +62,8 @@ var ConditionBuilderProvider = function ConditionBuilderProvider(props) {
|
|
62
62
|
inputConfig: props.inputConfig,
|
63
63
|
popOverSearchThreshold: props.popOverSearchThreshold,
|
64
64
|
getOptions: props.getOptions,
|
65
|
-
variant: props.variant
|
65
|
+
variant: props.variant,
|
66
|
+
translateWithId: props.translateWithId
|
66
67
|
}
|
67
68
|
},
|
68
69
|
// eslint-disable-next-line react/prop-types
|
@@ -89,17 +90,22 @@ ConditionBuilderProvider.propTypes = {
|
|
89
90
|
*/
|
90
91
|
inputConfig: PropTypes.shape({
|
91
92
|
properties: PropTypes.arrayOf(PropTypes.shape({
|
92
|
-
id: PropTypes.string,
|
93
|
-
label: PropTypes.string,
|
93
|
+
id: PropTypes.string.isRequired,
|
94
|
+
label: PropTypes.string.isRequired,
|
94
95
|
icon: PropTypes.oneOfType([PropTypes.func, PropTypes.object]),
|
95
|
-
type: PropTypes.oneOf(['text', 'number', 'date', 'option', 'time', 'custom']),
|
96
|
+
type: PropTypes.oneOf(['text', 'textarea', 'number', 'date', 'option', 'time', 'custom']).isRequired,
|
96
97
|
config: PropTypes.shape({
|
97
98
|
options: PropTypes.arrayOf(PropTypes.shape({
|
98
|
-
id: PropTypes.string,
|
99
|
-
label: PropTypes.string,
|
99
|
+
id: PropTypes.string.isRequired,
|
100
|
+
label: PropTypes.string.isRequired,
|
100
101
|
icon: PropTypes.oneOfType([PropTypes.func, PropTypes.object])
|
101
102
|
})),
|
102
|
-
|
103
|
+
component: PropTypes.func,
|
104
|
+
operators: PropTypes.arrayOf(PropTypes.shape({
|
105
|
+
id: PropTypes.string.isRequired,
|
106
|
+
label: PropTypes.string.isRequired
|
107
|
+
})),
|
108
|
+
long: PropTypes.bool
|
103
109
|
})
|
104
110
|
}))
|
105
111
|
}).isRequired,
|
@@ -107,6 +113,13 @@ ConditionBuilderProvider.propTypes = {
|
|
107
113
|
* Provide an mandatory numeric value that will be used to enable search option in the popovers with list.
|
108
114
|
*/
|
109
115
|
popOverSearchThreshold: PropTypes.number.isRequired,
|
116
|
+
/**
|
117
|
+
* Optional prop if you want to pass translation to the texts used . Otherwise this will the defined defaults.
|
118
|
+
* This callback function will receive the message id and you need to return the corresponding text for that id.
|
119
|
+
* The message key will be one of [ "ifText", "addConditionText", "addConditionGroupText", "addSubgroupText", "conditionText", "propertyText", "operatorText", "valueText", "connectorText", "conditionRowText", "removeConditionText", "addConditionRowText", "startText", "endText", "clearSearchText", "actionsText", "then", "removeActionText", "addActionText", "invalidText", "invalidNumberWarnText"
|
120
|
+
]
|
121
|
+
*/
|
122
|
+
translateWithId: PropTypes.func,
|
110
123
|
/**
|
111
124
|
* Provide the condition builder variant: sentence/ tree
|
112
125
|
*/
|
@@ -1,6 +1,7 @@
|
|
1
1
|
export const statementConfig: {
|
2
2
|
label: string;
|
3
3
|
id: string;
|
4
|
+
connector: string;
|
4
5
|
}[];
|
5
6
|
export const connectorConfig: {
|
6
7
|
label: string;
|
@@ -16,9 +17,9 @@ export const operatorConfig: {
|
|
16
17
|
type: string;
|
17
18
|
}[];
|
18
19
|
export const blockClass: string;
|
19
|
-
export function translateWithId(key: any): any;
|
20
20
|
export namespace valueRenderers {
|
21
21
|
function text(val: any): any;
|
22
|
+
function textarea(val: any): any;
|
22
23
|
function time(val: any): any;
|
23
24
|
function number(val: any): any;
|
24
25
|
function option(value: any): any;
|
@@ -6,14 +6,15 @@
|
|
6
6
|
*/
|
7
7
|
|
8
8
|
import { pkg } from '../../../settings.js';
|
9
|
-
import { translationsObject } from './translationObject.js';
|
10
9
|
|
11
10
|
var statementConfig = [{
|
12
11
|
label: 'if',
|
13
|
-
id: 'if'
|
12
|
+
id: 'if',
|
13
|
+
connector: 'and'
|
14
14
|
}, {
|
15
15
|
label: 'excl.if',
|
16
|
-
id: 'excl_if'
|
16
|
+
id: 'excl_if',
|
17
|
+
connector: 'or'
|
17
18
|
}];
|
18
19
|
var connectorConfig = [{
|
19
20
|
label: 'and',
|
@@ -32,7 +33,7 @@ var operatorConfig = [{
|
|
32
33
|
type: 'number'
|
33
34
|
}, {
|
34
35
|
label: 'is greater than or equal to',
|
35
|
-
id: '
|
36
|
+
id: 'greaterEqual',
|
36
37
|
type: 'number'
|
37
38
|
}, {
|
38
39
|
label: 'is lower than',
|
@@ -40,23 +41,23 @@ var operatorConfig = [{
|
|
40
41
|
type: 'number'
|
41
42
|
}, {
|
42
43
|
label: 'is lower than or equal to',
|
43
|
-
id: '
|
44
|
+
id: 'lowerEqual',
|
44
45
|
type: 'number'
|
45
46
|
}, {
|
46
47
|
label: 'starts with',
|
47
|
-
id: '
|
48
|
-
type: 'text'
|
48
|
+
id: 'startsWith',
|
49
|
+
type: 'text,textarea'
|
49
50
|
}, {
|
50
51
|
label: 'ends with',
|
51
|
-
id: '
|
52
|
-
type: 'text'
|
52
|
+
id: 'endsWith',
|
53
|
+
type: 'text,textarea'
|
53
54
|
}, {
|
54
55
|
label: 'contains',
|
55
56
|
id: 'contains',
|
56
|
-
type: 'text'
|
57
|
+
type: 'text,textarea'
|
57
58
|
}, {
|
58
59
|
label: 'is one of',
|
59
|
-
id: '
|
60
|
+
id: 'oneOf',
|
60
61
|
type: 'option'
|
61
62
|
}, {
|
62
63
|
label: 'is before',
|
@@ -79,15 +80,15 @@ var formatDate = function formatDate(date) {
|
|
79
80
|
var year = date.getFullYear();
|
80
81
|
return "".concat(day, "/").concat(month, "/").concat(year);
|
81
82
|
};
|
82
|
-
|
83
|
-
|
84
|
-
var _translationsObjectCu;
|
85
|
-
return (_translationsObjectCu = translationsObjectCurrent[key]) !== null && _translationsObjectCu !== void 0 ? _translationsObjectCu : key;
|
86
|
-
};
|
83
|
+
//const translationsObjectCurrent = translationsObject['en']; // TO DO: need to discuss if language is to be passed as prop
|
84
|
+
|
87
85
|
var valueRenderers = {
|
88
86
|
text: function text(val) {
|
89
87
|
return val;
|
90
88
|
},
|
89
|
+
textarea: function textarea(val) {
|
90
|
+
return val;
|
91
|
+
},
|
91
92
|
time: function time(val) {
|
92
93
|
return val;
|
93
94
|
},
|
@@ -117,4 +118,4 @@ var valueRenderers = {
|
|
117
118
|
}
|
118
119
|
};
|
119
120
|
|
120
|
-
export { blockClass, connectorConfig, operatorConfig, statementConfig,
|
121
|
+
export { blockClass, connectorConfig, operatorConfig, statementConfig, valueRenderers };
|
@@ -1,41 +1,38 @@
|
|
1
1
|
export namespace translationsObject {
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
export let invalid_text: string;
|
39
|
-
export let text_invalid_number: string;
|
40
|
-
}
|
2
|
+
let ifText: string;
|
3
|
+
let excl_if: string;
|
4
|
+
let and: string;
|
5
|
+
let or: string;
|
6
|
+
let is: string;
|
7
|
+
let greater: string;
|
8
|
+
let greaterEqual: string;
|
9
|
+
let lower: string;
|
10
|
+
let lowerEqual: string;
|
11
|
+
let startsWith: string;
|
12
|
+
let endsWith: string;
|
13
|
+
let contains: string;
|
14
|
+
let oneOf: string;
|
15
|
+
let before: string;
|
16
|
+
let after: string;
|
17
|
+
let between: string;
|
18
|
+
let addConditionText: string;
|
19
|
+
let addConditionGroupText: string;
|
20
|
+
let addSubgroupText: string;
|
21
|
+
let conditionText: string;
|
22
|
+
let propertyText: string;
|
23
|
+
let operatorText: string;
|
24
|
+
let valueText: string;
|
25
|
+
let connectorText: string;
|
26
|
+
let conditionRowText: string;
|
27
|
+
let removeConditionText: string;
|
28
|
+
let addConditionRowText: string;
|
29
|
+
let startText: string;
|
30
|
+
let endText: string;
|
31
|
+
let clearSearchText: string;
|
32
|
+
let actionsText: string;
|
33
|
+
let then: string;
|
34
|
+
let removeActionText: string;
|
35
|
+
let addActionText: string;
|
36
|
+
let invalidText: string;
|
37
|
+
let invalidNumberWarnText: string;
|
41
38
|
}
|
@@ -6,44 +6,42 @@
|
|
6
6
|
*/
|
7
7
|
|
8
8
|
var translationsObject = {
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
text_invalid_number: 'Invalid number, must be 0 or greater'
|
46
|
-
}
|
9
|
+
ifText: 'if',
|
10
|
+
excl_if: 'excl.if',
|
11
|
+
and: 'and',
|
12
|
+
or: 'or',
|
13
|
+
is: 'is',
|
14
|
+
greater: 'is greater than',
|
15
|
+
greaterEqual: 'is greater than or equal to',
|
16
|
+
lower: 'is lower than',
|
17
|
+
lowerEqual: 'is lower than or equal to',
|
18
|
+
startsWith: 'starts with',
|
19
|
+
endsWith: 'ends with',
|
20
|
+
contains: 'contains',
|
21
|
+
oneOf: 'is one of',
|
22
|
+
before: 'is before',
|
23
|
+
after: 'is after',
|
24
|
+
between: 'is between',
|
25
|
+
addConditionText: 'Add condition',
|
26
|
+
addConditionGroupText: 'Add condition group',
|
27
|
+
addSubgroupText: 'Add subgroup',
|
28
|
+
conditionText: 'Condition',
|
29
|
+
propertyText: 'Property',
|
30
|
+
operatorText: 'Operator',
|
31
|
+
valueText: 'Value',
|
32
|
+
connectorText: 'Connector',
|
33
|
+
conditionRowText: 'Condition row',
|
34
|
+
removeConditionText: 'Remove condition',
|
35
|
+
addConditionRowText: 'Add condition row',
|
36
|
+
startText: 'Start',
|
37
|
+
endText: 'End',
|
38
|
+
clearSearchText: 'Clear search input',
|
39
|
+
actionsText: 'Actions',
|
40
|
+
then: 'then',
|
41
|
+
removeActionText: 'Remove Action',
|
42
|
+
addActionText: 'Add action',
|
43
|
+
invalidText: 'Incomplete',
|
44
|
+
invalidNumberWarnText: 'Invalid number, must be 0 or greater'
|
47
45
|
};
|
48
46
|
|
49
47
|
export { translationsObject };
|
@@ -10,8 +10,9 @@ import React__default, { useRef, useState, useEffect } from 'react';
|
|
10
10
|
import { Popover, PopoverContent, Layer } from '@carbon/react';
|
11
11
|
import PropTypes from '../../../node_modules/prop-types/index.js';
|
12
12
|
import { Add } from '@carbon/react/icons';
|
13
|
-
import {
|
13
|
+
import { blockClass, valueRenderers } from '../ConditionBuilderContext/DataConfigs.js';
|
14
14
|
import { ConditionBuilderButton } from '../ConditionBuilderButton/ConditionBuilderButton.js';
|
15
|
+
import { useTranslations } from '../utils/useTranslations.js';
|
15
16
|
|
16
17
|
var _excluded = ["children", "className", "label", "renderIcon", "title", "type", "showToolTip", "condition", "popOverClassName", "config"];
|
17
18
|
var ConditionBuilderItem = function ConditionBuilderItem(_ref) {
|
@@ -31,17 +32,22 @@ var ConditionBuilderItem = function ConditionBuilderItem(_ref) {
|
|
31
32
|
_useState2 = _slicedToArray(_useState, 2),
|
32
33
|
open = _useState2[0],
|
33
34
|
setOpen = _useState2[1];
|
35
|
+
var _useTranslations = useTranslations(['invalidText', 'addConditionText', label]),
|
36
|
+
_useTranslations2 = _slicedToArray(_useTranslations, 3),
|
37
|
+
invalidText = _useTranslations2[0],
|
38
|
+
addConditionText = _useTranslations2[1],
|
39
|
+
labelText = _useTranslations2[2];
|
34
40
|
var getPropertyDetails = function getPropertyDetails() {
|
35
41
|
if (label === 'INVALID') {
|
36
42
|
return {
|
37
|
-
propertyLabel:
|
43
|
+
propertyLabel: invalidText,
|
38
44
|
isInvalid: true
|
39
45
|
};
|
40
46
|
}
|
41
|
-
var propertyId = rest['data-name'] == 'valueField' && type ? valueRenderers[type](label, config) :
|
47
|
+
var propertyId = rest['data-name'] == 'valueField' && type ? valueRenderers[type](label, config) : labelText;
|
42
48
|
return {
|
43
49
|
isInvalid: false,
|
44
|
-
propertyLabel:
|
50
|
+
propertyLabel: propertyId
|
45
51
|
};
|
46
52
|
};
|
47
53
|
var _getPropertyDetails = getPropertyDetails(),
|
@@ -58,7 +64,7 @@ var ConditionBuilderItem = function ConditionBuilderItem(_ref) {
|
|
58
64
|
if (condition.popoverToOpen && currentField !== condition.popoverToOpen) {
|
59
65
|
// close the previous popover
|
60
66
|
setOpen(false);
|
61
|
-
} else if (currentField == 'valueField' && type == 'option' && condition.operator !== '
|
67
|
+
} else if (currentField == 'valueField' && type == 'option' && condition.operator !== 'oneOf') {
|
62
68
|
//close the current popover if the field is valueField and is a single select dropdown. For all other inputs ,popover need to be open on value changes.
|
63
69
|
setOpen(false);
|
64
70
|
}
|
@@ -76,7 +82,7 @@ var ConditionBuilderItem = function ConditionBuilderItem(_ref) {
|
|
76
82
|
useEffect(function () {
|
77
83
|
//this will focus the first input field in the popover
|
78
84
|
if (open && contentRef.current) {
|
79
|
-
var firstFocusableElement = contentRef.current.querySelector('input');
|
85
|
+
var firstFocusableElement = contentRef.current.querySelector('input,textarea');
|
80
86
|
if (firstFocusableElement) {
|
81
87
|
firstFocusableElement.focus();
|
82
88
|
}
|
@@ -91,7 +97,7 @@ var ConditionBuilderItem = function ConditionBuilderItem(_ref) {
|
|
91
97
|
setOpen(false);
|
92
98
|
}
|
93
99
|
}, /*#__PURE__*/React__default.createElement(ConditionBuilderButton, _extends({
|
94
|
-
label: propertyLabel !== null && propertyLabel !== void 0 ? propertyLabel :
|
100
|
+
label: propertyLabel !== null && propertyLabel !== void 0 ? propertyLabel : addConditionText,
|
95
101
|
hideLabel: !label ? true : false,
|
96
102
|
onClick: function onClick() {
|
97
103
|
children ? setOpen(!open) : null;
|
@@ -101,16 +107,18 @@ var ConditionBuilderItem = function ConditionBuilderItem(_ref) {
|
|
101
107
|
"aria-expanded": open,
|
102
108
|
renderIcon: renderIcon ? renderIcon : label == undefined ? Add : null,
|
103
109
|
showToolTip: showToolTip,
|
104
|
-
isInvalid: isInvalid
|
105
|
-
|
110
|
+
isInvalid: isInvalid,
|
111
|
+
condition: condition
|
112
|
+
}, rest)), open && /*#__PURE__*/React__default.createElement(PopoverContent, {
|
106
113
|
className: "".concat(blockClass, "__item__content"),
|
107
114
|
role: "dialog",
|
108
|
-
"aria-label":
|
115
|
+
"aria-label": title
|
109
116
|
}, /*#__PURE__*/React__default.createElement(Layer, null, /*#__PURE__*/React__default.createElement("h1", {
|
110
117
|
className: "".concat(blockClass, "__item__title")
|
111
118
|
}, title), /*#__PURE__*/React__default.createElement("div", {
|
112
|
-
ref: contentRef
|
113
|
-
|
119
|
+
ref: contentRef,
|
120
|
+
className: "".concat(blockClass, "__popover-content")
|
121
|
+
}, children))));
|
114
122
|
};
|
115
123
|
ConditionBuilderItem.propTypes = {
|
116
124
|
/**
|
@@ -5,17 +5,22 @@
|
|
5
5
|
* LICENSE file in the root directory of this source tree.
|
6
6
|
*/
|
7
7
|
|
8
|
+
import { slicedToArray as _slicedToArray } from '../../../../_virtual/_rollupPluginBabelHelpers.js';
|
8
9
|
import React__default, { useRef } from 'react';
|
9
10
|
import { DatePicker, DatePickerInput } from '@carbon/react';
|
10
11
|
import { pkg } from '../../../../settings.js';
|
11
12
|
import PropTypes from '../../../../node_modules/prop-types/index.js';
|
12
|
-
import {
|
13
|
+
import { useTranslations } from '../../utils/useTranslations.js';
|
13
14
|
|
14
15
|
var blockClass = "".concat(pkg.prefix, "--condition-builder");
|
15
16
|
var ConditionBuilderItemDate = function ConditionBuilderItemDate(_ref) {
|
16
17
|
var conditionState = _ref.conditionState,
|
17
18
|
onChange = _ref.onChange;
|
18
19
|
var DatePickerInputRef = useRef();
|
20
|
+
var _useTranslations = useTranslations(['startText', 'endText']),
|
21
|
+
_useTranslations2 = _slicedToArray(_useTranslations, 2),
|
22
|
+
startText = _useTranslations2[0],
|
23
|
+
endText = _useTranslations2[1];
|
19
24
|
var datePickerType = conditionState.operator == 'between' ? 'range' : 'single';
|
20
25
|
return /*#__PURE__*/React__default.createElement("div", {
|
21
26
|
className: "".concat(blockClass, "__item-date ")
|
@@ -38,11 +43,11 @@ var ConditionBuilderItemDate = function ConditionBuilderItemDate(_ref) {
|
|
38
43
|
}, /*#__PURE__*/React__default.createElement(DatePickerInput, {
|
39
44
|
id: "datePickerStart",
|
40
45
|
placeholder: "dd/mm/yyyy",
|
41
|
-
labelText:
|
46
|
+
labelText: startText
|
42
47
|
}), /*#__PURE__*/React__default.createElement(DatePickerInput, {
|
43
48
|
id: "datePickerEnd",
|
44
49
|
placeholder: "dd/mm/yyyy",
|
45
|
-
labelText:
|
50
|
+
labelText: endText
|
46
51
|
})));
|
47
52
|
};
|
48
53
|
ConditionBuilderItemDate.propTypes = {
|
@@ -5,16 +5,21 @@
|
|
5
5
|
* LICENSE file in the root directory of this source tree.
|
6
6
|
*/
|
7
7
|
|
8
|
+
import { slicedToArray as _slicedToArray, extends as _extends } from '../../../../_virtual/_rollupPluginBabelHelpers.js';
|
8
9
|
import React__default from 'react';
|
9
10
|
import { NumberInput } from '@carbon/react';
|
10
11
|
import PropTypes from '../../../../node_modules/prop-types/index.js';
|
11
|
-
import { blockClass
|
12
|
+
import { blockClass } from '../../ConditionBuilderContext/DataConfigs.js';
|
13
|
+
import { useTranslations } from '../../utils/useTranslations.js';
|
12
14
|
|
13
15
|
var ConditionBuilderItemNumber = function ConditionBuilderItemNumber(_ref) {
|
14
16
|
var _conditionState$prope;
|
15
17
|
var conditionState = _ref.conditionState,
|
16
18
|
config = _ref.config,
|
17
19
|
onChange = _ref.onChange;
|
20
|
+
var _useTranslations = useTranslations(['invalidNumberWarnText']),
|
21
|
+
_useTranslations2 = _slicedToArray(_useTranslations, 1),
|
22
|
+
invalidNumberWarnText = _useTranslations2[0];
|
18
23
|
var onChangeHandler = function onChangeHandler(e, _ref2) {
|
19
24
|
var value = _ref2.value;
|
20
25
|
if (checkIfValid(value)) {
|
@@ -36,18 +41,15 @@ var ConditionBuilderItemNumber = function ConditionBuilderItemNumber(_ref) {
|
|
36
41
|
};
|
37
42
|
return /*#__PURE__*/React__default.createElement("div", {
|
38
43
|
className: "".concat(blockClass, "__item-number")
|
39
|
-
}, /*#__PURE__*/React__default.createElement(NumberInput, {
|
44
|
+
}, /*#__PURE__*/React__default.createElement(NumberInput, _extends({
|
40
45
|
label: conditionState.property,
|
41
46
|
hideLabel: true,
|
42
47
|
defaultValue: getDefaultValue(),
|
43
48
|
id: (_conditionState$prope = conditionState.property) === null || _conditionState$prope === void 0 ? void 0 : _conditionState$prope.replace(/\s/g, ''),
|
44
|
-
|
45
|
-
max: config.max,
|
46
|
-
step: config.step,
|
47
|
-
invalidText: translateWithId('text_invalid_number'),
|
49
|
+
invalidText: invalidNumberWarnText,
|
48
50
|
allowEmpty: true,
|
49
51
|
onChange: onChangeHandler
|
50
|
-
}));
|
52
|
+
}, config)));
|
51
53
|
};
|
52
54
|
ConditionBuilderItemNumber.propTypes = {
|
53
55
|
/**
|