carbon-addons-iot-react 2.152.0-next.13 → 2.152.0-next.15

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 (43) hide show
  1. package/CHANGELOG.md +34 -0
  2. package/css/carbon-addons-iot-react.css +8 -3
  3. package/css/carbon-addons-iot-react.css.map +1 -1
  4. package/es/components/BarChartCard/barChartUtils.js +2 -2
  5. package/es/components/Card/CardTitle.js +8 -2
  6. package/es/components/DateTimePicker/DateTimePickerV2WithTimeSpinner.js +3 -3
  7. package/es/components/DateTimePicker/DateTimePickerV2WithoutTimeSpinner.js +3 -3
  8. package/es/components/SuiteHeader/IdleLogoutConfirmationModal/IdleLogoutConfirmationModal.js +77 -4
  9. package/es/components/SuiteHeader/SuiteHeader.js +26 -3
  10. package/es/components/SuiteHeader/hooks/useUiResources.js +4 -1
  11. package/es/components/SuiteHeader/util/uiresources.js +5 -4
  12. package/es/components/Table/Table.js +7 -17
  13. package/es/components/Table/TableBody/TableBody.js +5 -16
  14. package/es/components/Table/TableBody/TableBodyRow/TableBodyRow.js +9 -20
  15. package/es/components/Table/TableBody/TableBodyRowRenderer.js +5 -16
  16. package/es/components/Table/TableCellRenderer/TableCellRenderer.js +6 -17
  17. package/es/components/Table/TableHead/TableHead.js +4 -15
  18. package/es/constants/SharedPropTypes.js +2 -1
  19. package/es/hooks/usePopoverPositioning.js +53 -11
  20. package/lib/components/BarChartCard/barChartUtils.js +2 -2
  21. package/lib/components/Card/CardTitle.js +8 -2
  22. package/lib/components/DateTimePicker/DateTimePickerV2WithTimeSpinner.js +3 -3
  23. package/lib/components/DateTimePicker/DateTimePickerV2WithoutTimeSpinner.js +3 -3
  24. package/lib/components/SuiteHeader/IdleLogoutConfirmationModal/IdleLogoutConfirmationModal.js +77 -4
  25. package/lib/components/SuiteHeader/SuiteHeader.js +26 -3
  26. package/lib/components/SuiteHeader/hooks/useUiResources.js +4 -1
  27. package/lib/components/SuiteHeader/util/uiresources.js +5 -4
  28. package/lib/components/Table/Table.js +7 -17
  29. package/lib/components/Table/TableBody/TableBody.js +5 -16
  30. package/lib/components/Table/TableBody/TableBodyRow/TableBodyRow.js +9 -20
  31. package/lib/components/Table/TableBody/TableBodyRowRenderer.js +5 -16
  32. package/lib/components/Table/TableCellRenderer/TableCellRenderer.js +6 -17
  33. package/lib/components/Table/TableHead/TableHead.js +4 -15
  34. package/lib/constants/SharedPropTypes.js +2 -0
  35. package/lib/css/carbon-addons-iot-react.css +8 -3
  36. package/lib/css/carbon-addons-iot-react.css.map +1 -1
  37. package/lib/hooks/usePopoverPositioning.js +53 -11
  38. package/lib/scss/components/DateTimePicker/_date-time-pickerv2.scss +4 -4
  39. package/lib/scss/components/Table/_table.scss +5 -0
  40. package/package.json +4 -3
  41. package/scss/components/DateTimePicker/_date-time-pickerv2.scss +4 -4
  42. package/scss/components/Table/_table.scss +5 -0
  43. package/umd/carbon-addons-iot-react.js +212 -134
@@ -76,6 +76,36 @@ var isOffscreen = function isOffscreen(menuBody, menuDirection, menuButton
76
76
  var L = offLeft ? 'left' : '';
77
77
  return [T, R, B, L].filter(Boolean).join('-');
78
78
  };
