@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.
Files changed (161) hide show
  1. package/.cli/propValidation_report.html +1 -1
  2. package/README.md +33 -1
  3. package/assets/Appearance/dark/mode/Component_DarkMode.module.css +8 -0
  4. package/assets/Appearance/light/mode/Component_LightMode.module.css +8 -0
  5. package/assets/Appearance/pureDark/mode/Component_PureDarkMode.module.css +8 -0
  6. package/es/Accordion/Accordion.js +1 -1
  7. package/es/AppContainer/AppContainer.js +1 -1
  8. package/es/Card/Card.js +48 -14
  9. package/es/Card/__tests__/Card.spec.js +81 -2
  10. package/es/Card/__tests__/__snapshots__/Card.spec.js.snap +44 -0
  11. package/es/Card/props/defaultProps.js +2 -1
  12. package/es/Card/props/propTypes.js +2 -1
  13. package/es/ColorSelect/ColorMultiSelect.js +36 -0
  14. package/es/ColorSelect/ColorSingleSelect.js +50 -0
  15. package/es/ColorSelect/__tests__/ColorMultiSelect.spec.js +59 -0
  16. package/es/ColorSelect/__tests__/ColorSingleSelect.spec.js +59 -0
  17. package/es/ColorSelect/__tests__/__snapshots__/ColorMultiSelect.spec.js.snap +547 -0
  18. package/es/ColorSelect/__tests__/__snapshots__/ColorSingleSelect.spec.js.snap +178 -0
  19. package/es/ColorSelect/common/ColorIndicator/ColorIndicator.js +27 -0
  20. package/es/ColorSelect/common/ColorIndicator/ColorIndicator.module.css +18 -0
  21. package/es/ColorSelect/common/ColorIndicator/__tests__/ColorSingleSelect.spec.js +60 -0
  22. package/es/ColorSelect/common/ColorIndicator/__tests__/__snapshots__/ColorSingleSelect.spec.js.snap +95 -0
  23. package/es/ColorSelect/common/ColorIndicator/props/defaultProps.js +7 -0
  24. package/es/ColorSelect/common/ColorIndicator/props/propTypes.js +9 -0
  25. package/es/ColorSelect/common/ColoredTag/ColoredTag.js +33 -0
  26. package/es/ColorSelect/common/ColoredTag/__tests__/ColoredTag.spec.js +50 -0
  27. package/es/ColorSelect/common/ColoredTag/__tests__/__snapshots__/ColoredTag.spec.js.snap +101 -0
  28. package/es/ColorSelect/common/ColoredTag/props/propTypes.js +9 -0
  29. package/es/ColorSelect/common/helpers.js +35 -0
  30. package/es/ColorSelect/props/defaultProps.js +13 -0
  31. package/es/ColorSelect/props/propTypes.js +14 -0
  32. package/es/DateTime/__tests__/__snapshots__/DateTime.spec.js.snap +9 -18
  33. package/es/DateTime/__tests__/__snapshots__/DateWidget.spec.js.snap +3 -6
  34. package/es/DateTime/__tests__/__snapshots__/Time.spec.js.snap +9 -18
  35. package/es/DropBox/DropBoxElement/css/DropBoxElement.module.css +7 -0
  36. package/es/InputFieldLine/InputFieldLine.js +39 -0
  37. package/es/InputFieldLine/InputFieldLine.module.css +90 -0
  38. package/es/InputFieldLine/__tests__/InputFieldLine.spec.js +114 -0
  39. package/es/InputFieldLine/__tests__/__snapshots__/InputFieldLine.spec.js.snap +194 -0
  40. package/es/InputFieldLine/props/defaultProps.js +14 -0
  41. package/es/InputFieldLine/props/propTypes.js +19 -0
  42. package/es/ListItem/ListItem.js +7 -2
  43. package/es/ListItem/ListItem.module.css +6 -0
  44. package/es/ListItem/__tests__/ListItem.spec.js +8 -0
  45. package/es/ListItem/__tests__/__snapshots__/ListItem.spec.js.snap +47 -0
  46. package/es/ListItem/props/propTypes.js +2 -1
  47. package/es/MultiSelect/MultiSelect.js +14 -4
  48. package/es/MultiSelect/SelectedOptions.js +24 -1
  49. package/es/MultiSelect/Suggestions.js +3 -1
  50. package/es/MultiSelect/__tests__/MultiSelect.spec.js +38 -0
  51. package/es/MultiSelect/__tests__/SelectedOptions.spec.js +13 -0
  52. package/es/MultiSelect/__tests__/Suggestions.spec.js +12 -0
  53. package/es/MultiSelect/__tests__/__snapshots__/AdvancedGroupMultiSelect.spec.js.snap +3 -3
  54. package/es/MultiSelect/__tests__/__snapshots__/AdvancedMultiSelect.spec.js.snap +9 -9
  55. package/es/MultiSelect/__tests__/__snapshots__/MultiSelect.spec.js.snap +88 -3
  56. package/es/MultiSelect/__tests__/__snapshots__/MultiSelectWithAvatar.spec.js.snap +3 -3
  57. package/es/MultiSelect/__tests__/__snapshots__/SelectedOptions.spec.js.snap +15 -0
  58. package/es/MultiSelect/__tests__/__snapshots__/Suggestions.spec.js.snap +66 -0
  59. package/es/MultiSelect/props/propTypes.js +9 -3
  60. package/es/Popup/Popup.js +3 -3
  61. package/es/Select/ArrowIcon/ArrowIcon.js +48 -0
  62. package/es/Select/ArrowIcon/ArrowIcon.module.css +22 -0
  63. package/es/Select/Select.js +33 -4
  64. package/es/Select/__tests__/Select.spec.js +25 -0
  65. package/es/Select/__tests__/__snapshots__/GroupSelect.spec.js.snap +3 -6
  66. package/es/Select/__tests__/__snapshots__/Select.spec.js.snap +516 -419
  67. package/es/Select/__tests__/__snapshots__/SelectWithIcon.spec.js.snap +3 -6
  68. package/es/Select/props/propTypes.js +2 -1
  69. package/es/TextBoxIcon/TextBoxIcon.js +18 -12
  70. package/es/TextBoxIcon/TextBoxIcon.module.css +3 -38
  71. package/es/TextBoxIcon/__tests__/TextBoxIcon.spec.js +1 -2
  72. package/es/TextBoxIcon/__tests__/__snapshots__/TextBoxIcon.spec.js.snap +116 -225
  73. package/es/TextBoxIcon/props/propTypes.js +1 -2
  74. package/es/common/basic.module.css +0 -2
  75. package/es/components_layer.module.css +1 -0
  76. package/es/utils/Common.js +3 -1
  77. package/es/utils/dropDownUtils.js +8 -2
  78. package/es/v1/Popup/Popup.js +1 -1
  79. package/es/v1/Select/Select.js +1 -1
  80. package/lib/Accordion/Accordion.js +2 -2
  81. package/lib/AppContainer/AppContainer.js +1 -1
  82. package/lib/Card/Card.js +64 -30
  83. package/lib/Card/__tests__/Card.spec.js +118 -1
  84. package/lib/Card/__tests__/__snapshots__/Card.spec.js.snap +44 -0
  85. package/lib/Card/props/defaultProps.js +2 -1
  86. package/lib/Card/props/propTypes.js +2 -1
  87. package/lib/ColorSelect/ColorMultiSelect.js +65 -0
  88. package/lib/ColorSelect/ColorSingleSelect.js +78 -0
  89. package/lib/ColorSelect/__tests__/ColorMultiSelect.spec.js +70 -0
  90. package/lib/ColorSelect/__tests__/ColorSingleSelect.spec.js +70 -0
  91. package/lib/ColorSelect/__tests__/__snapshots__/ColorMultiSelect.spec.js.snap +547 -0
  92. package/lib/ColorSelect/__tests__/__snapshots__/ColorSingleSelect.spec.js.snap +178 -0
  93. package/lib/ColorSelect/common/ColorIndicator/ColorIndicator.js +40 -0
  94. package/lib/ColorSelect/common/ColorIndicator/ColorIndicator.module.css +18 -0
  95. package/lib/ColorSelect/common/ColorIndicator/__tests__/ColorSingleSelect.spec.js +67 -0
  96. package/lib/ColorSelect/common/ColorIndicator/__tests__/__snapshots__/ColorSingleSelect.spec.js.snap +95 -0
  97. package/lib/ColorSelect/common/ColorIndicator/props/defaultProps.js +14 -0
  98. package/lib/ColorSelect/common/ColorIndicator/props/propTypes.js +20 -0
  99. package/lib/ColorSelect/common/ColoredTag/ColoredTag.js +61 -0
  100. package/lib/ColorSelect/common/ColoredTag/__tests__/ColoredTag.spec.js +58 -0
  101. package/lib/ColorSelect/common/ColoredTag/__tests__/__snapshots__/ColoredTag.spec.js.snap +101 -0
  102. package/lib/ColorSelect/common/ColoredTag/props/propTypes.js +28 -0
  103. package/lib/ColorSelect/common/helpers.js +53 -0
  104. package/lib/ColorSelect/props/defaultProps.js +31 -0
  105. package/lib/ColorSelect/props/propTypes.js +35 -0
  106. package/lib/DateTime/__tests__/__snapshots__/DateTime.spec.js.snap +9 -18
  107. package/lib/DateTime/__tests__/__snapshots__/DateWidget.spec.js.snap +3 -6
  108. package/lib/DateTime/__tests__/__snapshots__/Time.spec.js.snap +9 -18
  109. package/lib/DropBox/DropBoxElement/css/DropBoxElement.module.css +7 -0
  110. package/lib/InputFieldLine/InputFieldLine.js +53 -0
  111. package/lib/InputFieldLine/InputFieldLine.module.css +90 -0
  112. package/lib/InputFieldLine/__tests__/InputFieldLine.spec.js +122 -0
  113. package/lib/InputFieldLine/__tests__/__snapshots__/InputFieldLine.spec.js.snap +194 -0
  114. package/lib/InputFieldLine/props/defaultProps.js +21 -0
  115. package/lib/InputFieldLine/props/propTypes.js +36 -0
  116. package/lib/ListItem/ListItem.js +7 -2
  117. package/lib/ListItem/ListItem.module.css +6 -0
  118. package/lib/ListItem/__tests__/ListItem.spec.js +8 -0
  119. package/lib/ListItem/__tests__/__snapshots__/ListItem.spec.js.snap +47 -0
  120. package/lib/ListItem/props/propTypes.js +2 -1
  121. package/lib/MultiSelect/MultiSelect.js +14 -6
  122. package/lib/MultiSelect/SelectedOptions.js +24 -1
  123. package/lib/MultiSelect/Suggestions.js +3 -1
  124. package/lib/MultiSelect/__tests__/MultiSelect.spec.js +40 -0
  125. package/lib/MultiSelect/__tests__/SelectedOptions.spec.js +15 -0
  126. package/lib/MultiSelect/__tests__/Suggestions.spec.js +14 -0
  127. package/lib/MultiSelect/__tests__/__snapshots__/AdvancedGroupMultiSelect.spec.js.snap +3 -3
  128. package/lib/MultiSelect/__tests__/__snapshots__/AdvancedMultiSelect.spec.js.snap +9 -9
  129. package/lib/MultiSelect/__tests__/__snapshots__/MultiSelect.spec.js.snap +88 -3
  130. package/lib/MultiSelect/__tests__/__snapshots__/MultiSelectWithAvatar.spec.js.snap +3 -3
  131. package/lib/MultiSelect/__tests__/__snapshots__/SelectedOptions.spec.js.snap +15 -0
  132. package/lib/MultiSelect/__tests__/__snapshots__/Suggestions.spec.js.snap +66 -0
  133. package/lib/MultiSelect/props/propTypes.js +9 -3
  134. package/lib/Popup/Popup.js +4 -4
  135. package/lib/Select/ArrowIcon/ArrowIcon.js +62 -0
  136. package/lib/Select/ArrowIcon/ArrowIcon.module.css +22 -0
  137. package/lib/Select/Select.js +34 -4
  138. package/lib/Select/__tests__/Select.spec.js +177 -148
  139. package/lib/Select/__tests__/__snapshots__/GroupSelect.spec.js.snap +3 -6
  140. package/lib/Select/__tests__/__snapshots__/Select.spec.js.snap +516 -419
  141. package/lib/Select/__tests__/__snapshots__/SelectWithIcon.spec.js.snap +3 -6
  142. package/lib/Select/props/propTypes.js +2 -1
  143. package/lib/TextBoxIcon/TextBoxIcon.js +19 -13
  144. package/lib/TextBoxIcon/TextBoxIcon.module.css +3 -38
  145. package/lib/TextBoxIcon/__tests__/TextBoxIcon.spec.js +1 -2
  146. package/lib/TextBoxIcon/__tests__/__snapshots__/TextBoxIcon.spec.js.snap +116 -225
  147. package/lib/TextBoxIcon/props/propTypes.js +1 -2
  148. package/lib/common/basic.module.css +0 -2
  149. package/lib/components_layer.module.css +1 -0
  150. package/lib/utils/Common.js +9 -3
  151. package/lib/utils/dropDownUtils.js +10 -1
  152. package/lib/v1/Popup/Popup.js +2 -2
  153. package/lib/v1/Select/Select.js +2 -2
  154. package/package.json +24 -14
  155. package/css_error.log +0 -1
  156. package/install.md +0 -10
  157. package/postPublish.js +0 -8
  158. package/prePublish.js +0 -70
  159. package/react-cli.config.js +0 -24
  160. package/result.json +0 -1
  161. /package/.cli/{stringContains.js → themeValidate/stringContains.js} +0 -0
