@vitality-ds/components 4.12.0 → 4.15.0

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 (51) hide show
  1. package/dist/AuditTrail/components/AuditItem/index.spec.js +0 -28
  2. package/dist/AuditTrail/logic.js +9 -10
  3. package/dist/AuditTrail/logic.spec.js +2 -2
  4. package/dist/Input/DatePicker/components/Calendar/index.js +3 -3
  5. package/dist/Input/DatePicker/components/Calendar/logic.js +18 -20
  6. package/dist/Input/DatePicker/components/Calendar/logic.spec.js +12 -10
  7. package/dist/Input/DatePicker/components/Calendar/styles/BaseCalendar.styles.js +0 -1
  8. package/dist/Input/DatePicker/constants.js +2 -2
  9. package/dist/Input/DatePicker/index.js +4 -4
  10. package/dist/Input/DatePicker/logic.js +10 -7
  11. package/dist/Input/DatePicker/logic.spec.js +1 -1
  12. package/dist/Input/DateRangePicker/constants.js +40 -36
  13. package/dist/Input/DateRangePicker/helpers/determineFinancialYear.js +46 -36
  14. package/dist/Input/DateRangePicker/helpers/determineFinancialYear.spec.js +31 -79
  15. package/dist/Input/DateRangePicker/logic.js +7 -4
  16. package/dist/Input/DurationInput/logic.js +11 -19
  17. package/dist/Input/DurationInput/logic.spec.js +0 -22
  18. package/dist/Input/TimePicker/logic.js +22 -28
  19. package/dist/components/src/Form/FormField/constants.d.ts +1 -1
  20. package/dist/components/src/Input/DatePicker/components/Calendar/logic.d.ts +7 -6
  21. package/dist/components/src/Input/DatePicker/components/Calendar/types.d.ts +2 -2
  22. package/dist/components/src/Input/DatePicker/constants.d.ts +2 -2
  23. package/dist/components/src/Input/DatePicker/logic.d.ts +3 -3
  24. package/dist/components/src/Input/DateRangePicker/constants.d.ts +24 -24
  25. package/dist/components/src/Input/DateRangePicker/helpers/determineFinancialYear.d.ts +2 -2
  26. package/dist/components/src/Input/DurationInput/logic.d.ts +1 -1
  27. package/dist/components/src/Input/TimePicker/index.d.ts +1 -1
  28. package/dist/components/src/Input/TimePicker/logic.d.ts +4 -4
  29. package/dist/components/src/Input/TimePicker/types.d.ts +8 -3
  30. package/dist/esm/AuditTrail/components/AuditItem/index.spec.js +0 -28
  31. package/dist/esm/AuditTrail/logic.js +8 -10
  32. package/dist/esm/AuditTrail/logic.spec.js +2 -2
  33. package/dist/esm/Input/DatePicker/components/Calendar/index.js +4 -4
  34. package/dist/esm/Input/DatePicker/components/Calendar/logic.js +17 -19
  35. package/dist/esm/Input/DatePicker/components/Calendar/logic.spec.js +12 -11
  36. package/dist/esm/Input/DatePicker/components/Calendar/styles/BaseCalendar.styles.js +0 -1
  37. package/dist/esm/Input/DatePicker/constants.js +2 -2
  38. package/dist/esm/Input/DatePicker/index.js +4 -4
  39. package/dist/esm/Input/DatePicker/logic.js +9 -7
  40. package/dist/esm/Input/DatePicker/logic.spec.js +1 -1
  41. package/dist/esm/Input/DateRangePicker/constants.js +39 -36
  42. package/dist/esm/Input/DateRangePicker/helpers/determineFinancialYear.js +45 -36
  43. package/dist/esm/Input/DateRangePicker/helpers/determineFinancialYear.spec.js +30 -79
  44. package/dist/esm/Input/DateRangePicker/logic.js +5 -2
  45. package/dist/esm/Input/DurationInput/logic.js +9 -19
  46. package/dist/esm/Input/DurationInput/logic.spec.js +0 -22
  47. package/dist/esm/Input/TimePicker/logic.js +21 -28
  48. package/dist/icons/src/Location.d.ts +4 -0
  49. package/dist/icons/src/index.d.ts +1 -0
  50. package/dist/tsconfig.tsbuildinfo +1 -1
  51. package/package.json +5 -5
@@ -255,20 +255,6 @@ describe("<AuditItem />", function () {
255
255
  });
256
256
  });
257
257
  });