79
+ /**
80
+ * This is used as the callback for menuOffset ONLY on Tooltips. It's needed due to
81
+ * truncation that might happen on Tooltip trigger, therefore we need to consider
82
+ * right position of the trigger as well. This function is used as an enhancement for
83
+ * the isOffscreen method.
84
+ *
85
+ * @param {HTMLElement} menuBody The underlying carbon FloatingMenu element
86
+ * @param {string} menuDirection The direction prop
87
+ * @param {HTMLElement} menuButton The button triggering the menu
88
+ * @returns {string} 'start', 'center' or 'end'
89
+ */
90
+
91
+
92
+ var getTooltipAlignment = function getTooltipAlignment(menuBody, menuDirection, menuButton) {
93
+ var buttonRect = menuButton.getBoundingClientRect();
94
+ var tooltipRect = menuBody.getBoundingClientRect();
95
+ var windowWidth = window.innerWidth || document.documentElement.clientWidth;
96
+ var triggerCenter = (buttonRect.left + buttonRect.right) / 2;
97
+ var tooltipCenter = tooltipRect.width / 2;
98
+
99
+ if (triggerCenter - tooltipCenter < 0) {
100
+ return 'start';
101
+ }
102
+
103
+ if (triggerCenter + tooltipCenter > windowWidth) {
104
+ return 'end';
105
+ }
106
+
107
+ return 'center';
108
+ };
79
109
  /**
80
110
  * Given a subset of props from the Tooltip, OverflowMenu, or FlyoutMenu. This hook returns a decorator
81
111
  * function around the original menuOffset function. It determines if the element overflows using that
@@ -93,22 +123,29 @@ var usePopoverPositioning = function usePopoverPositioning(_ref) {
93
123
  _ref$isOverflowMenu = _ref.isOverflowMenu,
94
124
  isOverflowMenu = _ref$isOverflowMenu === void 0 ? false : _ref$isOverflowMenu,
95
125
  _ref$useAutoPositioni = _ref.useAutoPositioning,
96
- useAutoPositioning = _ref$useAutoPositioni === void 0 ? true : _ref$useAutoPositioni;
126
+ useAutoPositioning = _ref$useAutoPositioni === void 0 ? true : _ref$useAutoPositioni,
127
+ _ref$defaultAlignment = _ref.defaultAlignment,
128
+ defaultAlignment = _ref$defaultAlignment === void 0 ? 'center' : _ref$defaultAlignment;
97
129
 
98
130
  var _React$useState = React__namespace.useState(),
99
131
  _React$useState2 = _slicedToArray__default['default'](_React$useState, 2),
100
132
  adjustedDirection = _React$useState2[0],
101
133
  setAdjustedDirection = _React$useState2[1];
102
134
 
103
- var _React$useState3 = React__namespace.useState(),
135
+ var _React$useState3 = React__namespace.useState(defaultAlignment),
104
136
  _React$useState4 = _slicedToArray__default['default'](_React$useState3, 2),
105
- adjustedFlipped = _React$useState4[0],
106
- setAdjustedFlipped = _React$useState4[1];
137
+ adjustedAlignment = _React$useState4[0],
138
+ setAdjustedAlignment = _React$useState4[1];
107
139
 
108
- var _React$useState5 = React__namespace.useState({}),
140
+ var _React$useState5 = React__namespace.useState(),
109
141
  _React$useState6 = _slicedToArray__default['default'](_React$useState5, 2),
110
- flyoutAlignment = _React$useState6[0].flyoutAlignment,
111
- setDirections = _React$useState6[1];
142
+ adjustedFlipped = _React$useState6[0],
143
+ setAdjustedFlipped = _React$useState6[1];
144
+
145
+ var _React$useState7 = React__namespace.useState({}),
146
+ _React$useState8 = _slicedToArray__default['default'](_React$useState7, 2),
147
+ flyoutAlignment = _React$useState8[0].flyoutAlignment,
148
+ setDirections = _React$useState8[1];
112
149
 
113
150
  var previousDirection = React__namespace.useRef();
114
151
  var langDir = useLangDirection.useLangDirection();
@@ -206,10 +243,12 @@ var usePopoverPositioning = function usePopoverPositioning(_ref) {
206
243
  * be adjusted to `right-start`.
207
244
  */
208
245
 
