@zohodesk/components 1.2.1 → 1.2.3

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 (67) hide show
  1. package/.cli/PropLessFiles.html +1 -1
  2. package/.cli/PropValidationExcludeFilesArray.js +1 -2
  3. package/.cli/propValidation_report.html +1 -1
  4. package/README.md +12 -0
  5. package/assets/Appearance/dark/mode/Component_DarkMode.module.css +1 -0
  6. package/assets/Appearance/light/mode/Component_LightMode.module.css +1 -0
  7. package/assets/Appearance/pureDark/mode/Component_PureDarkMode.module.css +1 -0
  8. package/coverage/Button/Button.js.html +15 -3
  9. package/coverage/Button/css/Button.module.css.html +1 -1
  10. package/coverage/Button/css/cssJSLogic.js.html +1 -1
  11. package/coverage/Button/css/index.html +1 -1
  12. package/coverage/Button/index.html +1 -1
  13. package/coverage/Button/props/defaultProps.js.html +6 -3
  14. package/coverage/Button/props/index.html +1 -1
  15. package/coverage/Button/props/propTypes.js.html +9 -3
  16. package/coverage/Buttongroup/Buttongroup.js.html +1 -1
  17. package/coverage/Buttongroup/Buttongroup.module.css.html +1 -1
  18. package/coverage/Buttongroup/index.html +1 -1
  19. package/coverage/Buttongroup/props/defaultProps.js.html +1 -1
  20. package/coverage/Buttongroup/props/index.html +1 -1
  21. package/coverage/Buttongroup/props/propTypes.js.html +1 -1
  22. package/coverage/coverage-final.json +3 -3
  23. package/coverage/index.html +1 -1
  24. package/coverage/utils/dummyFunction.js.html +1 -1
  25. package/coverage/utils/index.html +1 -1
  26. package/es/Button/Button.js +6 -2
  27. package/es/Button/props/defaultProps.js +2 -1
  28. package/es/Button/props/propTypes.js +3 -1
  29. package/es/Heading/Heading.module.css +1 -1
  30. package/es/Label/Label.js +7 -2
  31. package/es/Label/props/propTypes.js +3 -0
  32. package/es/MultiSelect/AdvancedGroupMultiSelect.js +2 -3
  33. package/es/MultiSelect/AdvancedMultiSelect.js +2 -3
  34. package/es/MultiSelect/MobileHeader/MobileHeader.js +50 -0
  35. package/es/MultiSelect/MobileHeader/MobileHeader.module.css +16 -0
  36. package/es/MultiSelect/MobileHeader/props/defaultProps.js +7 -0
  37. package/es/MultiSelect/MobileHeader/props/propTypes.js +7 -0
  38. package/es/MultiSelect/MultiSelect.js +112 -91
  39. package/es/MultiSelect/MultiSelect.module.css +2 -5
  40. package/es/MultiSelect/MultiSelectHeader.js +1 -2
  41. package/es/MultiSelect/MultiSelectWithAvatar.js +14 -112
  42. package/es/MultiSelect/props/defaultProps.js +3 -1
  43. package/es/MultiSelect/props/propTypes.js +9 -57
  44. package/es/TextBox/TextBox.js +3 -3
  45. package/es/deprecated/PortalLayer/props/propTypes.js +3 -1
  46. package/lib/Button/Button.js +6 -2
  47. package/lib/Button/props/defaultProps.js +2 -1
  48. package/lib/Button/props/propTypes.js +3 -1
  49. package/lib/Heading/Heading.module.css +1 -1
  50. package/lib/Label/Label.js +6 -2
  51. package/lib/Label/props/propTypes.js +3 -0
  52. package/lib/MultiSelect/AdvancedGroupMultiSelect.js +2 -3
  53. package/lib/MultiSelect/AdvancedMultiSelect.js +2 -3
  54. package/lib/MultiSelect/MobileHeader/MobileHeader.js +62 -0
  55. package/lib/MultiSelect/MobileHeader/MobileHeader.module.css +16 -0
  56. package/lib/MultiSelect/MobileHeader/props/defaultProps.js +14 -0
  57. package/lib/MultiSelect/MobileHeader/props/propTypes.js +18 -0
  58. package/lib/MultiSelect/MultiSelect.js +116 -96
  59. package/lib/MultiSelect/MultiSelect.module.css +2 -5
  60. package/lib/MultiSelect/MultiSelectHeader.js +1 -2
  61. package/lib/MultiSelect/MultiSelectWithAvatar.js +17 -113
  62. package/lib/MultiSelect/props/defaultProps.js +3 -1
  63. package/lib/MultiSelect/props/propTypes.js +19 -60
  64. package/lib/TextBox/TextBox.js +10 -10
  65. package/lib/deprecated/PortalLayer/props/propTypes.js +3 -1
  66. package/package.json +8 -8
  67. package/result.json +1 -1
