@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,22 @@
1
+ .varClass{
2
+ --local-arrowIcon-color: var(--zdt_textboxicon_default_icon); /* refer the naming doc */
3
+ }
4
+
5
+ .arrowIcon {
6
+ color: var(--local-arrowIcon-color);
7
+ transition: var(--zd_transition3);
8
+ margin: 0 var(--zd_size5) ;
9
+ }
10
+
11
+ .rotated,
12
+ .arrowContainer:hover .arrowIcon {
13
+ --local-arrowIcon-color: var(--zdt_textboxicon_hover_icon);
14
+ }
15
+
16
+ [dir=ltr] .rotated {
17
+ transform: rotateZ(-180deg);
18
+ }
19
+
20
+ [dir=rtl] .rotated {
21
+ transform: rotateZ(180deg);
22
+ }
@@ -16,10 +16,11 @@ import { Icon } from '@zohodesk/icons';
16
16
  import ResponsiveDropBox from "../ResponsiveDropBox/ResponsiveDropBox";
17
17
  import { ResponsiveReceiver } from "../Responsive/CustomResponsive";
18
18
  import Loader from '@zohodesk/svg/lib/Loader/Loader';
19
+ import InputFieldLine from "../InputFieldLine/InputFieldLine.js";
19
20
  /**** Methods ****/
20
21
 
21
22
  import { makeFormatOptions, makeGetMultiSelectFilterSuggestions as makeGetFilterSuggestions, makeGetSelectedValueText as makeGetSelectedValue } from "../utils/dropDownUtils";
22
- import { debounce, scrollTo, getIsEmptyValue, getSearchString, findScrollEnd, getKeyValue } from "../utils/Common.js";
23
+ import { debounce, scrollTo, getIsEmptyValue, getSearchString, findScrollEnd, getKeyValue, DUMMY_OBJECT } from "../utils/Common.js";
23
24
  /**** CSS ****/
24
25
 
25
26
  import style from "./Select.module.css";