@@ -0,0 +1,194 @@
1
+ // Jest Snapshot v1, https://goo.gl/fbAQLP
2
+
3
+ exports[`InputFieldLine Should be render hasEffect is true 1`] = `
4
+ <DocumentFragment>
5
+ <div
6
+ class="varClass customContainer border_bottom effect borderColor_default hasBorder flex rowdir"
7
+ data-selector-id="container"
8
+ data-title=""
9
+ />
10
+ </DocumentFragment>
11
+ `;
12
+
13
+ exports[`InputFieldLine Should be render hasPadding is true 1`] = `
14
+ <DocumentFragment>
15
+ <div
16
+ class="varClass customContainer medium border_bottom effect borderColor_default hasBorder flex rowdir"
17
+ data-selector-id="container"
18
+ data-title=""
19
+ />
20
+ </DocumentFragment>
21
+ `;
22
+
23
+ exports[`InputFieldLine Should be render isActive is true 1`] = `
24
+ <DocumentFragment>
25
+ <div
26
+ class="varClass customContainer border_bottom effect borderColor_default hasBorder active flex rowdir"
27
+ data-selector-id="container"
28
+ data-title=""
29
+ />
30
+ </DocumentFragment>
31
+ `;
32
+
33
+ exports[`InputFieldLine Should be render isDisabled is true 1`] = `
34
+ <DocumentFragment>
35
+ <div
36
+ class="varClass customContainer border_bottom disabled borderColor_default hasBorder flex rowdir"
37
+ data-selector-id="container"
38
+ data-title=""
39
+ />
40
+ </DocumentFragment>
41
+ `;
42
+
43
+ exports[`InputFieldLine Should be render isReadOnly is true 1`] = `
44
+ <DocumentFragment>
45
+ <div
46
+ class="varClass customContainer border_bottom effect borderColor_default hasBorder flex rowdir"
47
+ data-selector-id="container"
48
+ data-title=""
49
+ />
50
+ </DocumentFragment>
51
+ `;
52
+
53
+ exports[`InputFieldLine Should be render with title 1`] = `
54
+ <DocumentFragment>
55
+ <div
56
+ class="varClass customContainer border_bottom effect borderColor_default hasBorder flex rowdir"
57
+ data-selector-id="container"
58
+ data-title="InputFieldLine Test Title"
59
+ />
60
+ </DocumentFragment>
61
+ `;
62
+
63
+ exports[`InputFieldLine Should render border - all 1`] = `
64
+ <DocumentFragment>
65
+ <div
66
+ class="varClass customContainer border_all effect borderColor_default hasBorder flex rowdir"
67
+ data-selector-id="container"
68
+ data-title=""
69
+ />
70
+ </DocumentFragment>
71
+ `;
72
+
73
+ exports[`InputFieldLine Should render border - bottom 1`] = `
74
+ <DocumentFragment>
75
+ <div
76
+ class="varClass customContainer border_bottom effect borderColor_default hasBorder flex rowdir"
77
+ data-selector-id="container"
78
+ data-title=""
79
+ />
80
+ </DocumentFragment>
81
+ `;
82
+
83
+ exports[`InputFieldLine Should render border - none 1`] = `
84
+ <DocumentFragment>
85
+ <div
86
+ class="varClass customContainer effect flex rowdir"
87
+ data-selector-id="container"
88
+ data-title=""
89
+ />
90
+ </DocumentFragment>
91
+ `;
92
+
93
+ exports[`InputFieldLine Should render borderColor - dark 1`] = `
94
+ <DocumentFragment>
95
+ <div
96
+ class="varClass customContainer border_bottom effect borderColor_dark hasBorder flex rowdir"
97
+ data-selector-id="container"
98
+ data-title=""
99
+ />
100
+ </DocumentFragment>
101
+ `;
102
+
103
+ exports[`InputFieldLine Should render borderColor - default 1`] = `
104
+ <DocumentFragment>
105
+ <div
106
+ class="varClass customContainer border_bottom effect borderColor_default hasBorder flex rowdir"
107
+ data-selector-id="container"
108
+ data-title=""
109
+ />
110
+ </DocumentFragment>
111
+ `;
112
+
113
+ exports[`InputFieldLine Should render borderColor - error 1`] = `
114
+ <DocumentFragment>
115
+ <div
116
+ class="varClass customContainer border_bottom effect borderColor_error hasBorder flex rowdir"
117
+ data-selector-id="container"
118
+ data-title=""
119
+ />
120
+ </DocumentFragment>
121
+ `;
122
+
123
+ exports[`InputFieldLine Should render borderColor - transparent 1`] = `
124
+ <DocumentFragment>
125
+ <div
126
+ class="varClass customContainer border_bottom effect borderColor_transparent hasBorder flex rowdir"
127
+ data-selector-id="container"
128
+ data-title=""
129
+ />
130
+ </DocumentFragment>
131
+ `;
132
+
133
+ exports[`InputFieldLine Should render customClass 1`] = `
134
+ <DocumentFragment>
135
+ <div
136
+ class="varClass customContainer border_bottom effect borderColor_default hasBorder inputFieldLine-custom-class flex rowdir"
137
+ data-selector-id="container"
138
+ data-title=""
139
+ />
140
+ </DocumentFragment>
141
+ `;
142
+
143
+ exports[`InputFieldLine Should render customProps 1`] = `
144
+ <DocumentFragment>
145
+ <div
146
+ class="varClass customContainer border_bottom effect borderColor_default hasBorder flex rowdir"
147
+ data-selector-id="container"
148
+ data-test="inputFieldLine-test"
149
+ data-title=""
150
+ />
151
+ </DocumentFragment>
152
+ `;
153
+
154
+ exports[`InputFieldLine Should render dataId 1`] = `
155
+ <DocumentFragment>
156
+ <div
157
+ class="varClass customContainer border_bottom effect borderColor_default hasBorder flex rowdir"
158
+ data-id="inputFieldLine-test-id"
159
+ data-selector-id="container"
160
+ data-test-id="inputFieldLine-test-id"
161
+ data-title=""
162
+ />
163
+ </DocumentFragment>
164
+ `;
165
+
166
+ exports[`InputFieldLine Should render size - medium 1`] = `
167
+ <DocumentFragment>
168
+ <div
169
+ class="varClass customContainer medium border_bottom effect borderColor_default hasBorder flex rowdir"
170
+ data-selector-id="container"
171
+ data-title=""
172
+ />
173
+ </DocumentFragment>
174
+ `;
175
+
176
+ exports[`InputFieldLine Should render size - xmedium 1`] = `
177
+ <DocumentFragment>
178
+ <div
179
+ class="varClass customContainer xmedium border_bottom effect borderColor_default hasBorder flex rowdir"
180
+ data-selector-id="container"
181
+ data-title=""
182
+ />
183
+ </DocumentFragment>
184
+ `;
185
+
186
+ exports[`InputFieldLine rendering the defult props 1`] = `
187
+ <DocumentFragment>
188
+ <div
189
+ class="varClass customContainer border_bottom effect borderColor_default hasBorder flex rowdir"
190
+ data-selector-id="container"
191
+ data-title=""
192
+ />
193
+ </DocumentFragment>
194
+ `;
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports["default"] = void 0;
7
+ var _default = {
8
+ isDisabled: false,
9
+ isReadOnly: false,
10
+ hasEffect: true,
11
+ isActive: false,
12
+ hasPadding: false,
13
+ title: '',
14
+ dataId: '',
15
+ customClass: '',
16
+ customProps: {},
17
+ size: 'medium',
18
+ borderColor: 'default',
19
+ border: 'bottom'
20
+ };
21
+ exports["default"] = _default;
@@ -0,0 +1,36 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports["default"] = void 0;
7
+
8
+ var _propTypes = _interopRequireDefault(require("prop-types"));
9
+
10
+ var _propTypes2 = require("../../Layout/props/propTypes");
11
+
12
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
13
+
14
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
15
+
16
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
17
+
18
+ function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
19
+
20
+ var _default = {
21
+ isActive: _propTypes["default"].bool,
22
+ isDisabled: _propTypes["default"].bool,
23
+ isReadOnly: _propTypes["default"].bool,
24
+ hasEffect: _propTypes["default"].bool,
25
+ hasPadding: _propTypes["default"].bool,
26
+ title: _propTypes["default"].string,
27
+ dataId: _propTypes["default"].string,
28
+ customClass: _propTypes["default"].string,
29
+ customProps: _propTypes["default"].shape(_objectSpread({}, _propTypes2.ContainerProps)),
30
+ onClick: _propTypes["default"].func,
31
+ size: _propTypes["default"].oneOf(['medium', 'xmedium']),
32
+ border: _propTypes["default"].oneOf(['bottom', 'all', 'none']),
33
+ borderColor: _propTypes["default"].oneOf(['default', 'dark', 'error', 'transparent']),
34
+ children: _propTypes["default"].node
35
+ };
36
+ exports["default"] = _default;
@@ -123,7 +123,8 @@ var ListItem = /*#__PURE__*/function (_React$Component) {
123
123
  customClass = _this$props4.customClass,
124
124
  customProps = _this$props4.customProps,
125
125
  needMultiLineText = _this$props4.needMultiLineText,
126
- secondaryValue = _this$props4.secondaryValue;
126
+ secondaryValue = _this$props4.secondaryValue,
127
+ renderBeforeChildren = _this$props4.renderBeforeChildren;
127
128
  var _customProps$ListItem = customProps.ListItemProps,
128
129
  ListItemProps = _customProps$ListItem === void 0 ? {} : _customProps$ListItem,
129
130
  _customProps$Containe = customProps.ContainerProps,
@@ -168,7 +169,11 @@ var ListItem = /*#__PURE__*/function (_React$Component) {
168
169
  className: _ListItemModule["default"].leftBox
169
170
  }, /*#__PURE__*/_react["default"].createElement(_Layout.Box, {
170
171
  className: _ListItemModule["default"].titleBox
171
- }, value ? /*#__PURE__*/_react["default"].createElement(_Layout.Box, {
172
+ }, renderBeforeChildren ? /*#__PURE__*/_react["default"].createElement(_Layout.Box, {
173
+ shrink: true,
174
+ adjust: true,
175
+ className: _ListItemModule["default"].beforeChild
176
+ }, renderBeforeChildren) : null, value ? /*#__PURE__*/_react["default"].createElement(_Layout.Box, {
172
177
  shrink: true,
173
178
  adjust: true,
174
179
  className: needMultiLineText ? _ListItemModule["default"].multiLineValue : _ListItemModule["default"].value
@@ -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
  }
@@ -15,4 +15,12 @@ describe('ListItem', function () {
15
15
 
16
16
  expect(asFragment()).toMatchSnapshot();
17
17
  });
18
+ test('Should render with renderBeforeChildren', function () {
19
+ var _render2 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_ListItem["default"], {
20
+ renderBeforeChildren: /*#__PURE__*/_react["default"].createElement("span", null, "Before children")
21
+ }, "Content")),
22
+ asFragment = _render2.asFragment;
23
+
24
+ expect(asFragment()).toMatchSnapshot();
25
+ });
18
26
  });
