@zohodesk/components 1.0.0-temp-59 → 1.0.0-temp-62

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -32,6 +32,25 @@ In this Package, we Provide Some Basic Components to Build Web App
32
32
  - TextBoxIcon
33
33
  - Tooltip
34
34
 
35
+ # 1.0.0-alpha-237
36
+
37
+ - ListItem Responsive Min Height Fixed
38
+ - CheckBox data-selector attribute added
39
+
40
+ # 1.0.0-alpha-236
41
+
42
+ - Input => autocomplete added in provider configuration
43
+
44
+ # 1.0.0-alpha-235
45
+
46
+ -Tooltip
47
+ => data-title-wrap prop added
48
+ => tooltip calculation based on root or window case added
49
+
50
+ # 1.0.0-alpha-234
51
+
52
+ - MultiSelect => SelectedId fix on component did update
53
+
35
54
  # 1.0.0-alpha-233
36
55
 
37
56
  - MultiSelect => On press tab key selecting option removed
@@ -206,9 +206,9 @@
206
206
 
207
207
  /* stencils */
208
208
  --zdt_stencil_primary_bg: var(--zdt_cta_grey_10_bg);
209
- --zdt_stencil_primary_gradient_bg: linear-gradient(to left, #383f55 0, #414963 33.33%, #414961 66.66%, #383f55 100%);
209
+ --zdt_stencil_primary_gradient_bg: linear-gradient(to left, #262626 0, #2d2d2d 33.33%, #2d2d2d 66.66%, #262626 100%);
210
210
  --zdt_stencil_secondary_bg: var(--zdt_cta_grey_15_bg);
211
- --zdt_stencil_secondary_gradient_bg: linear-gradient(to left, #383f55 0, #414963 33.33%, #414961 66.66%, #383f55 100%);
211
+ --zdt_stencil_secondary_gradient_bg: linear-gradient(to left, #262626 0, #2d2d2d 33.33%, #2d2d2d 66.66%, #262626 100%);
212
212
 
213
213
  /* switch */
214
214
  --zdt_switch_default_off_bg: var(--zdt_cta_grey_35_border);
@@ -15,14 +15,14 @@
15
15
 
16
16
  /* tag */
17
17
  --zdt_tag_dark_text: #d0d0d4;
18
- --zdt_tag_dark_bg: #42485f;
18
+ --zdt_tag_dark_bg: #262626;
19
19
  --zdt_tag_dark_hover_text: #d0d0d4;
20
20
  --zdt_tag_dark_hover_bg: var(--dot_matterhorn);
21
21
  --zdt_tag_dark_close_bg: #864654;
22
22
  --zdt_tag_dark_close_text: var(--dot_brightRed);
23
23
 
24
24
  /* multiselect */
25
- --zdt_multiselect_dark_border: var(--dot_mulledwine);
25
+ --zdt_multiselect_dark_border: #585858;
26
26
  --zdt_multiselect_darkmsg_bg: #212121;
27
27
  --zdt_multiselect_darkmsg_text: #d0d0d4;
28
28
  --zdt_multiselect_darkdelete_hover_text: var(--dot_platinum);
@@ -15,14 +15,14 @@
15
15
 
16
16
  /* tag */
17
17
  --zdt_tag_dark_text: #d0d0d4;
18
- --zdt_tag_dark_bg: #42485f;
18
+ --zdt_tag_dark_bg: #262626;
19
19
  --zdt_tag_dark_hover_text: #d0d0d4;
20
20
  --zdt_tag_dark_hover_bg: var(--dot_matterhorn);
21
21
  --zdt_tag_dark_close_bg: #864654;
22
22
  --zdt_tag_dark_close_text: var(--dot_brightRed);
23
23
 
24
24
  /* multiselect */
25
- --zdt_multiselect_dark_border: var(--dot_mulledwine);
25
+ --zdt_multiselect_dark_border: #585858;
26
26
  --zdt_multiselect_darkmsg_bg: #212121;
27
27
  --zdt_multiselect_darkmsg_text: #d0d0d4;
28
28
  --zdt_multiselect_darkdelete_hover_text: var(--dot_platinum);
@@ -15,14 +15,14 @@
15
15
 
16
16
  /* tag */
17
17
  --zdt_tag_dark_text: #d0d0d4;
18
- --zdt_tag_dark_bg: #42485f;
18
+ --zdt_tag_dark_bg: #262626;
19
19
  --zdt_tag_dark_hover_text: #d0d0d4;
20
20
  --zdt_tag_dark_hover_bg: var(--dot_matterhorn);
21
21
  --zdt_tag_dark_close_bg: #864654;
22
22
  --zdt_tag_dark_close_text: var(--dot_brightRed);
23
23
 
24
24
  /* multiselect */
25
- --zdt_multiselect_dark_border: var(--dot_mulledwine);
25
+ --zdt_multiselect_dark_border: #585858;
26
26
  --zdt_multiselect_darkmsg_bg: #212121;
27
27
  --zdt_multiselect_darkmsg_text: #d0d0d4;
28
28
  --zdt_multiselect_darkdelete_hover_text: var(--dot_platinum);
@@ -15,14 +15,14 @@
15
15
 
16
16
  /* tag */
17
17
  --zdt_tag_dark_text: #d0d0d4;
18
- --zdt_tag_dark_bg: #42485f;
18
+ --zdt_tag_dark_bg: #262626;
19
19
  --zdt_tag_dark_hover_text: #d0d0d4;
20
20
  --zdt_tag_dark_hover_bg: var(--dot_matterhorn);
21
21
  --zdt_tag_dark_close_bg: #864654;
22
22
  --zdt_tag_dark_close_text: var(--dot_brightRed);
23
23
 
24
24
  /* multiselect */
25
- --zdt_multiselect_dark_border: var(--dot_mulledwine);
25
+ --zdt_multiselect_dark_border: #585858;
26
26
  --zdt_multiselect_darkmsg_bg: #212121;
27
27
  --zdt_multiselect_darkmsg_text: #d0d0d4;
28
28
  --zdt_multiselect_darkdelete_hover_text: var(--dot_platinum);
@@ -15,14 +15,14 @@
15
15
 
16
16
  /* tag */
17
17
  --zdt_tag_dark_text: #d0d0d4;
18
- --zdt_tag_dark_bg: #42485f;
18
+ --zdt_tag_dark_bg: #262626;
19
19
  --zdt_tag_dark_hover_text: #d0d0d4;
20
20
  --zdt_tag_dark_hover_bg: var(--dot_matterhorn);
21
21
  --zdt_tag_dark_close_bg: #864654;
22
22
  --zdt_tag_dark_close_text: var(--dot_brightRed);
23
23
 
24
24
  /* multiselect */
25
- --zdt_multiselect_dark_border: var(--dot_mulledwine);
25
+ --zdt_multiselect_dark_border: #585858;
26
26
  --zdt_multiselect_darkmsg_bg: #212121;
27
27
  --zdt_multiselect_darkmsg_text: #d0d0d4;
28
28
  --zdt_multiselect_darkdelete_hover_text: var(--dot_platinum);
@@ -28,7 +28,7 @@ export default class AppContainer extends React.Component {
28
28
 
29
29
  mouseOverDispatch(e) {
30
30
  if (this.tooltipRef) {
31
- this.tooltipRef.handleOver(e);
31
+ this.tooltipRef.handleOver(e, this.containerElement);
32
32
  }
33
33
  }
34
34
 
@@ -79,7 +79,8 @@ export default class CheckBox extends React.Component {
79
79
  role: role,
80
80
  "aria-label": ariaLabel,
81
81
  "aria-labelledby": ariaLabelledby,
82
- "aria-hidden": ariaHidden
82
+ "aria-hidden": ariaHidden,
83
+ "data-selector": id
83
84
  }, CheckBoxProps), /*#__PURE__*/React.createElement(Box, {
84
85
  className: `${style.boxContainer} ${style[size]} ${customCBoxSize} ${isFilled ? style.filled : ''}`
85
86
  }, /*#__PURE__*/React.createElement("input", {
@@ -198,7 +198,7 @@
198
198
  --listitem_padding: var(--zd_size10) var(--zd_size25) var(--zd_size10) var(--zd_size39);
199
199
  }
200
200
  .responsiveHeight {
201
- --listitem_height: var(--zd_size45);
201
+ --listitem_min_height: var(--zd_size45);
202
202
  font-size: var(--zd_font_size15);
203
203
  padding-top: var(--zd_size10);
204
204
  padding-bottom: var(--zd_size10);
@@ -24,6 +24,7 @@ import style from './MultiSelect.module.css';
24
24
 
25
25
  import { debounce, scrollTo, getIsEmptyValue, getSearchString } from '../utils/Common.js';
26
26
  import { makeGetMultiSelectSelectedOptions, makeGetGroupSelectOptions, optionIdGrouping, makeGetGroupSelectFilterSuggestions, makeGetOptionIdChange, extractOptionId, makeFormatOptions, makeObjectConcat } from '../utils/dropDownUtils';
27
+ import { getLibraryConfig } from '../Provider/Config';
27
28
  /* eslint-disable react/forbid-component-props */
28
29
 
29
30
  /* eslint-disable react/no-unused-prop-types */
@@ -854,9 +855,9 @@ class AdvancedGroupMultiSelect extends React.Component {
854
855
  htmlId,
855
856
  i18nKeys,
856
857
  a11y,
857
- isSearchClearOnSelect,
858
858
  palette,
859
- needEffect
859
+ needEffect,
860
+ autoComplete
860
861
  } = this.props;
861
862
  let {
862
863
  clearText = 'Clear all'
@@ -941,7 +942,7 @@ class AdvancedGroupMultiSelect extends React.Component {
941
942
  ariaOwns: setAriaId,
942
943
  ariaDescribedby: ariaErrorId
943
944
  },
944
- autoComplete: false
945
+ autoComplete: autoComplete
945
946
  })), !isReadOnly && !isDisabled && selectedGroupOptions.length > 1 ? /*#__PURE__*/React.createElement(Box, {
946
947
  className: style.delete,
947
948
  dataId: `${dataId}_clearIcon`,
@@ -1032,6 +1033,7 @@ class AdvancedGroupMultiSelect extends React.Component {
1032
1033
 
1033
1034
  AdvancedGroupMultiSelect.defaultProps = {
1034
1035
  animationStyle: 'bounce',
1036
+ autoComplete: getLibraryConfig('autoComplete'),
1035
1037
  dataId: 'multiSelect',
1036
1038
  defaultDropBoxPosition: 'bottom',
1037
1039
  dropBoxSize: 'small',
@@ -1066,6 +1068,7 @@ AdvancedGroupMultiSelect.defaultProps = {
1066
1068
  };
1067
1069
  AdvancedGroupMultiSelect.propTypes = {
1068
1070
  animationStyle: PropTypes.string,
1071
+ autoComplete: PropTypes.bool,
1069
1072
  borderColor: PropTypes.oneOf(['transparent', 'default']),
1070
1073
  customClass: PropTypes.string,
1071
1074
  dataId: PropTypes.string,
@@ -24,6 +24,7 @@ import style from './MultiSelect.module.css';
24
24
 
25
25
  import { debounce, scrollTo, bind, getIsEmptyValue, getSearchString } from '../utils/Common.js';
26
26
  import { makeFormatOptions, makeGetMultiSelectFilterSuggestions as makeGetFilterSuggestions, makeGetMultiSelectSelectedOptions as makeGetSelectedOptions, makeObjectConcat, filterSelectedOptions, makeGetIsShowClearIcon } from '../utils/dropDownUtils';
27
+ import { getLibraryConfig } from '../Provider/Config';
27
28
  /* eslint-disable react/forbid-component-props */
28
29
 
29
30
  /* eslint-disable react/no-unused-prop-types */
@@ -869,7 +870,8 @@ export class MultiSelectComponent extends React.Component {
869
870
  getFooter,
870
871
  needEffect,
871
872
  disabledOptions,
872
- boxSize
873
+ boxSize,
874
+ autoComplete
873
875
  } = this.props;
874
876
  const {
875
877
  clearText = 'Clear all',
@@ -960,7 +962,7 @@ export class MultiSelectComponent extends React.Component {
960
962
  ariaRequired: true,
961
963
  ariaDescribedby: ariaErrorId
962
964
  },
963
- autoComplete: false
965
+ autoComplete: autoComplete
964
966
  }, /*#__PURE__*/React.createElement(Container, {
965
967
  alignBox: "row",
966
968
  align: "vertical"
@@ -1035,6 +1037,7 @@ export class MultiSelectComponent extends React.Component {
1035
1037
  }
1036
1038
  MultiSelectComponent.propTypes = {
1037
1039
  animationStyle: PropTypes.string,
1040
+ autoComplete: PropTypes.bool,
1038
1041
  borderColor: PropTypes.oneOf(['transparent', 'default', 'dark']),
1039
1042
  closePopupOnly: PropTypes.func,
1040
1043
  dataId: PropTypes.string,
@@ -1114,6 +1117,7 @@ MultiSelectComponent.propTypes = {
1114
1117
  };
1115
1118
  MultiSelectComponent.defaultProps = {
1116
1119
  animationStyle: 'bounce',
1120
+ autoComplete: getLibraryConfig('autoComplete'),
1117
1121
  dataId: 'multiSelect',
1118
1122
  dropBoxSize: 'small',
1119
1123
  isAnimate: true,
@@ -6,7 +6,10 @@ let id = {
6
6
  scrollFetchLimit: 80,
7
7
  isReducedMotion: false,
8
8
  direction: 'ltr',
9
- tooltipDebounce: 175
9
+ tooltipDebounce: 175,
10
+ tooltipContainer: 'window',
11
+ // root || window
12
+ autoComplete: false
10
13
  };
11
14
  export function getLibraryConfig(key) {
12
15
  return id[key];
@@ -127,7 +127,7 @@ export class GroupSelectComponent extends PureComponent {
127
127
  let {
128
128
  selectedId,
129
129
  hoverIndex
130
- } = this.handleGetSelectedId(this.props, allOptionIds);
130
+ } = this.handleGetSelectedId(this.props, newOptionIds);
131
131
  newSelectedId = selectedId;
132
132
  this.setState({
133
133
  selectedId,
@@ -22,6 +22,7 @@ import { debounce, scrollTo, getIsEmptyValue, getSearchString } from '../utils/C
22
22
  /**** CSS ****/
23
23
 
24
24
  import style from './Select.module.css';
25
+ import { getLibraryConfig } from '../Provider/Config';
25
26
  /* eslint-disable react/no-deprecated */
26
27
 
27
28
  /* eslint-disable react/no-unused-prop-types */
@@ -715,7 +716,8 @@ export class SelectComponent extends Component {
715
716
  htmlId,
716
717
  children,
717
718
  iconOnHover,
718
- customProps
719
+ customProps,
720
+ autoComplete
719
721
  } = this.props;
720
722
  let {
721
723
  TextBoxIcon_i18n,
@@ -783,7 +785,7 @@ export class SelectComponent extends Component {
783
785
  borderColor: borderColor,
784
786
  htmlId: htmlId,
785
787
  isFocus: isPopupReady,
786
- autoComplete: false,
788
+ autoComplete: autoComplete,
787
789
  customProps: {
788
790
  TextBoxProps: TextBoxProps
789
791
  }
@@ -830,7 +832,7 @@ export class SelectComponent extends Component {
830
832
  onKeyPress: this.handleValueInputChange,
831
833
  borderColor: borderColor,
832
834
  htmlId: htmlId,
833
- autoComplete: false,
835
+ autoComplete: autoComplete,
834
836
  isFocus: isPopupReady,
835
837
  customProps: TextBoxProps
836
838
  })), !isReadOnly && !isDisabled && isPopupOpen ? /*#__PURE__*/React.createElement(DropBox, {
@@ -865,7 +867,7 @@ export class SelectComponent extends Component {
865
867
  onClear: this.handleClearSearch,
866
868
  dataId: `${dataId}_search`,
867
869
  i18nKeys: TextBoxIcon_i18n,
868
- autoComplete: false,
870
+ autoComplete: autoComplete,
869
871
  customProps: {
870
872
  TextBoxProps: DropdownSearchTextBoxProps
871
873
  }
@@ -905,6 +907,7 @@ export class SelectComponent extends Component {
905
907
  }
906
908
  SelectComponent.propTypes = {
907
909
  animationStyle: PropTypes.string,
910
+ autoComplete: PropTypes.bool,
908
911
  autoSelectDebouneTime: PropTypes.number,
909
912
  autoSelectOnType: PropTypes.bool,
910
913
  borderColor: PropTypes.oneOf(['transparent', 'default']),
@@ -990,6 +993,7 @@ SelectComponent.propTypes = {
990
993
  };
991
994
  SelectComponent.defaultProps = {
992
995
  animationStyle: 'bounce',
996
+ autoComplete: getLibraryConfig('autoComplete'),
993
997
  autoSelectOnType: true,
994
998
  dataId: 'selectComponent',
995
999
  dropBoxSize: 'small',
@@ -1,5 +1,6 @@
1
1
  import React from 'react';
2
2
  import PropTypes from 'prop-types';
3
+ import { getLibraryConfig } from '../Provider/Config';
3
4
  import style from './Tooltip.module.css';
4
5
  export default class Tooltip extends React.Component {
5
6
  constructor(props) {
@@ -90,7 +91,8 @@ export default class Tooltip extends React.Component {
90
91
  };
91
92
  }
92
93
 
93
- handleOver(e) {
94
+ handleOver(e, targetElement) {
95
+ let containerElement = getLibraryConfig('tooltipContainer') === 'root' && targetElement ? targetElement : document.body;
94
96
  let element = e.target;
95
97
  let titleDiv = element.hasAttribute('data-title') || element.hasAttribute('title') ? element : element.closest('[data-title]') || element.closest('[title]');
96
98
 
@@ -146,12 +148,14 @@ export default class Tooltip extends React.Component {
146
148
 
147
149
  let isHtml = titleDiv.getAttribute('data-ishtml');
148
150
  let dataTooltipnoArrow = titleDiv.getAttribute('data-tooltip-noarrow') === 'true' ? true : false;
151
+ let dataTooltipWrap = titleDiv.getAttribute('data-title-wrap') === 'true' ? true : false;
149
152
  let clientRect = titleDiv.getBoundingClientRect();
150
- let boxLayout = document.body.getBoundingClientRect();
153
+ let boxLayout = containerElement.getBoundingClientRect();
151
154
  this.setState({
152
155
  title,
153
156
  isHtml,
154
- dataTooltipnoArrow
157
+ dataTooltipnoArrow,
158
+ dataTooltipWrap
155
159
  }, () => {
156
160
  let tooltip = this.toolTip;
157
161
 
@@ -177,8 +181,8 @@ export default class Tooltip extends React.Component {
177
181
  let tooltipLeft;
178
182
  /* offset width, height of body */
179
183
 
180
- let bodyWidth = document.body.offsetWidth;
181
- let bodyHeight = document.body.offsetHeight;
184
+ let bodyWidth = containerElement.offsetWidth;
185
+ let bodyHeight = containerElement.offsetHeight;
182
186
  let isArrowHorizontal = false;
183
187
  let isArrowDown = false;
184
188
  let isArrowRight = false;
@@ -424,7 +428,8 @@ export default class Tooltip extends React.Component {
424
428
  isArrowHorizontal,
425
429
  width,
426
430
  isHtml,
427
- dataTooltipnoArrow
431
+ dataTooltipnoArrow,
432
+ dataTooltipWrap
428
433
  } = this.state;
429
434
  let {
430
435
  dataId,
@@ -432,6 +437,7 @@ export default class Tooltip extends React.Component {
432
437
  } = this.props;
433
438
  let arrowStyle = isArrowHorizontal ? isArrowRight ? style.arrowRight : style.arrowLeft : isArrowDown ? style.arrowDown : style.arrowUp;
434
439
  title = title ? title.trim() : null;
440
+ let tooltipCss = `${style.tooltipcont} ${dataTooltipWrap ? style.tooltipWrapCont : style.tooltipNormalCont}`;
435
441
  return title ? /*#__PURE__*/React.createElement("div", {
436
442
  className: `${customClass} ${style.tooltiptext}`,
437
443
  style: {
@@ -448,12 +454,12 @@ export default class Tooltip extends React.Component {
448
454
  top: arrowTop
449
455
  }
450
456
  }) : null, isHtml ? /*#__PURE__*/React.createElement("div", {
451
- className: style.tooltipcont,
457
+ className: tooltipCss,
452
458
  dangerouslySetInnerHTML: {
453
459
  __html: title
454
460
  }
455
461
  }) : /*#__PURE__*/React.createElement("div", {
456
- className: style.tooltipcont
462
+ className: tooltipCss
457
463
  }, title)) : null;
458
464
  }
459
465
 
@@ -17,7 +17,6 @@
17
17
  max-width: 420px;
18
18
  line-height: var(--zd_size20);
19
19
  min-height: var(--zd_size24);
20
- white-space: normal;
21
20
  overflow: hidden;
22
21
  background-color: var(--zdt_tooltip_default_bg);
23
22
  padding: 0 var(--zd_size10);
@@ -25,6 +24,12 @@
25
24
  border-color: transparent;
26
25
  border-radius: var(--zd_size4);
27
26
  }
27
+ .tooltipWrapCont {
28
+ white-space: pre-wrap;
29
+ }
30
+ .tooltipNormalCont {
31
+ white-space: normal;
32
+ }
28
33
  .tooltiparrow {
29
34
  content: '';
30
35
  position: absolute;
@@ -84,7 +84,7 @@ var AppContainer = /*#__PURE__*/function (_React$Component) {
84
84
  key: "mouseOverDispatch",
85
85
  value: function mouseOverDispatch(e) {
86
86
  if (this.tooltipRef) {
87
- this.tooltipRef.handleOver(e);
87
+ this.tooltipRef.handleOver(e, this.containerElement);
88
88
  }
89
89
  }
90
90
  }, {
@@ -127,7 +127,8 @@ var CheckBox = /*#__PURE__*/function (_React$Component) {
127
127
  role: role,
128
128
  "aria-label": ariaLabel,
129
129
  "aria-labelledby": ariaLabelledby,
130
- "aria-hidden": ariaHidden
130
+ "aria-hidden": ariaHidden,
131
+ "data-selector": id
131
132
  }, CheckBoxProps), /*#__PURE__*/_react["default"].createElement(_Layout.Box, {
132
133
  className: "".concat(_CheckBoxModule["default"].boxContainer, " ").concat(_CheckBoxModule["default"][size], " ").concat(customCBoxSize, " ").concat(isFilled ? _CheckBoxModule["default"].filled : '')
133
134
  }, /*#__PURE__*/_react["default"].createElement("input", {
@@ -198,7 +198,7 @@
198
198
  --listitem_padding: var(--zd_size10) var(--zd_size25) var(--zd_size10) var(--zd_size39);
199
199
  }
200
200
  .responsiveHeight {
201
- --listitem_height: var(--zd_size45);
201
+ --listitem_min_height: var(--zd_size45);
202
202
  font-size: var(--zd_font_size15);
203
203
  padding-top: var(--zd_size10);
204
204
  padding-bottom: var(--zd_size10);
@@ -43,6 +43,8 @@ var _Common = require("../utils/Common.js");
43
43
 
44
44
  var _dropDownUtils = require("../utils/dropDownUtils");
45
45
 
46
+ var _Config = require("../Provider/Config");
47
+
46
48
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
47
49
 
48
50
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
@@ -944,9 +946,9 @@ var AdvancedGroupMultiSelect = /*#__PURE__*/function (_React$Component) {
944
946
  htmlId = _this$props8.htmlId,
945
947
  i18nKeys = _this$props8.i18nKeys,
946
948
  a11y = _this$props8.a11y,
947
- isSearchClearOnSelect = _this$props8.isSearchClearOnSelect,
948
949
  palette = _this$props8.palette,
949
- needEffect = _this$props8.needEffect;
950
+ needEffect = _this$props8.needEffect,
951
+ autoComplete = _this$props8.autoComplete;
950
952
  var _i18nKeys = i18nKeys,
951
953
  _i18nKeys$clearText = _i18nKeys.clearText,
952
954
  clearText = _i18nKeys$clearText === void 0 ? 'Clear all' : _i18nKeys$clearText;
@@ -1030,7 +1032,7 @@ var AdvancedGroupMultiSelect = /*#__PURE__*/function (_React$Component) {
1030
1032
  ariaOwns: setAriaId,
1031
1033
  ariaDescribedby: ariaErrorId
1032
1034
  },
1033
- autoComplete: false
1035
+ autoComplete: autoComplete
1034
1036
  })), !isReadOnly && !isDisabled && selectedGroupOptions.length > 1 ? /*#__PURE__*/_react["default"].createElement(_Layout.Box, {
1035
1037
  className: _MultiSelectModule["default"]["delete"],
1036
1038
  dataId: "".concat(dataId, "_clearIcon"),
@@ -1122,6 +1124,7 @@ var AdvancedGroupMultiSelect = /*#__PURE__*/function (_React$Component) {
1122
1124
 
1123
1125
  AdvancedGroupMultiSelect.defaultProps = {
1124
1126
  animationStyle: 'bounce',
1127
+ autoComplete: (0, _Config.getLibraryConfig)('autoComplete'),
1125
1128
  dataId: 'multiSelect',
1126
1129
  defaultDropBoxPosition: 'bottom',
1127
1130
  dropBoxSize: 'small',
@@ -1156,6 +1159,7 @@ AdvancedGroupMultiSelect.defaultProps = {
1156
1159
  };
1157
1160
  AdvancedGroupMultiSelect.propTypes = {
1158
1161
  animationStyle: _propTypes["default"].string,
1162
+ autoComplete: _propTypes["default"].bool,
1159
1163
  borderColor: _propTypes["default"].oneOf(['transparent', 'default']),
1160
1164
  customClass: _propTypes["default"].string,
1161
1165
  dataId: _propTypes["default"].string,
@@ -41,6 +41,8 @@ var _Common = require("../utils/Common.js");
41
41
 
42
42
  var _dropDownUtils = require("../utils/dropDownUtils");
43
43
 
44
+ var _Config = require("../Provider/Config");
45
+
44
46
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
45
47
 
46
48
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
@@ -942,7 +944,8 @@ var MultiSelectComponent = /*#__PURE__*/function (_React$Component) {
942
944
  getFooter = _this$props13.getFooter,
943
945
  needEffect = _this$props13.needEffect,
944
946
  disabledOptions = _this$props13.disabledOptions,
945
- boxSize = _this$props13.boxSize;
947
+ boxSize = _this$props13.boxSize,
948
+ autoComplete = _this$props13.autoComplete;
946
949
  var _i18nKeys = i18nKeys,
947
950
  _i18nKeys$clearText = _i18nKeys.clearText,
948
951
  clearText = _i18nKeys$clearText === void 0 ? 'Clear all' : _i18nKeys$clearText,
@@ -1031,7 +1034,7 @@ var MultiSelectComponent = /*#__PURE__*/function (_React$Component) {
1031
1034
  ariaRequired: true,
1032
1035
  ariaDescribedby: ariaErrorId
1033
1036
  },
1034
- autoComplete: false
1037
+ autoComplete: autoComplete
1035
1038
  }, /*#__PURE__*/_react["default"].createElement(_Layout.Container, {
1036
1039
  alignBox: "row",
1037
1040
  align: "vertical"
@@ -1110,6 +1113,7 @@ var MultiSelectComponent = /*#__PURE__*/function (_React$Component) {
1110
1113
  exports.MultiSelectComponent = MultiSelectComponent;
1111
1114
  MultiSelectComponent.propTypes = {
1112
1115
  animationStyle: _propTypes["default"].string,
1116
+ autoComplete: _propTypes["default"].bool,
1113
1117
  borderColor: _propTypes["default"].oneOf(['transparent', 'default', 'dark']),
1114
1118
  closePopupOnly: _propTypes["default"].func,
1115
1119
  dataId: _propTypes["default"].string,
@@ -1189,6 +1193,7 @@ MultiSelectComponent.propTypes = {
1189
1193
  };
1190
1194
  MultiSelectComponent.defaultProps = {
1191
1195
  animationStyle: 'bounce',
1196
+ autoComplete: (0, _Config.getLibraryConfig)('autoComplete'),
1192
1197
  dataId: 'multiSelect',
1193
1198
  dropBoxSize: 'small',
1194
1199
  isAnimate: true,
@@ -13,7 +13,10 @@ var id = {
13
13
  scrollFetchLimit: 80,
14
14
  isReducedMotion: false,
15
15
  direction: 'ltr',
16
- tooltipDebounce: 175
16
+ tooltipDebounce: 175,
17
+ tooltipContainer: 'window',
18
+ // root || window
19
+ autoComplete: false
17
20
  };
18
21
 
19
22
  function getLibraryConfig(key) {
@@ -192,7 +192,7 @@ var GroupSelectComponent = /*#__PURE__*/function (_PureComponent) {
192
192
  }
193
193
 
194
194
  if (selectedOption !== prevProps.selectedOption) {
195
- var _this$handleGetSelect2 = this.handleGetSelectedId(this.props, allOptionIds),
195
+ var _this$handleGetSelect2 = this.handleGetSelectedId(this.props, newOptionIds),
196
196
  _selectedId = _this$handleGetSelect2.selectedId,
197
197
  _hoverIndex = _this$handleGetSelect2.hoverIndex;
198
198
 
@@ -37,6 +37,8 @@ var _Common = require("../utils/Common.js");
37
37
 
38
38
  var _SelectModule = _interopRequireDefault(require("./Select.module.css"));
39
39
 
40
+ var _Config = require("../Provider/Config");
41
+
40
42
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
41
43
 
42
44
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
@@ -751,7 +753,8 @@ var SelectComponent = /*#__PURE__*/function (_Component) {
751
753
  htmlId = _this$props11.htmlId,
752
754
  children = _this$props11.children,
753
755
  iconOnHover = _this$props11.iconOnHover,
754
- customProps = _this$props11.customProps;
756
+ customProps = _this$props11.customProps,
757
+ autoComplete = _this$props11.autoComplete;
755
758
  var _i18nKeys = i18nKeys,
756
759
  TextBoxIcon_i18n = _i18nKeys.TextBoxIcon_i18n,
757
760
  _i18nKeys$TextBox_all = _i18nKeys.TextBox_ally_label,
@@ -818,7 +821,7 @@ var SelectComponent = /*#__PURE__*/function (_Component) {
818
821
  borderColor: borderColor,
819
822
  htmlId: htmlId,
820
823
  isFocus: isPopupReady,
821
- autoComplete: false,
824
+ autoComplete: autoComplete,
822
825
  customProps: {
823
826
  TextBoxProps: TextBoxProps
824
827
  }
@@ -865,7 +868,7 @@ var SelectComponent = /*#__PURE__*/function (_Component) {
865
868
  onKeyPress: this.handleValueInputChange,
866
869
  borderColor: borderColor,
867
870
  htmlId: htmlId,
868
- autoComplete: false,
871
+ autoComplete: autoComplete,
869
872
  isFocus: isPopupReady,
870
873
  customProps: TextBoxProps
871
874
  })), !isReadOnly && !isDisabled && isPopupOpen ? /*#__PURE__*/_react["default"].createElement(_DropBox["default"], {
@@ -900,7 +903,7 @@ var SelectComponent = /*#__PURE__*/function (_Component) {
900
903
  onClear: this.handleClearSearch,
901
904
  dataId: "".concat(dataId, "_search"),
902
905
  i18nKeys: TextBoxIcon_i18n,
903
- autoComplete: false,
906
+ autoComplete: autoComplete,
904
907
  customProps: {
905
908
  TextBoxProps: DropdownSearchTextBoxProps
906
909
  }
@@ -944,6 +947,7 @@ var SelectComponent = /*#__PURE__*/function (_Component) {
944
947
  exports.SelectComponent = SelectComponent;
945
948
  SelectComponent.propTypes = {
946
949
  animationStyle: _propTypes["default"].string,
950
+ autoComplete: _propTypes["default"].bool,
947
951
  autoSelectDebouneTime: _propTypes["default"].number,
948
952
  autoSelectOnType: _propTypes["default"].bool,
949
953
  borderColor: _propTypes["default"].oneOf(['transparent', 'default']),
@@ -1029,6 +1033,7 @@ SelectComponent.propTypes = {
1029
1033
  };
1030
1034
  SelectComponent.defaultProps = {
1031
1035
  animationStyle: 'bounce',
1036
+ autoComplete: (0, _Config.getLibraryConfig)('autoComplete'),
1032
1037
  autoSelectOnType: true,
1033
1038
  dataId: 'selectComponent',
1034
1039
  dropBoxSize: 'small',
@@ -11,6 +11,8 @@ var _react = _interopRequireDefault(require("react"));
11
11
 
12
12
  var _propTypes = _interopRequireDefault(require("prop-types"));
13
13
 
14
+ var _Config = require("../Provider/Config");
15
+
14
16
  var _TooltipModule = _interopRequireDefault(require("./Tooltip.module.css"));
15
17
 
16
18
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
@@ -137,9 +139,10 @@ var Tooltip = /*#__PURE__*/function (_React$Component) {
137
139
  }
138
140
  }, {
139
141
  key: "handleOver",
140
- value: function handleOver(e) {
142
+ value: function handleOver(e, targetElement) {
141
143
  var _this2 = this;
142
144
 
145
+ var containerElement = (0, _Config.getLibraryConfig)('tooltipContainer') === 'root' && targetElement ? targetElement : document.body;
143
146
  var element = e.target;
144
147
  var titleDiv = element.hasAttribute('data-title') || element.hasAttribute('title') ? element : element.closest('[data-title]') || element.closest('[title]');
145
148
 
@@ -195,12 +198,14 @@ var Tooltip = /*#__PURE__*/function (_React$Component) {
195
198
 
196
199
  var isHtml = titleDiv.getAttribute('data-ishtml');
197
200
  var dataTooltipnoArrow = titleDiv.getAttribute('data-tooltip-noarrow') === 'true' ? true : false;
201
+ var dataTooltipWrap = titleDiv.getAttribute('data-title-wrap') === 'true' ? true : false;
198
202
  var clientRect = titleDiv.getBoundingClientRect();
199
- var boxLayout = document.body.getBoundingClientRect();
203
+ var boxLayout = containerElement.getBoundingClientRect();
200
204
  this.setState({
201
205
  title: title,
202
206
  isHtml: isHtml,
203
- dataTooltipnoArrow: dataTooltipnoArrow
207
+ dataTooltipnoArrow: dataTooltipnoArrow,
208
+ dataTooltipWrap: dataTooltipWrap
204
209
  }, function () {
205
210
  var tooltip = _this2.toolTip;
206
211
 
@@ -226,8 +231,8 @@ var Tooltip = /*#__PURE__*/function (_React$Component) {
226
231
  var tooltipLeft;
227
232
  /* offset width, height of body */
228
233
 
229
- var bodyWidth = document.body.offsetWidth;
230
- var bodyHeight = document.body.offsetHeight;
234
+ var bodyWidth = containerElement.offsetWidth;
235
+ var bodyHeight = containerElement.offsetHeight;
231
236
  var isArrowHorizontal = false;
232
237
  var isArrowDown = false;
233
238
  var isArrowRight = false;
@@ -480,12 +485,14 @@ var Tooltip = /*#__PURE__*/function (_React$Component) {
480
485
  isArrowHorizontal = _this$state.isArrowHorizontal,
481
486
  width = _this$state.width,
482
487
  isHtml = _this$state.isHtml,
483
- dataTooltipnoArrow = _this$state.dataTooltipnoArrow;
488
+ dataTooltipnoArrow = _this$state.dataTooltipnoArrow,
489
+ dataTooltipWrap = _this$state.dataTooltipWrap;
484
490
  var _this$props = this.props,
485
491
  dataId = _this$props.dataId,
486
492
  customClass = _this$props.customClass;
487
493
  var arrowStyle = isArrowHorizontal ? isArrowRight ? _TooltipModule["default"].arrowRight : _TooltipModule["default"].arrowLeft : isArrowDown ? _TooltipModule["default"].arrowDown : _TooltipModule["default"].arrowUp;
488
494
  title = title ? title.trim() : null;
495
+ var tooltipCss = "".concat(_TooltipModule["default"].tooltipcont, " ").concat(dataTooltipWrap ? _TooltipModule["default"].tooltipWrapCont : _TooltipModule["default"].tooltipNormalCont);
489
496
  return title ? /*#__PURE__*/_react["default"].createElement("div", {
490
497
  className: "".concat(customClass, " ").concat(_TooltipModule["default"].tooltiptext),
491
498
  style: {
@@ -502,12 +509,12 @@ var Tooltip = /*#__PURE__*/function (_React$Component) {
502
509
  top: arrowTop
503
510
  }
504
511
  }) : null, isHtml ? /*#__PURE__*/_react["default"].createElement("div", {
505
- className: _TooltipModule["default"].tooltipcont,
512
+ className: tooltipCss,
506
513
  dangerouslySetInnerHTML: {
507
514
  __html: title
508
515
  }
509
516
  }) : /*#__PURE__*/_react["default"].createElement("div", {
510
- className: _TooltipModule["default"].tooltipcont
517
+ className: tooltipCss
511
518
  }, title)) : null;
512
519
  }
513
520
  }]);
@@ -17,7 +17,6 @@
17
17
  max-width: 420px;
18
18
  line-height: var(--zd_size20);
19
19
  min-height: var(--zd_size24);
20
- white-space: normal;
21
20
  overflow: hidden;
22
21
  background-color: var(--zdt_tooltip_default_bg);
23
22
  padding: 0 var(--zd_size10);
@@ -25,6 +24,12 @@
25
24
  border-color: transparent;
26
25
  border-radius: var(--zd_size4);
27
26
  }
27
+ .tooltipWrapCont {
28
+ white-space: pre-wrap;
29
+ }
30
+ .tooltipNormalCont {
31
+ white-space: normal;
32
+ }
28
33
  .tooltiparrow {
29
34
  content: '';
30
35
  position: absolute;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zohodesk/components",
3
- "version": "1.0.0-temp-59",
3
+ "version": "1.0.0-temp-62",
4
4
  "main": "lib/index.js",
5
5
  "module": "es/index.js",
6
6
  "jsnext:main": "es/index.js",
@@ -36,11 +36,11 @@
36
36
  "devDependencies": {
37
37
  "@zohodesk/docstool": "1.0.0-alpha-2",
38
38
  "@zohodesk/variables": "1.0.0-beta.29",
39
- "@zohodesk/icons": "1.0.0-beta.96",
39
+ "@zohodesk/icons": "1.0.0-beta.98",
40
40
  "@zohodesk/virtualizer": "1.0.3",
41
41
  "velocity-react": "1.4.3",
42
42
  "react-sortable-hoc": "^0.8.3",
43
- "@zohodesk/svg": "1.0.0-beta.41"
43
+ "@zohodesk/svg": "1.0.0-beta.42"
44
44
  },
45
45
  "dependencies": {
46
46
  "hoist-non-react-statics": "3.0.1",
@@ -49,9 +49,9 @@
49
49
  "selectn": "1.1.2"
50
50
  },
51
51
  "peerDependencies": {
52
- "@zohodesk/icons": "1.0.0-beta.96",
52
+ "@zohodesk/icons": "1.0.0-beta.98",
53
53
  "@zohodesk/variables": "1.0.0-beta.29",
54
- "@zohodesk/svg": "1.0.0-beta.41",
54
+ "@zohodesk/svg": "1.0.0-beta.42",
55
55
  "@zohodesk/virtualizer": "1.0.3",
56
56
  "velocity-react": "1.4.3",
57
57
  "react-sortable-hoc": "^0.8.3"