@zohodesk/components 1.0.0-temp-220.11 → 1.0.0-temp-230
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/.cli/propValidation_report.html +1 -1
- package/README.md +33 -1
- package/assets/Appearance/dark/mode/Component_DarkMode.module.css +8 -0
- package/assets/Appearance/light/mode/Component_LightMode.module.css +8 -0
- package/assets/Appearance/pureDark/mode/Component_PureDarkMode.module.css +8 -0
- package/es/Accordion/Accordion.js +1 -1
- package/es/AppContainer/AppContainer.js +1 -1
- package/es/Card/Card.js +48 -14
- package/es/Card/__tests__/Card.spec.js +81 -2
- package/es/Card/__tests__/__snapshots__/Card.spec.js.snap +44 -0
- package/es/Card/props/defaultProps.js +2 -1
- package/es/Card/props/propTypes.js +2 -1
- package/es/ColorSelect/ColorMultiSelect.js +36 -0
- package/es/ColorSelect/ColorSingleSelect.js +50 -0
- package/es/ColorSelect/__tests__/ColorMultiSelect.spec.js +59 -0
- package/es/ColorSelect/__tests__/ColorSingleSelect.spec.js +59 -0
- package/es/ColorSelect/__tests__/__snapshots__/ColorMultiSelect.spec.js.snap +547 -0
- package/es/ColorSelect/__tests__/__snapshots__/ColorSingleSelect.spec.js.snap +178 -0
- package/es/ColorSelect/common/ColorIndicator/ColorIndicator.js +27 -0
- package/es/ColorSelect/common/ColorIndicator/ColorIndicator.module.css +18 -0
- package/es/ColorSelect/common/ColorIndicator/__tests__/ColorSingleSelect.spec.js +60 -0
- package/es/ColorSelect/common/ColorIndicator/__tests__/__snapshots__/ColorSingleSelect.spec.js.snap +95 -0
- package/es/ColorSelect/common/ColorIndicator/props/defaultProps.js +7 -0
- package/es/ColorSelect/common/ColorIndicator/props/propTypes.js +9 -0
- package/es/ColorSelect/common/ColoredTag/ColoredTag.js +33 -0
- package/es/ColorSelect/common/ColoredTag/__tests__/ColoredTag.spec.js +50 -0
- package/es/ColorSelect/common/ColoredTag/__tests__/__snapshots__/ColoredTag.spec.js.snap +101 -0
- package/es/ColorSelect/common/ColoredTag/props/propTypes.js +9 -0
- package/es/ColorSelect/common/helpers.js +35 -0
- package/es/ColorSelect/props/defaultProps.js +13 -0
- package/es/ColorSelect/props/propTypes.js +14 -0
- package/es/DateTime/__tests__/__snapshots__/DateTime.spec.js.snap +9 -18
- package/es/DateTime/__tests__/__snapshots__/DateWidget.spec.js.snap +3 -6
- package/es/DateTime/__tests__/__snapshots__/Time.spec.js.snap +9 -18
- package/es/DropBox/DropBoxElement/css/DropBoxElement.module.css +7 -0
- package/es/InputFieldLine/InputFieldLine.js +39 -0
- package/es/InputFieldLine/InputFieldLine.module.css +90 -0
- package/es/InputFieldLine/__tests__/InputFieldLine.spec.js +114 -0
- package/es/InputFieldLine/__tests__/__snapshots__/InputFieldLine.spec.js.snap +194 -0
- package/es/InputFieldLine/props/defaultProps.js +14 -0
- package/es/InputFieldLine/props/propTypes.js +19 -0
- package/es/ListItem/ListItem.js +7 -2
- package/es/ListItem/ListItem.module.css +6 -0
- package/es/ListItem/__tests__/ListItem.spec.js +8 -0
- package/es/ListItem/__tests__/__snapshots__/ListItem.spec.js.snap +47 -0
- package/es/ListItem/props/propTypes.js +2 -1
- package/es/MultiSelect/MultiSelect.js +14 -4
- package/es/MultiSelect/SelectedOptions.js +24 -1
- package/es/MultiSelect/Suggestions.js +3 -1
- package/es/MultiSelect/__tests__/MultiSelect.spec.js +38 -0
- package/es/MultiSelect/__tests__/SelectedOptions.spec.js +13 -0
- package/es/MultiSelect/__tests__/Suggestions.spec.js +12 -0
- package/es/MultiSelect/__tests__/__snapshots__/AdvancedGroupMultiSelect.spec.js.snap +3 -3
- package/es/MultiSelect/__tests__/__snapshots__/AdvancedMultiSelect.spec.js.snap +9 -9
- package/es/MultiSelect/__tests__/__snapshots__/MultiSelect.spec.js.snap +88 -3
- package/es/MultiSelect/__tests__/__snapshots__/MultiSelectWithAvatar.spec.js.snap +3 -3
- package/es/MultiSelect/__tests__/__snapshots__/SelectedOptions.spec.js.snap +15 -0
- package/es/MultiSelect/__tests__/__snapshots__/Suggestions.spec.js.snap +66 -0
- package/es/MultiSelect/props/propTypes.js +9 -3
- package/es/Popup/Popup.js +3 -3
- package/es/Select/ArrowIcon/ArrowIcon.js +48 -0
- package/es/Select/ArrowIcon/ArrowIcon.module.css +22 -0
- package/es/Select/Select.js +33 -4
- package/es/Select/__tests__/Select.spec.js +25 -0
- package/es/Select/__tests__/__snapshots__/GroupSelect.spec.js.snap +3 -6
- package/es/Select/__tests__/__snapshots__/Select.spec.js.snap +516 -419
- package/es/Select/__tests__/__snapshots__/SelectWithIcon.spec.js.snap +3 -6
- package/es/Select/props/propTypes.js +2 -1
- package/es/TextBoxIcon/TextBoxIcon.js +18 -12
- package/es/TextBoxIcon/TextBoxIcon.module.css +3 -38
- package/es/TextBoxIcon/__tests__/TextBoxIcon.spec.js +1 -2
- package/es/TextBoxIcon/__tests__/__snapshots__/TextBoxIcon.spec.js.snap +116 -225
- package/es/TextBoxIcon/props/propTypes.js +1 -2
- package/es/common/basic.module.css +0 -2
- package/es/components_layer.module.css +1 -0
- package/es/utils/Common.js +3 -1
- package/es/utils/dropDownUtils.js +8 -2
- package/es/v1/Popup/Popup.js +1 -1
- package/es/v1/Select/Select.js +1 -1
- package/lib/Accordion/Accordion.js +2 -2
- package/lib/AppContainer/AppContainer.js +1 -1
- package/lib/Card/Card.js +64 -30
- package/lib/Card/__tests__/Card.spec.js +118 -1
- package/lib/Card/__tests__/__snapshots__/Card.spec.js.snap +44 -0
- package/lib/Card/props/defaultProps.js +2 -1
- package/lib/Card/props/propTypes.js +2 -1
- package/lib/ColorSelect/ColorMultiSelect.js +65 -0
- package/lib/ColorSelect/ColorSingleSelect.js +78 -0
- package/lib/ColorSelect/__tests__/ColorMultiSelect.spec.js +70 -0
- package/lib/ColorSelect/__tests__/ColorSingleSelect.spec.js +70 -0
- package/lib/ColorSelect/__tests__/__snapshots__/ColorMultiSelect.spec.js.snap +547 -0
- package/lib/ColorSelect/__tests__/__snapshots__/ColorSingleSelect.spec.js.snap +178 -0
- package/lib/ColorSelect/common/ColorIndicator/ColorIndicator.js +40 -0
- package/lib/ColorSelect/common/ColorIndicator/ColorIndicator.module.css +18 -0
- package/lib/ColorSelect/common/ColorIndicator/__tests__/ColorSingleSelect.spec.js +67 -0
- package/lib/ColorSelect/common/ColorIndicator/__tests__/__snapshots__/ColorSingleSelect.spec.js.snap +95 -0
- package/lib/ColorSelect/common/ColorIndicator/props/defaultProps.js +14 -0
- package/lib/ColorSelect/common/ColorIndicator/props/propTypes.js +20 -0
- package/lib/ColorSelect/common/ColoredTag/ColoredTag.js +61 -0
- package/lib/ColorSelect/common/ColoredTag/__tests__/ColoredTag.spec.js +58 -0
- package/lib/ColorSelect/common/ColoredTag/__tests__/__snapshots__/ColoredTag.spec.js.snap +101 -0
- package/lib/ColorSelect/common/ColoredTag/props/propTypes.js +28 -0
- package/lib/ColorSelect/common/helpers.js +53 -0
- package/lib/ColorSelect/props/defaultProps.js +31 -0
- package/lib/ColorSelect/props/propTypes.js +35 -0
- package/lib/DateTime/__tests__/__snapshots__/DateTime.spec.js.snap +9 -18
- package/lib/DateTime/__tests__/__snapshots__/DateWidget.spec.js.snap +3 -6
- package/lib/DateTime/__tests__/__snapshots__/Time.spec.js.snap +9 -18
- package/lib/DropBox/DropBoxElement/css/DropBoxElement.module.css +7 -0
- package/lib/InputFieldLine/InputFieldLine.js +53 -0
- package/lib/InputFieldLine/InputFieldLine.module.css +90 -0
- package/lib/InputFieldLine/__tests__/InputFieldLine.spec.js +122 -0
- package/lib/InputFieldLine/__tests__/__snapshots__/InputFieldLine.spec.js.snap +194 -0
- package/lib/InputFieldLine/props/defaultProps.js +21 -0
- package/lib/InputFieldLine/props/propTypes.js +36 -0
- package/lib/ListItem/ListItem.js +7 -2
- package/lib/ListItem/ListItem.module.css +6 -0
- package/lib/ListItem/__tests__/ListItem.spec.js +8 -0
- package/lib/ListItem/__tests__/__snapshots__/ListItem.spec.js.snap +47 -0
- package/lib/ListItem/props/propTypes.js +2 -1
- package/lib/MultiSelect/MultiSelect.js +14 -6
- package/lib/MultiSelect/SelectedOptions.js +24 -1
- package/lib/MultiSelect/Suggestions.js +3 -1
- package/lib/MultiSelect/__tests__/MultiSelect.spec.js +40 -0
- package/lib/MultiSelect/__tests__/SelectedOptions.spec.js +15 -0
- package/lib/MultiSelect/__tests__/Suggestions.spec.js +14 -0
- package/lib/MultiSelect/__tests__/__snapshots__/AdvancedGroupMultiSelect.spec.js.snap +3 -3
- package/lib/MultiSelect/__tests__/__snapshots__/AdvancedMultiSelect.spec.js.snap +9 -9
- package/lib/MultiSelect/__tests__/__snapshots__/MultiSelect.spec.js.snap +88 -3
- package/lib/MultiSelect/__tests__/__snapshots__/MultiSelectWithAvatar.spec.js.snap +3 -3
- package/lib/MultiSelect/__tests__/__snapshots__/SelectedOptions.spec.js.snap +15 -0
- package/lib/MultiSelect/__tests__/__snapshots__/Suggestions.spec.js.snap +66 -0
- package/lib/MultiSelect/props/propTypes.js +9 -3
- package/lib/Popup/Popup.js +4 -4
- package/lib/Select/ArrowIcon/ArrowIcon.js +62 -0
- package/lib/Select/ArrowIcon/ArrowIcon.module.css +22 -0
- package/lib/Select/Select.js +34 -4
- package/lib/Select/__tests__/Select.spec.js +177 -148
- package/lib/Select/__tests__/__snapshots__/GroupSelect.spec.js.snap +3 -6
- package/lib/Select/__tests__/__snapshots__/Select.spec.js.snap +516 -419
- package/lib/Select/__tests__/__snapshots__/SelectWithIcon.spec.js.snap +3 -6
- package/lib/Select/props/propTypes.js +2 -1
- package/lib/TextBoxIcon/TextBoxIcon.js +19 -13
- package/lib/TextBoxIcon/TextBoxIcon.module.css +3 -38
- package/lib/TextBoxIcon/__tests__/TextBoxIcon.spec.js +1 -2
- package/lib/TextBoxIcon/__tests__/__snapshots__/TextBoxIcon.spec.js.snap +116 -225
- package/lib/TextBoxIcon/props/propTypes.js +1 -2
- package/lib/common/basic.module.css +0 -2
- package/lib/components_layer.module.css +1 -0
- package/lib/utils/Common.js +9 -3
- package/lib/utils/dropDownUtils.js +10 -1
- package/lib/v1/Popup/Popup.js +2 -2
- package/lib/v1/Select/Select.js +2 -2
- package/package.json +24 -14
- package/css_error.log +0 -1
- package/install.md +0 -10
- package/postPublish.js +0 -8
- package/prePublish.js +0 -70
- package/react-cli.config.js +0 -24
- package/result.json +0 -1
- /package/.cli/{stringContains.js → themeValidate/stringContains.js} +0 -0
|
@@ -70,6 +70,12 @@
|
|
|
70
70
|
.children,.secondaryValue {
|
|
71
71
|
composes: dotted from '../common/common.module.css';
|
|
72
72
|
}
|
|
73
|
+
[dir=ltr] .beforeChild{
|
|
74
|
+
margin-right: var(--zd_size10) ;
|
|
75
|
+
}
|
|
76
|
+
[dir=rtl] .beforeChild{
|
|
77
|
+
margin-left: var(--zd_size10) ;
|
|
78
|
+
}
|
|
73
79
|
.value, .multiLineValue {
|
|
74
80
|
line-height: 1.5385;
|
|
75
81
|
}
|
|
@@ -8,4 +8,12 @@ describe('ListItem', () => {
|
|
|
8
8
|
} = render( /*#__PURE__*/React.createElement(ListItem, null));
|
|
9
9
|
expect(asFragment()).toMatchSnapshot();
|
|
10
10
|
});
|
|
11
|
+
test('Should render with renderBeforeChildren', () => {
|
|
12
|
+
const {
|
|
13
|
+
asFragment
|
|
14
|
+
} = render( /*#__PURE__*/React.createElement(ListItem, {
|
|
15
|
+
renderBeforeChildren: /*#__PURE__*/React.createElement("span", null, "Before children")
|
|
16
|
+
}, "Content"));
|
|
17
|
+
expect(asFragment()).toMatchSnapshot();
|
|
18
|
+
});
|
|
11
19
|
});
|
|
@@ -1,5 +1,52 @@
|
|
|
1
1
|
// Jest Snapshot v1, https://goo.gl/fbAQLP
|
|
2
2
|
|
|
3
|
+
exports[`ListItem Should render with renderBeforeChildren 1`] = `
|
|
4
|
+
<DocumentFragment>
|
|
5
|
+
<li
|
|
6
|
+
class="list medium default withBorder flex rowdir vCenter"
|
|
7
|
+
data-a11y-inset-focus="true"
|
|
8
|
+
data-id="listItem"
|
|
9
|
+
data-selector-id="listItem"
|
|
10
|
+
data-test-id="listItem"
|
|
11
|
+
role="option"
|
|
12
|
+
tabindex="0"
|
|
13
|
+
>
|
|
14
|
+
<div
|
|
15
|
+
class="leftBox grow basis shrinkOff"
|
|
16
|
+
data-id="boxComponent"
|
|
17
|
+
data-selector-id="box"
|
|
18
|
+
data-test-id="boxComponent"
|
|
19
|
+
>
|
|
20
|
+
<div
|
|
21
|
+
class="titleBox shrinkOff"
|
|
22
|
+
data-id="boxComponent"
|
|
23
|
+
data-selector-id="box"
|
|
24
|
+
data-test-id="boxComponent"
|
|
25
|
+
>
|
|
26
|
+
<div
|
|
27
|
+
class="beforeChild basisAuto shrinkOn"
|
|
28
|
+
data-id="boxComponent"
|
|
29
|
+
data-selector-id="box"
|
|
30
|
+
data-test-id="boxComponent"
|
|
31
|
+
>
|
|
32
|
+
<span>
|
|
33
|
+
Before children
|
|
34
|
+
</span>
|
|
35
|
+
</div>
|
|
36
|
+
<div
|
|
37
|
+
class="children basisAuto shrinkOn"
|
|
38
|
+
data-id="boxComponent"
|
|
39
|
+
data-selector-id="box"
|
|
40
|
+
data-test-id="boxComponent"
|
|
41
|
+
>
|
|
42
|
+
Content
|
|
43
|
+
</div>
|
|
44
|
+
</div>
|
|
45
|
+
</div>
|
|
46
|
+
</li>
|
|
47
|
+
</DocumentFragment>
|
|
48
|
+
`;
|
|
49
|
+
|
|
3
50
|
exports[`ListItem rendering the defult props 1`] = `
|
|
4
51
|
<DocumentFragment>
|
|
5
52
|
<li
|
|
@@ -65,7 +65,8 @@ export const ListItem_Props = {
|
|
|
65
65
|
customProps: PropTypes.shape({
|
|
66
66
|
ListItemProps: PropTypes.object
|
|
67
67
|
}),
|
|
68
|
-
secondaryValue: PropTypes.string
|
|
68
|
+
secondaryValue: PropTypes.string,
|
|
69
|
+
renderBeforeChildren: PropTypes.node
|
|
69
70
|
};
|
|
70
71
|
export const ListItemWithAvatar_Props = {
|
|
71
72
|
active: PropTypes.bool,
|
|
@@ -89,7 +89,7 @@ export class MultiSelectComponent extends React.Component {
|
|
|
89
89
|
// suggestionContainer.addEventListener('scroll', this.handleScroll);
|
|
90
90
|
}
|
|
91
91
|
|
|
92
|
-
|
|
92
|
+
UNSAFE_componentWillReceiveProps(nextProps) {
|
|
93
93
|
const {
|
|
94
94
|
selectedOptions,
|
|
95
95
|
options,
|
|
@@ -882,6 +882,7 @@ export class MultiSelectComponent extends React.Component {
|
|
|
882
882
|
isPopupOpen,
|
|
883
883
|
ariaErrorId,
|
|
884
884
|
customProps,
|
|
885
|
+
renderCustomSelectedValue,
|
|
885
886
|
isFocus,
|
|
886
887
|
isPopupReady,
|
|
887
888
|
renderCustomClearComponent,
|
|
@@ -926,7 +927,11 @@ export class MultiSelectComponent extends React.Component {
|
|
|
926
927
|
onSelect: this.handleClickSelectedOption,
|
|
927
928
|
size: size,
|
|
928
929
|
palette: palette,
|
|
929
|
-
dataId: `${dataId}_selectedOptions
|
|
930
|
+
dataId: `${dataId}_selectedOptions`,
|
|
931
|
+
renderCustomSelectedValue: renderCustomSelectedValue,
|
|
932
|
+
isPopupReady: isPopupReady,
|
|
933
|
+
isPopupOpen: isPopupOpen,
|
|
934
|
+
isDisabled: isDisabled
|
|
930
935
|
}), /*#__PURE__*/React.createElement(Box, {
|
|
931
936
|
flexible: true,
|
|
932
937
|
className: style.wrapper,
|
|
@@ -1034,8 +1039,12 @@ export class MultiSelectComponent extends React.Component {
|
|
|
1034
1039
|
boxSize,
|
|
1035
1040
|
isLoading,
|
|
1036
1041
|
selectAllText,
|
|
1037
|
-
needSelectAll
|
|
1042
|
+
needSelectAll,
|
|
1043
|
+
customProps
|
|
1038
1044
|
} = this.props;
|
|
1045
|
+
let {
|
|
1046
|
+
SuggestionsProps = {}
|
|
1047
|
+
} = customProps;
|
|
1039
1048
|
const {
|
|
1040
1049
|
selectedOptions,
|
|
1041
1050
|
searchStr,
|
|
@@ -1125,7 +1134,8 @@ export class MultiSelectComponent extends React.Component {
|
|
|
1125
1134
|
selectedOptions: selectedOptionIds,
|
|
1126
1135
|
a11y: {
|
|
1127
1136
|
role: 'option'
|
|
1128
|
-
}
|
|
1137
|
+
},
|
|
1138
|
+
...SuggestionsProps
|
|
1129
1139
|
}) : /*#__PURE__*/React.createElement(EmptyState, {
|
|
1130
1140
|
isLoading: isFetchingOptions,
|
|
1131
1141
|
options: options,
|
|
@@ -22,7 +22,11 @@ export default class SelectedOptions extends React.PureComponent {
|
|
|
22
22
|
onSelect,
|
|
23
23
|
size,
|
|
24
24
|
palette,
|
|
25
|
-
dataId
|
|
25
|
+
dataId,
|
|
26
|
+
renderCustomSelectedValue,
|
|
27
|
+
isPopupOpen,
|
|
28
|
+
isPopupReady,
|
|
29
|
+
isDisabled: isInputDisabled
|
|
26
30
|
} = this.props;
|
|
27
31
|
const isDarkPalette = palette === 'dark' ? 'dark' : 'danger';
|
|
28
32
|
return /*#__PURE__*/React.createElement(React.Fragment, null, selectedOptions.map(option => {
|
|
@@ -67,6 +71,25 @@ export default class SelectedOptions extends React.PureComponent {
|
|
|
67
71
|
iconName: icon,
|
|
68
72
|
iconSize: iconSize
|
|
69
73
|
}));
|
|
74
|
+
} else if (optionType === 'custom') {
|
|
75
|
+
return /*#__PURE__*/React.createElement(Box, {
|
|
76
|
+
className: `${style.tag} ${style[size]}`,
|
|
77
|
+
key: `${id}customTag`,
|
|
78
|
+
dataId: dataId
|
|
79
|
+
}, typeof renderCustomSelectedValue == 'function' ? renderCustomSelectedValue({
|
|
80
|
+
onRemove: isDisabled || isReadOnly ? null : onRemove,
|
|
81
|
+
palette: isDarkPalette,
|
|
82
|
+
onSelectTag: isReadOnly ? null : onSelect,
|
|
83
|
+
getRef: getRef,
|
|
84
|
+
isReadOnly: isReadOnly,
|
|
85
|
+
isPopupReady: isPopupReady,
|
|
86
|
+
isPopupOpen: isPopupOpen,
|
|
87
|
+
isDisabled: isInputDisabled,
|
|
88
|
+
size,
|
|
89
|
+
highLightedSelectOptions,
|
|
90
|
+
isActive: highLightedSelectOptions.indexOf(id) >= 0,
|
|
91
|
+
option
|
|
92
|
+
}) : renderCustomSelectedValue);
|
|
70
93
|
}
|
|
71
94
|
|
|
72
95
|
return /*#__PURE__*/React.createElement(Box, {
|
|
@@ -19,6 +19,7 @@ export default class Suggestions extends React.PureComponent {
|
|
|
19
19
|
needTick,
|
|
20
20
|
needBorder,
|
|
21
21
|
selectedOptions = [],
|
|
22
|
+
renderBeforeChildren,
|
|
22
23
|
activeId,
|
|
23
24
|
hoverId,
|
|
24
25
|
dataId,
|
|
@@ -136,7 +137,8 @@ export default class Suggestions extends React.PureComponent {
|
|
|
136
137
|
active: isActive,
|
|
137
138
|
size: listItemSize,
|
|
138
139
|
palette: palette,
|
|
139
|
-
a11y: list_a11y
|
|
140
|
+
a11y: list_a11y,
|
|
141
|
+
renderBeforeChildren: renderBeforeChildren ? typeof renderBeforeChildren === 'function' ? renderBeforeChildren(suggestion) : renderBeforeChildren : null
|
|
140
142
|
});
|
|
141
143
|
})));
|
|
142
144
|
}
|
|
@@ -1,6 +1,35 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { render } from '@testing-library/react';
|
|
3
3
|
import MultiSelect from "../MultiSelect";
|
|
4
|
+
const options = [{
|
|
5
|
+
id: 1,
|
|
6
|
+
text: 'custom 1',
|
|
7
|
+
optionType: 'custom'
|
|
8
|
+
}, {
|
|
9
|
+
id: 2,
|
|
10
|
+
text: 'custom 2',
|
|
11
|
+
optionType: 'custom'
|
|
12
|
+
}, {
|
|
13
|
+
id: 3,
|
|
14
|
+
text: 'custom 3',
|
|
15
|
+
optionType: 'custom'
|
|
16
|
+
}, {
|
|
17
|
+
id: 4,
|
|
18
|
+
text: 'custom 4',
|
|
19
|
+
optionType: 'custom'
|
|
20
|
+
}, {
|
|
21
|
+
id: 5,
|
|
22
|
+
text: 'custom 5',
|
|
23
|
+
optionType: 'custom'
|
|
24
|
+
}, {
|
|
25
|
+
id: 6,
|
|
26
|
+
text: 'custom 6',
|
|
27
|
+
optionType: 'custom'
|
|
28
|
+
}, {
|
|
29
|
+
id: 7,
|
|
30
|
+
text: 'custom 7',
|
|
31
|
+
optionType: 'custom'
|
|
32
|
+
}];
|
|
4
33
|
describe('MultiSelect', () => {
|
|
5
34
|
test('rendering the defult props', () => {
|
|
6
35
|
const {
|
|
@@ -8,4 +37,13 @@ describe('MultiSelect', () => {
|
|
|
8
37
|
} = render( /*#__PURE__*/React.createElement(MultiSelect, null));
|
|
9
38
|
expect(asFragment()).toMatchSnapshot();
|
|
10
39
|
});
|
|
40
|
+
test('Should render with renderCustomSelectedValue', () => {
|
|
41
|
+
const {
|
|
42
|
+
asFragment
|
|
43
|
+
} = render( /*#__PURE__*/React.createElement(MultiSelect, {
|
|
44
|
+
options: options,
|
|
45
|
+
renderCustomSelectedValue: () => /*#__PURE__*/React.createElement("span", null, "MultiSelect Custom Value")
|
|
46
|
+
}));
|
|
47
|
+
expect(asFragment()).toMatchSnapshot();
|
|
48
|
+
});
|
|
11
49
|
});
|
|
@@ -25,4 +25,17 @@ describe('SelectedOptions', () => {
|
|
|
25
25
|
}));
|
|
26
26
|
expect(asFragment()).toMatchSnapshot();
|
|
27
27
|
});
|
|
28
|
+
test('Should render with renderCustomSelectedValue', () => {
|
|
29
|
+
const {
|
|
30
|
+
asFragment
|
|
31
|
+
} = render( /*#__PURE__*/React.createElement(SelectedOptions, {
|
|
32
|
+
highLightedSelectOptions: [],
|
|
33
|
+
selectedOptions: [{
|
|
34
|
+
value: 'SelectedObject1',
|
|
35
|
+
optionType: 'custom'
|
|
36
|
+
}],
|
|
37
|
+
renderCustomSelectedValue: () => /*#__PURE__*/React.createElement("span", null, " SelectedOptions Custom Value")
|
|
38
|
+
}));
|
|
39
|
+
expect(asFragment()).toMatchSnapshot();
|
|
40
|
+
});
|
|
28
41
|
});
|
|
@@ -10,4 +10,16 @@ describe('Suggestions', () => {
|
|
|
10
10
|
}));
|
|
11
11
|
expect(asFragment()).toMatchSnapshot();
|
|
12
12
|
});
|
|
13
|
+
test('Should render with renderBeforeChildren', () => {
|
|
14
|
+
const {
|
|
15
|
+
asFragment
|
|
16
|
+
} = render( /*#__PURE__*/React.createElement(Suggestions, {
|
|
17
|
+
suggestions: [{
|
|
18
|
+
value: 'Suggestions Option 1',
|
|
19
|
+
id: '1'
|
|
20
|
+
}],
|
|
21
|
+
renderBeforeChildren: () => /*#__PURE__*/React.createElement("span", null, "Suggestions Before Children")
|
|
22
|
+
}));
|
|
23
|
+
expect(asFragment()).toMatchSnapshot();
|
|
24
|
+
});
|
|
13
25
|
});
|
|
@@ -25,10 +25,10 @@ exports[`AdvancedGroupMultiSelect rendering the defult props 1`] = `
|
|
|
25
25
|
"
|
|
26
26
|
/>
|
|
27
27
|
<div
|
|
28
|
-
class="container
|
|
29
|
-
data-id="
|
|
28
|
+
class="varClass customContainer effect container custmInputWrapper flex rowdir"
|
|
29
|
+
data-id="multiSelect_textBox"
|
|
30
30
|
data-selector-id="textBoxIcon"
|
|
31
|
-
data-test-id="
|
|
31
|
+
data-test-id="multiSelect_textBox"
|
|
32
32
|
>
|
|
33
33
|
<div
|
|
34
34
|
class="grow basis shrinkOff"
|
|
@@ -25,10 +25,10 @@ exports[`AdvancedMultiSelect rendering the defult props 1`] = `
|
|
|
25
25
|
"
|
|
26
26
|
/>
|
|
27
27
|
<div
|
|
28
|
-
class="container
|
|
29
|
-
data-id="
|
|
28
|
+
class="varClass customContainer effect container custmInputWrapper flex rowdir"
|
|
29
|
+
data-id="textBoxIcon"
|
|
30
30
|
data-selector-id="textBoxIcon"
|
|
31
|
-
data-test-id="
|
|
31
|
+
data-test-id="textBoxIcon"
|
|
32
32
|
>
|
|
33
33
|
<div
|
|
34
34
|
class="grow basis shrinkOff"
|
|
@@ -98,10 +98,10 @@ exports[`AdvancedMultiSelect rendering the options array with objects and string
|
|
|
98
98
|
"
|
|
99
99
|
/>
|
|
100
100
|
<div
|
|
101
|
-
class="container
|
|
102
|
-
data-id="
|
|
101
|
+
class="varClass customContainer effect container custmInputWrapper flex rowdir"
|
|
102
|
+
data-id="textBoxIcon"
|
|
103
103
|
data-selector-id="textBoxIcon"
|
|
104
|
-
data-test-id="
|
|
104
|
+
data-test-id="textBoxIcon"
|
|
105
105
|
>
|
|
106
106
|
<div
|
|
107
107
|
class="grow basis shrinkOff"
|
|
@@ -346,10 +346,10 @@ exports[`AdvancedMultiSelect rendering the options array with only objects using
|
|
|
346
346
|
"
|
|
347
347
|
/>
|
|
348
348
|
<div
|
|
349
|
-
class="container
|
|
350
|
-
data-id="
|
|
349
|
+
class="varClass customContainer effect container custmInputWrapper flex rowdir"
|
|
350
|
+
data-id="textBoxIcon"
|
|
351
351
|
data-selector-id="textBoxIcon"
|
|
352
|
-
data-test-id="
|
|
352
|
+
data-test-id="textBoxIcon"
|
|
353
353
|
>
|
|
354
354
|
<div
|
|
355
355
|
class="grow basis shrinkOff"
|
|
@@ -1,5 +1,90 @@
|
|
|
1
1
|
// Jest Snapshot v1, https://goo.gl/fbAQLP
|
|
2
2
|
|
|
3
|
+
exports[`MultiSelect Should render with renderCustomSelectedValue 1`] = `
|
|
4
|
+
<DocumentFragment>
|
|
5
|
+
<div
|
|
6
|
+
class="wrapper effect"
|
|
7
|
+
data-id="multiSelect"
|
|
8
|
+
data-selector-id="multiSelect"
|
|
9
|
+
data-test-id="multiSelect"
|
|
10
|
+
>
|
|
11
|
+
<div
|
|
12
|
+
class="container medium borderColor_default hasBorder flex cover rowdir wrap vCenter"
|
|
13
|
+
data-id="containerComponent"
|
|
14
|
+
data-selector-id="container"
|
|
15
|
+
data-test-id="containerComponent"
|
|
16
|
+
>
|
|
17
|
+
<div
|
|
18
|
+
class="wrapper grow basisAuto shrinkOn"
|
|
19
|
+
data-id="boxComponent"
|
|
20
|
+
data-selector-id="box"
|
|
21
|
+
data-test-id="boxComponent"
|
|
22
|
+
>
|
|
23
|
+
<span
|
|
24
|
+
class=" custmSpan custmSpanMedium
|
|
25
|
+
"
|
|
26
|
+
/>
|
|
27
|
+
<div
|
|
28
|
+
class="varClass customContainer effect container custmInputWrapper flex rowdir"
|
|
29
|
+
data-id="multiSelect_textBox"
|
|
30
|
+
data-selector-id="textBoxIcon"
|
|
31
|
+
data-test-id="multiSelect_textBox"
|
|
32
|
+
>
|
|
33
|
+
<div
|
|
34
|
+
class="grow basis shrinkOff"
|
|
35
|
+
data-id="boxComponent"
|
|
36
|
+
data-selector-id="box"
|
|
37
|
+
data-test-id="boxComponent"
|
|
38
|
+
>
|
|
39
|
+
<input
|
|
40
|
+
aria-expanded="false"
|
|
41
|
+
aria-haspopup="true"
|
|
42
|
+
aria-required="true"
|
|
43
|
+
autocomplete="off"
|
|
44
|
+
class=" container medium default effect borderColor_default "
|
|
45
|
+
data-id="multiSelect_textBox"
|
|
46
|
+
data-selector-id="textBoxIcon"
|
|
47
|
+
data-test-id="multiSelect_textBox"
|
|
48
|
+
maxlength="250"
|
|
49
|
+
role="combobox"
|
|
50
|
+
type="text"
|
|
51
|
+
value=""
|
|
52
|
+
/>
|
|
53
|
+
</div>
|
|
54
|
+
<div
|
|
55
|
+
class="iconContainer shrinkOff"
|
|
56
|
+
data-id="boxComponent"
|
|
57
|
+
data-selector-id="box"
|
|
58
|
+
data-test-id="boxComponent"
|
|
59
|
+
>
|
|
60
|
+
<div
|
|
61
|
+
class="flex cover rowdir"
|
|
62
|
+
data-id="containerComponent"
|
|
63
|
+
data-selector-id="container"
|
|
64
|
+
data-test-id="containerComponent"
|
|
65
|
+
>
|
|
66
|
+
<div
|
|
67
|
+
class="icon shrinkOff"
|
|
68
|
+
data-id="boxComponent"
|
|
69
|
+
data-selector-id="box"
|
|
70
|
+
data-test-id="boxComponent"
|
|
71
|
+
>
|
|
72
|
+
<div
|
|
73
|
+
class="rightPlaceholder inflex rowdir vCenter"
|
|
74
|
+
data-id="containerComponent"
|
|
75
|
+
data-selector-id="container"
|
|
76
|
+
data-test-id="containerComponent"
|
|
77
|
+
/>
|
|
78
|
+
</div>
|
|
79
|
+
</div>
|
|
80
|
+
</div>
|
|
81
|
+
</div>
|
|
82
|
+
</div>
|
|
83
|
+
</div>
|
|
84
|
+
</div>
|
|
85
|
+
</DocumentFragment>
|
|
86
|
+
`;
|
|
87
|
+
|
|
3
88
|
exports[`MultiSelect rendering the defult props 1`] = `
|
|
4
89
|
<DocumentFragment>
|
|
5
90
|
<div
|
|
@@ -25,10 +110,10 @@ exports[`MultiSelect rendering the defult props 1`] = `
|
|
|
25
110
|
"
|
|
26
111
|
/>
|
|
27
112
|
<div
|
|
28
|
-
class="container
|
|
29
|
-
data-id="
|
|
113
|
+
class="varClass customContainer effect container custmInputWrapper flex rowdir"
|
|
114
|
+
data-id="multiSelect_textBox"
|
|
30
115
|
data-selector-id="textBoxIcon"
|
|
31
|
-
data-test-id="
|
|
116
|
+
data-test-id="multiSelect_textBox"
|
|
32
117
|
>
|
|
33
118
|
<div
|
|
34
119
|
class="grow basis shrinkOff"
|
|
@@ -25,10 +25,10 @@ exports[`MultiSelectWithAvatar rendering the defult props 1`] = `
|
|
|
25
25
|
"
|
|
26
26
|
/>
|
|
27
27
|
<div
|
|
28
|
-
class="container
|
|
29
|
-
data-id="
|
|
28
|
+
class="varClass customContainer effect container custmInputWrapper flex rowdir"
|
|
29
|
+
data-id="multiSelectWithAvatar_textBox"
|
|
30
30
|
data-selector-id="textBoxIcon"
|
|
31
|
-
data-test-id="
|
|
31
|
+
data-test-id="multiSelectWithAvatar_textBox"
|
|
32
32
|
>
|
|
33
33
|
<div
|
|
34
34
|
class="grow basis shrinkOff"
|
|
@@ -1,5 +1,20 @@
|
|
|
1
1
|
// Jest Snapshot v1, https://goo.gl/fbAQLP
|
|
2
2
|
|
|
3
|
+
exports[`SelectedOptions Should render with renderCustomSelectedValue 1`] = `
|
|
4
|
+
<DocumentFragment>
|
|
5
|
+
<div
|
|
6
|
+
class="tag medium shrinkOff"
|
|
7
|
+
data-id="selectedOptions"
|
|
8
|
+
data-selector-id="box"
|
|
9
|
+
data-test-id="selectedOptions"
|
|
10
|
+
>
|
|
11
|
+
<span>
|
|
12
|
+
SelectedOptions Custom Value
|
|
13
|
+
</span>
|
|
14
|
+
</div>
|
|
15
|
+
</DocumentFragment>
|
|
16
|
+
`;
|
|
17
|
+
|
|
3
18
|
exports[`SelectedOptions rendering the basic select options 1`] = `
|
|
4
19
|
<DocumentFragment>
|
|
5
20
|
<div
|
|
@@ -1,5 +1,71 @@
|
|
|
1
1
|
// Jest Snapshot v1, https://goo.gl/fbAQLP
|
|
2
2
|
|
|
3
|
+
exports[`Suggestions Should render with renderBeforeChildren 1`] = `
|
|
4
|
+
<DocumentFragment>
|
|
5
|
+
<div
|
|
6
|
+
class="flex coldir"
|
|
7
|
+
data-id="containerComponent"
|
|
8
|
+
data-selector-id="container"
|
|
9
|
+
data-test-id="containerComponent"
|
|
10
|
+
tabindex="0"
|
|
11
|
+
>
|
|
12
|
+
<div
|
|
13
|
+
class="shrinkOff"
|
|
14
|
+
data-id="undefined"
|
|
15
|
+
data-selector-id="box"
|
|
16
|
+
data-test-id="undefined"
|
|
17
|
+
>
|
|
18
|
+
<li
|
|
19
|
+
aria-label="Suggestions Option 1"
|
|
20
|
+
aria-selected="false"
|
|
21
|
+
class="list medium default withBorder flex rowdir vCenter"
|
|
22
|
+
data-a11y-inset-focus="true"
|
|
23
|
+
data-a11y-list-active="false"
|
|
24
|
+
data-id="Suggestions Option 1"
|
|
25
|
+
data-selector-id="listItem"
|
|
26
|
+
data-test-id="Suggestions Option 1"
|
|
27
|
+
data-title="Suggestions Option 1"
|
|
28
|
+
role="option"
|
|
29
|
+
tabindex="0"
|
|
30
|
+
>
|
|
31
|
+
<div
|
|
32
|
+
class="leftBox grow basis shrinkOff"
|
|
33
|
+
data-id="boxComponent"
|
|
34
|
+
data-selector-id="box"
|
|
35
|
+
data-test-id="boxComponent"
|
|
36
|
+
>
|
|
37
|
+
<div
|
|
38
|
+
class="titleBox shrinkOff"
|
|
39
|
+
data-id="boxComponent"
|
|
40
|
+
data-selector-id="box"
|
|
41
|
+
data-test-id="boxComponent"
|
|
42
|
+
>
|
|
43
|
+
<div
|
|
44
|
+
class="beforeChild basisAuto shrinkOn"
|
|
45
|
+
data-id="boxComponent"
|
|
46
|
+
data-selector-id="box"
|
|
47
|
+
data-test-id="boxComponent"
|
|
48
|
+
>
|
|
49
|
+
<span>
|
|
50
|
+
Suggestions Before Children
|
|
51
|
+
</span>
|
|
52
|
+
</div>
|
|
53
|
+
<div
|
|
54
|
+
class="value basisAuto shrinkOn"
|
|
55
|
+
data-id="boxComponent"
|
|
56
|
+
data-selector-id="box"
|
|
57
|
+
data-test-id="boxComponent"
|
|
58
|
+
>
|
|
59
|
+
Suggestions Option 1
|
|
60
|
+
</div>
|
|
61
|
+
</div>
|
|
62
|
+
</div>
|
|
63
|
+
</li>
|
|
64
|
+
</div>
|
|
65
|
+
</div>
|
|
66
|
+
</DocumentFragment>
|
|
67
|
+
`;
|
|
68
|
+
|
|
3
69
|
exports[`Suggestions rendering the defult props 1`] = `
|
|
4
70
|
<DocumentFragment>
|
|
5
71
|
<div
|
|
@@ -116,7 +116,8 @@ export const MultiSelect_propTypes = {
|
|
|
116
116
|
isFocus: PropTypes.bool,
|
|
117
117
|
allowValueFallback: PropTypes.bool,
|
|
118
118
|
renderCustomClearComponent: PropTypes.func,
|
|
119
|
-
renderCustomToggleIndicator: PropTypes.oneOfType([PropTypes.func, PropTypes.node])
|
|
119
|
+
renderCustomToggleIndicator: PropTypes.oneOfType([PropTypes.func, PropTypes.node]),
|
|
120
|
+
renderCustomSelectedValue: PropTypes.oneOfType([PropTypes.func, PropTypes.node])
|
|
120
121
|
};
|
|
121
122
|
export const MultiSelectHeader_propTypes = {
|
|
122
123
|
dataId: PropTypes.string,
|
|
@@ -153,7 +154,11 @@ export const SelectedOptions_propTypes = {
|
|
|
153
154
|
})),
|
|
154
155
|
size: PropTypes.oneOf(['medium', 'xmedium']),
|
|
155
156
|
palette: PropTypes.string,
|
|
156
|
-
dataId: PropTypes.string
|
|
157
|
+
dataId: PropTypes.string,
|
|
158
|
+
isDisabled: PropTypes.bool,
|
|
159
|
+
isPopupReady: PropTypes.bool,
|
|
160
|
+
isPopupOpen: PropTypes.bool,
|
|
161
|
+
renderCustomSelectedValue: PropTypes.oneOfType([PropTypes.func, PropTypes.node])
|
|
157
162
|
};
|
|
158
163
|
export const Suggestions_propTypes = {
|
|
159
164
|
a11y: PropTypes.shape({
|
|
@@ -183,7 +188,8 @@ export const Suggestions_propTypes = {
|
|
|
183
188
|
logo: PropTypes.string,
|
|
184
189
|
optionType: PropTypes.string,
|
|
185
190
|
listItemProps: PropTypes.object
|
|
186
|
-
}))
|
|
191
|
+
})),
|
|
192
|
+
renderBeforeChildren: PropTypes.oneOfType([PropTypes.func, PropTypes.node])
|
|
187
193
|
};
|
|
188
194
|
export const AdvancedGroupMultiSelect_propTypes = {
|
|
189
195
|
animationStyle: PropTypes.string,
|
package/es/Popup/Popup.js
CHANGED
|
@@ -196,7 +196,7 @@ const Popup = function (Component) {
|
|
|
196
196
|
}
|
|
197
197
|
}
|
|
198
198
|
|
|
199
|
-
|
|
199
|
+
UNSAFE_componentWillReceiveProps(nextProps) {
|
|
200
200
|
const {
|
|
201
201
|
isPopupOpen
|
|
202
202
|
} = this.state;
|
|
@@ -556,10 +556,10 @@ const Popup = function (Component) {
|
|
|
556
556
|
|
|
557
557
|
if (entry.isIntersecting === true) {
|
|
558
558
|
this.isTargetElementVisible = true;
|
|
559
|
-
dropElement
|
|
559
|
+
dropElement.setAttribute('data-visible', 'visible');
|
|
560
560
|
} else if (entry.intersectionRatio === 0 && entry.isIntersecting === false) {
|
|
561
561
|
this.isTargetElementVisible = false;
|
|
562
|
-
dropElement
|
|
562
|
+
dropElement.setAttribute('data-visible', 'hidden');
|
|
563
563
|
}
|
|
564
564
|
}
|
|
565
565
|
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import PropTypes from 'prop-types';
|
|
3
|
+
import { Container } from "../../Layout";
|
|
4
|
+
import Icon from '@zohodesk/icons/es/Icon';
|
|
5
|
+
import style from "./ArrowIcon.module.css";
|
|
6
|
+
|
|
7
|
+
const ArrowIcon = props => {
|
|
8
|
+
const {
|
|
9
|
+
dataId,
|
|
10
|
+
isRotated,
|
|
11
|
+
customClass,
|
|
12
|
+
a11yAttributes
|
|
13
|
+
} = props;
|
|
14
|
+
const {
|
|
15
|
+
iconClass = '',
|
|
16
|
+
containerClass = ''
|
|
17
|
+
} = customClass;
|
|
18
|
+
return /*#__PURE__*/React.createElement(Container, {
|
|
19
|
+
isInline: true,
|
|
20
|
+
isCover: false,
|
|
21
|
+
align: "both",
|
|
22
|
+
dataId: `${dataId}_downIcon`,
|
|
23
|
+
className: `${style.arrowIcon} ${isRotated ? style.rotated : ''} ${containerClass}`,
|
|
24
|
+
...a11yAttributes,
|
|
25
|
+
"aria-hidden": true
|
|
26
|
+
}, /*#__PURE__*/React.createElement(Icon, {
|
|
27
|
+
name: "ZD-down",
|
|
28
|
+
size: "7",
|
|
29
|
+
iconClass: iconClass
|
|
30
|
+
}));
|
|
31
|
+
};
|
|
32
|
+
|
|
33
|
+
ArrowIcon.defaultProps = {
|
|
34
|
+
dataId: 'arrowIcon',
|
|
35
|
+
isRotated: false,
|
|
36
|
+
customClass: {},
|
|
37
|
+
a11yAttributes: {}
|
|
38
|
+
};
|
|
39
|
+
ArrowIcon.propTypes = {
|
|
40
|
+
dataId: PropTypes.string,
|
|
41
|
+
isRotated: PropTypes.bool,
|
|
42
|
+
customClass: PropTypes.shape({
|
|
43
|
+
iconClass: PropTypes.string,
|
|
44
|
+
containerClass: PropTypes.string
|
|
45
|
+
}),
|
|
46
|
+
a11yAttributes: PropTypes.object
|
|
47
|
+
};
|
|
48
|
+
export default ArrowIcon;
|