@bigbinary/neeto-filters-frontend 3.2.3 → 3.2.4

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/dist/index.cjs.js CHANGED
@@ -566,7 +566,7 @@ var buildFiltersFromSearchParams = function buildFiltersFromSearchParams(columns
566
566
  }, column);
567
567
  } else if (isTime(defaultType) && isCustomTimeRange(value)) {
568
568
  return ramda.mergeLeft({
569
- value: value.split(",")
569
+ value: value
570
570
  }, column);
571
571
  } else if (isSingleDate(defaultType)) {
572
572
  var _value$split3 = value.split("+rule-"),
@@ -972,6 +972,9 @@ var getColumnsWithStandardizedType = function getColumnsWithStandardizedType(col
972
972
  });
973
973
  });
974
974
  };
975
+ var isNilOrEmpty = function isNilOrEmpty(param) {
976
+ return ramda.isNil(param) || ramda.isEmpty(param);
977
+ };
975
978
  var isKeywordFilterPresent = function isKeywordFilterPresent(keyworFilter) {
976
979
  return ramda.not(ramda.isEmpty(keyworFilter.node));
977
980
  };
@@ -1323,6 +1326,7 @@ var Segment = function Segment(_ref) {
1323
1326
  });
1324
1327
  };
1325
1328
  return /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, ramda.isNil(segmentId) ? /*#__PURE__*/React__default["default"].createElement(neetoui.Button, {
1329
+ "data-cy": "save-segment-button",
1326
1330
  disabled: hasOnlyKeywordFilter(filters),
1327
1331
  label: t("neetoFilters.segments.saveAsSegment"),
1328
1332
  style: "secondary",
@@ -1751,6 +1755,31 @@ var buildDateValues = function buildDateValues(dates, selectedRule) {
1751
1755
  var buildHelpIconProps = function buildHelpIconProps(helpIconProps) {
1752
1756
  return ramda.mergeDeepRight(DEFAULT_HELP_ICON_PROPS, helpIconProps);
1753
1757
  };
1758
+ var hasInvalidTimes = function hasInvalidTimes(times) {
1759
+ if (Array.isArray(times)) {
1760
+ return times.some(function (time) {
1761
+ return time.isValid();
1762
+ }) === false;
1763
+ }
1764
+ return !times.isValid();
1765
+ };
1766
+ var areCustomTimeRangeValuesNotValid = function areCustomTimeRangeValuesNotValid(times) {
1767
+ return !times.every(function (time) {
1768
+ return time.isValid();
1769
+ });
1770
+ };
1771
+
1772
+ // eslint-disable-next-line @bigbinary/neeto/use-standard-date-time-formats
1773
+ var formatSingleTime = function formatSingleTime(time) {
1774
+ return dayjs(time).format("HH:mm:ss");
1775
+ };
1776
+ var formatTime = function formatTime(value, timePickerType) {
1777
+ if (isNilOrEmpty(value)) return null;
1778
+ if (timePickerType === "range") {
1779
+ return value.map(formatSingleTime);
1780
+ }
1781
+ return formatSingleTime(value);
1782
+ };
1754
1783
 
1755
1784
  var Boolean = function Boolean(_ref) {
1756
1785
  var column = _ref.column,
@@ -2097,6 +2126,15 @@ var SingleTime = function SingleTime(_ref) {
2097
2126
  handleApplyFilter(updatedFilter);
2098
2127
  };
2099
2128
  var handleChange = function handleChange(times) {
2129
+ if (hasInvalidTimes(times)) {
2130
+ handleApplyFilter({
2131
+ _delete: true
2132
+ });
2133
+ return;
2134
+ }
2135
+ if (timePickerType === "range" && areCustomTimeRangeValuesNotValid(times)) {
2136
+ return;
2137
+ }
2100
2138
  var value = timePickerType === "range" ? ramda.pluck("$d", times).map(function (time) {
2101
2139
  return time.toISOString();
2102
2140
  }) : times["$d"].toISOString();
@@ -2109,6 +2147,7 @@ var SingleTime = function SingleTime(_ref) {
2109
2147
  });
2110
2148
  handleApplyFilter(updatedFilter);
2111
2149
  };
2150
+ var formattedTime = formatTime(value, timePickerType);
2112
2151
  return /*#__PURE__*/React__default["default"].createElement("div", {
2113
2152
  className: "neeto-filters-pane-filter__item-wrapper"
2114
2153
  }, /*#__PURE__*/React__default["default"].createElement(neetoui.Select, _extends({
@@ -2123,15 +2162,12 @@ var SingleTime = function SingleTime(_ref) {
2123
2162
  }
2124
2163
  }, {
2125
2164
  onChange: handleRuleChange
2126
- })), /*#__PURE__*/React__default["default"].createElement(neetoui.TimePicker, _extends({
2165
+ })), /*#__PURE__*/React__default["default"].createElement(neetoui.TimePickerInput, _extends({
2127
2166
  autoFocus: autoFocus,
2128
- value: value,
2129
- use12Hours: true,
2130
2167
  className: "w-full",
2131
2168
  "data-cy": "neeto-filters-".concat(neetoCist.hyphenate(key), "-filter"),
2132
- format: "h:mm A",
2133
- getPopupContainer: ramda.prop("parentNode"),
2134
2169
  type: timePickerType,
2170
+ value: formattedTime,
2135
2171
  onChange: handleChange
2136
2172
  }, otherProps)));
2137
2173
  };
@@ -2274,6 +2310,15 @@ var Time = function Time(_ref) {
2274
2310
  handleApplyFilter(updatedFilter);
2275
2311
  };
2276
2312
  var handleTimeRangeChange = function handleTimeRangeChange(times) {
2313
+ if (hasInvalidTimes(times)) {
2314
+ handleApplyFilter({
2315
+ _delete: true
2316
+ });
2317
+ return;
2318
+ }
2319
+ if (isCustomTimeRangeShown && areCustomTimeRangeValuesNotValid(times)) {
2320
+ return;
2321
+ }
2277
2322
  var updatedFilter = buildUpdatedFilter({
2278
2323
  column: column,
2279
2324
  defaultType: defaultType,
@@ -2304,13 +2349,11 @@ var Time = function Time(_ref) {
2304
2349
  }
2305
2350
  }, {
2306
2351
  onChange: handleChange
2307
- })), isCustomTimeRangeShown && /*#__PURE__*/React__default["default"].createElement(neetoui.TimePicker, _extends({
2308
- use12Hours: true,
2352
+ })), isCustomTimeRangeShown && /*#__PURE__*/React__default["default"].createElement(neetoui.TimePickerInput, _extends({
2353
+ className: "w-full",
2309
2354
  "data-cy": "neeto-filters-".concat(neetoCist.hyphenate(key), "-date-range"),
2310
- format: "h:mm A",
2311
- getPopupContainer: ramda.prop("parentNode"),
2312
2355
  type: "range",
2313
- value: filter.value,
2356
+ value: formatTime(filter.value, "range"),
2314
2357
  onChange: handleTimeRangeChange
2315
2358
  }, otherProps)));
2316
2359
  };
@@ -2880,6 +2923,7 @@ var MenuBlocks = function MenuBlocks(_ref) {
2880
2923
  return /*#__PURE__*/React__default["default"].createElement(MenuBar__default["default"].Block, {
2881
2924
  active: segment.id === segmentId,
2882
2925
  count: segment.count,
2926
+ "data-cy": "neeto-filters-segment-block-".concat(neetoCist.hyphenate(segment.name)),
2883
2927
  key: segment.id,
2884
2928
  label: segment.name,
2885
2929
  onClick: function onClick() {