@@ -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
@@ -82,7 +82,8 @@ var ListItem_Props = {
82
82
  customProps: _propTypes["default"].shape({
83
83
  ListItemProps: _propTypes["default"].object
84
84
  }),
85
- secondaryValue: _propTypes["default"].string
85
+ secondaryValue: _propTypes["default"].string,
86
+ renderBeforeChildren: _propTypes["default"].node
86
87
  };
87
88
  exports.ListItem_Props = ListItem_Props;
88
89
  var ListItemWithAvatar_Props = (_ListItemWithAvatar_P = {
@@ -172,8 +172,8 @@ var MultiSelectComponent = /*#__PURE__*/function (_React$Component) {
172
172
  // suggestionContainer.addEventListener('scroll', this.handleScroll);
173
173
  }
174
174
  }, {
175
- key: "componentWillReceiveProps",
176
- value: function componentWillReceiveProps(nextProps) {
175
+ key: "UNSAFE_componentWillReceiveProps",
176
+ value: function UNSAFE_componentWillReceiveProps(nextProps) {
177
177
  var _this2 = this;
178
178
 
179
179
  var selectedOptions = nextProps.selectedOptions,
@@ -963,6 +963,7 @@ var MultiSelectComponent = /*#__PURE__*/function (_React$Component) {
963
963
  isPopupOpen = _this$props14.isPopupOpen,
964
964
  ariaErrorId = _this$props14.ariaErrorId,
965
965
  customProps = _this$props14.customProps,
966
+ renderCustomSelectedValue = _this$props14.renderCustomSelectedValue,
966
967
  isFocus = _this$props14.isFocus,
967
968
  isPopupReady = _this$props14.isPopupReady,
968
969
  renderCustomClearComponent = _this$props14.renderCustomClearComponent,
@@ -1003,7 +1004,11 @@ var MultiSelectComponent = /*#__PURE__*/function (_React$Component) {
1003
1004
  onSelect: this.handleClickSelectedOption,
1004
1005
  size: size,
1005
1006
  palette: palette,
1006
- dataId: "".concat(dataId, "_selectedOptions")
1007
+ dataId: "".concat(dataId, "_selectedOptions"),
1008
+ renderCustomSelectedValue: renderCustomSelectedValue,
1009
+ isPopupReady: isPopupReady,
1010
+ isPopupOpen: isPopupOpen,
1011
+ isDisabled: isDisabled
1007
1012
  }), /*#__PURE__*/_react["default"].createElement(_Layout.Box, {
1008
1013
  flexible: true,
1009
1014
  className: _MultiSelectModule["default"].wrapper,
@@ -1110,7 +1115,10 @@ var MultiSelectComponent = /*#__PURE__*/function (_React$Component) {
1110
1115
  boxSize = _this$props15.boxSize,
1111
1116
  isLoading = _this$props15.isLoading,
1112
1117
  selectAllText = _this$props15.selectAllText,
1113
- needSelectAll = _this$props15.needSelectAll;
1118
+ needSelectAll = _this$props15.needSelectAll,
1119
+ customProps = _this$props15.customProps;
1120
+ var _customProps$Suggesti = customProps.SuggestionsProps,
1121
+ SuggestionsProps = _customProps$Suggesti === void 0 ? {} : _customProps$Suggesti;
1114
1122
  var _this$state9 = this.state,
1115
1123
  selectedOptions = _this$state9.selectedOptions,
1116
1124
  searchStr = _this$state9.searchStr,
@@ -1187,7 +1195,7 @@ var MultiSelectComponent = /*#__PURE__*/function (_React$Component) {
1187
1195
  eleRef: this.suggestionContainerRef
1188
1196
  }, isSearching ? /*#__PURE__*/_react["default"].createElement("div", {
1189
1197
  className: _MultiSelectModule["default"][palette]
1190
- }, searchText) : suggestions.length ? /*#__PURE__*/_react["default"].createElement(_Suggestions["default"], {
1198
+ }, searchText) : suggestions.length ? /*#__PURE__*/_react["default"].createElement(_Suggestions["default"], _extends({
1191
1199
  suggestions: suggestions,
1192
1200
  getRef: this.suggestionItemRef,
1193
1201
  hoverOption: hoverOption,
@@ -1200,7 +1208,7 @@ var MultiSelectComponent = /*#__PURE__*/function (_React$Component) {
1200
1208
  a11y: {
1201
1209
  role: 'option'
1202
1210
  }
1203
- }) : /*#__PURE__*/_react["default"].createElement(_EmptyState["default"], {
1211
+ }, SuggestionsProps)) : /*#__PURE__*/_react["default"].createElement(_EmptyState["default"], {
1204
1212
  isLoading: isFetchingOptions,
1205
1213
  options: options,
1206
1214
  searchString: searchStr,
@@ -67,7 +67,11 @@ var SelectedOptions = /*#__PURE__*/function (_React$PureComponent) {
67
67
  onSelect = _this$props.onSelect,
68
68
  size = _this$props.size,
69
69
  palette = _this$props.palette,
70
- dataId = _this$props.dataId;
70
+ dataId = _this$props.dataId,
71
+ renderCustomSelectedValue = _this$props.renderCustomSelectedValue,
72
+ isPopupOpen = _this$props.isPopupOpen,
73
+ isPopupReady = _this$props.isPopupReady,
74
+ isInputDisabled = _this$props.isDisabled;
71
75
  var isDarkPalette = palette === 'dark' ? 'dark' : 'danger';
72
76
  return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, selectedOptions.map(function (option) {
73
77
  var id = option.id,
@@ -109,6 +113,25 @@ var SelectedOptions = /*#__PURE__*/function (_React$PureComponent) {
109
113
  iconName: icon,
110
114
  iconSize: iconSize
111
115
  })));
116
+ } else if (optionType === 'custom') {
117
+ return /*#__PURE__*/_react["default"].createElement(_Layout.Box, {
118
+ className: "".concat(_SelectedOptionsModule["default"].tag, " ").concat(_SelectedOptionsModule["default"][size]),
119
+ key: "".concat(id, "customTag"),
120
+ dataId: dataId
121
+ }, typeof renderCustomSelectedValue == 'function' ? renderCustomSelectedValue({
122
+ onRemove: isDisabled || isReadOnly ? null : onRemove,
123
+ palette: isDarkPalette,
124
+ onSelectTag: isReadOnly ? null : onSelect,
125
+ getRef: getRef,
126
+ isReadOnly: isReadOnly,
127
+ isPopupReady: isPopupReady,
128
+ isPopupOpen: isPopupOpen,
129
+ isDisabled: isInputDisabled,
130
+ size: size,
131
+ highLightedSelectOptions: highLightedSelectOptions,
132
+ isActive: highLightedSelectOptions.indexOf(id) >= 0,
133
+ option: option
134
+ }) : renderCustomSelectedValue);
112
135
  }
113
136
 
114
137
  return /*#__PURE__*/_react["default"].createElement(_Layout.Box, {
@@ -75,6 +75,7 @@ var Suggestions = /*#__PURE__*/function (_React$PureComponent) {
75
75
  needBorder = _this$props.needBorder,
76
76
  _this$props$selectedO = _this$props.selectedOptions,
77
77
  selectedOptions = _this$props$selectedO === void 0 ? [] : _this$props$selectedO,
78
+ renderBeforeChildren = _this$props.renderBeforeChildren,
78
79
  activeId = _this$props.activeId,
79
80
  hoverId = _this$props.hoverId,
80
81
  dataId = _this$props.dataId,
@@ -187,7 +188,8 @@ var Suggestions = /*#__PURE__*/function (_React$PureComponent) {
187
188
  active: isActive,
188
189
  size: listItemSize,
189
190
  palette: palette,
190
- a11y: list_a11y
191
+ a11y: list_a11y,
192
+ renderBeforeChildren: renderBeforeChildren ? typeof renderBeforeChildren === 'function' ? renderBeforeChildren(suggestion) : renderBeforeChildren : null
191
193
  }));
192
194
  })));
193
195
  }
@@ -8,6 +8,35 @@ var _MultiSelect = _interopRequireDefault(require("../MultiSelect"));
8
8
 
9
9
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
10
10
 
11
+ var options = [{
12
+ id: 1,
13
+ text: 'custom 1',
14
+ optionType: 'custom'
15
+ }, {
16
+ id: 2,
17
+ text: 'custom 2',
18
+ optionType: 'custom'
19
+ }, {
20
+ id: 3,
21
+ text: 'custom 3',
22
+ optionType: 'custom'
23
+ }, {
24
+ id: 4,
25
+ text: 'custom 4',
26
+ optionType: 'custom'
27
+ }, {
28
+ id: 5,
29
+ text: 'custom 5',
30
+ optionType: 'custom'
31
+ }, {
32
+ id: 6,
33
+ text: 'custom 6',
34
+ optionType: 'custom'
35
+ }, {
36
+ id: 7,
37
+ text: 'custom 7',
38
+ optionType: 'custom'
39
+ }];
11
40
  describe('MultiSelect', function () {
12
41
  test('rendering the defult props', function () {
13
42
  var _render = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_MultiSelect["default"], null)),
@@ -15,4 +44,15 @@ describe('MultiSelect', function () {
15
44
 
16
45
  expect(asFragment()).toMatchSnapshot();
17
46
  });
47
+ test('Should render with renderCustomSelectedValue', function () {
48
+ var _render2 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_MultiSelect["default"], {
49
+ options: options,
50
+ renderCustomSelectedValue: function renderCustomSelectedValue() {
51
+ return /*#__PURE__*/_react["default"].createElement("span", null, "MultiSelect Custom Value");
52
+ }
53
+ })),
54
+ asFragment = _render2.asFragment;
55
+
56
+ expect(asFragment()).toMatchSnapshot();
57
+ });
18
58
  });
@@ -32,4 +32,19 @@ describe('SelectedOptions', function () {
32
32
 
33
33
  expect(asFragment()).toMatchSnapshot();
34
34
  });
35
+ test('Should render with renderCustomSelectedValue', function () {
36
+ var _render3 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_SelectedOptions["default"], {
37
+ highLightedSelectOptions: [],
38
+ selectedOptions: [{
39
+ value: 'SelectedObject1',
40
+ optionType: 'custom'
41
+ }],
42
+ renderCustomSelectedValue: function renderCustomSelectedValue() {
43
+ return /*#__PURE__*/_react["default"].createElement("span", null, " SelectedOptions Custom Value");
44
+ }
45
+ })),
46
+ asFragment = _render3.asFragment;
47
+
48
+ expect(asFragment()).toMatchSnapshot();
49
+ });
35
50
  });
