@zohodesk/components 1.6.32 → 1.6.34

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 (162) hide show
  1. package/CHANGELOG.md +9 -0
  2. package/es/Accordion/__tests__/Accordion.spec.js +117 -3
  3. package/es/Accordion/__tests__/AccordionItem.spec.js +118 -6
  4. package/es/Accordion/__tests__/__snapshots__/Accordion.spec.js.snap +344 -2
  5. package/es/Accordion/__tests__/__snapshots__/AccordionItem.spec.js.snap +155 -3
  6. package/es/Animation/__tests__/Animation.spec.js +28 -4
  7. package/es/Animation/__tests__/__snapshots__/Animation.spec.js.snap +92 -2
  8. package/es/Button/css/Button.module.css +2 -3
  9. package/es/CheckBox/CheckBox.js +1 -1
  10. package/es/CheckBox/__tests__/__snapshots__/CheckBox.spec.js.snap +1 -1
  11. package/es/DateTime/DateTime.module.css +2 -2
  12. package/es/DateTime/__tests__/CalendarView.spec.js +70 -3
  13. package/es/DateTime/__tests__/DateTime.spec.js +89 -6
  14. package/es/DateTime/__tests__/DateTimePopupFooter.spec.js +20 -2
  15. package/es/DateTime/__tests__/DateTimePopupHeader.spec.js +29 -2
  16. package/es/DateTime/__tests__/DateWidget.spec.js +34 -2
  17. package/es/DateTime/__tests__/DaysRow.spec.js +19 -3
  18. package/es/DateTime/__tests__/Time.spec.js +50 -3
  19. package/es/DateTime/__tests__/YearView.spec.js +60 -3
  20. package/es/DateTime/__tests__/__snapshots__/CalendarView.spec.js.snap +2907 -170
  21. package/es/DateTime/__tests__/__snapshots__/DateTime.spec.js.snap +4392 -108
  22. package/es/DateTime/__tests__/__snapshots__/DateTimePopupFooter.spec.js.snap +67 -1
  23. package/es/DateTime/__tests__/__snapshots__/DateTimePopupHeader.spec.js.snap +187 -1
  24. package/es/DateTime/__tests__/__snapshots__/DateWidget.spec.js.snap +265 -1
  25. package/es/DateTime/__tests__/__snapshots__/DaysRow.spec.js.snap +155 -2
  26. package/es/DateTime/__tests__/__snapshots__/Time.spec.js.snap +522 -5
  27. package/es/DateTime/__tests__/__snapshots__/YearView.spec.js.snap +540 -0
  28. package/es/DropBox/DropBoxElement/css/DropBoxElement.module.css +1 -4
  29. package/es/Heading/Heading.module.css +1 -1
  30. package/es/Heading/__tests__/Heading.spec.js +57 -3
  31. package/es/Heading/__tests__/__snapshots__/Heading.spec.js.snap +87 -14
  32. package/es/ListItem/__tests__/ListContainer.spec.js +228 -1
  33. package/es/ListItem/__tests__/ListItem.spec.js +359 -1
  34. package/es/ListItem/__tests__/ListItemWithAvatar.spec.js +390 -1
  35. package/es/ListItem/__tests__/ListItemWithCheckBox.spec.js +214 -1
  36. package/es/ListItem/__tests__/ListItemWithIcon.spec.js +303 -1
  37. package/es/ListItem/__tests__/ListItemWithRadio.spec.js +230 -1
  38. package/es/ListItem/__tests__/__snapshots__/ListContainer.spec.js.snap +602 -0
  39. package/es/ListItem/__tests__/__snapshots__/ListItem.spec.js.snap +1807 -0
  40. package/es/ListItem/__tests__/__snapshots__/ListItemWithAvatar.spec.js.snap +2703 -0
  41. package/es/ListItem/__tests__/__snapshots__/ListItemWithCheckBox.spec.js.snap +2909 -0
  42. package/es/ListItem/__tests__/__snapshots__/ListItemWithIcon.spec.js.snap +2009 -0
  43. package/es/ListItem/__tests__/__snapshots__/ListItemWithRadio.spec.js.snap +3070 -0
  44. package/es/MultiSelect/MultiSelect.module.css +1 -2
  45. package/es/MultiSelect/__tests__/AdvancedGroupMultiSelect.spec.js +671 -1
  46. package/es/MultiSelect/__tests__/AdvancedMultiSelect.spec.js +730 -1
  47. package/es/MultiSelect/__tests__/EmptyState.spec.js +268 -1
  48. package/es/MultiSelect/__tests__/MultiSelect.spec.js +889 -2
  49. package/es/MultiSelect/__tests__/MultiSelectHeader.spec.js +50 -1
  50. package/es/MultiSelect/__tests__/MultiSelectWithAvatar.spec.js +487 -1
  51. package/es/MultiSelect/__tests__/SelectedOptions.spec.js +291 -1
  52. package/es/MultiSelect/__tests__/Suggestions.spec.js +370 -2
  53. package/es/MultiSelect/__tests__/__snapshots__/AdvancedGroupMultiSelect.spec.js.snap +11785 -0
  54. package/es/MultiSelect/__tests__/__snapshots__/AdvancedMultiSelect.spec.js.snap +12083 -0
  55. package/es/MultiSelect/__tests__/__snapshots__/EmptyState.spec.js.snap +253 -0
  56. package/es/MultiSelect/__tests__/__snapshots__/MultiSelect.spec.js.snap +14052 -0
  57. package/es/MultiSelect/__tests__/__snapshots__/MultiSelectHeader.spec.js.snap +136 -0
  58. package/es/MultiSelect/__tests__/__snapshots__/MultiSelectWithAvatar.spec.js.snap +11506 -0
  59. package/es/MultiSelect/__tests__/__snapshots__/SelectedOptions.spec.js.snap +1382 -0
  60. package/es/MultiSelect/__tests__/__snapshots__/Suggestions.spec.js.snap +3611 -0
  61. package/es/PopOver/__tests__/PopOver.spec.js +141 -2
  62. package/es/PopOver/__tests__/__snapshots__/PopOver.spec.js.snap +1260 -0
  63. package/es/ResponsiveDropBox/__tests__/ResponsiveDropBox.spec.js +212 -1
  64. package/es/ResponsiveDropBox/__tests__/__snapshots__/ResponsiveDropBox.spec.js.snap +1802 -0
  65. package/es/Tab/Tabs.module.css +1 -2
  66. package/es/Tab/__tests__/Tab.spec.js +249 -1
  67. package/es/Tab/__tests__/TabContent.spec.js +34 -1
  68. package/es/Tab/__tests__/TabContentWrapper.spec.js +72 -1
  69. package/es/Tab/__tests__/TabWrapper.spec.js +163 -1
  70. package/es/Tab/__tests__/Tabs.spec.js +681 -1
  71. package/es/Tab/__tests__/__snapshots__/Tab.spec.js.snap +1049 -0
  72. package/es/Tab/__tests__/__snapshots__/TabContent.spec.js.snap +99 -0
  73. package/es/Tab/__tests__/__snapshots__/TabContentWrapper.spec.js.snap +121 -0
  74. package/es/Tab/__tests__/__snapshots__/TabWrapper.spec.js.snap +2002 -0
  75. package/es/Tab/__tests__/__snapshots__/Tabs.spec.js.snap +11053 -0
  76. package/es/Textarea/Textarea.module.css +1 -1
  77. package/es/Tooltip/Tooltip.module.css +1 -2
  78. package/es/Tooltip/__tests__/Tooltip.spec.js +590 -0
  79. package/es/Tooltip/__tests__/__snapshots__/Tooltip.spec.js.snap +813 -0
  80. package/es/Typography/css/Typography.module.css +8 -7
  81. package/es/common/common.module.css +4 -4
  82. package/lib/Accordion/__tests__/Accordion.spec.js +122 -2
  83. package/lib/Accordion/__tests__/AccordionItem.spec.js +126 -4
  84. package/lib/Accordion/__tests__/__snapshots__/Accordion.spec.js.snap +344 -2
  85. package/lib/Accordion/__tests__/__snapshots__/AccordionItem.spec.js.snap +155 -3
  86. package/lib/Animation/__tests__/Animation.spec.js +31 -5
  87. package/lib/Animation/__tests__/__snapshots__/Animation.spec.js.snap +92 -2
  88. package/lib/Button/css/Button.module.css +2 -3
  89. package/lib/CheckBox/CheckBox.js +1 -1
  90. package/lib/CheckBox/__tests__/__snapshots__/CheckBox.spec.js.snap +1 -1
  91. package/lib/DateTime/DateTime.module.css +2 -2
  92. package/lib/DateTime/__tests__/CalendarView.spec.js +71 -2
  93. package/lib/DateTime/__tests__/DateTime.spec.js +92 -6
  94. package/lib/DateTime/__tests__/DateTimePopupFooter.spec.js +21 -1
  95. package/lib/DateTime/__tests__/DateTimePopupHeader.spec.js +30 -1
  96. package/lib/DateTime/__tests__/DateWidget.spec.js +35 -1
  97. package/lib/DateTime/__tests__/DaysRow.spec.js +20 -2
  98. package/lib/DateTime/__tests__/Time.spec.js +51 -2
  99. package/lib/DateTime/__tests__/YearView.spec.js +61 -2
  100. package/lib/DateTime/__tests__/__snapshots__/CalendarView.spec.js.snap +2907 -170
  101. package/lib/DateTime/__tests__/__snapshots__/DateTime.spec.js.snap +4392 -108
  102. package/lib/DateTime/__tests__/__snapshots__/DateTimePopupFooter.spec.js.snap +67 -1
  103. package/lib/DateTime/__tests__/__snapshots__/DateTimePopupHeader.spec.js.snap +187 -1
  104. package/lib/DateTime/__tests__/__snapshots__/DateWidget.spec.js.snap +265 -1
  105. package/lib/DateTime/__tests__/__snapshots__/DaysRow.spec.js.snap +155 -2
  106. package/lib/DateTime/__tests__/__snapshots__/Time.spec.js.snap +522 -5
  107. package/lib/DateTime/__tests__/__snapshots__/YearView.spec.js.snap +540 -0
  108. package/lib/DropBox/DropBoxElement/css/DropBoxElement.module.css +1 -4
  109. package/lib/Heading/Heading.module.css +1 -1
  110. package/lib/Heading/__tests__/Heading.spec.js +60 -4
  111. package/lib/Heading/__tests__/__snapshots__/Heading.spec.js.snap +87 -14
  112. package/lib/ListItem/__tests__/ListContainer.spec.js +229 -0
  113. package/lib/ListItem/__tests__/ListItem.spec.js +362 -0
  114. package/lib/ListItem/__tests__/ListItemWithAvatar.spec.js +391 -0
  115. package/lib/ListItem/__tests__/ListItemWithCheckBox.spec.js +215 -0
  116. package/lib/ListItem/__tests__/ListItemWithIcon.spec.js +304 -0
  117. package/lib/ListItem/__tests__/ListItemWithRadio.spec.js +231 -0
  118. package/lib/ListItem/__tests__/__snapshots__/ListContainer.spec.js.snap +602 -0
  119. package/lib/ListItem/__tests__/__snapshots__/ListItem.spec.js.snap +1807 -0
  120. package/lib/ListItem/__tests__/__snapshots__/ListItemWithAvatar.spec.js.snap +2703 -0
  121. package/lib/ListItem/__tests__/__snapshots__/ListItemWithCheckBox.spec.js.snap +2909 -0
  122. package/lib/ListItem/__tests__/__snapshots__/ListItemWithIcon.spec.js.snap +2009 -0
  123. package/lib/ListItem/__tests__/__snapshots__/ListItemWithRadio.spec.js.snap +3070 -0
  124. package/lib/MultiSelect/MultiSelect.module.css +1 -2
  125. package/lib/MultiSelect/__tests__/AdvancedGroupMultiSelect.spec.js +692 -0
  126. package/lib/MultiSelect/__tests__/AdvancedMultiSelect.spec.js +741 -0
  127. package/lib/MultiSelect/__tests__/EmptyState.spec.js +273 -0
  128. package/lib/MultiSelect/__tests__/MultiSelect.spec.js +910 -0
  129. package/lib/MultiSelect/__tests__/MultiSelectHeader.spec.js +51 -0
  130. package/lib/MultiSelect/__tests__/MultiSelectWithAvatar.spec.js +497 -0
  131. package/lib/MultiSelect/__tests__/SelectedOptions.spec.js +305 -0
  132. package/lib/MultiSelect/__tests__/Suggestions.spec.js +375 -0
  133. package/lib/MultiSelect/__tests__/__snapshots__/AdvancedGroupMultiSelect.spec.js.snap +11785 -0
  134. package/lib/MultiSelect/__tests__/__snapshots__/AdvancedMultiSelect.spec.js.snap +12083 -0
  135. package/lib/MultiSelect/__tests__/__snapshots__/EmptyState.spec.js.snap +253 -0
  136. package/lib/MultiSelect/__tests__/__snapshots__/MultiSelect.spec.js.snap +14052 -0
  137. package/lib/MultiSelect/__tests__/__snapshots__/MultiSelectHeader.spec.js.snap +136 -0
  138. package/lib/MultiSelect/__tests__/__snapshots__/MultiSelectWithAvatar.spec.js.snap +11506 -0
  139. package/lib/MultiSelect/__tests__/__snapshots__/SelectedOptions.spec.js.snap +1382 -0
  140. package/lib/MultiSelect/__tests__/__snapshots__/Suggestions.spec.js.snap +3611 -0
  141. package/lib/PopOver/__tests__/PopOver.spec.js +150 -1
  142. package/lib/PopOver/__tests__/__snapshots__/PopOver.spec.js.snap +1260 -0
  143. package/lib/ResponsiveDropBox/__tests__/ResponsiveDropBox.spec.js +213 -0
  144. package/lib/ResponsiveDropBox/__tests__/__snapshots__/ResponsiveDropBox.spec.js.snap +1802 -0
  145. package/lib/Tab/Tabs.module.css +1 -2
  146. package/lib/Tab/__tests__/Tab.spec.js +250 -0
  147. package/lib/Tab/__tests__/TabContent.spec.js +35 -0
  148. package/lib/Tab/__tests__/TabContentWrapper.spec.js +76 -0
  149. package/lib/Tab/__tests__/TabWrapper.spec.js +174 -0
  150. package/lib/Tab/__tests__/Tabs.spec.js +741 -0
  151. package/lib/Tab/__tests__/__snapshots__/Tab.spec.js.snap +1049 -0
  152. package/lib/Tab/__tests__/__snapshots__/TabContent.spec.js.snap +99 -0
  153. package/lib/Tab/__tests__/__snapshots__/TabContentWrapper.spec.js.snap +121 -0
  154. package/lib/Tab/__tests__/__snapshots__/TabWrapper.spec.js.snap +2002 -0
  155. package/lib/Tab/__tests__/__snapshots__/Tabs.spec.js.snap +11053 -0
  156. package/lib/Textarea/Textarea.module.css +1 -1
  157. package/lib/Tooltip/Tooltip.module.css +1 -2
  158. package/lib/Tooltip/__tests__/Tooltip.spec.js +629 -0
  159. package/lib/Tooltip/__tests__/__snapshots__/Tooltip.spec.js.snap +813 -0
  160. package/lib/Typography/css/Typography.module.css +8 -7
  161. package/lib/common/common.module.css +4 -4
  162. package/package.json +6 -5