@@ -71,6 +72,7 @@ export class SelectComponent extends Component {
71
72
 
72
73
  this.state = {
73
74
  selected,
75
+ selectedValueDetails,
74
76
  options: allOptions,
75
77
  optionsNormalize: normalizedAllOptions,
76
78
  hoverIndex,
@@ -119,7 +121,7 @@ export class SelectComponent extends Component {
119
121
  // suggestionContainer.addEventListener('scroll', this.handleScroll);
120
122
  }
121
123
 
122
- componentWillReceiveProps(nextProps) {
124
+ UNSAFE_componentWillReceiveProps(nextProps) {
123
125
  let {
124
126
  selectedValue,
125
127
  isDefaultSelectValue,
@@ -167,6 +169,7 @@ export class SelectComponent extends Component {
167
169
  options: allOptions,
168
170
  optionsNormalize: normalizedAllOptions,
169
171
  selected,
172
+ selectedValueDetails,
170
173
  hoverIndex: oldHoverIndex ? oldHoverIndex : hoverIndex,
171
174
  selectedId,
172
175
  selectedValueIndex: hoverIndex
@@ -729,7 +732,8 @@ export class SelectComponent extends Component {
729
732
  isRestrictScroll,
730
733
  dropBoxPortalId,
731
734
  renderCustomToggleIndicator,
732
- renderCustomSearchClearComponent
735
+ renderCustomSearchClearComponent,
736
+ renderCustomSelectedValue
733
737
  } = this.props;
734
738
  let {
735
739
  TextBoxIcon_i18n,
@@ -742,6 +746,7 @@ export class SelectComponent extends Component {
742
746
  let {
743
747
  hoverIndex,
744
748
  selected,
749
+ selectedValueDetails,
745
750
  searchStr,
746
751
  isFetchingOptions,
747
752
  selectedId,
@@ -766,7 +771,31 @@ export class SelectComponent extends Component {
766
771
  ref: getTargetRef,
767
772
  "data-id": `${isDisabled ? `${dataId}_disabled` : isReadOnly ? `${dataId}_readOnly` : dataId}`,
768
773
  "data-test-id": `${isDisabled ? `${dataId}_disabled` : isReadOnly ? `${dataId}_readOnly` : dataId}`
769
- }, needSelectDownIcon ? /*#__PURE__*/React.createElement(TextBoxIcon, {
774
+ }, renderCustomSelectedValue ? /*#__PURE__*/React.createElement(InputFieldLine, {
775
+ isActive: isPopupReady,
776
+ border: needBorder ? 'bottom' : 'none',
777
+ size: size,
778
+ borderColor: borderColor,
779
+ isDisabled: isDisabled,
780
+ isReadOnly: isReadOnly,
781
+ hasPadding: true
782
+ }, typeof renderCustomSelectedValue == 'function' ? renderCustomSelectedValue({
783
+ isDisabled,
784
+ isPopupOpen,
785
+ isReadOnly,
786
+ isActive: isPopupReady,
787
+ size,
788
+ option: selectedValueDetails[selectedId] || {},
789
+ selectedId,
790
+ placeHolder,
791
+ htmlId,
792
+ maxLength,
793
+ ref: this.valueInputRef,
794
+ onFocus: this.handleSelectFocus,
795
+ onKeyDown: this.handleKeyDown,
796
+ onKeyPress: this.handleValueInputChange,
797
+ ariaControlsId: setAriaId
798
+ }) : renderCustomSelectedValue) : needSelectDownIcon ? /*#__PURE__*/React.createElement(TextBoxIcon, {
770
799
  a11y: {
771
800
  role: 'Menuitem',
772
801
  ariaLabel: TextBox_ally_label,
@@ -247,6 +247,21 @@ describe('Select -', () => {
247
247
  expect(getAllByRole(listItemRole)).toHaveLength(1);
248
248
  expect(asFragment()).toMatchSnapshot();
249
249
  });
250
+ test('Should render the only options matching search value even with additional spaces before and after', () => {
251
+ const {
252
+ getByRole,
253
+ getAllByRole,
254
+ asFragment,
255
+ getByTestId
256
+ } = render( /*#__PURE__*/React.createElement(Select, {
257
+ needSearch: true,
258
+ options: options
259
+ }));
260
+ userEvent.click(getByRole(selectInputRole));
261
+ userEvent.type(within(getByTestId(dropboxTestId)).getByRole('textbox'), ' 2 ');
262
+ expect(getAllByRole(listItemRole)).toHaveLength(1);
263
+ expect(asFragment()).toMatchSnapshot();
264
+ });
250
265
  test('Should trigger given onSearch, when type on the search input', async () => {
251
266
  const mockOnSearch = jest.fn();
252
267
  const {
@@ -1135,4 +1150,14 @@ describe('Select dataId snapshot - ', () => {
1135
1150
  userEvent.click(getByRole(selectInputRole));
1136
1151
  expect(asFragment()).toMatchSnapshot();
1137
1152
  });
1153
+ test('Should render with renderCustomSelectedValue', () => {
1154
+ const {
1155
+ asFragment
1156
+ } = render( /*#__PURE__*/React.createElement(Select, {
1157
+ options: options,
1158
+ selectedValue: "Option 2",
1159
+ renderCustomSelectedValue: () => /*#__PURE__*/React.createElement("div", null, " Select Custom Option 2")
1160
+ }));
1161
+ expect(asFragment()).toMatchSnapshot();
1162
+ });
1138
1163
  });
@@ -14,10 +14,10 @@ exports[`GroupSelect rendering the defult props 1`] = `
14
14
  data-test-id="GroupSelect"
15
15
  >
16
16
  <div
17
- class="container effect flex rowdir"
18
- data-id="containerComponent"
17
+ class="varClass customContainer border_bottom effect borderColor_default hasBorder container flex rowdir"
18
+ data-id="GroupSelect_textBox"
19
19
  data-selector-id="textBoxIcon"
20
- data-test-id="containerComponent"
20
+ data-test-id="GroupSelect_textBox"
21
21
  >
22
22
  <div
23
23
  class="grow basis shrinkOff"
@@ -80,9 +80,6 @@ exports[`GroupSelect rendering the defult props 1`] = `
80
80
  </div>
81
81
  </div>
82
82
  </div>
83
- <div
84
- class="line borderColor_default "
85
- />
86
83
  </div>
87
84
  </div>
88
85
  </div>