@@ -17,4 +17,18 @@ describe('Suggestions', function () {
17
17
 
18
18
  expect(asFragment()).toMatchSnapshot();
19
19
  });
20
+ test('Should render with renderBeforeChildren', function () {
21
+ var _render2 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Suggestions["default"], {
22
+ suggestions: [{
23
+ value: 'Suggestions Option 1',
24
+ id: '1'
25
+ }],
26
+ renderBeforeChildren: function renderBeforeChildren() {
27
+ return /*#__PURE__*/_react["default"].createElement("span", null, "Suggestions Before Children");
28
+ }
29
+ })),
30
+ asFragment = _render2.asFragment;
31
+
32
+ expect(asFragment()).toMatchSnapshot();
33
+ });
20
34
  });
@@ -25,10 +25,10 @@ exports[`AdvancedGroupMultiSelect rendering the defult props 1`] = `
25
25
  "
26
26
  />
27
27
  <div
28
- class="container effect custmInputWrapper flex rowdir"
29
- data-id="containerComponent"
28
+ class="varClass customContainer effect container custmInputWrapper flex rowdir"
29
+ data-id="multiSelect_textBox"
30
30
  data-selector-id="textBoxIcon"
31
- data-test-id="containerComponent"
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 effect custmInputWrapper flex rowdir"
29
- data-id="containerComponent"
28
+ class="varClass customContainer effect container custmInputWrapper flex rowdir"
29
+ data-id="textBoxIcon"
30
30
  data-selector-id="textBoxIcon"
31
- data-test-id="containerComponent"
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 effect custmInputWrapper flex rowdir"
102
- data-id="containerComponent"
101
+ class="varClass customContainer effect container custmInputWrapper flex rowdir"
102
+ data-id="textBoxIcon"
103
103
  data-selector-id="textBoxIcon"
104
- data-test-id="containerComponent"
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 effect custmInputWrapper flex rowdir"
350
- data-id="containerComponent"
349
+ class="varClass customContainer effect container custmInputWrapper flex rowdir"
350
+ data-id="textBoxIcon"
351
351
  data-selector-id="textBoxIcon"
352
- data-test-id="containerComponent"
352
+ data-test-id="textBoxIcon"
353
353
  >
354
354
  <div
355
355
  class="grow basis shrinkOff"