@@ -100,7 +100,7 @@ export const propTypes = {
100
100
  <div class='footer quiet pad2 space-top1 center small'>
101
101
  Code coverage generated by
102
102
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
103
- at 2023-08-11T17:46:20.575Z
103
+ at 2023-08-17T12:51:49.215Z
104
104
  </div>
105
105
  <script src="../../prettify.js"></script>
106
106
  <script>
@@ -1,8 +1,8 @@
1
- {"/Users/bharathi-zt93/git/library/jsapps/dot/components/src/Button/Button.js": {"path":"/Users/bharathi-zt93/git/library/jsapps/dot/components/src/Button/Button.js","statementMap":{"0":{"start":{"line":27,"column":6},"end":{"line":27,"column":11}},"1":{"start":{"line":29,"column":21},"end":{"line":29,"column":51}},"2":{"start":{"line":31,"column":63},"end":{"line":34,"column":4}},"3":{"start":{"line":36,"column":20},"end":{"line":36,"column":40}},"4":{"start":{"line":38,"column":2},"end":{"line":60,"column":4}},"5":{"start":{"line":63,"column":0},"end":{"line":63,"column":35}},"6":{"start":{"line":65,"column":0},"end":{"line":65,"column":29}}},"fnMap":{"0":{"name":"Button","decl":{"start":{"line":13,"column":24},"end":{"line":13,"column":30}},"loc":{"start":{"line":13,"column":38},"end":{"line":61,"column":1}},"line":13}},"branchMap":{"0":{"loc":{"start":{"line":41,"column":15},"end":{"line":41,"column":55}},"type":"cond-expr","locations":[{"start":{"line":41,"column":26},"end":{"line":41,"column":46}},{"start":{"line":41,"column":49},"end":{"line":41,"column":55}}],"line":41},"1":{"loc":{"start":{"line":42,"column":20},"end":{"line":42,"column":60}},"type":"cond-expr","locations":[{"start":{"line":42,"column":31},"end":{"line":42,"column":51}},{"start":{"line":42,"column":54},"end":{"line":42,"column":60}}],"line":42},"2":{"loc":{"start":{"line":43,"column":16},"end":{"line":43,"column":53}},"type":"binary-expr","locations":[{"start":{"line":43,"column":16},"end":{"line":43,"column":24}},{"start":{"line":43,"column":28},"end":{"line":43,"column":53}}],"line":43},"3":{"loc":{"start":{"line":51,"column":7},"end":{"line":51,"column":33}},"type":"cond-expr","locations":[{"start":{"line":51,"column":18},"end":{"line":51,"column":26}},{"start":{"line":51,"column":29},"end":{"line":51,"column":33}}],"line":51},"4":{"loc":{"start":{"line":52,"column":7},"end":{"line":58,"column":7}},"type":"binary-expr","locations":[{"start":{"line":52,"column":7},"end":{"line":52,"column":29}},{"start":{"line":52,"column":33},"end":{"line":52,"column":47}},{"start":{"line":53,"column":8},"end":{"line":57,"column":14}}],"line":52}},"s":{"0":28,"1":28,"2":28,"3":28,"4":28,"5":1,"6":1},"f":{"0":28},"b":{"0":[1,27],"1":[1,27],"2":[28,27],"3":[0,28],"4":[28,4,4]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"310a4b7515bf58d5b5c5a6c3385c20b18de908f5"}
1
+ {"/Users/bharathi-zt93/git/library/jsapps/dot/components/src/Button/Button.js": {"path":"/Users/bharathi-zt93/git/library/jsapps/dot/components/src/Button/Button.js","statementMap":{"0":{"start":{"line":29,"column":6},"end":{"line":29,"column":11}},"1":{"start":{"line":31,"column":21},"end":{"line":31,"column":51}},"2":{"start":{"line":33,"column":63},"end":{"line":36,"column":4}},"3":{"start":{"line":38,"column":20},"end":{"line":38,"column":40}},"4":{"start":{"line":40,"column":2},"end":{"line":64,"column":4}},"5":{"start":{"line":67,"column":0},"end":{"line":67,"column":35}},"6":{"start":{"line":69,"column":0},"end":{"line":69,"column":29}}},"fnMap":{"0":{"name":"Button","decl":{"start":{"line":13,"column":24},"end":{"line":13,"column":30}},"loc":{"start":{"line":13,"column":38},"end":{"line":65,"column":1}},"line":13}},"branchMap":{"0":{"loc":{"start":{"line":43,"column":15},"end":{"line":43,"column":55}},"type":"cond-expr","locations":[{"start":{"line":43,"column":26},"end":{"line":43,"column":46}},{"start":{"line":43,"column":49},"end":{"line":43,"column":55}}],"line":43},"1":{"loc":{"start":{"line":44,"column":20},"end":{"line":44,"column":60}},"type":"cond-expr","locations":[{"start":{"line":44,"column":31},"end":{"line":44,"column":51}},{"start":{"line":44,"column":54},"end":{"line":44,"column":60}}],"line":44},"2":{"loc":{"start":{"line":45,"column":16},"end":{"line":45,"column":53}},"type":"binary-expr","locations":[{"start":{"line":45,"column":16},"end":{"line":45,"column":24}},{"start":{"line":45,"column":28},"end":{"line":45,"column":53}}],"line":45},"3":{"loc":{"start":{"line":55,"column":7},"end":{"line":55,"column":33}},"type":"cond-expr","locations":[{"start":{"line":55,"column":18},"end":{"line":55,"column":26}},{"start":{"line":55,"column":29},"end":{"line":55,"column":33}}],"line":55},"4":{"loc":{"start":{"line":56,"column":7},"end":{"line":62,"column":7}},"type":"binary-expr","locations":[{"start":{"line":56,"column":7},"end":{"line":56,"column":29}},{"start":{"line":56,"column":33},"end":{"line":56,"column":47}},{"start":{"line":57,"column":8},"end":{"line":61,"column":14}}],"line":56}},"s":{"0":28,"1":28,"2":28,"3":28,"4":28,"5":1,"6":1},"f":{"0":28},"b":{"0":[1,27],"1":[1,27],"2":[28,27],"3":[0,28],"4":[28,4,4]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"76b2d3caf7dc65598f732a4d9c32b9e1d639ea0b"}
2
2
  ,"/Users/bharathi-zt93/git/library/jsapps/dot/components/src/Button/css/Button.module.css": {"path":"/Users/bharathi-zt93/git/library/jsapps/dot/components/src/Button/css/Button.module.css","statementMap":{"0":{"start":{"line":1,"column":0},"end":{"line":45,"column":1}}},"fnMap":{},"branchMap":{},"s":{"0":1},"f":{},"b":{},"inputSourceMap":null,"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"757cb7a39d2ebd54158da84009e5f917f03507cf"}
3
3
  ,"/Users/bharathi-zt93/git/library/jsapps/dot/components/src/Button/css/cssJSLogic.js": {"path":"/Users/bharathi-zt93/git/library/jsapps/dot/components/src/Button/css/cssJSLogic.js","statementMap":{"0":{"start":{"line":4,"column":90},"end":{"line":4,"column":95}},"1":{"start":{"line":6,"column":72},"end":{"line":6,"column":83}},"2":{"start":{"line":8,"column":21},"end":{"line":8,"column":42}},"3":{"start":{"line":9,"column":20},"end":{"line":9,"column":40}},"4":{"start":{"line":11,"column":20},"end":{"line":21,"column":4}},"5":{"start":{"line":23,"column":26},"end":{"line":28,"column":4}},"6":{"start":{"line":30,"column":25},"end":{"line":36,"column":4}},"7":{"start":{"line":38,"column":2},"end":{"line":42,"column":4}}},"fnMap":{"0":{"name":"cssJSLogic","decl":{"start":{"line":3,"column":24},"end":{"line":3,"column":34}},"loc":{"start":{"line":3,"column":53},"end":{"line":43,"column":1}},"line":3}},"branchMap":{"0":{"loc":{"start":{"line":6,"column":8},"end":{"line":6,"column":25}},"type":"default-arg","locations":[{"start":{"line":6,"column":23},"end":{"line":6,"column":25}}],"line":6},"1":{"loc":{"start":{"line":6,"column":27},"end":{"line":6,"column":44}},"type":"default-arg","locations":[{"start":{"line":6,"column":42},"end":{"line":6,"column":44}}],"line":6},"2":{"loc":{"start":{"line":6,"column":46},"end":{"line":6,"column":67}},"type":"default-arg","locations":[{"start":{"line":6,"column":65},"end":{"line":6,"column":67}}],"line":6},"3":{"loc":{"start":{"line":16,"column":21},"end":{"line":16,"column":46}},"type":"binary-expr","locations":[{"start":{"line":16,"column":21},"end":{"line":16,"column":35}},{"start":{"line":16,"column":39},"end":{"line":16,"column":46}}],"line":16},"4":{"loc":{"start":{"line":17,"column":33},"end":{"line":17,"column":60}},"type":"binary-expr","locations":[{"start":{"line":17,"column":33},"end":{"line":17,"column":47}},{"start":{"line":17,"column":51},"end":{"line":17,"column":60}}],"line":17},"5":{"loc":{"start":{"line":18,"column":27},"end":{"line":18,"column":53}},"type":"binary-expr","locations":[{"start":{"line":18,"column":27},"end":{"line":18,"column":41}},{"start":{"line":18,"column":45},"end":{"line":18,"column":53}}],"line":18},"6":{"loc":{"start":{"line":19,"column":42},"end":{"line":19,"column":79}},"type":"binary-expr","locations":[{"start":{"line":19,"column":42},"end":{"line":19,"column":56}},{"start":{"line":19,"column":60},"end":{"line":19,"column":68}},{"start":{"line":19,"column":72},"end":{"line":19,"column":79}}],"line":19},"7":{"loc":{"start":{"line":20,"column":20},"end":{"line":20,"column":62}},"type":"binary-expr","locations":[{"start":{"line":20,"column":20},"end":{"line":20,"column":36}},{"start":{"line":20,"column":40},"end":{"line":20,"column":62}}],"line":20}},"s":{"0":28,"1":28,"2":28,"3":28,"4":28,"5":28,"6":28,"7":28},"f":{"0":28},"b":{"0":[27],"1":[26],"2":[27],"3":[28,27],"4":[28,27],"5":[28,27],"6":[28,27,0],"7":[28,27]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"83ad9e91c5b73e460148a0b9ce6a7423978e4318"}
4
- ,"/Users/bharathi-zt93/git/library/jsapps/dot/components/src/Button/props/defaultProps.js": {"path":"/Users/bharathi-zt93/git/library/jsapps/dot/components/src/Button/props/defaultProps.js","statementMap":{"0":{"start":{"line":3,"column":28},"end":{"line":18,"column":1}}},"fnMap":{},"branchMap":{},"s":{"0":1},"f":{},"b":{},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"30f00c83c709a3736fe88c4ca4c861619f9978bc"}
5
- ,"/Users/bharathi-zt93/git/library/jsapps/dot/components/src/Button/props/propTypes.js": {"path":"/Users/bharathi-zt93/git/library/jsapps/dot/components/src/Button/props/propTypes.js","statementMap":{"0":{"start":{"line":3,"column":25},"end":{"line":37,"column":1}}},"fnMap":{},"branchMap":{},"s":{"0":1},"f":{},"b":{},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"f3de2e041524dc4074e4f39435d99dd99f4b2f6f"}
4
+ ,"/Users/bharathi-zt93/git/library/jsapps/dot/components/src/Button/props/defaultProps.js": {"path":"/Users/bharathi-zt93/git/library/jsapps/dot/components/src/Button/props/defaultProps.js","statementMap":{"0":{"start":{"line":3,"column":28},"end":{"line":19,"column":1}}},"fnMap":{},"branchMap":{},"s":{"0":1},"f":{},"b":{},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"29f8cd18b9979ea28a3be540b99ec7f94040c961"}
5
+ ,"/Users/bharathi-zt93/git/library/jsapps/dot/components/src/Button/props/propTypes.js": {"path":"/Users/bharathi-zt93/git/library/jsapps/dot/components/src/Button/props/propTypes.js","statementMap":{"0":{"start":{"line":3,"column":25},"end":{"line":39,"column":1}}},"fnMap":{},"branchMap":{},"s":{"0":1},"f":{},"b":{},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"f758df13036a2ae8cbf9709be232a12d7d885745"}
6
6
  ,"/Users/bharathi-zt93/git/library/jsapps/dot/components/src/Buttongroup/Buttongroup.js": {"path":"/Users/bharathi-zt93/git/library/jsapps/dot/components/src/Buttongroup/Buttongroup.js","statementMap":{"0":{"start":{"line":9,"column":82},"end":{"line":9,"column":92}},"1":{"start":{"line":10,"column":19},"end":{"line":10,"column":21}},"2":{"start":{"line":11,"column":4},"end":{"line":15,"column":9}},"3":{"start":{"line":13,"column":23},"end":{"line":13,"column":67}},"4":{"start":{"line":14,"column":8},"end":{"line":14,"column":32}},"5":{"start":{"line":16,"column":4},"end":{"line":25,"column":6}},"6":{"start":{"line":29,"column":0},"end":{"line":29,"column":40}},"7":{"start":{"line":30,"column":0},"end":{"line":30,"column":34}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":8,"column":2},"end":{"line":8,"column":3}},"loc":{"start":{"line":8,"column":11},"end":{"line":26,"column":3}},"line":8},"1":{"name":"(anonymous_1)","decl":{"start":{"line":12,"column":23},"end":{"line":12,"column":24}},"loc":{"start":{"line":12,"column":34},"end":{"line":15,"column":7}},"line":12}},"branchMap":{"0":{"loc":{"start":{"line":11,"column":4},"end":{"line":15,"column":8}},"type":"binary-expr","locations":[{"start":{"line":11,"column":4},"end":{"line":11,"column":12}},{"start":{"line":12,"column":6},"end":{"line":15,"column":8}}],"line":11},"1":{"loc":{"start":{"line":18,"column":58},"end":{"line":18,"column":88}},"type":"cond-expr","locations":[{"start":{"line":18,"column":72},"end":{"line":18,"column":83}},{"start":{"line":18,"column":86},"end":{"line":18,"column":88}}],"line":18}},"s":{"0":8,"1":8,"2":8,"3":21,"4":21,"5":8,"6":1,"7":1},"f":{"0":8,"1":21},"b":{"0":[8,7],"1":[1,7]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"106d519187109ea7b47a3fb793a79dd3a570ef24"}
7
7
  ,"/Users/bharathi-zt93/git/library/jsapps/dot/components/src/Buttongroup/Buttongroup.module.css": {"path":"/Users/bharathi-zt93/git/library/jsapps/dot/components/src/Buttongroup/Buttongroup.module.css","statementMap":{"0":{"start":{"line":1,"column":0},"end":{"line":10,"column":1}}},"fnMap":{},"branchMap":{},"s":{"0":1},"f":{},"b":{},"inputSourceMap":null,"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"b19a853c5ee33a27215725a96c4e52b463fb5a91"}
8
8
  ,"/Users/bharathi-zt93/git/library/jsapps/dot/components/src/Buttongroup/props/defaultProps.js": {"path":"/Users/bharathi-zt93/git/library/jsapps/dot/components/src/Buttongroup/props/defaultProps.js","statementMap":{"0":{"start":{"line":1,"column":28},"end":{"line":6,"column":1}}},"fnMap":{},"branchMap":{},"s":{"0":1},"f":{},"b":{},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"f95e882a39620189c3ae2039de92b99d750f1b9b"}
@@ -176,7 +176,7 @@
176
176
  <div class='footer quiet pad2 space-top1 center small'>
177
177
  Code coverage generated by
178
178
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
179
- at 2023-08-11T17:46:20.575Z
179
+ at 2023-08-17T12:51:49.215Z
180
180
  </div>
181
181
  <script src="prettify.js"></script>
182
182
  <script>
@@ -73,7 +73,7 @@
73
73
  <div class='footer quiet pad2 space-top1 center small'>
74
74
  Code coverage generated by
75
75
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
76
- at 2023-08-11T17:46:20.575Z
76
+ at 2023-08-17T12:51:49.215Z
77
77
  </div>
78
78
  <script src="../prettify.js"></script>
79
79
  <script>
@@ -101,7 +101,7 @@
101
101
  <div class='footer quiet pad2 space-top1 center small'>
102
102
  Code coverage generated by
103
103
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
104
- at 2023-08-11T17:46:20.575Z
104
+ at 2023-08-17T12:51:49.215Z
105
105
  </div>
106
106
  <script src="../prettify.js"></script>
107
107
  <script>
@@ -27,7 +27,9 @@ export default function Button(props) {
27
27
  title,
28
28
  dataSelectorId,
29
29
  customProps,
30
- customStyle
30
+ customStyle,
31
+ a11y,
32
+ id
31
33
  } = props;
32
34
  const finalStyle = mergeStyle(style, customStyle);
33
35
  const {
@@ -49,7 +51,9 @@ export default function Button(props) {
49
51
  type: "button",
50
52
  ref: getRef,
51
53
  "data-selector-id": dataSelectorId
52
- }, customProps), children ? children : text, statusLower !== 'none' && needAppearance && /*#__PURE__*/React.createElement("div", {
54
+ }, customProps, a11y, {
55
+ id: id
56
+ }), children ? children : text, statusLower !== 'none' && needAppearance && /*#__PURE__*/React.createElement("div", {
53
57
  className: finalStyle.overlay
54
58
  }, /*#__PURE__*/React.createElement("div", {
55
59
  className: loaderParentClass
@@ -13,5 +13,6 @@ export const defaultProps = {
13
13
  status: 'none',
14
14
  text: 'Button',
15
15
  customClass: {},
16
- customProps: {}
16
+ customProps: {},
17
+ a11y: {}
17
18
  };
@@ -20,6 +20,8 @@ export const propTypes = {
20
20
  customStatusSize: PropTypes.string
21
21
  }),
22
22
  customStyle: PropTypes.object,
23
- customProps: PropTypes.object
23
+ customProps: PropTypes.object,
24
+ id: PropTypes.string,
25
+ a11y: PropTypes.object
24
26
  };
25
27
  export default propTypes;
@@ -1,5 +1,5 @@
1
1
  .reset {
2
- font-size: initial ;
2
+ font-size: inherit ;
3
3
  font-weight: initial;
4
4
  margin: initial ;
5
5
  }
package/es/Label/Label.js CHANGED
@@ -21,8 +21,12 @@ export default class Label extends React.Component {
21
21
  dataSelectorId,
22
22
  variant,
23
23
  customClass,
24
- id
24
+ id,
25
+ a11y = {}
25
26
  } = this.props;
27
+ const {
28
+ tabIndex
29
+ } = a11y;
26
30
  return /*#__PURE__*/React.createElement("label", {
27
31
  className: `${style.label} ${style[type]} ${style[size]} ${colors[palette]} ${style[`font_${variant}`]}
28
32
  ${clipped ? style.dotted : ''} ${onClick ? style.pointer : style.cursor} ${customClass} `,
@@ -32,7 +36,8 @@ export default class Label extends React.Component {
32
36
  "data-test-id": dataId,
33
37
  "data-selector-id": dataSelectorId,
34
38
  onClick: onClick,
35
- id: id
39
+ id: id,
40
+ tabIndex: tabIndex
36
41
  }, text);
37
42
  }
38
43
 
@@ -12,5 +12,8 @@ export const propTypes = {
12
12
  type: PropTypes.oneOf(['title', 'subtitle']),
13
13
  variant: PropTypes.oneOf(['primary', 'default']),
14
14
  customClass: PropTypes.string,
15
+ a11y: PropTypes.shape({
16
+ tabIndex: PropTypes.string
17
+ }),
15
18
  id: PropTypes.string
16
19
  };
@@ -1004,13 +1004,12 @@ class AdvancedGroupMultiSelect extends React.Component {
1004
1004
  }, /*#__PURE__*/React.createElement(Card, {
1005
1005
  customClass: `${style.box} ${style[`${palette}Box`]}`,
1006
1006
  onScroll: this.handleScroll
1007
- }, /*#__PURE__*/React.createElement(CardHeader, null, /*#__PURE__*/React.createElement(MultiSelectHeader, {
1008
- needSelectAll: needSelectAll,
1007
+ }, needSelectAll ? /*#__PURE__*/React.createElement(CardHeader, null, /*#__PURE__*/React.createElement(MultiSelectHeader, {
1009
1008
  onSelect: this.handleSelectAll,
1010
1009
  selectAllText: selectAllText,
1011
1010
  suggestions: suggestionOptionIds,
1012
1011
  dataId: dataId
1013
- })), isDataLoaded ? /*#__PURE__*/React.createElement(CardContent, {
1012
+ })) : null, isDataLoaded ? /*#__PURE__*/React.createElement(CardContent, {
1014
1013
  shrink: true,
1015
1014
  customClass: !tabletMode && dropBoxSize ? style[dropBoxSize] : '',
1016
1015
  eleRef: this.suggestionContainerRef
@@ -514,13 +514,12 @@ export class AdvancedMultiSelectComponent extends MultiSelectComponent {
514
514
  }, /*#__PURE__*/React.createElement(Card, {
515
515
  customClass: style.box,
516
516
  onScroll: this.handleScroll
517
- }, /*#__PURE__*/React.createElement(CardHeader, null, /*#__PURE__*/React.createElement(MultiSelectHeader, {
518
- needSelectAll: needSelectAll,
517
+ }, needSelectAll ? /*#__PURE__*/React.createElement(CardHeader, null, /*#__PURE__*/React.createElement(MultiSelectHeader, {
519
518
  onSelect: this.handleSelectAll,
520
519
  selectAllText: selectAllText,
521
520
  suggestions: suggestions,
522
521
  dataId: dataIdSelectAllEle
523
- })), /*#__PURE__*/React.createElement(CardContent, {
522
+ })) : null, /*#__PURE__*/React.createElement(CardContent, {
524
523
  shrink: true,
525
524
  customClass: !tabletMode && dropBoxSize ? style[dropBoxSize] : '',
526
525
  eleRef: this.suggestionContainerRef
@@ -0,0 +1,50 @@
1
+ import React from 'react';
2
+ import Button from '../../Button/Button';
3
+ import { Container, Box } from '../../Layout';
4
+ import { defaultProps } from './props/defaultProps';
5
+ import { propTypes } from './props/propTypes';
6
+ import style from './MobileHeader.module.css';
7
+ export default function MobileHeader(props) {
8
+ let {
9
+ i18nKeys,
10
+ onClick,
11
+ selectedOptions,
12
+ children
13
+ } = props;
14
+ const i18nText = Object.assign({}, i18nKeys, {
15
+ mobileHeaderText: i18nKeys.mobileHeaderText ? `${i18nKeys.mobileHeaderText}` : `${selectedOptions.length} Selected`
16
+ });
17
+ let {
18
+ mobilePrimaryButtonText,
19
+ mobileSecondaryButtonText,
20
+ mobileHeaderText
21
+ } = i18nText;
22
+ const showMobileHeader = i18nKeys.mobileHeaderText || !i18nKeys.mobileHeaderText && selectedOptions.length >= 1;
23
+ return /*#__PURE__*/React.createElement("div", {
24
+ className: style.container
25
+ }, /*#__PURE__*/React.createElement(Container, {
26
+ isCover: false,
27
+ align: "vertical",
28
+ alignContent: "between",
29
+ alignBox: "row",
30
+ className: style.header
31
+ }, /*#__PURE__*/React.createElement(Box, {
32
+ className: style.cardHeading,
33
+ "data-title": showMobileHeader ? mobileHeaderText : null,
34
+ flexible: true
35
+ }, showMobileHeader && mobileHeaderText), /*#__PURE__*/React.createElement(Box, {
36
+ shrink: true
37
+ }, /*#__PURE__*/React.createElement(Button, {
38
+ onClick: onClick,
39
+ isBold: true,
40
+ size: "medium",
41
+ text: selectedOptions.length >= 1 ? mobilePrimaryButtonText : mobileSecondaryButtonText,
42
+ palette: "plainPrimary",
43
+ customClass: {
44
+ customButton: style.buttonText
45
+ },
46
+ "data-title": mobilePrimaryButtonText
47
+ }))), children);
48
+ }
49
+ MobileHeader.defaultProps = defaultProps;
50
+ MobileHeader.propTypes = propTypes;
@@ -0,0 +1,16 @@
1
+ .container{
2
+ padding: 0 var(--zd_size20) var(--zd_size12) var(--zd_size20) ;
3
+ }
4
+ .header{
5
+ padding-bottom: var(--zd_size4) ;
6
+ }
7
+ .cardHeading{
8
+ font-size: var(--zd_font_size16) ;
9
+ color: var(--zdt_multiselect_res_title_text);
10
+ composes: bold dotted from '../../common/common.module.css'
11
+ }
12
+ .buttonText{
13
+ font-size: var(--zd_font_size15) ;
14
+ composes: dotted from '../../common/common.module.css';
15
+ padding: 0
16
+ }
@@ -0,0 +1,7 @@
1
+ export const defaultProps = {
2
+ selectedOptions: [],
3
+ i18nKeys: {
4
+ mobilePrimaryButtonText: 'Done',
5
+ mobileSecondaryButtonText: 'Close'
6
+ }
7
+ };
@@ -0,0 +1,7 @@
1
+ import PropTypes from 'prop-types';
2
+ export const propTypes = {
3
+ i18nKeys: PropTypes.object,
4
+ onClick: PropTypes.func,
5
+ selectedOptions: PropTypes.array,
6
+ children: PropTypes.node
7
+ };
@@ -2,20 +2,21 @@
2
2
  import React from 'react';
3
3
  import { MultiSelect_propTypes } from './props/propTypes';
4
4
  import { MultiSelect_defaultProps } from './props/defaultProps';
5
+ import { defaultProps as MobileHeader_defaultProps } from './MobileHeader/props/defaultProps';
5
6
  /**** Components ****/
6
7
 
7
8
  import Popup from '../Popup/Popup';
8
9
  import TextBoxIcon from '../TextBoxIcon/TextBoxIcon';
9
10
  import { Container, Box } from '../Layout';
10
- import Card, { CardContent, CardHeader, CardFooter } from '../Card/Card';
11
+ import Card, { CardContent, CardFooter, CardHeader } from '../Card/Card';
11
12
  import SelectedOptions from './SelectedOptions';
12
13
  import Suggestions from './Suggestions';
13
14
  import EmptyState from './EmptyState';
14
- import MultiSelectHeader from './MultiSelectHeader';
15
15
  import CssProvider from '../Provider/CssProvider';
16
16
  import { getUniqueId } from '../Provider/IdProvider';
17
17
  import ResponsiveDropBox from '../ResponsiveDropBox/ResponsiveDropBox';
18
18
  import { ResponsiveReceiver } from '../Responsive/CustomResponsive';
19
+ import MultiSelectHeader from './MultiSelectHeader';
19
20
  import Loader from '@zohodesk/svg/lib/Loader/Loader';
20
21
  /**** Icons ****/
21
22
 
@@ -27,7 +28,7 @@ import style from './MultiSelect.module.css';
27
28
 
28
29
  import { debounce, scrollTo, bind, getIsEmptyValue, getSearchString, findScrollEnd } from '../utils/Common.js';
29
30
  import { makeFormatOptions, makeGetMultiSelectFilterSuggestions as makeGetFilterSuggestions, makeGetMultiSelectSelectedOptions as makeGetSelectedOptions, makeObjectConcat, filterSelectedOptions, makeGetIsShowClearIcon } from '../utils/dropDownUtils';
30
- import { getLibraryConfig } from '../Provider/Config';
31
+ import MobileHeader from './MobileHeader/MobileHeader';
31
32
  /* eslint-disable react/forbid-component-props */
32
33
 
33
34
  /* eslint-disable react/no-unused-prop-types */
@@ -74,7 +75,7 @@ export class MultiSelectComponent extends React.Component {
74
75
  this.allSelectedOptionsDetails = normalizedSelectedOptions;
75
76
  this.suggestionsOrder = [];
76
77
  this._isMounted = false;
77
- bind.apply(this, ['handleInputCick', 'handleFilterSuggestions', 'handleKeyDown', 'handleSelectAll', 'handleDeselectAll', 'handleSelectOption', 'handleRemoveOption', 'handleSearch', 'handleClickSelectedOption', 'handleChange', 'handlePopupClose', 'togglePopup', 'selectedOptionRef', 'searchInputRef', 'suggestionContainerRef', 'suggestionItemRef', 'selectedOptionContainerRef', 'handleActive', 'handleInactive', 'handleMouseEnter', 'handleFetchOptions', 'handleFormatOptions', 'handleGetSelectedOptions', 'handleComponentDidUpdate', 'handleInputFocus', 'handleExposedPublicMethods']);
78
+ bind.apply(this, ['handleInputCick', 'handleFilterSuggestions', 'handleKeyDown', 'handleSelectAll', 'handleDeselectAll', 'handleSelectOption', 'handleRemoveOption', 'handleSearch', 'handleClickSelectedOption', 'handleChange', 'handlePopupClose', 'togglePopup', 'selectedOptionRef', 'searchInputRef', 'suggestionContainerRef', 'suggestionItemRef', 'selectedOptionContainerRef', 'handleActive', 'handleInactive', 'handleMouseEnter', 'handleFetchOptions', 'handleFormatOptions', 'handleGetSelectedOptions', 'handleComponentDidUpdate', 'handleInputFocus', 'handleExposedPublicMethods', 'getSelectionUI', 'moveFocusToTextbox']);
78
79
  this.handleSearchOptions = debounce(this.handleSearchOptions.bind(this), searchDebounceTime);
79
80
  this.handleScroll = this.handleScroll.bind(this);
80
81
  this.handleScrollFuncCall = debounce(this.handleScrollFuncCall.bind(this), 500);
@@ -530,9 +531,7 @@ export class MultiSelectComponent extends React.Component {
530
531
  this.handleChange(newSelectedOptions);
531
532
  }
532
533
 
533
- this.searchInput && this.searchInput.focus({
534
- preventScroll: true
535
- });
534
+ this.moveFocusToTextbox();
536
535
  }
537
536
 
538
537
  handleMouseEnter(id, val, hoverOptionIndex, e) {
@@ -680,9 +679,7 @@ export class MultiSelectComponent extends React.Component {
680
679
  this.setState({
681
680
  shiftKeyPressHighLighted: 0
682
681
  });
683
- this.searchInput && this.searchInput.focus({
684
- preventScroll: true
685
- });
682
+ this.moveFocusToTextbox();
686
683
  }
687
684
 
688
685
  handleScroll(e) {
@@ -732,9 +729,7 @@ export class MultiSelectComponent extends React.Component {
732
729
 
733
730
  onChange && onChange(newSelectedOptions, allSelectedOptionsDetails); // this.setState({ searchStr: '' });
734
731
 
735
- this.searchInput && this.searchInput.focus({
736
- preventScroll: true
737
- });
732
+ this.moveFocusToTextbox();
738
733
 
739
734
  if (needToCloseOnSelect) {
740
735
  togglePopup(e);
@@ -824,7 +819,11 @@ export class MultiSelectComponent extends React.Component {
824
819
  isDisabled,
825
820
  isReadOnly
826
821
  } = this.props;
827
- this.searchInput && !isDisabled && !isReadOnly && this.searchInput.focus({
822
+ !isDisabled && !isReadOnly && this.moveFocusToTextbox();
823
+ }
824
+
825
+ moveFocusToTextbox() {
826
+ this.searchInput && this.searchInput.focus({
828
827
  preventScroll: true
829
828
  });
830
829
  }
@@ -850,78 +849,46 @@ export class MultiSelectComponent extends React.Component {
850
849
  };
851
850
  }
852
851
 
853
- render() {
852
+ getSelectionUI() {
853
+ let isResponsive = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
854
854
  let {
855
- isReadOnly,
856
- needSelectAll,
857
- searchEmptyMessage,
858
- emptyMessage,
859
- noMoreOptionsMessage,
860
- dropBoxSize,
855
+ size,
856
+ needBorder,
857
+ disableAction,
858
+ borderColor,
861
859
  placeHolder,
862
- isPopupOpen,
863
- isPopupReady,
864
- position,
865
- defaultDropBoxPosition,
866
- selectAllText,
867
- getContainerRef,
868
- removeClose,
869
- isAnimate,
870
- animationStyle,
871
860
  textBoxSize,
872
861
  variant,
873
- size,
874
- isDisabled,
875
- title,
876
- needResponsive,
877
- dataId,
878
- dataSelectorId,
879
- isSearching,
880
- borderColor,
881
862
  textBoxClass,
882
- needBorder,
883
- disableAction,
884
- isBoxPaddingNeed,
885
- palette,
886
863
  needAutoFocus,
887
864
  htmlId,
888
- i18nKeys,
889
- a11y,
890
865
  children,
891
866
  customChildrenClass,
892
- getFooter,
893
- needEffect,
894
- disabledOptions,
895
- boxSize,
896
867
  autoComplete,
897
- isLoading
868
+ a11y,
869
+ disabledOptions,
870
+ i18nKeys,
871
+ isReadOnly,
872
+ isDisabled,
873
+ palette,
874
+ dataId,
875
+ setAriaId,
876
+ isPopupOpen,
877
+ ariaErrorId
898
878
  } = this.props;
879
+ let {
880
+ isActive,
881
+ selectedOptions,
882
+ highLightedSelectOptions,
883
+ searchStr
884
+ } = this.state;
899
885
  const {
900
- clearText = 'Clear all',
901
- searchText = 'Searching...'
886
+ clearText = 'Clear all'
902
887
  } = i18nKeys;
903
888
  const {
904
889
  clearLabel = 'Clear all',
905
890
  ariaLabelledby
906
891
  } = a11y;
907
- i18nKeys = Object.assign({}, i18nKeys, {
908
- emptyText: i18nKeys.emptyText || emptyMessage,
909
- searchEmptyText: i18nKeys.searchEmptyText || searchEmptyMessage,
910
- noMoreText: i18nKeys.noMoreText || noMoreOptionsMessage
911
- });
912
- const {
913
- selectedOptions,
914
- searchStr,
915
- hoverOption,
916
- highLightedSelectOptions,
917
- options,
918
- isFetchingOptions,
919
- isActive,
920
- selectedOptionIds
921
- } = this.state;
922
- const suggestions = this.handleFilterSuggestions();
923
- const setAriaId = this.getNextAriaId();
924
- const ariaErrorId = this.getNextAriaId();
925
892
  let {
926
893
  isShowClearIcon: isShowClear
927
894
  } = this.getIsShowClearIcon({
@@ -929,17 +896,10 @@ export class MultiSelectComponent extends React.Component {
929
896
  disabledOptions
930
897
  });
931
898
  const isShowClearIcon = !isReadOnly && !isDisabled && !disableAction && isShowClear;
932
- return /*#__PURE__*/React.createElement("div", {
933
- className: `${style.wrapper} ${isDisabled ? style.disabled : ''} ${isReadOnly ? style.readOnly : ''} ${disableAction ? CssProvider('isBlock') : ''} ${borderColor === 'transparent' ? style.transparentContainer : ''} ${needEffect && !(isDisabled || isReadOnly) ? style.effect : ''}`,
934
- "data-id": `${isDisabled ? `${dataId}_disabled` : isReadOnly ? `${dataId}_readOnly` : dataId}`,
935
- "data-test-id": `${isDisabled ? `${dataId}_disabled` : isReadOnly ? `${dataId}_readOnly` : dataId}`,
936
- "data-title": isDisabled ? title : null,
937
- onClick: this.handleInputFocus,
938
- "data-selector-id": dataSelectorId
939
- }, /*#__PURE__*/React.createElement(Container, {
899
+ return /*#__PURE__*/React.createElement(Container, {
940
900
  align: "vertical",
941
901
  alignBox: "row",
942
- className: `${style.container} ${style[size]} ${needBorder ? !disableAction ? style[`borderColor_${borderColor}`] : style.borderColor_transparent : ''} ${isActive && needBorder ? style.active : ''} ${textBoxClass} ${needBorder ? style.hasBorder : ''}`,
902
+ className: `${style.container} ${style[size]} ${needBorder ? !disableAction ? style[`borderColor_${borderColor}`] : style.borderColor_transparent : ''} ${isActive && needBorder || isResponsive ? style.active : ''} ${textBoxClass} ${needBorder ? style.hasBorder : ''}`,
943
903
  eleRef: this.selectedOptionContainerRef,
944
904
  wrap: "wrap"
945
905
  }, /*#__PURE__*/React.createElement(SelectedOptions, {
@@ -958,14 +918,14 @@ export class MultiSelectComponent extends React.Component {
958
918
  shrink: true
959
919
  }, /*#__PURE__*/React.createElement("span", {
960
920
  className: ` ${style.custmSpan} ${textBoxSize === 'xmedium' ? style.custmSpanXmedium : style.custmSpanMedium} ${isShowClearIcon ? style.clearIconSpace : ''}
961
- ${customChildrenClass ? customChildrenClass : ''}`
921
+ ${customChildrenClass ? customChildrenClass : ''}`
962
922
  }, searchStr), /*#__PURE__*/React.createElement(TextBoxIcon, {
963
923
  isDisabled: isDisabled,
964
924
  inputRef: this.searchInputRef,
965
925
  needBorder: false,
966
926
  onBlur: this.handleInactive,
967
927
  onChange: this.handleSearch,
968
- onClick: this.handleInputCick,
928
+ onClick: !isResponsive ? this.handleInputCick : undefined,
969
929
  onFocus: this.handleActive,
970
930
  onKeyDown: this.handleKeyDown,
971
931
  autofocus: needAutoFocus,
@@ -1006,7 +966,69 @@ export class MultiSelectComponent extends React.Component {
1006
966
  size: "15"
1007
967
  })) : null, children ? /*#__PURE__*/React.createElement(Box, {
1008
968
  dataId: `${dataId}_children`
1009
- }, children) : null)))), !isReadOnly && !isDisabled && !disableAction && isPopupOpen ? /*#__PURE__*/React.createElement(ResponsiveReceiver, {
969
+ }, children) : null))));
970
+ }
971
+
972
+ render() {
973
+ let {
974
+ isReadOnly,
975
+ searchEmptyMessage,
976
+ emptyMessage,
977
+ noMoreOptionsMessage,
978
+ dropBoxSize,
979
+ isPopupOpen,
980
+ isPopupReady,
981
+ position,
982
+ defaultDropBoxPosition,
983
+ getContainerRef,
984
+ removeClose,
985
+ isAnimate,
986
+ animationStyle,
987
+ isDisabled,
988
+ title,
989
+ needResponsive,
990
+ dataId,
991
+ dataSelectorId,
992
+ isSearching,
993
+ borderColor,
994
+ disableAction,
995
+ isBoxPaddingNeed,
996
+ palette,
997
+ i18nKeys,
998
+ getFooter,
999
+ needEffect,
1000
+ boxSize,
1001
+ isLoading,
1002
+ selectAllText,
1003
+ needSelectAll
1004
+ } = this.props;
1005
+ const {
1006
+ selectedOptions,
1007
+ searchStr,
1008
+ hoverOption,
1009
+ options,
1010
+ isFetchingOptions,
1011
+ selectedOptionIds
1012
+ } = this.state;
1013
+ const {
1014
+ searchText = 'Searching...'
1015
+ } = i18nKeys;
1016
+ const suggestions = this.handleFilterSuggestions();
1017
+ const setAriaId = this.getNextAriaId();
1018
+ const ariaErrorId = this.getNextAriaId();
1019
+ i18nKeys = Object.assign({}, MobileHeader_defaultProps.i18nKeys, i18nKeys, {
1020
+ emptyText: i18nKeys.emptyText || emptyMessage,
1021
+ searchEmptyText: i18nKeys.searchEmptyText || searchEmptyMessage,
1022
+ noMoreText: i18nKeys.noMoreText || noMoreOptionsMessage
1023
+ });
1024
+ return /*#__PURE__*/React.createElement("div", {
1025
+ className: `${style.wrapper} ${isDisabled ? style.disabled : ''} ${isReadOnly ? style.readOnly : ''} ${disableAction ? CssProvider('isBlock') : ''} ${borderColor === 'transparent' ? style.transparentContainer : ''} ${needEffect && !(isDisabled || isReadOnly) ? style.effect : ''}`,
1026
+ "data-id": `${isDisabled ? `${dataId}_disabled` : isReadOnly ? `${dataId}_readOnly` : dataId}`,
1027
+ "data-test-id": `${isDisabled ? `${dataId}_disabled` : isReadOnly ? `${dataId}_readOnly` : dataId}`,
1028
+ "data-title": isDisabled ? title : null,
1029
+ onClick: this.handleInputFocus,
1030
+ "data-selector-id": dataSelectorId
1031
+ }, this.getSelectionUI(), !isReadOnly && !isDisabled && !disableAction && isPopupOpen ? /*#__PURE__*/React.createElement(ResponsiveReceiver, {
1010
1032
  query: this.responsiveFunc,
1011
1033
  responsiveId: "Helmet"
1012
1034
  }, _ref2 => {
@@ -1038,13 +1060,18 @@ export class MultiSelectComponent extends React.Component {
1038
1060
  }, /*#__PURE__*/React.createElement(Card, {
1039
1061
  customClass: `${style.box} ${style[`${palette}Box`]}`,
1040
1062
  onScroll: this.handleScroll
1041
- }, /*#__PURE__*/React.createElement(CardHeader, null, /*#__PURE__*/React.createElement(MultiSelectHeader, {
1042
- needSelectAll: needSelectAll,
1063
+ }, tabletMode && /*#__PURE__*/React.createElement(MobileHeader, {
1064
+ selectedOptions: selectedOptions,
1065
+ i18nKeys: i18nKeys,
1066
+ onClick: this.handlePopupClose
1067
+ }, /*#__PURE__*/React.createElement("div", {
1068
+ className: style.effect
1069
+ }, this.getSelectionUI(true))), needSelectAll ? /*#__PURE__*/React.createElement(CardHeader, null, /*#__PURE__*/React.createElement(MultiSelectHeader, {
1043
1070
  onSelect: this.handleSelectAll,
1044
1071
  selectAllText: selectAllText,
1045
1072
  suggestions: suggestions,
1046
1073
  dataId: dataId
1047
- })), isLoading ? /*#__PURE__*/React.createElement(Container, {
1074
+ })) : null, isLoading ? /*#__PURE__*/React.createElement(Container, {
1048
1075
  align: "both",
1049
1076
  className: style.loader
1050
1077
  }, /*#__PURE__*/React.createElement(Loader, null)) : /*#__PURE__*/React.createElement(CardContent, {
@@ -1084,13 +1111,7 @@ export class MultiSelectComponent extends React.Component {
1084
1111
 
1085
1112
  }
1086
1113
  MultiSelectComponent.propTypes = MultiSelect_propTypes;
1087
- MultiSelectComponent.defaultProps = MultiSelect_defaultProps; // if (__DOCS__) {
1088
- // MultiSelectComponent.docs = {
1089
- // componentGroup: 'Form Elements',
1090
- // folderName: 'Style Guide'
1091
- // };
1092
- // }
1093
-
1114
+ MultiSelectComponent.defaultProps = MultiSelect_defaultProps;
1094
1115
  MultiSelectComponent.displayName = 'MultiSelect';
1095
1116
  const MultiSelect = Popup(MultiSelectComponent);
1096
1117
  MultiSelect.propTypes = MultiSelectComponent.propTypes;