@@ -138,7 +138,7 @@
138
138
  --textarea_height: var(--zd_size184);
139
139
  }
140
140
  .default {
141
- font-weight: var(--zd-fw-normal);
141
+ composes: d-font-normal from global;
142
142
  --textarea_text_color: var(--zdt_textarea_black_text);
143
143
  }
144
144
  .primary {
@@ -11,12 +11,11 @@
11
11
  }
12
12
 
13
13
  .tooltipcont {
14
- composes: d-overflow-hidden d-border-transparent d-border-solid from global;
14
+ composes: d-overflow-hidden d-border-transparent d-border-solid d-font-semibold from global;
15
15
  color: var(--zdt_tooltip_default_text);
16
16
  padding-block:0 ;
17
17
  padding-inline: var(--zd_size10) ;
18
18
  font-size: var(--zd_font_size13) ;
19
- font-weight: var(--zd-fw-semibold);
20
19
  word-break: break-word;
21
20
  max-width: var(--zd_size420) ;
22
21
  line-height: 1.5385;
@@ -0,0 +1,629 @@
1
+ "use strict";
2
+
3
+ var _react = _interopRequireDefault(require("react"));
4
+
5
+ var _react2 = require("@testing-library/react");
6
+
7
+ var _Tooltip = _interopRequireDefault(require("../Tooltip"));
8
+
9
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
10
+
11
+ function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
12
+
13
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
14
+
15
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
16
+
17
+ function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
18
+
19
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
20
+
21
+ function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
22
+
23
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
24
+
25
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
26
+
27
+ function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
28
+
29
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
30
+
31
+ // Tooltip renders nothing until handleOver is called with a hovered element, so cases drive it through its ref.
32
+ // jsdom reports every size as 0, which collapses all placement branches, so sizes are stubbed to fixed values.
33
+ var containerSize = {
34
+ width: 1000,
35
+ height: 800
36
+ };
37
+ var tooltipSize = {
38
+ width: 100,
39
+ height: 40
40
+ };
41
+ var defaultRect = {
42
+ top: 300,
43
+ left: 400,
44
+ width: 50,
45
+ height: 20
46
+ };
47
+ var originalOffsetDescriptors = {
48
+ offsetWidth: Object.getOwnPropertyDescriptor(HTMLElement.prototype, 'offsetWidth'),
49
+ offsetHeight: Object.getOwnPropertyDescriptor(HTMLElement.prototype, 'offsetHeight')
50
+ };
51
+
52
+ var restoreDescriptor = function restoreDescriptor(name) {
53
+ if (originalOffsetDescriptors[name]) {
54
+ Object.defineProperty(HTMLElement.prototype, name, originalOffsetDescriptors[name]);
55
+ } else {
56
+ delete HTMLElement.prototype[name];
57
+ }
58
+ }; // only the tooltip element is sized through the prototype; the hovered element and container are stubbed per instance
59
+
60
+
61
+ var isTooltipElement = function isTooltipElement(element) {
62
+ return element.classList.contains('tooltiptext');
63
+ };
64
+
65
+ var hoverTooltip = function hoverTooltip(attributes) {
66
+ var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},
67
+ _ref$rect = _ref.rect,
68
+ rect = _ref$rect === void 0 ? defaultRect : _ref$rect,
69
+ tooltipProps = _ref.tooltipProps,
70
+ _ref$element = _ref.element,
71
+ element = _ref$element === void 0 ? {} : _ref$element;
72
+
73
+ var target = document.createElement(element.tagName || 'div');
74
+ Object.entries(attributes).forEach(function (_ref2) {
75
+ var _ref3 = _slicedToArray(_ref2, 2),
76
+ name = _ref3[0],
77
+ value = _ref3[1];
78
+
79
+ return target.setAttribute(name, value);
80
+ });
81
+
82
+ target.getBoundingClientRect = function () {
83
+ return _objectSpread(_objectSpread({}, rect), {}, {
84
+ right: rect.left + rect.width,
85
+ bottom: rect.top + rect.height
86
+ });
87
+ };
88
+
89
+ if (element.innerText !== undefined) {
90
+ target.innerText = element.innerText;
91
+ }
92
+
93
+ if (element.isOverflowing) {
94
+ Object.defineProperty(target, 'scrollWidth', {
95
+ value: 200
96
+ });
97
+ Object.defineProperty(target, 'offsetWidth', {
98
+ value: 100
99
+ });
100
+ }
101
+
102
+ var ref = /*#__PURE__*/_react["default"].createRef();
103
+
104
+ var utils = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Tooltip["default"], _extends({
105
+ ref: ref
106
+ }, tooltipProps)));
107
+ (0, _react2.act)(function () {
108
+ ref.current.observeElement();
109
+ });
110
+ (0, _react2.act)(function () {
111
+ ref.current.handleOver({
112
+ target: target
113
+ });
114
+ });
115
+ return _objectSpread(_objectSpread({}, utils), {}, {
116
+ ref: ref,
117
+ target: target
118
+ });
119
+ };
120
+
121
+ describe('Tooltip', function () {
122
+ beforeAll(function () {
123
+ Object.defineProperty(HTMLElement.prototype, 'offsetWidth', {
124
+ configurable: true,
125
+ get: function get() {
126
+ return isTooltipElement(this) ? tooltipSize.width : 0;
127
+ }
128
+ });
129
+ Object.defineProperty(HTMLElement.prototype, 'offsetHeight', {
130
+ configurable: true,
131
+ get: function get() {
132
+ return isTooltipElement(this) ? tooltipSize.height : 0;
133
+ }
134
+ });
135
+ });
136
+ afterAll(function () {
137
+ restoreDescriptor('offsetWidth');
138
+ restoreDescriptor('offsetHeight');
139
+ });
140
+ beforeEach(function () {
141
+ Object.defineProperty(document.body, 'offsetWidth', {
142
+ configurable: true,
143
+ value: containerSize.width
144
+ });
145
+ Object.defineProperty(document.body, 'offsetHeight', {
146
+ configurable: true,
147
+ value: containerSize.height
148
+ });
149
+
150
+ document.body.getBoundingClientRect = function () {
151
+ return _objectSpread({
152
+ left: 0,
153
+ top: 0
154
+ }, containerSize);
155
+ };
156
+ });
157
+ afterEach(function () {
158
+ (0, _react2.cleanup)();
159
+ delete document.body.offsetWidth;
160
+ delete document.body.offsetHeight;
161
+ delete document.body.getBoundingClientRect;
162
+ document.documentElement.removeAttribute('dir');
163
+ });
164
+ test('Render with default props', function () {
165
+ var _render = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Tooltip["default"], null)),
166
+ asFragment = _render.asFragment;
167
+
168
+ expect(asFragment()).toMatchSnapshot();
169
+ });
170
+ test('Render with dataId', function () {
171
+ var _hoverTooltip = hoverTooltip({
172
+ 'data-title': 'Tooltip text'
173
+ }, {
174
+ tooltipProps: {
175
+ dataId: 'tooltip-dataId'
176
+ }
177
+ }),
178
+ asFragment = _hoverTooltip.asFragment;
179
+
180
+ expect(asFragment()).toMatchSnapshot();
181
+ });
182
+ test('Render with customClass', function () {
183
+ var _hoverTooltip2 = hoverTooltip({
184
+ 'data-title': 'Tooltip text'
185
+ }, {
186
+ tooltipProps: {
187
+ customClass: 'custom-tooltip'
188
+ }
189
+ }),
190
+ asFragment = _hoverTooltip2.asFragment;
191
+
192
+ expect(asFragment()).toMatchSnapshot();
193
+ }); // the title attribute is moved to data-title so the browser's own tooltip does not also appear
194
+
195
+ test('Render with title attribute only', function () {
196
+ var _hoverTooltip3 = hoverTooltip({
197
+ title: 'Tooltip text'
198
+ }),
199
+ asFragment = _hoverTooltip3.asFragment,
200
+ target = _hoverTooltip3.target;
201
+
202
+ expect(target.getAttribute('data-title')).toBe('Tooltip text');
203
+ expect(target.hasAttribute('title')).toBe(false);
204
+ expect(asFragment()).toMatchSnapshot();
205
+ });
206
+ test('Render with data-title', function () {
207
+ var _hoverTooltip4 = hoverTooltip({
208
+ 'data-title': 'Tooltip text'
209
+ }),
210
+ asFragment = _hoverTooltip4.asFragment;
211
+
212
+ expect(asFragment()).toMatchSnapshot();
213
+ });
214
+ test('Render with data-title taking precedence over title', function () {
215
+ var _hoverTooltip5 = hoverTooltip({
216
+ 'data-title': 'Data title',
217
+ title: 'Plain title'
218
+ }),
219
+ asFragment = _hoverTooltip5.asFragment;
220
+
221
+ expect(asFragment()).toMatchSnapshot();
222
+ });
223
+ test('Render with data-ishtml as true', function () {
224
+ var _hoverTooltip6 = hoverTooltip({
225
+ 'data-title': '<b>Bold</b> text',
226
+ 'data-ishtml': 'true'
227
+ }),
228
+ asFragment = _hoverTooltip6.asFragment;
229
+
230
+ expect(asFragment()).toMatchSnapshot();
231
+ }); // any non-empty data-ishtml value counts as html, including the string false
232
+
233
+ test('Render with data-ishtml as false', function () {
234
+ var _hoverTooltip7 = hoverTooltip({
235
+ 'data-title': '<b>Bold</b> text',
236
+ 'data-ishtml': 'false'
237
+ }),
238
+ asFragment = _hoverTooltip7.asFragment;
239
+
240
+ expect(asFragment()).toMatchSnapshot();
241
+ });
242
+ test('Render with data-tooltip-noarrow as true', function () {
243
+ var _hoverTooltip8 = hoverTooltip({
244
+ 'data-title': 'Tooltip text',
245
+ 'data-title-position': 'top',
246
+ 'data-tooltip-noarrow': 'true'
247
+ }),
248
+ asFragment = _hoverTooltip8.asFragment;
249
+
250
+ expect(asFragment()).toMatchSnapshot();
251
+ }); // only the exact value true removes the arrow
252
+
253
+ test('Render with data-tooltip-noarrow as false', function () {
254
+ var _hoverTooltip9 = hoverTooltip({
255
+ 'data-title': 'Tooltip text',
256
+ 'data-title-position': 'top',
257
+ 'data-tooltip-noarrow': 'false'
258
+ }),
259
+ asFragment = _hoverTooltip9.asFragment;
260
+
261
+ expect(asFragment()).toMatchSnapshot();
262
+ }); // pre is shown as pre-wrap and nowrap as normal, so those two render like pre-wrap and the default
263
+
264
+ var wraps = ['pre', 'pre-wrap', 'pre-line', 'nowrap', 'break-spaces'];
265
+ test.each(wraps)('Render with data-title-wrap as %s', function (wrap) {
266
+ var _hoverTooltip10 = hoverTooltip({
267
+ 'data-title': 'Tooltip text',
268
+ 'data-title-wrap': wrap
269
+ }),
270
+ asFragment = _hoverTooltip10.asFragment;
271
+
272
+ expect(asFragment()).toMatchSnapshot();
273
+ }); // bottom matches the default placement, including the flip above near the bottom edge
274
+
275
+ test('Render with no position below the target', function () {
276
+ var _hoverTooltip11 = hoverTooltip({
277
+ 'data-title': 'Tooltip text'
278
+ }, {
279
+ rect: defaultRect
280
+ }),
281
+ asFragment = _hoverTooltip11.asFragment;
282
+
283
+ expect(asFragment()).toMatchSnapshot();
284
+ });
285
+ test('Render with no position near the bottom edge flipping above', function () {
286
+ var _hoverTooltip12 = hoverTooltip({
287
+ 'data-title': 'Tooltip text'
288
+ }, {
289
+ rect: _objectSpread(_objectSpread({}, defaultRect), {}, {
290
+ top: 770
291
+ })
292
+ }),
293
+ asFragment = _hoverTooltip12.asFragment;
294
+
295
+ expect(asFragment()).toMatchSnapshot();
296
+ });
297
+ test('Render with no position at the left screen edge', function () {
298
+ var _hoverTooltip13 = hoverTooltip({
299
+ 'data-title': 'Tooltip text'
300
+ }, {
301
+ rect: {
302
+ top: 300,
303
+ left: 5,
304
+ width: 20,
305
+ height: 20
306
+ }
307
+ }),
308
+ asFragment = _hoverTooltip13.asFragment;
309
+
310
+ expect(asFragment()).toMatchSnapshot();
311
+ });
312
+ test('Render with no position at the right screen edge', function () {
313
+ var _hoverTooltip14 = hoverTooltip({
314
+ 'data-title': 'Tooltip text'
315
+ }, {
316
+ rect: {
317
+ top: 300,
318
+ left: 960,
319
+ width: 30,
320
+ height: 20
321
+ }
322
+ }),
323
+ asFragment = _hoverTooltip14.asFragment;
324
+
325
+ expect(asFragment()).toMatchSnapshot();
326
+ });
327
+ test('Render with data-title-position as top with space above', function () {
328
+ var _hoverTooltip15 = hoverTooltip({
329
+ 'data-title': 'Tooltip text',
330
+ 'data-title-position': 'top'
331
+ }, {
332
+ rect: defaultRect
333
+ }),
334
+ asFragment = _hoverTooltip15.asFragment;
335
+
336
+ expect(asFragment()).toMatchSnapshot();
337
+ });
338
+ test('Render with data-title-position as top without space above', function () {
339
+ var _hoverTooltip16 = hoverTooltip({
340
+ 'data-title': 'Tooltip text',
341
+ 'data-title-position': 'top'
342
+ }, {
343
+ rect: _objectSpread(_objectSpread({}, defaultRect), {}, {
344
+ top: 10
345
+ })
346
+ }),
347
+ asFragment = _hoverTooltip16.asFragment;
348
+
349
+ expect(asFragment()).toMatchSnapshot();
350
+ });
351
+ test('Render with data-title-position as top at the left screen edge', function () {
352
+ var _hoverTooltip17 = hoverTooltip({
353
+ 'data-title': 'Tooltip text',
354
+ 'data-title-position': 'top'
355
+ }, {
356
+ rect: {
357
+ top: 300,
358
+ left: 5,
359
+ width: 20,
360
+ height: 20
361
+ }
362
+ }),
363
+ asFragment = _hoverTooltip17.asFragment;
364
+
365
+ expect(asFragment()).toMatchSnapshot();
366
+ });
367
+ test('Render with data-title-position as top at the right screen edge', function () {
368
+ var _hoverTooltip18 = hoverTooltip({
369
+ 'data-title': 'Tooltip text',
370
+ 'data-title-position': 'top'
371
+ }, {
372
+ rect: {
373
+ top: 300,
374
+ left: 960,
375
+ width: 30,
376
+ height: 20
377
+ }
378
+ }),
379
+ asFragment = _hoverTooltip18.asFragment;
380
+
381
+ expect(asFragment()).toMatchSnapshot();
382
+ });
383
+ test('Render with data-title-position as bottom with space below', function () {
384
+ var _hoverTooltip19 = hoverTooltip({
385
+ 'data-title': 'Tooltip text',
386
+ 'data-title-position': 'bottom'
387
+ }, {
388
+ rect: defaultRect
389
+ }),
390
+ asFragment = _hoverTooltip19.asFragment;
391
+
392
+ expect(asFragment()).toMatchSnapshot();
393
+ });
394
+ test('Render with data-title-position as bottom without space below', function () {
395
+ var _hoverTooltip20 = hoverTooltip({
396
+ 'data-title': 'Tooltip text',
397
+ 'data-title-position': 'bottom'
398
+ }, {
399
+ rect: _objectSpread(_objectSpread({}, defaultRect), {}, {
400
+ top: 770
401
+ })
402
+ }),
403
+ asFragment = _hoverTooltip20.asFragment;
404
+
405
+ expect(asFragment()).toMatchSnapshot();
406
+ });
407
+ test('Render with data-title-position as left with space on the left', function () {
408
+ var _hoverTooltip21 = hoverTooltip({
409
+ 'data-title': 'Tooltip text',
410
+ 'data-title-position': 'left'
411
+ }, {
412
+ rect: defaultRect
413
+ }),
414
+ asFragment = _hoverTooltip21.asFragment;
415
+
416
+ expect(asFragment()).toMatchSnapshot();
417
+ });
418
+ test('Render with data-title-position as left without space on the left', function () {
419
+ var _hoverTooltip22 = hoverTooltip({
420
+ 'data-title': 'Tooltip text',
421
+ 'data-title-position': 'left'
422
+ }, {
423
+ rect: _objectSpread(_objectSpread({}, defaultRect), {}, {
424
+ left: 20
425
+ })
426
+ }),
427
+ asFragment = _hoverTooltip22.asFragment;
428
+
429
+ expect(asFragment()).toMatchSnapshot();
430
+ });
431
+ test('Render with data-title-position as left at the top screen edge', function () {
432
+ var _hoverTooltip23 = hoverTooltip({
433
+ 'data-title': 'Tooltip text',
434
+ 'data-title-position': 'left'
435
+ }, {
436
+ rect: _objectSpread(_objectSpread({}, defaultRect), {}, {
437
+ top: 0
438
+ })
439
+ }),
440
+ asFragment = _hoverTooltip23.asFragment;
441
+
442
+ expect(asFragment()).toMatchSnapshot();
443
+ });
444
+ test('Render with data-title-position as left at the bottom screen edge', function () {
445
+ var _hoverTooltip24 = hoverTooltip({
446
+ 'data-title': 'Tooltip text',
447
+ 'data-title-position': 'left'
448
+ }, {
449
+ rect: _objectSpread(_objectSpread({}, defaultRect), {}, {
450
+ top: 790
451
+ })
452
+ }),
453
+ asFragment = _hoverTooltip24.asFragment;
454
+
455
+ expect(asFragment()).toMatchSnapshot();
456
+ });
457
+ test('Render with data-title-position as right with space on the right', function () {
458
+ var _hoverTooltip25 = hoverTooltip({
459
+ 'data-title': 'Tooltip text',
460
+ 'data-title-position': 'right'
461
+ }, {
462
+ rect: defaultRect
463
+ }),
464
+ asFragment = _hoverTooltip25.asFragment;
465
+
466
+ expect(asFragment()).toMatchSnapshot();
467
+ });
468
+ test('Render with data-title-position as right without space on the right', function () {
469
+ var _hoverTooltip26 = hoverTooltip({
470
+ 'data-title': 'Tooltip text',
471
+ 'data-title-position': 'right'
472
+ }, {
473
+ rect: _objectSpread(_objectSpread({}, defaultRect), {}, {
474
+ left: 930
475
+ })
476
+ }),
477
+ asFragment = _hoverTooltip26.asFragment;
478
+
479
+ expect(asFragment()).toMatchSnapshot();
480
+ }); // in rtl the left and right positions are swapped
481
+
482
+ test.each(['left', 'right'])('Render with data-title-position as %s in rtl', function (position) {
483
+ document.documentElement.setAttribute('dir', 'rtl');
484
+
485
+ var _hoverTooltip27 = hoverTooltip({
486
+ 'data-title': 'Tooltip text',
487
+ 'data-title-position': position
488
+ }),
489
+ asFragment = _hoverTooltip27.asFragment;
490
+
491
+ expect(asFragment()).toMatchSnapshot();
492
+ }); // the tooltip is skipped when the hovered text already shows the title, unless the text is cut off
493
+ // this first case stays hidden on purpose; the others each bypass that check
494
+
495
+ test('Render with title matching the element text', function () {
496
+ var _hoverTooltip28 = hoverTooltip({
497
+ 'data-title': 'Save'
498
+ }, {
499
+ element: {
500
+ innerText: 'Save'
501
+ }
502
+ }),
503
+ asFragment = _hoverTooltip28.asFragment;
504
+
505
+ expect(asFragment()).toMatchSnapshot();
506
+ });
507
+ test('Render with title matching the element text and data-istitle', function () {
508
+ var _hoverTooltip29 = hoverTooltip({
509
+ 'data-title': 'Save',
510
+ 'data-istitle': 'true'
511
+ }, {
512
+ element: {
513
+ innerText: 'Save'
514
+ }
515
+ }),
516
+ asFragment = _hoverTooltip29.asFragment;
517
+
518
+ expect(asFragment()).toMatchSnapshot();
519
+ });
520
+ test('Render with title matching an overflowing element text', function () {
521
+ var _hoverTooltip30 = hoverTooltip({
522
+ 'data-title': 'Save'
523
+ }, {
524
+ element: {
525
+ innerText: 'Save',
526
+ isOverflowing: true
527
+ }
528
+ }),
529
+ asFragment = _hoverTooltip30.asFragment;
530
+
531
+ expect(asFragment()).toMatchSnapshot();
532
+ });
533
+ test('Render with data-dottedTitle and an overflowing element text', function () {
534
+ var _hoverTooltip31 = hoverTooltip({
535
+ 'data-title': 'Save',
536
+ 'data-dottedTitle': 'Full saved title'
537
+ }, {
538
+ element: {
539
+ innerText: 'Save',
540
+ isOverflowing: true
541
+ }
542
+ }),
543
+ asFragment = _hoverTooltip31.asFragment;
544
+
545
+ expect(asFragment()).toMatchSnapshot();
546
+ }); // data-dottedTitle is ignored while the text is not cut off
547
+
548
+ test('Render with data-dottedTitle and a title different from the element text', function () {
549
+ var _hoverTooltip32 = hoverTooltip({
550
+ 'data-title': 'Tooltip text',
551
+ 'data-dottedTitle': 'Full saved title'
552
+ }, {
553
+ element: {
554
+ innerText: 'Other'
555
+ }
556
+ }),
557
+ asFragment = _hoverTooltip32.asFragment;
558
+
559
+ expect(asFragment()).toMatchSnapshot();
560
+ });
561
+ test('Render with title matching the text of an icon element', function () {
562
+ var _hoverTooltip33 = hoverTooltip({
563
+ title: 'Save'
564
+ }, {
565
+ element: {
566
+ tagName: 'i',
567
+ innerText: 'Save'
568
+ }
569
+ }),
570
+ asFragment = _hoverTooltip33.asFragment;
571
+
572
+ expect(asFragment()).toMatchSnapshot();
573
+ }); // the tooltip hides when the pointer leaves, a click or release happens, or an untitled element is hovered
574
+
575
+ test.each(['click', 'mouseup', 'mouseleave'])('Render with %s event on the hovered element', function (eventName) {
576
+ var _hoverTooltip34 = hoverTooltip({
577
+ 'data-title': 'Tooltip text'
578
+ }),
579
+ asFragment = _hoverTooltip34.asFragment,
580
+ container = _hoverTooltip34.container,
581
+ target = _hoverTooltip34.target;
582
+
583
+ expect(container.textContent).toBe('Tooltip text');
584
+ (0, _react2.fireEvent)(target, new MouseEvent(eventName));
585
+ expect(container.textContent).toBe('');
586
+ expect(asFragment()).toMatchSnapshot();
587
+ });
588
+ test('Render with a following hover on an element without a title', function () {
589
+ var _hoverTooltip35 = hoverTooltip({
590
+ 'data-title': 'Tooltip text'
591
+ }),
592
+ asFragment = _hoverTooltip35.asFragment,
593
+ container = _hoverTooltip35.container,
594
+ ref = _hoverTooltip35.ref;
595
+
596
+ expect(container.textContent).toBe('Tooltip text');
597
+ (0, _react2.act)(function () {
598
+ ref.current.handleOver({
599
+ target: document.createElement('div')
600
+ });
601
+ });
602
+ expect(container.textContent).toBe('');
603
+ expect(asFragment()).toMatchSnapshot();
604
+ });
605
+ test('Render with a following hover on another titled element', function () {
606
+ var _hoverTooltip36 = hoverTooltip({
607
+ 'data-title': 'Tooltip text'
608
+ }),
609
+ asFragment = _hoverTooltip36.asFragment,
610
+ ref = _hoverTooltip36.ref;
611
+
612
+ var next = document.createElement('div');
613
+ next.setAttribute('data-title', 'Next tooltip text');
614
+
615
+ next.getBoundingClientRect = function () {
616
+ return _objectSpread(_objectSpread({}, defaultRect), {}, {
617
+ right: 450,
618
+ bottom: 320
619
+ });
620
+ };
621
+
622
+ (0, _react2.act)(function () {
623
+ ref.current.handleOver({
624
+ target: next
625
+ });
626
+ });
627
+ expect(asFragment()).toMatchSnapshot();
628
+ });
629
+ });