258
- describe("and dateTime is invalid because date is impossible", function () {
259
- var item = {
260
- action: "create",
261
- dateTime: "2024-22-22 15:30:00"
262
- };
263
- it("does not render the date time or leading text", function () {
264
- (0, _react.render)(/*#__PURE__*/_react2["default"].createElement(_index["default"], {
265
- item: item
266
- }));
267
-
268
- // this regex should match any word that isn't Created
269
- expect(_react.screen.queryAllByText(/\b(?!Created)\w+\b/)).toHaveLength(0);
270
- });
271
- });
272
258
  });
273
259
  describe("and dateTime is invalid because not resembling a date", function () {
274
260
  var item = {
@@ -280,20 +266,6 @@ describe("<AuditItem />", function () {
280
266
  item: item
281
267
  }));
282
268
 
283
- // this regex should match any word that isn't Created
284
- expect(_react.screen.queryAllByText(/\b(?!Created)\w+\b/)).toHaveLength(0);
285
- });
286
- });
287
- describe("and dateTime is not given", function () {
288
- var item = {
289
- action: "create",
290
- dateTime: "2024-22-22 15:30:00"
291
- };
292
- it("does not render the date time or leading text", function () {
293
- (0, _react.render)(/*#__PURE__*/_react2["default"].createElement(_index["default"], {
294
- item: item
295
- }));
296
-
297
269
  // this regex should match any word that isn't Created
298
270
  expect(_react.screen.queryAllByText(/\b(?!Created)\w+\b/)).toHaveLength(0);
299
271
  });
@@ -1,11 +1,14 @@
1
1
  "use strict";
2
2
 
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
3
4
  Object.defineProperty(exports, "__esModule", {
4
5
  value: true
5
6
  });
6
7
  exports.getTimes = exports.getInitials = exports.getBrand = void 0;
7
- var _luxon = require("luxon");
8
+ var _dayjs = _interopRequireDefault(require("dayjs"));
9
+ var _relativeTime = _interopRequireDefault(require("dayjs/plugin/relativeTime"));
8
10
  var _constants = require("./constants");
11
+ _dayjs["default"].extend(_relativeTime["default"]);
9
12
  var getTimes = exports.getTimes = function getTimes(timestamp) {
10
13
  if (!timestamp) {
11
14
  return {
@@ -15,19 +18,15 @@ var getTimes = exports.getTimes = function getTimes(timestamp) {
15
18
  invalidTime: null
16
19
  };
17
20
  }
18
- var dateTime = _luxon.DateTime.fromISO(timestamp.replace(" ", "T"));
19
- // need to express date in dd/MM/yyyy format explicitly instead of relying on locale because windows 11 prevents luxon from reading language settings -> this becomes problematic because luxons default is US
20
- var date = dateTime.toFormat("dd/MM/yyyy");
21
- // needs to be 'en-US' format to show in AM/PM 12 hour time where 'en-GB' likes 24-hour time.
22
- var time = dateTime.toFormat("tt", {
23
- locale: "en-US"
24
- });
25
- var humanTime = dateTime.toRelative();
21
+ var dateTime = (0, _dayjs["default"])(timestamp);
22
+ var date = dateTime.format("DD/MM/YYYY");
23
+ var time = dateTime.format("h:mm:ss A");
24
+ var humanTime = dateTime.isValid() ? dateTime.fromNow() : null;
26
25
  return {
27
26
  date: date,
28
27
  time: time,
29
28
  humanTime: humanTime,
30
- invalidTime: dateTime.invalid !== null
29
+ invalidTime: !dateTime.isValid()
31
30
  };
32
31
  };
33
32
  var getBrand = exports.getBrand = function getBrand(name) {
@@ -25,8 +25,8 @@ describe("auditTrail logic", function () {
25
25
  test("should return null for date, time, and human time and true for invalid when timestamp is invalid", function () {
26
26
  var timestamp = "invalid_timestamp";
27
27
  var result = (0, _logic.getTimes)(timestamp);
28
- expect(result.date).toBe("Invalid DateTime");
29
- expect(result.time).toBe("Invalid DateTime");
28
+ expect(result.date).toBe("Invalid Date");
29
+ expect(result.time).toBe("Invalid Date");
30
30
  expect(result.humanTime).toBeNull();
31
31
  expect(result.invalidTime).toBeTruthy();
32
32
  });
@@ -8,7 +8,7 @@ Object.defineProperty(exports, "__esModule", {
8
8
  exports["default"] = Calendar;
9
9
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
10
10
  var _icons = require("@vitality-ds/icons");
11
- var _luxon = require("luxon");
11
+ var _dayjs = _interopRequireDefault(require("dayjs"));
12
12
  var _react = _interopRequireWildcard(require("react"));
13
13
  var _reactCalendar = require("react-calendar");
14
14
  var _IconButton = _interopRequireDefault(require("../../../../IconButton"));
@@ -28,7 +28,7 @@ function Calendar(_ref) {
28
28
  onSelectedDateChange = _ref.onSelectedDateChange;
29
29
  var _useReducer = (0, _react.useReducer)(function (reducerState, action) {
30
30
  return (0, _logic.stateManager)(reducerState, action, minYear, maxYear);
31
- }, (0, _logic.getInitialState)(_luxon.DateTime.now(), (0, _logic.determineSelectedDate)(selectedDate, showFirstDateInRangeOnOpen))),
31
+ }, (0, _logic.getInitialState)((0, _dayjs["default"])(), (0, _logic.determineSelectedDate)(selectedDate, showFirstDateInRangeOnOpen))),
32
32
  _useReducer2 = (0, _slicedToArray2["default"])(_useReducer, 2),
33
33
  state = _useReducer2[0],
34
34
  dispatch = _useReducer2[1];
@@ -82,7 +82,7 @@ function Calendar(_ref) {
82
82
  });
83
83
  }
84
84
  })), /*#__PURE__*/_react["default"].createElement(_reactCalendar.MonthView, {
85
- activeStartDate: (0, _logic.convertLuxonYearMonthStateToDate)(state.selectedYear.yearInt, state.selectedMonth.monthInt),
85
+ activeStartDate: (0, _logic.convertYearMonthStateToDate)(state.selectedYear.yearInt, state.selectedMonth.monthInt),
86
86
  onMouseOver: handleMouseOver,
87
87
  hover: Array.isArray(selectedDate) && hoverValue,
88
88
  value: selectedDate,
@@ -4,7 +4,7 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
4
4
  Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
- exports.convertLuxonYearMonthStateToDate = convertLuxonYearMonthStateToDate;
7
+ exports.convertYearMonthStateToDate = convertYearMonthStateToDate;
8
8
  exports.dateObjectToShortHand = dateObjectToShortHand;
9
9
  exports.determineSelectedDate = void 0;
10
10
  exports.generateMonths = generateMonths;
@@ -14,7 +14,7 @@ exports.getTooltipContents = getTooltipContents;
14
14
  exports.stateManager = stateManager;
15
15
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
16
16
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
17
- var _luxon = require("luxon");
17
+ var _dayjs = _interopRequireDefault(require("dayjs"));
18
18
  var _constants = require("./constants");
19
19
  function generateYears(minYear, maxYear) {
20
20
  var arr = [];
@@ -36,7 +36,7 @@ function generateMonths() {
36
36
  }
37
37
  return arr;
38
38
  }
39
- function convertLuxonYearMonthStateToDate(year, month) {
39
+ function convertYearMonthStateToDate(year, month) {
40
40
  return new Date(year, month);
41
41
  }
42
42
  var determineSelectedDate = exports.determineSelectedDate = function determineSelectedDate(selectedDate, showFirstDateInRangeOnOpen) {
@@ -56,47 +56,45 @@ var determineSelectedDate = exports.determineSelectedDate = function determineSe
56
56
  };
57
57
  function getInitialState(currentTime, selectedDate) {
58
58
  if (selectedDate) {
59
- var selectedDateAsLuxon = _luxon.DateTime.fromJSDate(selectedDate);
59
+ var selectedDateAsDayjs = (0, _dayjs["default"])(selectedDate);
60
60
  return {
61
61
  selectedMonth: {
62
- // -1 to align the luxon current time with Date constructor and array indexes
63
62
  value: {
64
- value: _constants.MONTHS[selectedDateAsLuxon.month - 1],
65
- label: _constants.MONTHS[selectedDateAsLuxon.month - 1]
63
+ value: _constants.MONTHS[selectedDateAsDayjs.month()],
64
+ label: _constants.MONTHS[selectedDateAsDayjs.month()]
66
65
  },
67
- monthInt: selectedDateAsLuxon.month - 1
66
+ monthInt: selectedDateAsDayjs.month()
68
67
  },
69
68
  selectedYear: {
70
69
  value: {
71
- value: selectedDateAsLuxon.year.toString(),
72
- label: selectedDateAsLuxon.year.toString()
70
+ value: selectedDateAsDayjs.year().toString(),
71
+ label: selectedDateAsDayjs.year().toString()
73
72
  },
74
- yearInt: selectedDateAsLuxon.year
73
+ yearInt: selectedDateAsDayjs.year()
75
74
  }
76
75
  };
77
76
  }
78
77
  return {
79
78
  selectedMonth: {
80
- // -1 to align the luxon current time with Date constructor and array indexes
81
79
  value: {
82
- value: _constants.MONTHS[currentTime.month - 1],
83
- label: _constants.MONTHS[currentTime.month - 1]
80
+ value: _constants.MONTHS[currentTime.month()],
81
+ label: _constants.MONTHS[currentTime.month()]
84
82
  },
85
- monthInt: currentTime.month - 1
83
+ monthInt: currentTime.month()
86
84
  },
87
85
  selectedYear: {
88
86
  value: {
89
- value: currentTime.year.toString(),
90
- label: currentTime.year.toString()
87
+ value: currentTime.year().toString(),
88
+ label: currentTime.year().toString()
91
89
  },
92
- yearInt: currentTime.year
90
+ yearInt: currentTime.year()
93
91
  }
94
92
  };
95
93
  }
96
94
  function dateObjectToShortHand(date) {
97
95
  if (date instanceof Date) {
98
- var time = _luxon.DateTime.fromJSDate(date);
99
- return time.toFormat("dd/MM/yyyy");
96
+ var time = (0, _dayjs["default"])(date);
97
+ return time.format("DD/MM/YYYY");
100
98
  }
101
99
  throw new Error("Parsed value is not an instance of the JS Date object, and therefore cannot be converted, ensure inputted value is an instance of Date");
102
100
  }
@@ -1,8 +1,11 @@
1
1
  "use strict";
2
2
 
3
- var _luxon = require("luxon");
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ var _dayjs = _interopRequireDefault(require("dayjs"));
5
+ var _objectSupport = _interopRequireDefault(require("dayjs/plugin/objectSupport"));
4
6
  var _constants = require("./constants");
5
7
  var _logic = require("./logic");
8
+ _dayjs["default"].extend(_objectSupport["default"]);
6
9
  describe("generateYears", function () {
7
10
  it("should return an array of objects with label and value properties", function () {
8
11
  var minYear = 2000;
@@ -72,17 +75,17 @@ describe("generateMonths", function () {
72
75
  expect(monthValues).toEqual(["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"]);
73
76
  });
74
77
  });
75
- describe("convertLuxonYearMonthStateToDate", function () {
78
+ describe("convertYearMonthStateToDate", function () {
76
79
  it("should return a valid Date object", function () {
77
80
  var year = 2021;
78
81
  var month = 0; // January
79
- var date = (0, _logic.convertLuxonYearMonthStateToDate)(year, month);
82
+ var date = (0, _logic.convertYearMonthStateToDate)(year, month);
80
83
  expect(date instanceof Date).toBeTruthy();
81
84
  });
82
85
  it("should return the correct date for the given year and month", function () {
83
86
  var year = 2020;
84
87
  var month = 4; // May
85
- var date = (0, _logic.convertLuxonYearMonthStateToDate)(year, month);
88
+ var date = (0, _logic.convertYearMonthStateToDate)(year, month);
86
89
  expect(date.getFullYear()).toBe(year);
87
90
  expect(date.getMonth()).toBe(month);
88
91
  });
@@ -91,7 +94,7 @@ describe("getInitialState", function () {
91
94
  it("returns the correct initial state when selectedDate is provided", function () {
92
95
  var selectedDate = new Date("2022-01-01");
93
96
  // the currentTime call doesn't matter and doesn't need to remain consistant
94
- var currentTime = _luxon.DateTime.now();
97
+ var currentTime = (0, _dayjs["default"])();
95
98
  var initialState = (0, _logic.getInitialState)(currentTime, selectedDate);
96
99
  expect(initialState).toEqual({
97
100
  selectedMonth: {
@@ -111,10 +114,9 @@ describe("getInitialState", function () {
111
114
  });
112
115
  });
113
116
  it("returns the correct initial state when selectedDate is not provided", function () {
114
- // can't use DateTime.now, so made a luxon object for porposes of testing.
115
- var currentTime = _luxon.DateTime.fromObject({
117
+ var currentTime = (0, _dayjs["default"])({
116
118
  year: 2022,
117
- month: 5
119
+ month: 4
118
120
  });
119
121
  var selectedDate = null;
120
122
  var initialState = (0, _logic.getInitialState)(currentTime, selectedDate);
@@ -257,9 +259,9 @@ describe("stateManager", function () {
257
259
  var minYear;
258
260
  var maxYear;
259
261
  beforeEach(function () {
260
- state = (0, _logic.getInitialState)(_luxon.DateTime.fromObject({
262
+ state = (0, _logic.getInitialState)((0, _dayjs["default"])({
261
263
  year: 2022,
262
- month: 1
264
+ month: 0
263
265
  }), null);
264
266
  minYear = 2020;
265
267
  maxYear = 2030;
@@ -62,7 +62,6 @@ var _default = exports["default"] = (0, _system.css)({
62
62
  backgroundImage: "linear-gradient(to right, $$underlineColor, $$underlineColor)",
63
63
  backgroundPosition: "4px 26px",
64
64
  backgroundRepeat: "no-repeat",
65
- backgroundClip: "content-box",
66
65
  backgroundSize: "32px 2px",
67
66
  "&:hover": {
68
67
  backgroundColor: (0, _system.getColorScaleValueByUseCase)("neutral", backgrounds.uiElement_hovered),
@@ -4,8 +4,8 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.ISO_FORMAT = exports.ERRORS = exports.AUS_FORMAT = void 0;
7
- var ISO_FORMAT = exports.ISO_FORMAT = "yyyy-MM-dd";
8
- var AUS_FORMAT = exports.AUS_FORMAT = "dd/MM/yyyy";
7
+ var ISO_FORMAT = exports.ISO_FORMAT = "YYYY-MM-DD";
8
+ var AUS_FORMAT = exports.AUS_FORMAT = "DD/MM/YYYY";
9
9
  var ERRORS = exports.ERRORS = {
10
10
  incomplete: "Incomplete Date Provided",
11
11
  invalid: "Invalid Date Provided"
@@ -8,7 +8,7 @@ exports["default"] = void 0;
8
8
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
9
9
  var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
10
10
  var _icons = require("@vitality-ds/icons");
11
- var _luxon = require("luxon");
11
+ var _dayjs = _interopRequireDefault(require("dayjs"));
12
12
  var _react = _interopRequireDefault(require("react"));
13
13
  var _Popover = _interopRequireDefault(require("../../Popover"));
14
14
  var _TextInput = _interopRequireDefault(require("../TextInput"));
@@ -47,7 +47,7 @@ var DatePicker = /*#__PURE__*/_react["default"].forwardRef(function (_ref, forwa
47
47
  return null;
48
48
  } : _ref$onKeyDown,
49
49
  restProps = (0, _objectWithoutProperties2["default"])(_ref, _excluded);
50
- var currentTime = _luxon.DateTime.now();
50
+ var currentTime = (0, _dayjs["default"])();
51
51
  var iconButtonId = "".concat(id, "IconButton");
52
52
  var _useDatePicker = (0, _useDatePicker2["default"])(onChange, onSelectedDateChange, value, openCalendarOnFocus, onKeyDown, id, iconButtonId),
53
53
  onCalendarCallbackValueChange = _useDatePicker.onCalendarCallbackValueChange,
@@ -96,8 +96,8 @@ var DatePicker = /*#__PURE__*/_react["default"].forwardRef(function (_ref, forwa
96
96
  selectedDate: calendarValue || (0, _logic.shortHandToDateObject)(textValue),
97
97
  name: name,
98
98
  id: id,
99
- minYear: minYear || currentTime.year - 5,
100
- maxYear: maxYear || currentTime.year + 5
99
+ minYear: minYear || currentTime.year() - 5,
100
+ maxYear: maxYear || currentTime.year() + 5
101
101
  })
102
102
  }));
103
103
  });
@@ -1,5 +1,6 @@
1
1
  "use strict";
2
2
 
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
3
4
  Object.defineProperty(exports, "__esModule", {
4
5
  value: true
5
6
  });
@@ -7,13 +8,15 @@ exports.convertISOToAusDate = exports.convertAusToISODate = void 0;
7
8
  exports.createEventObject = createEventObject;
8
9
  exports.handleOnInteractOutside = void 0;
9
10
  exports.shortHandToDateObject = shortHandToDateObject;
10
- var _luxon = require("luxon");
11
+ var _dayjs = _interopRequireDefault(require("dayjs"));
12
+ var _customParseFormat = _interopRequireDefault(require("dayjs/plugin/customParseFormat"));
11
13
  var _constants = require("./constants");
14
+ _dayjs["default"].extend(_customParseFormat["default"]);
12
15
  function shortHandToDateObject(date) {
13
16
  if (date) {
14
- var time = _luxon.DateTime.fromString(date, "dd/MM/yyyy");
15
- if (time.isValid) {
16
- return time.toJSDate();
17
+ var time = (0, _dayjs["default"])(date, _constants.AUS_FORMAT, true);
18
+ if (time.isValid()) {
19
+ return time.toDate();
17
20
  }
18
21
  }
19
22
  return null;
@@ -37,16 +40,16 @@ var handleOnInteractOutside = exports.handleOnInteractOutside = function handleO
37
40
  };
38
41
  var convertISOToAusDate = exports.convertISOToAusDate = function convertISOToAusDate() {
39
42
  var date = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : "";
40
- return _luxon.DateTime.fromFormat(date, _constants.ISO_FORMAT).toFormat(_constants.AUS_FORMAT);
43
+ return (0, _dayjs["default"])(date, _constants.ISO_FORMAT, true).format(_constants.AUS_FORMAT);
41
44
  };
42
45
  var convertAusToISODate = exports.convertAusToISODate = function convertAusToISODate() {
43
46
  var date = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : "";
44
- return _luxon.DateTime.fromFormat(date, _constants.AUS_FORMAT).toFormat(_constants.ISO_FORMAT);
47
+ return (0, _dayjs["default"])(date, _constants.AUS_FORMAT, true).format(_constants.ISO_FORMAT);
45
48
  };
46
49
  function createEventObject(textValue) {
47
50
  var incompleteDate = textValue.includes("_");
48
51
  var errorMessage = incompleteDate ? _constants.ERRORS.incomplete : _constants.ERRORS.invalid;
49
- var validISO = convertAusToISODate(textValue) !== "Invalid DateTime";
52
+ var validISO = convertAusToISODate(textValue) !== "Invalid Date";
50
53
  var isoDate = validISO ? convertAusToISODate(textValue) : "";
51
54
  var isValid = validISO;
52
55
  isValid = textValue !== "" ? isValid : true;
@@ -12,7 +12,7 @@ describe("shortHandToDateObject", function () {
12
12
  expect((0, _logic.shortHandToDateObject)(dateString)).toEqual(expectedDateObject);
13
13
  });
14
14
  it("handles invalid date strings and returns null", function () {
15
- var invalidDateString = "32/01/2021";
15
+ var invalidDateString = "33/13/2021";
16
16
  expect((0, _logic.shortHandToDateObject)(invalidDateString)).toBeNull();
17
17
  });
18
18
  it("handles empty input and returns null", function () {
@@ -1,91 +1,95 @@
1
1
  "use strict";
2
2
 
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
3
4
  Object.defineProperty(exports, "__esModule", {
4
5
  value: true
5
6
  });
6
7
  exports["default"] = void 0;
7
- var _luxon = require("luxon");
8
+ var _dayjs = _interopRequireDefault(require("dayjs"));
9
+ var _quarterOfYear = _interopRequireDefault(require("dayjs/plugin/quarterOfYear"));
10
+ var _constants = require("../DatePicker/constants");
8
11
  var _determineFinancialYear = require("./helpers/determineFinancialYear");
9
- var time = _luxon.DateTime.now();
12
+ _dayjs["default"].extend(_quarterOfYear["default"]);
13
+ var time = (0, _dayjs["default"])();
10
14
  var PRESET_OPTIONS = [{
11
15
  key: "today",
12
16
  label: "Today",
13
- from: time.startOf("day").toFormat("yyyy-MM-dd"),
14
- to: time.endOf("day").toFormat("yyyy-MM-dd")
17
+ from: time.startOf("day").format(_constants.ISO_FORMAT),
18
+ to: time.endOf("day").format(_constants.ISO_FORMAT)
15
19
  }, {
16
20
  key: "yesterday",
17
21
  label: "Yesterday",
18
- from: time.minus({
22
+ from: time.subtract({
19
23
  day: 1
20
- }).startOf("day").toFormat("yyyy-MM-dd"),
21
- to: time.minus({
24
+ }).startOf("day").format(_constants.ISO_FORMAT),
25
+ to: time.subtract({
22
26
  day: 1
23
- }).endOf("day").toFormat("yyyy-MM-dd")
27
+ }).endOf("day").format(_constants.ISO_FORMAT)
24
28
  }, {
25
29
  key: "this_week",
26
30
  label: "This week",
27
- from: time.startOf("week").toFormat("yyyy-MM-dd"),
28
- to: time.endOf("week").toFormat("yyyy-MM-dd")
31
+ from: time.startOf("week").format(_constants.ISO_FORMAT),
32
+ to: time.endOf("week").format(_constants.ISO_FORMAT)
29
33
  }, {
30
34
  key: "last_week",
31
35
  label: "Last week",
32
- from: time.minus({
36
+ from: time.subtract({
33
37
  week: 1
34
- }).startOf("week").toFormat("yyyy-MM-dd"),
35
- to: time.minus({
38
+ }).startOf("week").format(_constants.ISO_FORMAT),
39
+ to: time.subtract({
36
40
  week: 1
37
- }).endOf("week").toFormat("yyyy-MM-dd")
41
+ }).endOf("week").format(_constants.ISO_FORMAT)
38
42
  }, {
39
43
  key: "this_month",
40
44
  label: "This month",
41
- from: time.startOf("month").toFormat("yyyy-MM-dd"),
42
- to: time.endOf("month").toFormat("yyyy-MM-dd")
45
+ from: time.startOf("month").format(_constants.ISO_FORMAT),
46
+ to: time.endOf("month").format(_constants.ISO_FORMAT)
43
47
  }, {
44
48
  key: "last_month",
45
49
  label: "Last month",
46
- from: time.minus({
50
+ from: time.subtract({
47
51
  month: 1
48
- }).startOf("month").toFormat("yyyy-MM-dd"),
49
- to: time.minus({
52
+ }).startOf("month").format(_constants.ISO_FORMAT),
53
+ to: time.subtract({
50
54
  month: 1
51
- }).endOf("month").toFormat("yyyy-MM-dd")
55
+ }).endOf("month").format(_constants.ISO_FORMAT)
52
56
  }, {
53
57
  key: "this_quarter",
54
58
  label: "This quarter",
55
- from: time.startOf("quarter").toFormat("yyyy-MM-dd"),
56
- to: time.endOf("quarter").toFormat("yyyy-MM-dd")
59
+ from: time.startOf("quarter").format(_constants.ISO_FORMAT),
60
+ to: time.endOf("quarter").format(_constants.ISO_FORMAT)
57
61
  }, {
58
62
  key: "last_quarter",
59
63
  label: "Last quarter",
60
- from: time.minus({
64
+ from: time.subtract({
61
65
  quarter: 1
62
- }).startOf("quarter").toFormat("yyyy-MM-dd"),
63
- to: time.minus({
66
+ }).startOf("quarter").format(_constants.ISO_FORMAT),
67
+ to: time.subtract({
64
68
  quarter: 1
65
- }).endOf("quarter").toFormat("yyyy-MM-dd")
69
+ }).endOf("quarter").format(_constants.ISO_FORMAT)
66
70
  }, {
67
71
  key: "past_12_months",
68
72
  label: "Past 12 months",
69
- from: time.minus({
73
+ from: time.subtract({
70
74
  month: 12
71
- }).toFormat("yyyy-MM-dd"),
72
- to: time.toFormat("yyyy-MM-dd")
75
+ }).format(_constants.ISO_FORMAT),
76
+ to: time.format(_constants.ISO_FORMAT)
73
77
  }, {
74
78
  key: "past_24_months",
75
79
  label: "Past 24 months",
76
- from: time.minus({
80
+ from: time.subtract({
77
81
  month: 24
78
- }).toFormat("yyyy-MM-dd"),
79
- to: time.toFormat("yyyy-MM-dd")
82
+ }).format(_constants.ISO_FORMAT),
83
+ to: time.format(_constants.ISO_FORMAT)
80
84
  }, {
81
85
  key: "this_financial_year",
82
86
  label: "This financial year",
83
- from: (0, _determineFinancialYear.determineThisFinancialYear)("from", time),
84
- to: (0, _determineFinancialYear.determineThisFinancialYear)("to", time)
87
+ from: (0, _determineFinancialYear.determineThisFinancialYear)("from"),
88
+ to: (0, _determineFinancialYear.determineThisFinancialYear)("to")
85
89
  }, {
86
90
  key: "last_financial_year",
87
91
  label: "Last financial year",
88
- from: (0, _determineFinancialYear.determineLastFinancialYear)("from", time),
89
- to: (0, _determineFinancialYear.determineLastFinancialYear)("to", time)
92
+ from: (0, _determineFinancialYear.determineLastFinancialYear)("from"),
93
+ to: (0, _determineFinancialYear.determineLastFinancialYear)("to")
90
94
  }];
91
95
  var _default = exports["default"] = PRESET_OPTIONS;
@@ -1,64 +1,74 @@
1
1
  "use strict";
2
2
 
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
3
4
  Object.defineProperty(exports, "__esModule", {
4
5
  value: true
5
6
  });
6
7
  exports.determineLastFinancialYear = determineLastFinancialYear;
7
8
  exports.determineThisFinancialYear = determineThisFinancialYear;
8
- var _luxon = require("luxon");
9
- var june = _luxon.DateTime.fromObject({
10
- month: 6,
11
- day: 30,
12
- hour: 0,
13
- second: 0
14
- });
15
- var july = _luxon.DateTime.fromObject({
16
- month: 7,
17
- day: 1,
18
- hour: 0,
19
- second: 0
20
- });
21
- function determineThisFinancialYear(toOrFrom, currentTime) {
22
- var paramJune = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : june;
23
- var paramJuly = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : july;
9
+ var _dayjs = _interopRequireDefault(require("dayjs"));
10
+ var _objectSupport = _interopRequireDefault(require("dayjs/plugin/objectSupport"));
11
+ var _constants = require("../../DatePicker/constants");
12
+ _dayjs["default"].extend(_objectSupport["default"]);
13
+ var currentYearJune = function currentYearJune(year) {
14
+ return (0, _dayjs["default"])({
15
+ year: year,
16
+ month: 5,
17
+ // June is month 5 in dayjs (0-indexed)
18
+ day: 30,
19
+ hour: 0,
20
+ second: 0
21
+ });
22
+ };
23
+ var currentYearJuly = function currentYearJuly(year) {
24
+ return (0, _dayjs["default"])({
25
+ year: year,
26
+ month: 6,
27
+ // July is month 6 in dayjs (0-indexed)
28
+ day: 1,
29
+ hour: 0,
30
+ second: 0
31
+ });
32
+ };
33
+ function determineThisFinancialYear(toOrFrom) {
34
+ var currentTime = (0, _dayjs["default"])();
24
35
  if (toOrFrom === "from") {
25
- if (paramJuly > currentTime) {
26
- return paramJuly.minus({
36
+ if (currentYearJuly(currentTime.year()) > currentTime) {
37
+ return currentYearJuly(currentTime.year()).subtract({
27
38
  year: 1
28
- }).toFormat("yyyy-MM-dd");
39
+ }).format(_constants.ISO_FORMAT);
29
40
  }
30
- return paramJuly.toFormat("yyyy-MM-dd");
41
+ return currentYearJuly(currentTime.year()).format(_constants.ISO_FORMAT);
31
42
  }
32
43
  if (toOrFrom === "to") {
33
- if (paramJune < currentTime) {
34
- return paramJune.plus({
44
+ if (currentYearJune(currentTime.year()) < currentTime) {
45
+ return currentYearJune(currentTime.year()).add({
35
46
  year: 1
36
- }).toFormat("yyyy-MM-dd");
47
+ }).format(_constants.ISO_FORMAT);
37
48
  }
38
- return paramJune.toFormat("yyyy-MM-dd");
49
+ return currentYearJune(currentTime.year()).format(_constants.ISO_FORMAT);
39
50
  }
40
51
  return null;
41
52
  }
42
- function determineLastFinancialYear(toOrFrom, currentTime) {
43
- var paramJune = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : june;
44
- var paramJuly = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : july;
53
+ function determineLastFinancialYear(toOrFrom) {
54
+ var currentTime = (0, _dayjs["default"])();
45
55
  if (toOrFrom === "from") {
46
- if (paramJuly > currentTime) {
47
- return paramJuly.minus({
56
+ if (currentYearJuly(currentTime.year()) > currentTime) {
57
+ return currentYearJuly(currentTime.year()).subtract({
48
58
  year: 2
49
- }).toFormat("yyyy-MM-dd");
59
+ }).format(_constants.ISO_FORMAT);
50
60
  }
51
- return paramJuly.minus({
61
+ return currentYearJuly(currentTime.year()).subtract({
52
62
  year: 1
53
- }).toFormat("yyyy-MM-dd");
63
+ }).format(_constants.ISO_FORMAT);
54
64
  }
55
65
  if (toOrFrom === "to") {
56
- if (paramJune > currentTime) {
57
- return paramJune.minus({
66
+ if (currentYearJune(currentTime.year()) > currentTime) {
67
+ return currentYearJune(currentTime.year()).subtract({
58
68
  year: 1
59
- }).toFormat("yyyy-MM-dd");
69
+ }).format(_constants.ISO_FORMAT);
60
70
  }
61
- return paramJune.toFormat("yyyy-MM-dd");
71
+ return currentYearJune(currentTime.year()).format(_constants.ISO_FORMAT);
62
72
  }
63
73
  return null;
64
74
  }