UNPKG

24.5 kBJavaScriptView Raw
1"use strict";
2
3function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
4
5Object.defineProperty(exports, "__esModule", {
6 value: true
7});
8exports.default = void 0;
9
10var React = _interopRequireWildcard(require("react"));
11
12var _index = _interopRequireDefault(require("date-fns/format/index.js"));
13
14var _index2 = _interopRequireDefault(require("date-fns/getYear/index.js"));
15
16var _index3 = _interopRequireDefault(require("date-fns/getMonth/index.js"));
17
18var _index4 = _interopRequireDefault(require("date-fns/getQuarter/index.js"));
19
20var _index5 = _interopRequireDefault(require("date-fns/getDay/index.js"));
21
22var _index6 = _interopRequireDefault(require("date-fns/isAfter/index.js"));
23
24var _index7 = _interopRequireDefault(require("date-fns/isBefore/index.js"));
25
26var _index8 = _interopRequireDefault(require("date-fns/isEqual/index.js"));
27
28var _index9 = _interopRequireDefault(require("date-fns/set/index.js"));
29
30var _index10 = require("../button/index.js");
31
32var _index11 = require("../button-group/index.js");
33
34var _index12 = require("../checkbox/index.js");
35
36var _index13 = require("../datepicker/utils/index.js");
37
38var _index14 = require("../datepicker/index.js");
39
40var _index15 = require("../timepicker/index.js");
41
42var _index16 = require("../styles/index.js");
43
44var _index17 = require("../select/index.js");
45
46var _cellShell = _interopRequireDefault(require("./cell-shell.js"));
47
48var _constants = require("./constants.js");
49
50var _filterShell = _interopRequireDefault(require("./filter-shell.js"));
51
52function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
53
54function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }
55
56function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
57
58function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
59
60function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
61
62function _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; }
63
64function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread(); }
65
66function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance"); }
67
68function _iterableToArray(iter) { if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === "[object Arguments]") return Array.from(iter); }
69
70function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } }
71
72function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); }
73
74function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance"); }
75
76function _iterableToArrayLimit(arr, i) { if (!(Symbol.iterator in Object(arr) || Object.prototype.toString.call(arr) === "[object Arguments]")) { return; } var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_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; }
77
78function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
79
80var DATE_FORMAT = 'MM-dd-yyyy';
81var TIME_FORMAT = 'HH:mm ss:SS';
82var FORMAT_STRING = "".concat(DATE_FORMAT, " ").concat(TIME_FORMAT);
83
84function sortDates(a, b) {
85 return a - b;
86}
87
88var RANGE_OPERATIONS = [{
89 label: 'Date, Time',
90 id: _constants.DATETIME_OPERATIONS.RANGE_DATETIME
91}, {
92 label: 'Date',
93 id: _constants.DATETIME_OPERATIONS.RANGE_DATE
94}, {
95 label: 'Time',
96 id: _constants.DATETIME_OPERATIONS.RANGE_TIME
97}];
98var CATEGORICAL_OPERATIONS = [{
99 label: 'Weekday',
100 id: _constants.DATETIME_OPERATIONS.WEEKDAY
101}, {
102 label: 'Month',
103 id: _constants.DATETIME_OPERATIONS.MONTH
104}, {
105 label: 'Quarter',
106 id: _constants.DATETIME_OPERATIONS.QUARTER
107}, {
108 label: 'Half',
109 id: _constants.DATETIME_OPERATIONS.HALF
110}, {
111 label: 'Year',
112 id: _constants.DATETIME_OPERATIONS.YEAR
113}];
114var WEEKDAYS = ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'];
115var MONTHS = ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'];
116var QUARTERS = ['Q1', 'Q2', 'Q3', 'Q4'];
117var HALVES = ['H1', 'H2'];
118
119function Checks(props) {
120 var _useStyletron = (0, _index16.useStyletron)(),
121 _useStyletron2 = _slicedToArray(_useStyletron, 2),
122 css = _useStyletron2[0],
123 theme = _useStyletron2[1];
124
125 return React.createElement("div", {
126 className: css({
127 maxHeight: '256px',
128 overflowY: 'auto'
129 })
130 }, props.options.map(function (item) {
131 var checked = props.value.includes(item.id);
132 return React.createElement("div", {
133 key: item.id,
134 className: css({
135 marginBottom: theme.sizing.scale200
136 })
137 }, React.createElement(_index12.Checkbox, {
138 checked: checked,
139 onChange: function onChange() {
140 if (checked) {
141 props.setValue(function (prev) {
142 return prev.filter(function (i) {
143 return i !== item.id;
144 });
145 });
146 } else {
147 props.setValue(function (prev) {
148 return [].concat(_toConsumableArray(prev), [item.id]);
149 });
150 }
151 }
152 }, item.label));
153 }));
154}
155
156function filterParamsToInitialState(input) {
157 var output = {
158 exclude: false,
159 comparatorIndex: 0,
160 rangeOperator: RANGE_OPERATIONS[0],
161 categoricalOperator: CATEGORICAL_OPERATIONS[0],
162 rangeDates: [],
163 years: [],
164 halves: [],
165 quarters: [],
166 months: [],
167 weekdays: []
168 };
169
170 if (input) {
171 var op = input.operation;
172
173 if (input.range) {
174 if (op === _constants.DATETIME_OPERATIONS.RANGE_DATETIME) {
175 output.rangeDates = input.range;
176 output.rangeOperator = RANGE_OPERATIONS[0];
177 } else if (op === _constants.DATETIME_OPERATIONS.RANGE_DATE) {
178 output.rangeDates = input.range;
179 output.rangeOperator = RANGE_OPERATIONS[1];
180 } else if (op === _constants.DATETIME_OPERATIONS.RANGE_TIME) {
181 output.rangeDates = input.range;
182 output.rangeOperator = RANGE_OPERATIONS[2];
183 }
184 } else if (input.selection) {
185 output.comparatorIndex = 1;
186
187 if (op === _constants.DATETIME_OPERATIONS.YEAR) {
188 output.years = input.selection;
189 output.categoricalOperator = CATEGORICAL_OPERATIONS[4];
190 } else if (op === _constants.DATETIME_OPERATIONS.HALF) {
191 output.halves = input.selection;
192 output.categoricalOperator = CATEGORICAL_OPERATIONS[3];
193 } else if (op === _constants.DATETIME_OPERATIONS.QUARTER) {
194 output.quarters = input.selection;
195 output.categoricalOperator = CATEGORICAL_OPERATIONS[2];
196 } else if (op === _constants.DATETIME_OPERATIONS.MONTH) {
197 output.months = input.selection;
198 output.categoricalOperator = CATEGORICAL_OPERATIONS[1];
199 } else if (op === _constants.DATETIME_OPERATIONS.WEEKDAY) {
200 output.weekdays = input.selection;
201 output.categoricalOperator = CATEGORICAL_OPERATIONS[0];
202 }
203 }
204
205 if (input.exclude) {
206 output.exclude = input.exclude;
207 }
208 }
209
210 return output;
211}
212
213function DatetimeFilter(props) {
214 var _useStyletron3 = (0, _index16.useStyletron)(),
215 _useStyletron4 = _slicedToArray(_useStyletron3, 2),
216 css = _useStyletron4[0],
217 theme = _useStyletron4[1];
218
219 var mountNode = React.useRef();
220 var initialState = filterParamsToInitialState(props.filterParams);
221 var datesSorted = React.useMemo(function () {
222 return props.data.sort(sortDates);
223 }, [props.data]);
224 var presentYears = React.useMemo(function () {
225 var dict = {};
226 props.data.forEach(function (date) {
227 dict[(0, _index2.default)(date)] = true;
228 });
229 return Object.keys(dict).map(function (n) {
230 return parseInt(n);
231 });
232 }, [props.data]);
233
234 var _React$useState = React.useState(initialState.exclude),
235 _React$useState2 = _slicedToArray(_React$useState, 2),
236 exclude = _React$useState2[0],
237 setExclude = _React$useState2[1];
238
239 var _React$useState3 = React.useState(initialState.comparatorIndex),
240 _React$useState4 = _slicedToArray(_React$useState3, 2),
241 comparatorIndex = _React$useState4[0],
242 setComparatorIndex = _React$useState4[1];
243
244 var _React$useState5 = React.useState([initialState.rangeOperator]),
245 _React$useState6 = _slicedToArray(_React$useState5, 2),
246 rangeOperator = _React$useState6[0],
247 setRangeOperator = _React$useState6[1];
248
249 var _React$useState7 = React.useState([initialState.categoricalOperator]),
250 _React$useState8 = _slicedToArray(_React$useState7, 2),
251 categoricalOperator = _React$useState8[0],
252 setCategoricalOperator = _React$useState8[1]; // eslint-disable-next-line flowtype/no-weak-types
253
254
255 var _React$useState9 = React.useState(initialState.rangeDates.length ? initialState.rangeDates : [new Date(datesSorted[0]), new Date(datesSorted[datesSorted.length - 1])]),
256 _React$useState10 = _slicedToArray(_React$useState9, 2),
257 rangeDates = _React$useState10[0],
258 setRangeDates = _React$useState10[1];
259
260 var _React$useState11 = React.useState(initialState.years),
261 _React$useState12 = _slicedToArray(_React$useState11, 2),
262 years = _React$useState12[0],
263 setYears = _React$useState12[1];
264
265 var _React$useState13 = React.useState(initialState.halves),
266 _React$useState14 = _slicedToArray(_React$useState13, 2),
267 halves = _React$useState14[0],
268 setHalves = _React$useState14[1];
269
270 var _React$useState15 = React.useState(initialState.quarters),
271 _React$useState16 = _slicedToArray(_React$useState15, 2),
272 quarters = _React$useState16[0],
273 setQuarters = _React$useState16[1];
274
275 var _React$useState17 = React.useState(initialState.months),
276 _React$useState18 = _slicedToArray(_React$useState17, 2),
277 months = _React$useState18[0],
278 setMonths = _React$useState18[1];
279
280 var _React$useState19 = React.useState(initialState.weekdays),
281 _React$useState20 = _slicedToArray(_React$useState19, 2),
282 weekdays = _React$useState20[0],
283 setWeekdays = _React$useState20[1];
284
285 var isRange = comparatorIndex === 0;
286 var isCategorical = comparatorIndex === 1;
287 return React.createElement(_filterShell.default, {
288 exclude: exclude,
289 onExcludeChange: function onExcludeChange() {
290 return setExclude(!exclude);
291 },
292 onApply: function onApply() {
293 if (isRange) {
294 // eslint-disable-next-line flowtype/no-weak-types
295 var op = rangeOperator[0].id;
296 var description = '';
297
298 if (op === _constants.DATETIME_OPERATIONS.RANGE_DATETIME) {
299 var left = (0, _index.default)(rangeDates[0], FORMAT_STRING);
300 var right = (0, _index.default)(rangeDates[1], FORMAT_STRING);
301 description = "".concat(left, " - ").concat(right);
302 } else if (op === _constants.DATETIME_OPERATIONS.RANGE_DATE) {
303 var _left = (0, _index.default)(rangeDates[0], DATE_FORMAT);
304
305 var _right = (0, _index.default)(rangeDates[1], DATE_FORMAT);
306
307 description = "".concat(_left, " - ").concat(_right);
308 } else if (op === _constants.DATETIME_OPERATIONS.RANGE_TIME) {
309 var _left2 = (0, _index.default)(rangeDates[0], TIME_FORMAT);
310
311 var _right2 = (0, _index.default)(rangeDates[1], TIME_FORMAT);
312
313 description = "".concat(_left2, " - ").concat(_right2);
314 }
315
316 props.setFilter({
317 operation: op,
318 range: rangeDates,
319 selection: [],
320 description: description,
321 exclude: exclude
322 });
323 }
324
325 if (isCategorical) {
326 // eslint-disable-next-line flowtype/no-weak-types
327 var _op = categoricalOperator[0].id;
328 var selection = [];
329
330 if (_op === _constants.DATETIME_OPERATIONS.WEEKDAY) {
331 selection = weekdays;
332 } else if (_op === _constants.DATETIME_OPERATIONS.MONTH) {
333 selection = months;
334 } else if (_op === _constants.DATETIME_OPERATIONS.QUARTER) {
335 selection = quarters;
336 } else if (_op === _constants.DATETIME_OPERATIONS.HALF) {
337 selection = halves;
338 } else if (_op === _constants.DATETIME_OPERATIONS.YEAR) {
339 selection = years;
340 }
341
342 props.setFilter({
343 operation: _op,
344 range: [],
345 selection: selection,
346 description: "".concat(_op, " - ").concat(selection.join(', ')),
347 exclude: exclude
348 });
349 }
350
351 props.close();
352 }
353 }, React.createElement("div", {
354 ref: mountNode
355 }, React.createElement(_index11.ButtonGroup, {
356 size: _index10.SIZE.compact,
357 mode: _index11.MODE.radio,
358 selected: comparatorIndex,
359 onClick: function onClick(_, index) {
360 return setComparatorIndex(index);
361 },
362 overrides: {
363 Root: {
364 style: function style(_ref) {
365 var $theme = _ref.$theme;
366 return {
367 marginBottom: $theme.sizing.scale300
368 };
369 }
370 }
371 }
372 }, React.createElement(_index10.Button, {
373 type: "button",
374 overrides: {
375 BaseButton: {
376 style: {
377 width: '100%'
378 }
379 }
380 }
381 }, "Range"), React.createElement(_index10.Button, {
382 type: "button",
383 overrides: {
384 BaseButton: {
385 style: {
386 width: '100%'
387 }
388 }
389 }
390 }, "Categorical")), isRange && React.createElement("div", null, React.createElement(_index17.Select, {
391 value: rangeOperator,
392 onChange: function onChange(params) {
393 return setRangeOperator(params.value);
394 } // eslint-disable-next-line flowtype/no-weak-types
395 ,
396 mountNode: mountNode.current,
397 options: RANGE_OPERATIONS,
398 size: "compact",
399 clearable: false
400 }), React.createElement("div", {
401 className: css({
402 paddingTop: theme.sizing.scale600
403 })
404 }, (rangeOperator[0].id === _constants.DATETIME_OPERATIONS.RANGE_DATETIME || rangeOperator[0].id === _constants.DATETIME_OPERATIONS.RANGE_DATE) && React.createElement(_index14.Datepicker // eslint-disable-next-line flowtype/no-weak-types
405 , {
406 mountNode: mountNode.current,
407 value: rangeDates,
408 onChange: function onChange(_ref2) {
409 var date = _ref2.date;
410
411 if (Array.isArray(date)) {
412 if (!date.length) return;
413 var nextDates = date.map(function (d, i) {
414 return (0, _index13.applyDateToTime)(rangeDates[i], d);
415 });
416 setRangeDates(nextDates);
417 }
418 },
419 formatString: DATE_FORMAT,
420 placeholder: "MM-DD-YYYY - MM-DD-YYYY",
421 minDate: datesSorted[0],
422 maxDate: datesSorted[datesSorted.length - 1],
423 timeSelectStart: rangeOperator[0].id === _constants.DATETIME_OPERATIONS.RANGE_DATETIME,
424 timeSelectEnd: rangeOperator[0].id === _constants.DATETIME_OPERATIONS.RANGE_DATETIME,
425 overrides: {
426 TimeSelect: {
427 props: {
428 size: 'compact'
429 }
430 }
431 },
432 range: true,
433 size: "compact"
434 })), (rangeOperator[0].id === _constants.DATETIME_OPERATIONS.RANGE_DATETIME || rangeOperator[0].id === _constants.DATETIME_OPERATIONS.RANGE_TIME) && React.createElement("div", {
435 className: css({
436 display: 'flex',
437 paddingTop: theme.sizing.scale100
438 })
439 }, React.createElement("div", {
440 className: css({
441 width: '100%',
442 marginRight: theme.sizing.scale300
443 })
444 }, React.createElement(_index15.TimePicker, {
445 format: "24",
446 value: rangeDates[0],
447 onChange: function onChange(time) {
448 return time && setRangeDates([(0, _index13.applyTimeToDate)(rangeDates[0], time), rangeDates[1]]);
449 },
450 creatable: true,
451 size: "compact"
452 })), React.createElement("div", {
453 className: css({
454 width: '100%'
455 })
456 }, React.createElement(_index15.TimePicker, {
457 format: "24",
458 value: rangeDates[1],
459 onChange: function onChange(time) {
460 return time && setRangeDates([rangeDates[0], (0, _index13.applyTimeToDate)(rangeDates[1], time)]);
461 },
462 creatable: true,
463 size: "compact"
464 })))), isCategorical && React.createElement("div", null, React.createElement(_index17.Select, {
465 value: categoricalOperator,
466 onChange: function onChange(params) {
467 return setCategoricalOperator(params.value);
468 },
469 options: CATEGORICAL_OPERATIONS // eslint-disable-next-line flowtype/no-weak-types
470 ,
471 mountNode: mountNode.current,
472 size: "compact",
473 clearable: false
474 }), React.createElement("div", {
475 className: css({
476 paddingLeft: theme.sizing.scale300,
477 paddingTop: theme.sizing.scale500
478 })
479 }, categoricalOperator[0].id === _constants.DATETIME_OPERATIONS.WEEKDAY && React.createElement(Checks, {
480 value: weekdays,
481 setValue: setWeekdays,
482 options: WEEKDAYS.map(function (w, i) {
483 return {
484 label: w,
485 id: i
486 };
487 })
488 }), categoricalOperator[0].id === _constants.DATETIME_OPERATIONS.MONTH && React.createElement(Checks, {
489 value: months,
490 setValue: setMonths,
491 options: MONTHS.map(function (m, i) {
492 return {
493 label: m,
494 id: i
495 };
496 })
497 }), categoricalOperator[0].id === _constants.DATETIME_OPERATIONS.QUARTER && React.createElement(Checks, {
498 value: quarters,
499 setValue: setQuarters,
500 options: QUARTERS.map(function (q, i) {
501 return {
502 label: q,
503 id: i
504 };
505 })
506 }), categoricalOperator[0].id === _constants.DATETIME_OPERATIONS.HALF && React.createElement(Checks, {
507 value: halves,
508 setValue: setHalves,
509 options: HALVES.map(function (h, i) {
510 return {
511 label: h,
512 id: i
513 };
514 })
515 }), categoricalOperator[0].id === _constants.DATETIME_OPERATIONS.YEAR && React.createElement(Checks, {
516 value: years,
517 setValue: setYears,
518 options: presentYears.map(function (year) {
519 return {
520 label: year,
521 id: year
522 };
523 })
524 })))));
525}
526
527var DatetimeCell = React.forwardRef(function (props, ref) {
528 var _useStyletron5 = (0, _index16.useStyletron)(),
529 _useStyletron6 = _slicedToArray(_useStyletron5, 2),
530 css = _useStyletron6[0],
531 theme = _useStyletron6[1];
532
533 return React.createElement(_cellShell.default, {
534 ref: ref,
535 isMeasured: props.isMeasured,
536 isSelected: props.isSelected,
537 onSelect: props.onSelect
538 }, React.createElement("div", {
539 className: css(_objectSpread({}, theme.typography.MonoParagraphXSmall, {
540 display: 'flex',
541 justifyContent: 'flex-end',
542 width: '100%',
543 whiteSpace: 'nowrap'
544 }))
545 }, (0, _index.default)(props.value, props.formatString)));
546});
547DatetimeCell.displayName = 'DatetimeCell';
548var defaultOptions = {
549 title: '',
550 sortable: true,
551 filterable: true,
552 formatString: FORMAT_STRING
553};
554
555function DatetimeColumn(options) {
556 var normalizedOptions = _objectSpread({}, defaultOptions, {}, options);
557
558 return {
559 kind: _constants.COLUMNS.DATETIME,
560 buildFilter: function buildFilter(params) {
561 return function (data) {
562 var included = true;
563
564 if (params.operation === _constants.DATETIME_OPERATIONS.YEAR) {
565 included = params.selection.includes((0, _index2.default)(data));
566 } else if (params.operation === _constants.DATETIME_OPERATIONS.HALF) {
567 var month = (0, _index3.default)(data);
568 var half = month < 6 ? 0 : 1;
569 included = params.selection.includes(half);
570 } else if (params.operation === _constants.DATETIME_OPERATIONS.QUARTER) {
571 // date-fns quarters are 1 indexed
572 var quarter = (0, _index4.default)(data) - 1;
573 included = params.selection.includes(quarter);
574 } else if (params.operation === _constants.DATETIME_OPERATIONS.MONTH) {
575 included = params.selection.includes((0, _index3.default)(data));
576 } else if (params.operation === _constants.DATETIME_OPERATIONS.WEEKDAY) {
577 included = params.selection.includes((0, _index5.default)(data));
578 }
579
580 if (params.operation === _constants.DATETIME_OPERATIONS.RANGE_DATE || params.operation === _constants.DATETIME_OPERATIONS.RANGE_TIME || params.operation === _constants.DATETIME_OPERATIONS.RANGE_DATETIME) {
581 var _params$range = _slicedToArray(params.range, 2),
582 left = _params$range[0],
583 right = _params$range[1];
584
585 if (params.operation === _constants.DATETIME_OPERATIONS.RANGE_DATE) {
586 left = (0, _index9.default)(left, {
587 hours: 0,
588 minutes: 0,
589 seconds: 0
590 });
591 right = (0, _index9.default)(right, {
592 hours: 0,
593 minutes: 0,
594 seconds: 0
595 });
596 data = (0, _index9.default)(data, {
597 hours: 0,
598 minutes: 0,
599 seconds: 0
600 });
601 }
602
603 if (params.operation === _constants.DATETIME_OPERATIONS.RANGE_TIME) {
604 left = (0, _index9.default)(left, {
605 year: 2000,
606 month: 1,
607 date: 1
608 });
609 right = (0, _index9.default)(right, {
610 year: 2000,
611 month: 1,
612 date: 1
613 });
614 data = (0, _index9.default)(data, {
615 year: 2000,
616 month: 1,
617 date: 1
618 });
619 }
620
621 var after = (0, _index6.default)(data, left) || (0, _index8.default)(data, left);
622 var before = (0, _index7.default)(data, right) || (0, _index8.default)(data, right);
623 included = after && before;
624 }
625
626 return params.exclude ? !included : included;
627 };
628 },
629 filterable: normalizedOptions.filterable,
630 mapDataToValue: options.mapDataToValue,
631 maxWidth: options.maxWidth,
632 minWidth: options.minWidth,
633 renderCell: React.forwardRef(function (props, ref) {
634 return React.createElement(DatetimeCell, {
635 ref: ref,
636 isMeasured: props.isMeasured,
637 isSelected: props.isSelected,
638 onSelect: props.onSelect,
639 value: props.value,
640 formatString: normalizedOptions.formatString
641 });
642 }),
643 renderFilter: DatetimeFilter,
644 sortable: normalizedOptions.sortable,
645 sortFn: sortDates,
646 title: options.title
647 };
648}
649
650var _default = DatetimeColumn;
651exports.default = _default;
\No newline at end of file