209
- var fixOverflow = React__namespace.useCallback(function (overflow, menuOffsetArgs) {
246
+ var fixOverflow = React__namespace.useCallback(function (overflow, menuOffsetArgs, alignment) {
210
247
  var _menuOffsetArgs = _slicedToArray__default['default'](menuOffsetArgs, 1),
211
248
  tooltipElement = _menuOffsetArgs[0];
212
249
 
250
+ setAdjustedAlignment(alignment);
251
+
213
252
  switch (overflow) {
214
253
  case 'top':
215
254
  if (flyoutAlignment) {
@@ -336,7 +375,9 @@ var usePopoverPositioning = function usePopoverPositioning(_ref) {
336
375
  } // determine if the element is off-screen.
337
376
 
338
377
 
339
- var overflow = isOffscreen.apply(void 0, args.concat([defaultOffset])); // if it's offscreen in a direction we can fix, do so
378
+ var overflow = isOffscreen.apply(void 0, args.concat([defaultOffset])); // determine if the element has new alignment
379
+
380
+ var alignment = getTooltipAlignment.apply(void 0, args); // if it's offscreen in a direction we can fix, do so
340
381
  // otherwise leave it be. ie. 'top-left' is fixable, but
341
382
  // a large element with 'top-right-left' wouldn't be.
342
383
 
@@ -349,7 +390,7 @@ var usePopoverPositioning = function usePopoverPositioning(_ref) {
349
390
  case 'right':
350
391
  case 'bottom':
351
392
  case 'left':
352
- return fixOverflow(overflow, [].concat(args));
393
+ return fixOverflow(overflow, [].concat(args), alignment);
353
394
 
354
395
  default:
355
396
  return defaultOffset;
@@ -363,7 +404,8 @@ var usePopoverPositioning = function usePopoverPositioning(_ref) {
363
404
 
364
405
  return [calculateMenuOffset, {
365
406
  adjustedDirection: adjustedDirection,
366
- adjustedFlipped: adjustedFlipped
407
+ adjustedFlipped: adjustedFlipped,
408
+ adjustedAlignment: adjustedAlignment
367
409
  }];
368
410
  };
369
411
 
@@ -101,10 +101,6 @@
101
101
  background-color: $field-02;
102
102
  }
103
103
 
104
- .#{$iot-prefix}--date-time-picker__box--invalid {
105
- outline: 2px solid $danger-01;
106
- }
107
-
108
104
  .#{$iot-prefix}--date-time-picker__box--disabled {
109
105
  border: none;
110
106
  }
@@ -118,6 +114,10 @@
118
114
  pointer-events: none;
119
115
  }
120
116
 
117
+ .#{$iot-prefix}--date-time-pickerv2__wrapper--invalid {
118
+ outline: 2px solid $danger-01;
119
+ }
120
+
121
121
  // open menu content
122
122
  .#{$iot-prefix}--flyout-menu--content.#{$iot-prefix}--date-time-picker--menu {
123
123
  --zIndex: 0;
@@ -195,6 +195,11 @@ button.#{$prefix}--btn.#{$iot-prefix}--tooltip-svg-wrapper.#{$prefix}--btn--ghos
195
195
  left: unset;
196
196
  right: var(--row-nesting-offset);
197
197
  }
198
+
199
+ &__expand {
200
+ left: unset;
201
+ margin-left: var(--row-nesting-offset);
202
+ }
198
203
  }
199
204
 
200
205
  .#{$iot-prefix}--expanded-tablerow {
package/package.json CHANGED
@@ -340,10 +340,11 @@
340
340
  "whatwg-fetch": "^3.0.0"
341
341
  },
342
342
  "sideEffects": false,
343
- "version": "2.152.0-next.13",
343
+ "version": "2.152.0-next.15",
344
344
  "resolutions": {
345
345
  "chokidar": "3.3.1",
346
- "react-grid-layout": "1.2.2"
346
+ "react-grid-layout": "1.2.2",
347
+ "got": "11.8.5"
347
348
  },
348
- "gitHead": "ab43b4e6fdb25afa273b641cc6790ca0b4cf7297"
349
+ "gitHead": "9837b38fd9d3f1400d5da9f40126c1c85a153a53"
349
350
  }
@@ -101,10 +101,6 @@
101
101
  background-color: $field-02;
102
102
  }
103
103
 
104
- .#{$iot-prefix}--date-time-picker__box--invalid {
105
- outline: 2px solid $danger-01;
106
- }
107
-
108
104
  .#{$iot-prefix}--date-time-picker__box--disabled {
109
105
  border: none;
110
106
  }
@@ -118,6 +114,10 @@
118
114
  pointer-events: none;
119
115
  }
120
116
 
117
+ .#{$iot-prefix}--date-time-pickerv2__wrapper--invalid {
118
+ outline: 2px solid $danger-01;
119
+ }
120
+
121
121
  // open menu content
122
122
  .#{$iot-prefix}--flyout-menu--content.#{$iot-prefix}--date-time-picker--menu {
123
123
  --zIndex: 0;
@@ -195,6 +195,11 @@ button.#{$prefix}--btn.#{$iot-prefix}--tooltip-svg-wrapper.#{$prefix}--btn--ghos
195
195
  left: unset;
196
196
  right: var(--row-nesting-offset);
197
197
  }
198
+
199
+ &__expand {
200
+ left: unset;
201
+ margin-left: var(--row-nesting-offset);
202
+ }
198
203
  }
199
204
 
200
205
  .#{$iot-prefix}--expanded-tablerow {