carbon-addons-iot-react 4.4.0 → 4.5.1
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 +6 -2
- package/es/components/BarChartCard/BarChartCard.js +16 -4
- package/es/components/BarChartCard/barChartUtils.js +8 -7
- package/es/components/Card/Card.js +8 -5
- package/es/components/Card/CardToolbar.js +3 -1
- package/es/components/CardEditor/CardEditForm/CardEditFormItems/DataSeriesFormItemModal.js +1 -1
- package/es/components/CardEditor/CardEditForm/CommonCardEditFormFields.js +1 -1
- package/es/components/DateTimePicker/DateTimePicker.js +29 -10
- package/es/components/DateTimePicker/DateTimePickerV2WithTimeSpinner.js +2 -3
- package/es/components/DateTimePicker/DateTimePickerV2WithoutTimeSpinner.js +30 -10
- package/es/components/DateTimePicker/dateTimePickerUtils.js +34 -29
- package/es/components/ImageCard/ImageCard.js +15 -2
- package/es/components/ListCard/ListCard.js +7 -2
- package/es/components/TableCard/TableCard.js +15 -4
- package/es/components/TableCard/tableCardUtils.js +2 -2
- package/es/components/TimeSeriesCard/TimeSeriesCard.js +15 -4
- package/es/components/TimeSeriesCard/timeSeriesUtils.js +2 -2
- package/es/components/ValueCard/Attribute.js +2 -1
- package/es/components/ValueCard/ValueCard.js +6 -1
- package/es/constants/CardPropTypes.js +2 -0
- package/es/utils/cardUtilityFunctions.js +1 -1
- package/es/utils/dayjs.js +21 -1
- package/lib/components/BarChartCard/BarChartCard.js +16 -4
- package/lib/components/BarChartCard/barChartUtils.js +8 -7
- package/lib/components/Card/Card.js +7 -4
- package/lib/components/Card/CardToolbar.js +3 -1
- package/lib/components/CardEditor/CardEditForm/CardEditFormItems/DataSeriesFormItemModal.js +1 -1
- package/lib/components/CardEditor/CardEditForm/CommonCardEditFormFields.js +1 -1
- package/lib/components/DateTimePicker/DateTimePicker.js +28 -9
- package/lib/components/DateTimePicker/DateTimePickerV2WithTimeSpinner.js +2 -3
- package/lib/components/DateTimePicker/DateTimePickerV2WithoutTimeSpinner.js +29 -9
- package/lib/components/DateTimePicker/dateTimePickerUtils.js +34 -29
- package/lib/components/ImageCard/ImageCard.js +15 -2
- package/lib/components/ListCard/ListCard.js +7 -2
- package/lib/components/TableCard/TableCard.js +15 -4
- package/lib/components/TableCard/tableCardUtils.js +2 -2
- package/lib/components/TimeSeriesCard/TimeSeriesCard.js +15 -4
- package/lib/components/TimeSeriesCard/timeSeriesUtils.js +2 -2
- package/lib/components/ValueCard/Attribute.js +2 -1
- package/lib/components/ValueCard/ValueCard.js +6 -1
- package/lib/constants/CardPropTypes.js +2 -0
- package/lib/utils/cardUtilityFunctions.js +1 -1
- package/lib/utils/dayjs.js +22 -0
- package/package.json +1 -1
- package/umd/carbon-addons-iot-react.js +238 -114
|
@@ -38,7 +38,7 @@ var React__default = /*#__PURE__*/_interopDefault(React);
|
|
|
38
38
|
var PropTypes__default = /*#__PURE__*/_interopDefault(PropTypes);
|
|
39
39
|
var classnames__default = /*#__PURE__*/_interopDefault(classnames);
|
|
40
40
|
|
|
41
|
-
var _excluded = ["testId", "defaultValue", "dateTimeMask", "presets", "intervals", "relatives", "expanded", "disabled", "invalid", "showRelativeOption", "showCustomRangeLink", "hasTimeInput", "renderPresetTooltipText", "onCancel", "onApply", "i18n", "light", "locale", "style"];
|
|
41
|
+
var _excluded = ["testId", "defaultValue", "dateTimeMask", "presets", "intervals", "relatives", "expanded", "disabled", "invalid", "showRelativeOption", "showCustomRangeLink", "hasTimeInput", "renderPresetTooltipText", "onCancel", "onApply", "i18n", "light", "locale", "timeZone", "style"];
|
|
42
42
|
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
43
43
|
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty__default.default(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
44
44
|
var iotPrefix = Settings.settings.iotPrefix,
|
|
@@ -185,6 +185,8 @@ var propTypes = {
|
|
|
185
185
|
light: PropTypes__default.default.bool,
|
|
186
186
|
/** The language locale used to format the days of the week, months, and numbers. */
|
|
187
187
|
locale: PropTypes__default.default.string,
|
|
188
|
+
/** IANA timezone string to interpret datetime values in (e.g., 'America/New_York') */
|
|
189
|
+
timeZone: PropTypes__default.default.string,
|
|
188
190
|
/** Unique id of the component */
|
|
189
191
|
id: PropTypes__default.default.string,
|
|
190
192
|
style: PropTypes__default.default.objectOf(PropTypes__default.default.string)
|
|
@@ -260,6 +262,7 @@ var defaultProps = {
|
|
|
260
262
|
},
|
|
261
263
|
light: false,
|
|
262
264
|
locale: 'en',
|
|
265
|
+
timeZone: undefined,
|
|
263
266
|
id: undefined,
|
|
264
267
|
style: {}
|
|
265
268
|
};
|
|
@@ -282,10 +285,13 @@ var DateTimePicker = function DateTimePicker(_ref) {
|
|
|
282
285
|
i18n = _ref.i18n,
|
|
283
286
|
light = _ref.light,
|
|
284
287
|
locale = _ref.locale,
|
|
288
|
+
timeZone = _ref.timeZone,
|
|
285
289
|
style = _ref.style,
|
|
286
290
|
others = _objectWithoutProperties__default.default(_ref, _excluded);
|
|
287
291
|
var id = React.useRef(others.id || uuid.v4()).current;
|
|
288
292
|
var mergedI18n = _objectSpread(_objectSpread({}, defaultProps.i18n), i18n);
|
|
293
|
+
var effectiveTimezone = timeZone || dayjs.default.tz.guess();
|
|
294
|
+
dayjs.default.tz.setDefault(effectiveTimezone);
|
|
289
295
|
dayjs.default.locale(locale);
|
|
290
296
|
|
|
291
297
|
// State
|
|
@@ -412,7 +418,7 @@ var DateTimePicker = function DateTimePicker(_ref) {
|
|
|
412
418
|
value.kind = PICKER_KINDS.PRESET;
|
|
413
419
|
}
|
|
414
420
|
setCurrentValue(value);
|
|
415
|
-
var parsedValue = dateTimePickerUtils.parseValue(value, dateTimeMask, mergedI18n.toLabel);
|
|
421
|
+
var parsedValue = dateTimePickerUtils.parseValue(value, dateTimeMask, mergedI18n.toLabel, hasTimeInput, effectiveTimezone);
|
|
416
422
|
setHumanValue(parsedValue.readableValue);
|
|
417
423
|
return _objectSpread(_objectSpread({}, value), parsedValue);
|
|
418
424
|
};
|
|
@@ -467,15 +473,17 @@ var DateTimePicker = function DateTimePicker(_ref) {
|
|
|
467
473
|
setIsCustomRange(true);
|
|
468
474
|
setCustomRangeKind(PICKER_KINDS.ABSOLUTE);
|
|
469
475
|
if (!absolute.hasOwnProperty('start')) {
|
|
470
|
-
|
|
476
|
+
var startDateTime = "".concat(absolute.startDate, " ").concat(absolute.startTime);
|
|
477
|
+
absolute.start = dayjs.default.tz(startDateTime, dayjs.detectDateTimeFormat(startDateTime), effectiveTimezone).valueOf();
|
|
471
478
|
}
|
|
472
479
|
if (!absolute.hasOwnProperty('end')) {
|
|
473
|
-
|
|
480
|
+
var endDateTime = "".concat(absolute.endDate, " ").concat(absolute.endTime);
|
|
481
|
+
absolute.end = dayjs.default.tz(endDateTime, dayjs.detectDateTimeFormat(endDateTime), effectiveTimezone).valueOf();
|
|
474
482
|
}
|
|
475
|
-
absolute.startDate = dayjs.default(absolute.start).format('MM/DD/YYYY');
|
|
476
|
-
absolute.startTime = dayjs.default(absolute.start).format('HH:mm');
|
|
477
|
-
absolute.endDate = dayjs.default(absolute.end).format('MM/DD/YYYY');
|
|
478
|
-
absolute.endTime = dayjs.default(absolute.end).format('HH:mm');
|
|
483
|
+
absolute.startDate = dayjs.default.tz(absolute.start).format('MM/DD/YYYY');
|
|
484
|
+
absolute.startTime = dayjs.default.tz(absolute.start).format('HH:mm');
|
|
485
|
+
absolute.endDate = dayjs.default.tz(absolute.end).format('MM/DD/YYYY');
|
|
486
|
+
absolute.endTime = dayjs.default.tz(absolute.end).format('HH:mm');
|
|
479
487
|
setAbsoluteValue(absolute);
|
|
480
488
|
}
|
|
481
489
|
} else {
|
|
@@ -564,7 +572,7 @@ var DateTimePicker = function DateTimePicker(_ref) {
|
|
|
564
572
|
humanValue: humanValue
|
|
565
573
|
});
|
|
566
574
|
var disableRelativeApply = isCustomRange && customRangeKind === PICKER_KINDS.RELATIVE && (relativeLastNumberInvalid || relativeToTimeInvalid);
|
|
567
|
-
var disableAbsoluteApply = isCustomRange && customRangeKind === PICKER_KINDS.ABSOLUTE && (absoluteStartTimeInvalid || absoluteEndTimeInvalid || absoluteValue.startDate
|
|
575
|
+
var disableAbsoluteApply = isCustomRange && customRangeKind === PICKER_KINDS.ABSOLUTE && (absoluteStartTimeInvalid || absoluteEndTimeInvalid || !absoluteValue.startDate || !absoluteValue.endDate || (hasTimeInput ? !absoluteValue.startTime || !absoluteValue.endTime : false));
|
|
568
576
|
var disableApply = disableRelativeApply || disableAbsoluteApply;
|
|
569
577
|
React.useEffect(function () {
|
|
570
578
|
return setInvalidState(invalid || disableApply);
|
|
@@ -1278,6 +1286,17 @@ DateTimePicker.__docgenInfo = {
|
|
|
1278
1286
|
},
|
|
1279
1287
|
"required": false
|
|
1280
1288
|
},
|
|
1289
|
+
"timeZone": {
|
|
1290
|
+
"defaultValue": {
|
|
1291
|
+
"value": "undefined",
|
|
1292
|
+
"computed": true
|
|
1293
|
+
},
|
|
1294
|
+
"description": "IANA timezone string to interpret datetime values in (e.g., 'America/New_York')",
|
|
1295
|
+
"type": {
|
|
1296
|
+
"name": "string"
|
|
1297
|
+
},
|
|
1298
|
+
"required": false
|
|
1299
|
+
},
|
|
1281
1300
|
"id": {
|
|
1282
1301
|
"defaultValue": {
|
|
1283
1302
|
"value": "undefined",
|
|
@@ -815,7 +815,6 @@ var DateTimePicker = function DateTimePicker(_ref2) {
|
|
|
815
815
|
return setInvalidState(invalid);
|
|
816
816
|
}, [invalid]);
|
|
817
817
|
var onApplyClick = function onApplyClick() {
|
|
818
|
-
var _value$absolute$start, _value$absolute$end;
|
|
819
818
|
var value = renderValue();
|
|
820
819
|
var returnValue = {
|
|
821
820
|
timeRangeKind: value.kind,
|
|
@@ -830,8 +829,8 @@ var DateTimePicker = function DateTimePicker(_ref2) {
|
|
|
830
829
|
returnValue.timeRangeValue = _objectSpread(_objectSpread({}, value.absolute), {}, {
|
|
831
830
|
humanValue: humanValue,
|
|
832
831
|
tooltipValue: tooltipValue,
|
|
833
|
-
ISOStart:
|
|
834
|
-
ISOEnd:
|
|
832
|
+
ISOStart: value.absolute.start ? new Date(value.absolute.start).toISOString() : undefined,
|
|
833
|
+
ISOEnd: value.absolute.end ? new Date(value.absolute.end).toISOString() : undefined
|
|
835
834
|
});
|
|
836
835
|
break;
|
|
837
836
|
case DateConstants.PICKER_KINDS.SINGLE:
|
|
@@ -43,7 +43,7 @@ var PropTypes__default = /*#__PURE__*/_interopDefault(PropTypes);
|
|
|
43
43
|
var classnames__default = /*#__PURE__*/_interopDefault(classnames);
|
|
44
44
|
var warning__default = /*#__PURE__*/_interopDefault(warning);
|
|
45
45
|
|
|
46
|
-
var _excluded = ["testId", "defaultValue", "dateTimeMask", "presets", "intervals", "relatives", "expanded", "disabled", "invalid", "showRelativeOption", "showCustomRangeLink", "hasTimeInput", "renderPresetTooltipText", "onCancel", "onApply", "i18n", "light", "locale", "hasIconOnly", "menuOffset", "renderInPortal", "useAutoPositioning", "style", "buttonProps"];
|
|
46
|
+
var _excluded = ["testId", "defaultValue", "dateTimeMask", "presets", "intervals", "relatives", "expanded", "disabled", "invalid", "showRelativeOption", "showCustomRangeLink", "hasTimeInput", "renderPresetTooltipText", "onCancel", "onApply", "i18n", "light", "locale", "timeZone", "hasIconOnly", "menuOffset", "renderInPortal", "useAutoPositioning", "style", "buttonProps"];
|
|
47
47
|
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
48
48
|
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty__default.default(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
49
49
|
var iotPrefix = Settings.settings.iotPrefix,
|
|
@@ -153,6 +153,8 @@ var propTypes = {
|
|
|
153
153
|
light: PropTypes__default.default.bool,
|
|
154
154
|
/** The language locale used to format the days of the week, months, and numbers. */
|
|
155
155
|
locale: PropTypes__default.default.string,
|
|
156
|
+
/** IANA timezone string to set as default timezone for dayjs */
|
|
157
|
+
timeZone: PropTypes__default.default.string,
|
|
156
158
|
/** Unique id of the component */
|
|
157
159
|
id: PropTypes__default.default.string,
|
|
158
160
|
/** Optionally renders only an icon rather than displaying the current selected time */
|
|
@@ -243,6 +245,7 @@ var defaultProps = {
|
|
|
243
245
|
},
|
|
244
246
|
light: false,
|
|
245
247
|
locale: 'en',
|
|
248
|
+
timeZone: undefined,
|
|
246
249
|
id: undefined,
|
|
247
250
|
hasIconOnly: false,
|
|
248
251
|
menuOffset: undefined,
|
|
@@ -271,6 +274,7 @@ var DateTimePicker = function DateTimePicker(_ref) {
|
|
|
271
274
|
i18n = _ref.i18n,
|
|
272
275
|
light = _ref.light,
|
|
273
276
|
locale = _ref.locale,
|
|
277
|
+
timeZone = _ref.timeZone,
|
|
274
278
|
hasIconOnly = _ref.hasIconOnly,
|
|
275
279
|
menuOffset = _ref.menuOffset,
|
|
276
280
|
renderInPortal = _ref.renderInPortal,
|
|
@@ -278,6 +282,9 @@ var DateTimePicker = function DateTimePicker(_ref) {
|
|
|
278
282
|
style = _ref.style,
|
|
279
283
|
buttonProps = _ref.buttonProps,
|
|
280
284
|
others = _objectWithoutProperties__default.default(_ref, _excluded);
|
|
285
|
+
var effectiveTimezone = timeZone || dayjs.default.tz.guess();
|
|
286
|
+
dayjs.default.tz.setDefault(effectiveTimezone);
|
|
287
|
+
dayjs.default.locale(locale);
|
|
281
288
|
var id = React.useRef(others.id || uuid.v4()).current;
|
|
282
289
|
React__default.default.useEffect(function () {
|
|
283
290
|
{
|
|
@@ -417,7 +424,7 @@ var DateTimePicker = function DateTimePicker(_ref) {
|
|
|
417
424
|
value.kind = DateConstants.PICKER_KINDS.PRESET;
|
|
418
425
|
}
|
|
419
426
|
setCurrentValue(value);
|
|
420
|
-
var parsedValue = dateTimePickerUtils.parseValue(value, dateTimeMask, mergedI18n.toLabel);
|
|
427
|
+
var parsedValue = dateTimePickerUtils.parseValue(value, dateTimeMask, mergedI18n.toLabel, hasTimeInput, effectiveTimezone);
|
|
421
428
|
setHumanValue(parsedValue.readableValue);
|
|
422
429
|
return _objectSpread(_objectSpread({}, value), parsedValue);
|
|
423
430
|
};
|
|
@@ -472,15 +479,17 @@ var DateTimePicker = function DateTimePicker(_ref) {
|
|
|
472
479
|
setIsCustomRange(true);
|
|
473
480
|
setCustomRangeKind(DateConstants.PICKER_KINDS.ABSOLUTE);
|
|
474
481
|
if (!absolute.hasOwnProperty('start')) {
|
|
475
|
-
|
|
482
|
+
var startDateTime = "".concat(absolute.startDate, " ").concat(absolute.startTime);
|
|
483
|
+
absolute.start = dayjs.default.tz(startDateTime, dayjs.detectDateTimeFormat(startDateTime), effectiveTimezone).valueOf();
|
|
476
484
|
}
|
|
477
485
|
if (!absolute.hasOwnProperty('end')) {
|
|
478
|
-
|
|
486
|
+
var endDateTime = "".concat(absolute.endDate, " ").concat(absolute.endTime);
|
|
487
|
+
absolute.end = dayjs.default.tz(endDateTime, dayjs.detectDateTimeFormat(endDateTime), effectiveTimezone).valueOf();
|
|
479
488
|
}
|
|
480
|
-
absolute.startDate = dayjs.default(absolute.start).format('MM/DD/YYYY');
|
|
481
|
-
absolute.startTime = dayjs.default(absolute.start).format('HH:mm');
|
|
482
|
-
absolute.endDate = dayjs.default(absolute.end).format('MM/DD/YYYY');
|
|
483
|
-
absolute.endTime = dayjs.default(absolute.end).format('HH:mm');
|
|
489
|
+
absolute.startDate = dayjs.default.tz(absolute.start).format('MM/DD/YYYY');
|
|
490
|
+
absolute.startTime = dayjs.default.tz(absolute.start).format('HH:mm');
|
|
491
|
+
absolute.endDate = dayjs.default.tz(absolute.end).format('MM/DD/YYYY');
|
|
492
|
+
absolute.endTime = dayjs.default.tz(absolute.end).format('HH:mm');
|
|
484
493
|
setAbsoluteValue(absolute);
|
|
485
494
|
}
|
|
486
495
|
} else {
|
|
@@ -527,7 +536,7 @@ var DateTimePicker = function DateTimePicker(_ref) {
|
|
|
527
536
|
humanValue: humanValue
|
|
528
537
|
});
|
|
529
538
|
var disableRelativeApply = isCustomRange && customRangeKind === DateConstants.PICKER_KINDS.RELATIVE && (relativeLastNumberInvalid || relativeToTimeInvalid);
|
|
530
|
-
var disableAbsoluteApply = isCustomRange && customRangeKind === DateConstants.PICKER_KINDS.ABSOLUTE && (absoluteStartTimeInvalid || absoluteEndTimeInvalid || absoluteValue.startDate
|
|
539
|
+
var disableAbsoluteApply = isCustomRange && customRangeKind === DateConstants.PICKER_KINDS.ABSOLUTE && (absoluteStartTimeInvalid || absoluteEndTimeInvalid || !absoluteValue.startDate || !absoluteValue.endDate || (hasTimeInput ? !absoluteValue.startTime || !absoluteValue.endTime : false));
|
|
531
540
|
var disableApply = disableRelativeApply || disableAbsoluteApply;
|
|
532
541
|
React.useEffect(function () {
|
|
533
542
|
return setInvalidState(invalid || disableApply);
|
|
@@ -1221,6 +1230,17 @@ DateTimePicker.__docgenInfo = {
|
|
|
1221
1230
|
},
|
|
1222
1231
|
"required": false
|
|
1223
1232
|
},
|
|
1233
|
+
"timeZone": {
|
|
1234
|
+
"defaultValue": {
|
|
1235
|
+
"value": "undefined",
|
|
1236
|
+
"computed": true
|
|
1237
|
+
},
|
|
1238
|
+
"description": "IANA timezone string to set as default timezone for dayjs",
|
|
1239
|
+
"type": {
|
|
1240
|
+
"name": "string"
|
|
1241
|
+
},
|
|
1242
|
+
"required": false
|
|
1243
|
+
},
|
|
1224
1244
|
"id": {
|
|
1225
1245
|
"defaultValue": {
|
|
1226
1246
|
"value": "undefined",
|
|
@@ -89,7 +89,7 @@ var format12hourTo24hour = function format12hourTo24hour(time12hour) {
|
|
|
89
89
|
* @param {Object} value - the absolute time selection
|
|
90
90
|
* @returns {Object} a human readable value and a furtherly augmented value object
|
|
91
91
|
*/
|
|
92
|
-
var parseValue = function parseValue(timeRange, dateTimeMask, toLabel, hasTimeInput) {
|
|
92
|
+
var parseValue = function parseValue(timeRange, dateTimeMask, toLabel, hasTimeInput, timeZone) {
|
|
93
93
|
var _timeRange$kind, _timeRange$relative, _timeRange$absolute, _timeRange$single, _timeRange$preset;
|
|
94
94
|
var readableValue = '';
|
|
95
95
|
if (!timeRange) {
|
|
@@ -109,9 +109,9 @@ var parseValue = function parseValue(timeRange, dateTimeMask, toLabel, hasTimeIn
|
|
|
109
109
|
switch (kind) {
|
|
110
110
|
case DateConstants.PICKER_KINDS.RELATIVE:
|
|
111
111
|
{
|
|
112
|
-
var endDate = dayjs.default();
|
|
112
|
+
var endDate = dayjs.default.tz();
|
|
113
113
|
if (value.relativeToWhen !== '') {
|
|
114
|
-
endDate = value.relativeToWhen === DateConstants.RELATIVE_VALUES.YESTERDAY ? dayjs.default().
|
|
114
|
+
endDate = value.relativeToWhen === DateConstants.RELATIVE_VALUES.YESTERDAY ? dayjs.default.tz().subtract(1, DateConstants.INTERVAL_VALUES.DAYS) : dayjs.default.tz();
|
|
115
115
|
// wait to parse it until fully typed
|
|
116
116
|
if (value.relativeToTime.length === 5) {
|
|
117
117
|
endDate = endDate.hour(Number(value.relativeToTime.split(':')[0]));
|
|
@@ -123,37 +123,42 @@ var parseValue = function parseValue(timeRange, dateTimeMask, toLabel, hasTimeIn
|
|
|
123
123
|
}
|
|
124
124
|
returnValue.relative.start = new Date(startDate.valueOf());
|
|
125
125
|
returnValue.relative.end = new Date(endDate.valueOf());
|
|
126
|
-
readableValue = "".concat(
|
|
126
|
+
readableValue = "".concat(startDate.format(dateTimeMask), " ").concat(toLabel, " ").concat(endDate.format(dateTimeMask));
|
|
127
127
|
}
|
|
128
128
|
break;
|
|
129
129
|
}
|
|
130
130
|
case DateConstants.PICKER_KINDS.ABSOLUTE:
|
|
131
131
|
{
|
|
132
|
-
var _value$start
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
var
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
_endDate =
|
|
132
|
+
var _value$start;
|
|
133
|
+
if ((_value$start = value.start) !== null && _value$start !== void 0 ? _value$start : value.startDate) {
|
|
134
|
+
var _value$end;
|
|
135
|
+
var _startDate = value.start instanceof Date ? dayjs.default(value.start).tz(timeZone, true) // Date from picker - preserve local time
|
|
136
|
+
: value.start ? dayjs.default.tz(value.start) // Timestamp - convert from UTC
|
|
137
|
+
: dayjs.default.tz(value.startDate, 'MM/DD/YYYY', timeZone); // String - parse with format
|
|
138
|
+
|
|
139
|
+
if (value.startTime && value.startTime.includes(':')) {
|
|
140
|
+
var formatedStartTime = is24hours(dateTimeMask) ? value.startTime : format12hourTo24hour(value.startTime);
|
|
141
|
+
_startDate = _startDate.hours(formatedStartTime.split(':')[0]);
|
|
142
|
+
_startDate = _startDate.minutes(formatedStartTime.split(':')[1]);
|
|
143
|
+
}
|
|
144
|
+
if (!returnValue.absolute) {
|
|
145
|
+
returnValue.absolute = {};
|
|
146
|
+
}
|
|
147
|
+
returnValue.absolute.start = _startDate.valueOf();
|
|
148
|
+
var startTimeValue = value.startTime ? "".concat(_startDate.format(dateTimeMask)) : "".concat(_startDate.format(dateTimeMask)).split(' ')[0];
|
|
149
|
+
if ((_value$end = value.end) !== null && _value$end !== void 0 ? _value$end : value.endDate) {
|
|
150
|
+
var _endDate = value.end instanceof Date ? dayjs.default(value.end).tz(timeZone, true) : value.end ? dayjs.default(value.end).tz(timeZone) : dayjs.default.tz(value.endDate, 'MM/DD/YYYY', timeZone);
|
|
151
|
+
if (value.endTime && value.endTime.includes(':')) {
|
|
152
|
+
var formatedEndTime = is24hours(dateTimeMask) ? value.endTime : format12hourTo24hour(value.endTime);
|
|
153
|
+
_endDate = _endDate.hours(formatedEndTime.split(':')[0]);
|
|
154
|
+
_endDate = _endDate.minutes(formatedEndTime.split(':')[1]);
|
|
155
|
+
}
|
|
156
|
+
var endTimeValue = value.endTime ? "".concat(_endDate.format(dateTimeMask)) : "".concat(_endDate.format(dateTimeMask)).split(' ')[0];
|
|
157
|
+
returnValue.absolute.end = _endDate.valueOf();
|
|
158
|
+
readableValue = "".concat(startTimeValue, " ").concat(toLabel, " ").concat(endTimeValue);
|
|
159
|
+
} else {
|
|
160
|
+
readableValue = "".concat(startTimeValue, " ").concat(toLabel, " ").concat(startTimeValue);
|
|
151
161
|
}
|
|
152
|
-
var endTimeValue = value.endTime ? "".concat(dayjs.default(_endDate).format(dateTimeMask)) : "".concat(dayjs.default(_endDate).format(dateTimeMask)).split(' ')[0];
|
|
153
|
-
returnValue.absolute.end = new Date(_endDate.valueOf());
|
|
154
|
-
readableValue = "".concat(startTimeValue, " ").concat(toLabel, " ").concat(endTimeValue);
|
|
155
|
-
} else {
|
|
156
|
-
readableValue = "".concat(startTimeValue, " ").concat(toLabel, " ").concat(startTimeValue);
|
|
157
162
|
}
|
|
158
163
|
break;
|
|
159
164
|
}
|
|
@@ -584,7 +589,7 @@ var getIntervalValue = function getIntervalValue(_ref7) {
|
|
|
584
589
|
humanValue = _ref7.humanValue;
|
|
585
590
|
if (currentValue) {
|
|
586
591
|
if (currentValue.kind === DateConstants.PICKER_KINDS.PRESET) {
|
|
587
|
-
return "".concat(dayjs.default().subtract(currentValue.preset.offset, 'minutes').format(dateTimeMask), " ").concat(mergedI18n.toNowLabel);
|
|
592
|
+
return "".concat(dayjs.default.tz().subtract(currentValue.preset.offset, 'minutes').format(dateTimeMask), " ").concat(mergedI18n.toNowLabel);
|
|
588
593
|
}
|
|
589
594
|
return humanValue;
|
|
590
595
|
}
|
|
@@ -28,6 +28,7 @@ var Card = require('../Card/Card.js');
|
|
|
28
28
|
var cardUtilityFunctions = require('../../utils/cardUtilityFunctions.js');
|
|
29
29
|
var editorUtils = require('../DashboardEditor/editorUtils.js');
|
|
30
30
|
var Settings = require('../../constants/Settings.js');
|
|
31
|
+
var dayjs = require('../../utils/dayjs.js');
|
|
31
32
|
var ImageHotspots = require('./ImageHotspots.js');
|
|
32
33
|
var ImageUploader = require('./ImageUploader.js');
|
|
33
34
|
var iconsReact = require('@carbon/icons-react');
|
|
@@ -40,7 +41,7 @@ var _objectWithoutProperties__default = /*#__PURE__*/_interopDefault(_objectWith
|
|
|
40
41
|
var _defineProperty__default = /*#__PURE__*/_interopDefault(_defineProperty);
|
|
41
42
|
var React__default = /*#__PURE__*/_interopDefault(React);
|
|
42
43
|
|
|
43
|
-
var _excluded = ["title", "content", "children", "values", "size", "onCardAction", "availableActions", "isEditable", "isExpanded", "isResizable", "error", "isLoading", "maxFileSizeInBytes", "i18n", "i18n", "renderIconByName", "locale", "onUpload", "validateUploadedImage", "onBrowseClick", "testID", "testId"];
|
|
44
|
+
var _excluded = ["title", "content", "children", "values", "size", "onCardAction", "availableActions", "isEditable", "isExpanded", "isResizable", "error", "isLoading", "maxFileSizeInBytes", "i18n", "i18n", "renderIconByName", "locale", "onUpload", "validateUploadedImage", "onBrowseClick", "testID", "testId", "timeZone"];
|
|
44
45
|
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
45
46
|
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty__default.default(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
46
47
|
var iotPrefix = Settings.settings.iotPrefix;
|
|
@@ -62,6 +63,7 @@ var defaultProps = {
|
|
|
62
63
|
}
|
|
63
64
|
},
|
|
64
65
|
locale: 'en',
|
|
66
|
+
timeZone: undefined,
|
|
65
67
|
content: {},
|
|
66
68
|
maxFileSizeInBytes: 1048576,
|
|
67
69
|
accept: null,
|
|
@@ -121,7 +123,10 @@ var ImageCard = function ImageCard(_ref) {
|
|
|
121
123
|
onBrowseClick = _ref.onBrowseClick,
|
|
122
124
|
testID = _ref.testID,
|
|
123
125
|
testId = _ref.testId,
|
|
126
|
+
timeZone = _ref.timeZone,
|
|
124
127
|
others = _objectWithoutProperties__default.default(_ref, _excluded);
|
|
128
|
+
var effectiveTimezone = timeZone || dayjs.default.tz.guess();
|
|
129
|
+
dayjs.default.tz.setDefault(effectiveTimezone);
|
|
125
130
|
var _useState = React.useState(content),
|
|
126
131
|
_useState2 = _slicedToArray__default.default(_useState, 2),
|
|
127
132
|
imgContent = _useState2[0],
|
|
@@ -180,7 +185,8 @@ var ImageCard = function ImageCard(_ref) {
|
|
|
180
185
|
// TODO: remove deprecated testID prop in v3.
|
|
181
186
|
,
|
|
182
187
|
testId: testID || testId,
|
|
183
|
-
locale: locale
|
|
188
|
+
locale: locale,
|
|
189
|
+
timeZone: effectiveTimezone
|
|
184
190
|
}, others, {
|
|
185
191
|
error: error,
|
|
186
192
|
i18n: mergedI18n
|
|
@@ -256,6 +262,13 @@ ImageCard.__docgenInfo = {
|
|
|
256
262
|
},
|
|
257
263
|
"required": false
|
|
258
264
|
},
|
|
265
|
+
"timeZone": {
|
|
266
|
+
"defaultValue": {
|
|
267
|
+
"value": "undefined",
|
|
268
|
+
"computed": true
|
|
269
|
+
},
|
|
270
|
+
"required": false
|
|
271
|
+
},
|
|
259
272
|
"content": {
|
|
260
273
|
"defaultValue": {
|
|
261
274
|
"value": "{}",
|
|
@@ -26,6 +26,7 @@ var CardPropTypes = require('../../constants/CardPropTypes.js');
|
|
|
26
26
|
var Card = require('../Card/Card.js');
|
|
27
27
|
var cardUtilityFunctions = require('../../utils/cardUtilityFunctions.js');
|
|
28
28
|
var deprecate = require('../../internal/deprecate.js');
|
|
29
|
+
var dayjs = require('../../utils/dayjs.js');
|
|
29
30
|
|
|
30
31
|
function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
|
|
31
32
|
|
|
@@ -36,7 +37,7 @@ var React__default = /*#__PURE__*/_interopDefault(React);
|
|
|
36
37
|
var PropTypes__default = /*#__PURE__*/_interopDefault(PropTypes);
|
|
37
38
|
var classnames__default = /*#__PURE__*/_interopDefault(classnames);
|
|
38
39
|
|
|
39
|
-
var _excluded = ["id", "title", "size", "data", "isLoading", "isResizable", "loadData", "hasMoreData", "layout", "className", "children", "testID", "testId"];
|
|
40
|
+
var _excluded = ["id", "title", "size", "data", "isLoading", "isResizable", "loadData", "hasMoreData", "layout", "className", "children", "testID", "testId", "timeZone"];
|
|
40
41
|
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
41
42
|
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty__default.default(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
42
43
|
var ListCard = function ListCard(_ref) {
|
|
@@ -53,7 +54,10 @@ var ListCard = function ListCard(_ref) {
|
|
|
53
54
|
children = _ref.children,
|
|
54
55
|
testID = _ref.testID,
|
|
55
56
|
testId = _ref.testId,
|
|
57
|
+
timeZone = _ref.timeZone,
|
|
56
58
|
others = _objectWithoutProperties__default.default(_ref, _excluded);
|
|
59
|
+
var effectiveTimezone = timeZone || dayjs.default.tz.guess();
|
|
60
|
+
dayjs.default.tz.setDefault(effectiveTimezone);
|
|
57
61
|
var handleScroll = function handleScroll(e) {
|
|
58
62
|
var element = e.target;
|
|
59
63
|
// height of the elements content - height element’s content is scrolled vertically === height of the scrollable part of the element
|
|
@@ -71,7 +75,8 @@ var ListCard = function ListCard(_ref) {
|
|
|
71
75
|
resizeHandles: resizeHandles
|
|
72
76
|
// TODO: remove deprecated 'testID' in v3.
|
|
73
77
|
,
|
|
74
|
-
testId: testID || testId
|
|
78
|
+
testId: testID || testId,
|
|
79
|
+
timeZone: effectiveTimezone
|
|
75
80
|
}, others), /*#__PURE__*/React__default.default.createElement("div", {
|
|
76
81
|
className: classnames__default.default('list-card', className),
|
|
77
82
|
style: {
|
|
@@ -55,13 +55,14 @@ var React__default = /*#__PURE__*/_interopDefault(React);
|
|
|
55
55
|
var classnames__default = /*#__PURE__*/_interopDefault(classnames);
|
|
56
56
|
var PropTypes__default = /*#__PURE__*/_interopDefault(PropTypes);
|
|
57
57
|
|
|
58
|
-
var _excluded = ["id", "title", "isExpanded", "content", "children", "size", "onCardAction", "values", "filters", "isEditable", "isResizable", "i18n", "tooltip", "locale", "timeRange", "timeRangeOptions", "availableActions", "isLoading", "testID", "testId", "className", "renderDateDropdownInPortal", "withToolbarTooltips", "defaultDateFormatPattern", "extraActions"];
|
|
58
|
+
var _excluded = ["id", "title", "isExpanded", "content", "children", "size", "onCardAction", "values", "filters", "isEditable", "isResizable", "i18n", "tooltip", "locale", "timeZone", "timeRange", "timeRangeOptions", "availableActions", "isLoading", "testID", "testId", "className", "renderDateDropdownInPortal", "withToolbarTooltips", "defaultDateFormatPattern", "extraActions"];
|
|
59
59
|
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
60
60
|
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty__default.default(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
61
61
|
var iotPrefix = Settings.settings.iotPrefix;
|
|
62
62
|
var defaultProps = {
|
|
63
63
|
size: LayoutConstants.CARD_SIZES.LARGE,
|
|
64
64
|
locale: 'en',
|
|
65
|
+
timeZone: undefined,
|
|
65
66
|
values: [],
|
|
66
67
|
filters: [],
|
|
67
68
|
i18n: {
|
|
@@ -115,6 +116,7 @@ var TableCard = function TableCard(_ref) {
|
|
|
115
116
|
i18n = _ref.i18n,
|
|
116
117
|
tooltip = _ref.tooltip,
|
|
117
118
|
locale = _ref.locale,
|
|
119
|
+
timeZone = _ref.timeZone,
|
|
118
120
|
timeRange = _ref.timeRange,
|
|
119
121
|
timeRangeOptions = _ref.timeRangeOptions,
|
|
120
122
|
availableActions = _ref.availableActions,
|
|
@@ -128,8 +130,8 @@ var TableCard = function TableCard(_ref) {
|
|
|
128
130
|
extraActions = _ref.extraActions,
|
|
129
131
|
others = _objectWithoutProperties__default.default(_ref, _excluded);
|
|
130
132
|
var mergedI18n = _objectSpread(_objectSpread({}, defaultProps.i18n), i18n);
|
|
131
|
-
|
|
132
|
-
|
|
133
|
+
var effectiveTimezone = timeZone || dayjs.default.tz.guess();
|
|
134
|
+
dayjs.default.tz.setDefault(effectiveTimezone);
|
|
133
135
|
dayjs.default.locale(locale);
|
|
134
136
|
/** Searches for variables and updates the card if it is passed the cardVariables prop */
|
|
135
137
|
// Need to skip the linkTemplate variable for now because we will handle it at render time per row
|
|
@@ -312,7 +314,7 @@ var TableCard = function TableCard(_ref) {
|
|
|
312
314
|
var values = _objectSpread({}, row.values);
|
|
313
315
|
Object.keys(values).forEach(function (column) {
|
|
314
316
|
if (!isEditable && filteredTimestampColumns.includes(column)) {
|
|
315
|
-
values[column] = values[column] ? dayjs.default(values[column]).format(defaultDateFormatPattern) : '';
|
|
317
|
+
values[column] = values[column] ? dayjs.default.tz(values[column]).format(defaultDateFormatPattern) : '';
|
|
316
318
|
}
|
|
317
319
|
});
|
|
318
320
|
return _objectSpread(_objectSpread({}, row), {}, {
|
|
@@ -490,6 +492,7 @@ var TableCard = function TableCard(_ref) {
|
|
|
490
492
|
timeRangeOptions: timeRangeOptions,
|
|
491
493
|
renderDateDropdownInPortal: renderDateDropdownInPortal,
|
|
492
494
|
locale: locale,
|
|
495
|
+
timeZone: effectiveTimezone,
|
|
493
496
|
id: id,
|
|
494
497
|
extraActions: extraActions
|
|
495
498
|
});
|
|
@@ -507,6 +510,7 @@ var TableCard = function TableCard(_ref) {
|
|
|
507
510
|
isExpanded: isExpanded,
|
|
508
511
|
i18n: mergedI18n,
|
|
509
512
|
locale: locale,
|
|
513
|
+
timeZone: effectiveTimezone,
|
|
510
514
|
resizeHandles: resizeHandles,
|
|
511
515
|
hideHeader: true,
|
|
512
516
|
className: classnames__default.default("".concat(iotPrefix, "--table-card"), className, _defineProperty__default.default({}, "".concat(iotPrefix, "--table-card--with-tooltips"), withToolbarTooltips))
|
|
@@ -614,6 +618,13 @@ TableCard.__docgenInfo = {
|
|
|
614
618
|
},
|
|
615
619
|
"required": false
|
|
616
620
|
},
|
|
621
|
+
"timeZone": {
|
|
622
|
+
"defaultValue": {
|
|
623
|
+
"value": "undefined",
|
|
624
|
+
"computed": true
|
|
625
|
+
},
|
|
626
|
+
"required": false
|
|
627
|
+
},
|
|
617
628
|
"values": {
|
|
618
629
|
"defaultValue": {
|
|
619
630
|
"value": "[]",
|
|
@@ -70,7 +70,7 @@ var createColumnsWithFormattedLinks = function createColumnsWithFormattedLinks(c
|
|
|
70
70
|
});
|
|
71
71
|
var variableValue =
|
|
72
72
|
// format the TIMESTAMP type columns
|
|
73
|
-
(matchingColumn === null || matchingColumn === void 0 ? void 0 : matchingColumn.type) === 'TIMESTAMP' ? dayjs.default(row[variable]).format(defaultDateFormatPattern) : row[variable];
|
|
73
|
+
(matchingColumn === null || matchingColumn === void 0 ? void 0 : matchingColumn.type) === 'TIMESTAMP' ? dayjs.default.tz(row[variable]).format(defaultDateFormatPattern) : row[variable];
|
|
74
74
|
// encode value so the URL can be valid
|
|
75
75
|
var encodedValue = typeof variableValue === 'string' && variableValue !== null && variableValue !== void 0 && variableValue.includes('https') ? variableValue : encodeURIComponent(variableValue);
|
|
76
76
|
variableLink = variableLink.replace("{".concat(variable, "}"), encodedValue);
|
|
@@ -138,7 +138,7 @@ var determineFilterFunction = function determineFilterFunction(column, defaultFi
|
|
|
138
138
|
var defaultDateFormatPattern = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : dayjs.DAYJS_INPUT_FORMATS.SECONDS;
|
|
139
139
|
return _objectSpread(_objectSpread({}, column.type === 'TIMESTAMP' ? {
|
|
140
140
|
filterFunction: function filterFunction(cellValue, filterValue) {
|
|
141
|
-
var dateString = dayjs.default(cellValue).format(defaultDateFormatPattern);
|
|
141
|
+
var dateString = dayjs.default.tz(cellValue).format(defaultDateFormatPattern);
|
|
142
142
|
return dateString.includes(filterValue);
|
|
143
143
|
}
|
|
144
144
|
} : {}), {}, {
|
|
@@ -54,7 +54,7 @@ var React__default = /*#__PURE__*/_interopDefault(React);
|
|
|
54
54
|
var PropTypes__default = /*#__PURE__*/_interopDefault(PropTypes);
|
|
55
55
|
var classnames__default = /*#__PURE__*/_interopDefault(classnames);
|
|
56
56
|
|
|
57
|
-
var _excluded = ["title", "content", "children", "size", "interval", "isEditable", "isResizable", "values", "locale", "i18n", "isExpanded", "timeRange", "isLazyLoading", "isLoading", "domainRange", "tooltipDateFormatPattern", "tooltipShowTotals", "showTimeInGMT", "testID", "testId", "defaultDateFormatPattern"];
|
|
57
|
+
var _excluded = ["title", "content", "children", "size", "interval", "isEditable", "isResizable", "values", "locale", "timeZone", "i18n", "isExpanded", "timeRange", "isLazyLoading", "isLoading", "domainRange", "tooltipDateFormatPattern", "tooltipShowTotals", "showTimeInGMT", "testID", "testId", "defaultDateFormatPattern"];
|
|
58
58
|
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
59
59
|
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty__default.default(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
60
60
|
var iotPrefix = Settings.settings.iotPrefix;
|
|
@@ -171,6 +171,7 @@ var defaultProps = {
|
|
|
171
171
|
},
|
|
172
172
|
chartType: LayoutConstants.TIME_SERIES_TYPES.LINE,
|
|
173
173
|
locale: 'en',
|
|
174
|
+
timeZone: undefined,
|
|
174
175
|
content: {
|
|
175
176
|
series: [],
|
|
176
177
|
timeDataSourceId: 'timestamp',
|
|
@@ -201,6 +202,7 @@ var TimeSeriesCard = function TimeSeriesCard(_ref) {
|
|
|
201
202
|
isResizable = _ref.isResizable,
|
|
202
203
|
initialValues = _ref.values,
|
|
203
204
|
locale = _ref.locale,
|
|
205
|
+
timeZone = _ref.timeZone,
|
|
204
206
|
i18n = _ref.i18n,
|
|
205
207
|
isExpanded = _ref.isExpanded,
|
|
206
208
|
timeRange = _ref.timeRange,
|
|
@@ -214,6 +216,9 @@ var TimeSeriesCard = function TimeSeriesCard(_ref) {
|
|
|
214
216
|
testId = _ref.testId,
|
|
215
217
|
defaultDateFormatPattern = _ref.defaultDateFormatPattern,
|
|
216
218
|
others = _objectWithoutProperties__default.default(_ref, _excluded);
|
|
219
|
+
var effectiveTimezone = timeZone || dayjs.default.tz.guess();
|
|
220
|
+
dayjs.default.tz.setDefault(effectiveTimezone);
|
|
221
|
+
dayjs.default.locale(locale);
|
|
217
222
|
// need to deep merge the nested content default props as default props only uses a shallow merge natively
|
|
218
223
|
var contentWithDefaults = React.useMemo(function () {
|
|
219
224
|
return defaultsDeep({}, content, defaultProps.content);
|
|
@@ -243,8 +248,6 @@ var TimeSeriesCard = function TimeSeriesCard(_ref) {
|
|
|
243
248
|
valuesProp = _handleCardVariables.values;
|
|
244
249
|
var chartRef = React.useRef(null);
|
|
245
250
|
var previousTick = React.useRef();
|
|
246
|
-
dayjs.default.locale(locale);
|
|
247
|
-
|
|
248
251
|
// Workaround since downstream consumers might keep regenerating the series object and useMemo does a direct in-memory comparison for the object
|
|
249
252
|
var objectAgnosticSeries = JSON.stringify(series);
|
|
250
253
|
var objectAgnosticThresholds = JSON.stringify(thresholds);
|
|
@@ -324,7 +327,7 @@ var TimeSeriesCard = function TimeSeriesCard(_ref) {
|
|
|
324
327
|
});
|
|
325
328
|
return {
|
|
326
329
|
id: "dataindex-".concat(index),
|
|
327
|
-
values: _objectSpread(_objectSpread({}, omit(value, timeDataSourceId)), {}, _defineProperty__default.default({}, timeDataSourceId, dayjs.default(value[timeDataSourceId]).format(defaultDateFormatPattern))),
|
|
330
|
+
values: _objectSpread(_objectSpread({}, omit(value, timeDataSourceId)), {}, _defineProperty__default.default({}, timeDataSourceId, dayjs.default.tz(value[timeDataSourceId]).format(defaultDateFormatPattern))),
|
|
328
331
|
isSelectable: false
|
|
329
332
|
};
|
|
330
333
|
});
|
|
@@ -478,6 +481,7 @@ var TimeSeriesCard = function TimeSeriesCard(_ref) {
|
|
|
478
481
|
timeRange: timeRange
|
|
479
482
|
}, others, {
|
|
480
483
|
locale: locale,
|
|
484
|
+
timeZone: effectiveTimezone,
|
|
481
485
|
isExpanded: isExpanded,
|
|
482
486
|
isEditable: isEditable,
|
|
483
487
|
isEmpty: isChartDataEmpty,
|
|
@@ -628,6 +632,13 @@ TimeSeriesCard.__docgenInfo = {
|
|
|
628
632
|
},
|
|
629
633
|
"required": false
|
|
630
634
|
},
|
|
635
|
+
"timeZone": {
|
|
636
|
+
"defaultValue": {
|
|
637
|
+
"value": "undefined",
|
|
638
|
+
"computed": true
|
|
639
|
+
},
|
|
640
|
+
"required": false
|
|
641
|
+
},
|
|
631
642
|
"content": {
|
|
632
643
|
"defaultValue": {
|
|
633
644
|
"value": "{\n series: [],\n timeDataSourceId: 'timestamp',\n includeZeroOnXaxis: false,\n includeZeroOnYaxis: false,\n showLegend: true,\n legendPosition: 'bottom',\n truncation: {\n type: 'end_line',\n threshold: 20,\n numCharacter: 20,\n },\n}",
|
|
@@ -146,7 +146,7 @@ var formatGraphTick = function formatGraphTick(timestamp, index, ticks, interval
|
|
|
146
146
|
var previousTickTimestamp = arguments.length > 5 ? arguments[5] : undefined;
|
|
147
147
|
var shouldDisplayGMT = arguments.length > 6 ? arguments[6] : undefined;
|
|
148
148
|
dayjs.default.locale(locale);
|
|
149
|
-
var currentTimestamp = shouldDisplayGMT ? dayjs.default.utc(timestamp) : dayjs.default(timestamp);
|
|
149
|
+
var currentTimestamp = shouldDisplayGMT ? dayjs.default.utc(timestamp) : dayjs.default.tz(timestamp);
|
|
150
150
|
var sameDay = dayjs.default(previousTickTimestamp).isSame(currentTimestamp, 'day');
|
|
151
151
|
var sameMonth = dayjs.default(previousTickTimestamp).isSame(currentTimestamp, 'month');
|
|
152
152
|
var sameYear = dayjs.default(previousTickTimestamp).isSame(currentTimestamp, 'year');
|
|
@@ -240,7 +240,7 @@ var formatChartData = function formatChartData() {
|
|
|
240
240
|
// Check to see if the data Item actually exists in this timestamp before adding to data (to support sparse data in the values)
|
|
241
241
|
if (!isNil(dataItem[dataSourceId])) {
|
|
242
242
|
data.push({
|
|
243
|
-
date:
|
|
243
|
+
date: dayjs.default.tz(dataItem[timeDataSourceId]).toDate(),
|
|
244
244
|
value: dataItem[dataSourceId],
|
|
245
245
|
group: label,
|
|
246
246
|
dataSourceId: dataSourceId
|
|
@@ -124,6 +124,7 @@ var Attribute = function Attribute(_ref) {
|
|
|
124
124
|
|
|
125
125
|
// Get translated label if shouldUseTranslatedLabels is true
|
|
126
126
|
var displayLabel = cardUtilityFunctions.getTranslatedLabel(label, shouldUseTranslatedLabels, i18n);
|
|
127
|
+
var displayUnitLabel = cardUtilityFunctions.getTranslatedLabel(unit, shouldUseTranslatedLabels, i18n);
|
|
127
128
|
return /*#__PURE__*/React__default.default.createElement("div", {
|
|
128
129
|
className: classnames__default.default("".concat(BEM_BASE, "-wrapper"), _defineProperty__default.default(_defineProperty__default.default({}, "".concat(BEM_BASE, "-wrapper--vertical"), layout === LayoutConstants.CARD_LAYOUTS.VERTICAL), "".concat(BEM_BASE, "-wrapper--horizontal"), layout === LayoutConstants.CARD_LAYOUTS.HORIZONTAL)),
|
|
129
130
|
style: {
|
|
@@ -162,7 +163,7 @@ var Attribute = function Attribute(_ref) {
|
|
|
162
163
|
measurementUnitLabel: measurementUnitLabel,
|
|
163
164
|
onClick: onValueClick
|
|
164
165
|
}), /*#__PURE__*/React__default.default.createElement(UnitRenderer, {
|
|
165
|
-
unit:
|
|
166
|
+
unit: displayUnitLabel,
|
|
166
167
|
testId: "".concat(testId, "-unit")
|
|
167
168
|
})), !isNil(secondaryValue) ? /*#__PURE__*/React__default.default.createElement("div", {
|
|
168
169
|
"data-testid": "".concat(testId, "-secondary-value"),
|