@bigbinary/neeto-filters-frontend 2.11.19 → 2.11.20
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 +73 -20
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.js +73 -20
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.cjs.js
CHANGED
|
@@ -10,9 +10,9 @@ var ramda = require('ramda');
|
|
|
10
10
|
var reactRouterDom = require('react-router-dom');
|
|
11
11
|
var reactUtils = require('@bigbinary/neeto-commons-frontend/react-utils');
|
|
12
12
|
var neetoIcons = require('@bigbinary/neeto-icons');
|
|
13
|
+
var dayjs = require('dayjs');
|
|
13
14
|
var utils = require('@bigbinary/neeto-commons-frontend/utils');
|
|
14
15
|
var yup = require('yup');
|
|
15
|
-
var dayjs = require('dayjs');
|
|
16
16
|
var timezone = require('dayjs/plugin/timezone');
|
|
17
17
|
var utc = require('dayjs/plugin/utc');
|
|
18
18
|
var weekday = require('dayjs/plugin/weekday');
|
|
@@ -44,8 +44,8 @@ function _interopNamespace(e) {
|
|
|
44
44
|
|
|
45
45
|
var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
|
|
46
46
|
var classnames__default = /*#__PURE__*/_interopDefaultLegacy(classnames);
|
|
47
|
-
var yup__namespace = /*#__PURE__*/_interopNamespace(yup);
|
|
48
47
|
var dayjs__default = /*#__PURE__*/_interopDefaultLegacy(dayjs);
|
|
48
|
+
var yup__namespace = /*#__PURE__*/_interopNamespace(yup);
|
|
49
49
|
var timezone__default = /*#__PURE__*/_interopDefaultLegacy(timezone);
|
|
50
50
|
var utc__default = /*#__PURE__*/_interopDefaultLegacy(utc);
|
|
51
51
|
var weekday__default = /*#__PURE__*/_interopDefaultLegacy(weekday);
|
|
@@ -3395,6 +3395,12 @@ var DATE_OPTIONS = [{
|
|
|
3395
3395
|
}, {
|
|
3396
3396
|
label: "All time",
|
|
3397
3397
|
value: "all-time"
|
|
3398
|
+
}, {
|
|
3399
|
+
label: "After",
|
|
3400
|
+
value: "after"
|
|
3401
|
+
}, {
|
|
3402
|
+
label: "Before",
|
|
3403
|
+
value: "before"
|
|
3398
3404
|
}, {
|
|
3399
3405
|
label: "Custom date range",
|
|
3400
3406
|
value: "custom-date-range"
|
|
@@ -3621,7 +3627,7 @@ var splitFilter = function splitFilter(multiColumnFilter) {
|
|
|
3621
3627
|
var buildDateValue = function buildDateValue(_ref6) {
|
|
3622
3628
|
var value = _ref6.value;
|
|
3623
3629
|
var rule = DATE_RULES[value] || "between";
|
|
3624
|
-
var dateValue =
|
|
3630
|
+
var dateValue = ["before", "after", "custom-date-range"].includes(value) ? "" : value;
|
|
3625
3631
|
return {
|
|
3626
3632
|
value: dateValue,
|
|
3627
3633
|
rule: rule,
|
|
@@ -4074,6 +4080,16 @@ var getKeywordValueFromUrl = function getKeywordValueFromUrl() {
|
|
|
4074
4080
|
return utils.getQueryParams()["keyword"] || "";
|
|
4075
4081
|
};
|
|
4076
4082
|
|
|
4083
|
+
var buildCustomDateValue = function buildCustomDateValue(value) {
|
|
4084
|
+
var isBeforeOrAfter = Math.abs(dayjs__default["default"](value[1]).diff(dayjs__default["default"](value[0]), "year")) >= 90;
|
|
4085
|
+
if (isBeforeOrAfter) {
|
|
4086
|
+
var currentMoment = dayjs__default["default"]();
|
|
4087
|
+
var diffWithStart = Math.abs(currentMoment.diff(dayjs__default["default"](value[0]), "year"));
|
|
4088
|
+
var diffWithEnd = Math.abs(currentMoment.diff(dayjs__default["default"](value[1]), "year"));
|
|
4089
|
+
return diffWithStart < diffWithEnd ? "after-".concat(utils.dateFormat.date(dayjs__default["default"](value[0]).subtract(1, "day"))) : "before-".concat(utils.dateFormat.date(dayjs__default["default"](value[1]).add(1, "day")));
|
|
4090
|
+
}
|
|
4091
|
+
return value.map(utils.dateFormat.date).join(" - ");
|
|
4092
|
+
};
|
|
4077
4093
|
var buildFilterValue = function buildFilterValue(filter) {
|
|
4078
4094
|
var _findBy2;
|
|
4079
4095
|
var _filter$defaultType = filter.defaultType,
|
|
@@ -4086,7 +4102,7 @@ var buildFilterValue = function buildFilterValue(filter) {
|
|
|
4086
4102
|
return value.toString();
|
|
4087
4103
|
}));
|
|
4088
4104
|
if (isDate(defaultType) && isCustomDateRange(value)) {
|
|
4089
|
-
return value
|
|
4105
|
+
return buildCustomDateValue(value);
|
|
4090
4106
|
} else if (isTime(defaultType) && isCustomTimeRange(value)) {
|
|
4091
4107
|
return value.map(utils.dateFormat.time).join(" - ");
|
|
4092
4108
|
} else if (isDate(defaultType) || isTime(defaultType)) {
|
|
@@ -7136,13 +7152,6 @@ var buildDropdownValue = function buildDropdownValue(_ref) {
|
|
|
7136
7152
|
value: filter.value
|
|
7137
7153
|
}, options);
|
|
7138
7154
|
};
|
|
7139
|
-
var buildDatetimeValue = function buildDatetimeValue(filter) {
|
|
7140
|
-
var _findBy;
|
|
7141
|
-
if (!filter) return null;
|
|
7142
|
-
return (_findBy = pure.findBy({
|
|
7143
|
-
value: filter.value
|
|
7144
|
-
}, DATE_OPTIONS)) !== null && _findBy !== void 0 ? _findBy : ramda.last(DATE_OPTIONS);
|
|
7145
|
-
};
|
|
7146
7155
|
var buildSingleTimeValue = function buildSingleTimeValue(filter) {
|
|
7147
7156
|
var _findBy2;
|
|
7148
7157
|
if (!filter) return null;
|
|
@@ -7179,6 +7188,44 @@ var buildDropdownOptions = function buildDropdownOptions(_ref3) {
|
|
|
7179
7188
|
}
|
|
7180
7189
|
return options;
|
|
7181
7190
|
};
|
|
7191
|
+
var initializeDateRule = function initializeDateRule(filter) {
|
|
7192
|
+
return filter ? pure.findBy({
|
|
7193
|
+
value: filter === null || filter === void 0 ? void 0 : filter.value
|
|
7194
|
+
}, DATE_OPTIONS) || findDateOption(filter, DATE_OPTIONS) : {};
|
|
7195
|
+
};
|
|
7196
|
+
var getDateValue = function getDateValue(value, rule) {
|
|
7197
|
+
if (ramda.isEmpty(value) || ramda.isNil(value)) {
|
|
7198
|
+
return null;
|
|
7199
|
+
}
|
|
7200
|
+
if (rule.value === "custom-date-range") {
|
|
7201
|
+
return value;
|
|
7202
|
+
}
|
|
7203
|
+
return rule.value === "before" ? dayjs__default["default"](value[1]).add(1, "day") : dayjs__default["default"](value[0]).subtract(1, "day");
|
|
7204
|
+
};
|
|
7205
|
+
var findDateOption = function findDateOption(filter, options) {
|
|
7206
|
+
var value = filter.value;
|
|
7207
|
+
var isBeforeOrAfter = dayjs__default["default"](value[1]).diff(dayjs__default["default"](value[0]), "year") >= 90;
|
|
7208
|
+
if (ramda.not(isBeforeOrAfter)) {
|
|
7209
|
+
return ramda.last(options);
|
|
7210
|
+
}
|
|
7211
|
+
var currentMoment = dayjs__default["default"]();
|
|
7212
|
+
var diffWithStart = Math.abs(currentMoment.diff(dayjs__default["default"](value[0]), "year"));
|
|
7213
|
+
var diffWithEnd = Math.abs(currentMoment.diff(dayjs__default["default"](value[1]), "year"));
|
|
7214
|
+
var returnOption = diffWithStart < diffWithEnd ? pure.findBy({
|
|
7215
|
+
value: "after"
|
|
7216
|
+
}, options) : pure.findBy({
|
|
7217
|
+
value: "before"
|
|
7218
|
+
}, options);
|
|
7219
|
+
return returnOption;
|
|
7220
|
+
};
|
|
7221
|
+
var buildDateValues = function buildDateValues(dates, selectedRule) {
|
|
7222
|
+
if (selectedRule.value === "after") {
|
|
7223
|
+
return [dates.add(1, "day"), dates.add(100, "year")];
|
|
7224
|
+
} else if (selectedRule.value === "before") {
|
|
7225
|
+
return [dates.subtract(100, "year"), dates.subtract(1, "day")];
|
|
7226
|
+
}
|
|
7227
|
+
return dates;
|
|
7228
|
+
};
|
|
7182
7229
|
|
|
7183
7230
|
var Boolean$1 = function Boolean(_ref) {
|
|
7184
7231
|
var column = _ref.column,
|
|
@@ -7234,22 +7281,27 @@ var Datetime = function Datetime(_ref) {
|
|
|
7234
7281
|
filter = _ref.filter,
|
|
7235
7282
|
handleApplyFilter = _ref.handleApplyFilter,
|
|
7236
7283
|
autoFocus = _ref.autoFocus;
|
|
7284
|
+
var _useState = React.useState(initializeDateRule(filter)),
|
|
7285
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
7286
|
+
selectedRule = _useState2[0],
|
|
7287
|
+
setSelectedRule = _useState2[1];
|
|
7288
|
+
var _useTranslation = useTranslation(),
|
|
7289
|
+
t = _useTranslation.t;
|
|
7237
7290
|
var key = column.key,
|
|
7238
7291
|
_column$defaultType = column.defaultType,
|
|
7239
7292
|
defaultType = _column$defaultType === void 0 ? column.type : _column$defaultType,
|
|
7240
7293
|
label = column.label;
|
|
7294
|
+
var isDatePickerShown = filter && isCustomDateRange(filter.value);
|
|
7241
7295
|
var otherProps = getOtherProps(column);
|
|
7242
|
-
var value = buildDatetimeValue(filter);
|
|
7243
|
-
var isCustomDateRangeShown = filter && isCustomDateRange(filter.value);
|
|
7244
|
-
var _useTranslation = useTranslation(),
|
|
7245
|
-
t = _useTranslation.t;
|
|
7246
7296
|
var handleChange = function handleChange(option) {
|
|
7247
7297
|
if (ramda.isEmpty(option) || ramda.isNil(option)) {
|
|
7248
7298
|
handleApplyFilter({
|
|
7249
7299
|
_delete: true
|
|
7250
7300
|
});
|
|
7301
|
+
setSelectedRule({});
|
|
7251
7302
|
return;
|
|
7252
7303
|
}
|
|
7304
|
+
setSelectedRule(option);
|
|
7253
7305
|
var updatedFilter = buildUpdatedFilter({
|
|
7254
7306
|
column: column,
|
|
7255
7307
|
defaultType: defaultType,
|
|
@@ -7262,13 +7314,14 @@ var Datetime = function Datetime(_ref) {
|
|
|
7262
7314
|
handleApplyFilter({
|
|
7263
7315
|
_delete: true
|
|
7264
7316
|
});
|
|
7317
|
+
setSelectedRule({});
|
|
7265
7318
|
return;
|
|
7266
7319
|
}
|
|
7267
7320
|
var updatedFilter = buildUpdatedFilter({
|
|
7268
7321
|
column: column,
|
|
7269
7322
|
defaultType: defaultType,
|
|
7270
7323
|
option: {
|
|
7271
|
-
value: ramda.pluck("$d", dates).map(function (date) {
|
|
7324
|
+
value: ramda.pluck("$d", buildDateValues(dates, selectedRule)).map(function (date) {
|
|
7272
7325
|
return date.toISOString();
|
|
7273
7326
|
})
|
|
7274
7327
|
}
|
|
@@ -7284,15 +7337,15 @@ var Datetime = function Datetime(_ref) {
|
|
|
7284
7337
|
label: label,
|
|
7285
7338
|
options: DATE_OPTIONS,
|
|
7286
7339
|
strategy: "fixed",
|
|
7287
|
-
value:
|
|
7340
|
+
value: selectedRule,
|
|
7288
7341
|
placeholder: t("messages.selectResource", {
|
|
7289
7342
|
resource: label.toLocaleLowerCase()
|
|
7290
7343
|
}),
|
|
7291
7344
|
onChange: handleChange
|
|
7292
|
-
}),
|
|
7345
|
+
}), isDatePickerShown && /*#__PURE__*/React__default["default"].createElement(neetoui.DatePicker, _extends$1({
|
|
7293
7346
|
"data-cy": "neeto-filters-".concat(key, "-date-range"),
|
|
7294
|
-
type: "range",
|
|
7295
|
-
value: filter.value,
|
|
7347
|
+
type: (selectedRule === null || selectedRule === void 0 ? void 0 : selectedRule.value) === "custom-date-range" ? "range" : "date",
|
|
7348
|
+
value: getDateValue(filter === null || filter === void 0 ? void 0 : filter.value, selectedRule),
|
|
7296
7349
|
onChange: handleDateRangeChange
|
|
7297
7350
|
}, otherProps)));
|
|
7298
7351
|
};
|