@navikt/ds-react 2.0.18 → 2.1.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.
package/_docs.json CHANGED
@@ -9089,6 +9089,27 @@
9089
9089
  "name": "((val: DateValidationT) => void)"
9090
9090
  }
9091
9091
  },
9092
+ "allowTwoDigitYear": {
9093
+ "defaultValue": {
9094
+ "value": "true"
9095
+ },
9096
+ "description": "Allows input of with 'yy' year format.\n@Note Decision between 20th and 21st century is based on before(todays year - 80) ? 21st : 20th.\nIn 2023 this equals to 1943 - 2042",
9097
+ "name": "allowTwoDigitYear",
9098
+ "parent": {
9099
+ "fileName": "src/date/hooks/useDatepicker.tsx",
9100
+ "name": "UseDatepickerOptions"
9101
+ },
9102
+ "declarations": [
9103
+ {
9104
+ "fileName": "src/date/hooks/useDatepicker.tsx",
9105
+ "name": "UseDatepickerOptions"
9106
+ }
9107
+ ],
9108
+ "required": false,
9109
+ "type": {
9110
+ "name": "boolean"
9111
+ }
9112
+ },
9092
9113
  "locale": {
9093
9114
  "defaultValue": {
9094
9115
  "value": "\"nb\" (norsk bokmål)"
@@ -9291,6 +9312,27 @@
9291
9312
  "name": "Date"
9292
9313
  }
9293
9314
  },
9315
+ "allowTwoDigitYear": {
9316
+ "defaultValue": {
9317
+ "value": "true"
9318
+ },
9319
+ "description": "Allows input of with 'yy' year format.\n@Note Decision between 20th and 21st century is based on before(todays year - 80) ? 21st : 20th.\nIn 2023 this equals to 1943 - 2042",
9320
+ "name": "allowTwoDigitYear",
9321
+ "parent": {
9322
+ "fileName": "src/date/hooks/useMonthPicker.tsx",
9323
+ "name": "UseMonthPickerOptions"
9324
+ },
9325
+ "declarations": [
9326
+ {
9327
+ "fileName": "src/date/hooks/useMonthPicker.tsx",
9328
+ "name": "UseMonthPickerOptions"
9329
+ }
9330
+ ],
9331
+ "required": false,
9332
+ "type": {
9333
+ "name": "boolean"
9334
+ }
9335
+ },
9294
9336
  "locale": {
9295
9337
  "defaultValue": {
9296
9338
  "value": "\"nb\" (norsk bokmål)"
@@ -9608,6 +9650,27 @@
9608
9650
  "type": {
9609
9651
  "name": "string"
9610
9652
  }
9653
+ },
9654
+ "allowTwoDigitYear": {
9655
+ "defaultValue": {
9656
+ "value": "true"
9657
+ },
9658
+ "description": "Allows input of with 'yy' year format.\n@Note Decision between 20th and 21st century is based on before(todays year - 80) ? 21st : 20th.\nIn 2023 this equals to 1943 - 2042",
9659
+ "name": "allowTwoDigitYear",
9660
+ "parent": {
9661
+ "fileName": "react/src/date/hooks/useDatepicker.tsx",
9662
+ "name": "UseDatepickerOptions"
9663
+ },
9664
+ "declarations": [
9665
+ {
9666
+ "fileName": "react/src/date/hooks/useDatepicker.tsx",
9667
+ "name": "UseDatepickerOptions"
9668
+ }
9669
+ ],
9670
+ "required": false,
9671
+ "type": {
9672
+ "name": "boolean"
9673
+ }
9611
9674
  }
9612
9675
  }
9613
9676
  },
@@ -12,7 +12,7 @@ const utils_1 = require("../utils");
12
12
  const getValidationMessage = (val = {}) => (Object.assign({ isDisabled: false, isWeekend: false, isEmpty: false, isInvalid: false, isBefore: false, isAfter: false, isValidDate: true }, val));
13
13
  const useDatepicker = (opt = {}) => {
14
14
  var _a;
15
- const { locale: _locale = "nb", required, defaultSelected: _defaultSelected, today = new Date(), fromDate, toDate, disabled, disableWeekends, onDateChange, inputFormat, onValidate, defaultMonth, } = opt;
15
+ const { locale: _locale = "nb", required, defaultSelected: _defaultSelected, today = new Date(), fromDate, toDate, disabled, disableWeekends, onDateChange, inputFormat, onValidate, defaultMonth, allowTwoDigitYear = true, } = opt;
16
16
  const locale = (0, utils_1.getLocaleFromString)(_locale);
17
17
  const inputRef = (0, react_1.useRef)(null);
18
18
  const daypickerRef = (0, react_1.useRef)(null);
@@ -72,14 +72,14 @@ const useDatepicker = (opt = {}) => {
72
72
  };
73
73
  const handleFocus = (e) => {
74
74
  !open && setOpen(true);
75
- let day = (0, utils_1.parseDate)(e.target.value, today, locale, "date");
75
+ let day = (0, utils_1.parseDate)(e.target.value, today, locale, "date", allowTwoDigitYear);
76
76
  if ((0, utils_1.isValidDate)(day)) {
77
77
  setMonth(day);
78
78
  setInputValue((0, utils_1.formatDateForInput)(day, locale, "date", inputFormat));
79
79
  }
80
80
  };
81
81
  const handleBlur = (e) => {
82
- let day = (0, utils_1.parseDate)(e.target.value, today, locale, "date");
82
+ let day = (0, utils_1.parseDate)(e.target.value, today, locale, "date", allowTwoDigitYear);
83
83
  (0, utils_1.isValidDate)(day) &&
84
84
  setInputValue((0, utils_1.formatDateForInput)(day, locale, "date", inputFormat));
85
85
  };
@@ -105,7 +105,7 @@ const useDatepicker = (opt = {}) => {
105
105
  // the calendar’s month.
106
106
  const handleChange = (e) => {
107
107
  setInputValue(e.target.value);
108
- const day = (0, utils_1.parseDate)(e.target.value, today, locale, "date");
108
+ const day = (0, utils_1.parseDate)(e.target.value, today, locale, "date", allowTwoDigitYear);
109
109
  const isBefore = fromDate && day && (0, differenceInCalendarDays_1.default)(fromDate, day) > 0;
110
110
  const isAfter = toDate && day && (0, differenceInCalendarDays_1.default)(day, toDate) > 0;
111
111
  if (!(0, utils_1.isValidDate)(day) ||
@@ -6,7 +6,7 @@ const utils_1 = require("../utils");
6
6
  const getValidationMessage = (val = {}) => (Object.assign({ isDisabled: false, isEmpty: false, isInvalid: false, isBefore: false, isAfter: false, isValidMonth: true }, val));
7
7
  const useMonthpicker = (opt = {}) => {
8
8
  var _a;
9
- const { locale: _locale = "nb", defaultSelected: _defaultSelected, fromDate, toDate, disabled, required, onMonthChange, inputFormat, onValidate, defaultYear, } = opt;
9
+ const { locale: _locale = "nb", defaultSelected: _defaultSelected, fromDate, toDate, disabled, required, onMonthChange, inputFormat, onValidate, defaultYear, allowTwoDigitYear = true, } = opt;
10
10
  const [defaultSelected, setDefaultSelected] = (0, react_1.useState)(_defaultSelected);
11
11
  const today = new Date();
12
12
  const locale = (0, utils_1.getLocaleFromString)(_locale);
@@ -67,14 +67,14 @@ const useMonthpicker = (opt = {}) => {
67
67
  };
68
68
  const handleFocus = (e) => {
69
69
  !open && setOpen(true);
70
- let day = (0, utils_1.parseDate)(e.target.value, today, locale, "month");
70
+ let day = (0, utils_1.parseDate)(e.target.value, today, locale, "month", allowTwoDigitYear);
71
71
  if ((0, utils_1.isValidDate)(day)) {
72
72
  setYear(day);
73
73
  setInputValue((0, utils_1.formatDateForInput)(day, locale, "month", inputFormat));
74
74
  }
75
75
  };
76
76
  const handleBlur = (e) => {
77
- let day = (0, utils_1.parseDate)(e.target.value, today, locale, "month");
77
+ let day = (0, utils_1.parseDate)(e.target.value, today, locale, "month", allowTwoDigitYear);
78
78
  (0, utils_1.isValidDate)(day) &&
79
79
  setInputValue((0, utils_1.formatDateForInput)(day, locale, "month", inputFormat));
80
80
  };
@@ -99,7 +99,7 @@ const useMonthpicker = (opt = {}) => {
99
99
  // the calendar’s month.
100
100
  const handleChange = (e) => {
101
101
  setInputValue(e.target.value);
102
- const month = (0, utils_1.parseDate)(e.target.value, today, locale, "month");
102
+ const month = (0, utils_1.parseDate)(e.target.value, today, locale, "month", allowTwoDigitYear);
103
103
  const isBefore = fromDate &&
104
104
  month &&
105
105
  (fromDate.getFullYear() > month.getFullYear() ||
@@ -78,7 +78,7 @@ const initialValidation = (range, opt) => {
78
78
  return getValidationMessage(Object.assign({}, fromVal), Object.assign({}, toVal));
79
79
  };
80
80
  const useRangeDatepicker = (opt = {}) => {
81
- const { locale: _locale = "nb", defaultSelected: _defaultSelected, today = new Date(), fromDate, toDate, disabled, disableWeekends, onRangeChange, inputFormat, onValidate, defaultMonth, } = opt;
81
+ const { locale: _locale = "nb", defaultSelected: _defaultSelected, today = new Date(), fromDate, toDate, disabled, disableWeekends, onRangeChange, inputFormat, onValidate, defaultMonth, allowTwoDigitYear = true, } = opt;
82
82
  const locale = (0, utils_1.getLocaleFromString)(_locale);
83
83
  const inputRefTo = (0, react_1.useRef)(null);
84
84
  const inputRefFrom = (0, react_1.useRef)(null);
@@ -154,7 +154,7 @@ const useRangeDatepicker = (opt = {}) => {
154
154
  };
155
155
  const handleFocus = (e, src) => {
156
156
  !open && setOpen(true);
157
- let day = (0, utils_1.parseDate)(e.target.value, today, locale, "date");
157
+ let day = (0, utils_1.parseDate)(e.target.value, today, locale, "date", allowTwoDigitYear);
158
158
  if ((0, utils_1.isValidDate)(day)) {
159
159
  setMonth(day);
160
160
  src === RANGE.FROM
@@ -163,7 +163,7 @@ const useRangeDatepicker = (opt = {}) => {
163
163
  }
164
164
  };
165
165
  const handleBlur = (e, src) => {
166
- let day = (0, utils_1.parseDate)(e.target.value, today, locale, "date");
166
+ let day = (0, utils_1.parseDate)(e.target.value, today, locale, "date", allowTwoDigitYear);
167
167
  if (!(0, utils_1.isValidDate)(day)) {
168
168
  return;
169
169
  }
@@ -226,7 +226,7 @@ const useRangeDatepicker = (opt = {}) => {
226
226
  return;
227
227
  }
228
228
  if (toInputValue && !(selectedRange === null || selectedRange === void 0 ? void 0 : selectedRange.to)) {
229
- const toDay = (0, utils_1.parseDate)(toInputValue, today, locale, "date");
229
+ const toDay = (0, utils_1.parseDate)(toInputValue, today, locale, "date", allowTwoDigitYear);
230
230
  if (validateDay(toDay)) {
231
231
  updateRange({ from: day, to: toDay });
232
232
  setMonth(day);
@@ -278,7 +278,7 @@ const useRangeDatepicker = (opt = {}) => {
278
278
  };
279
279
  /* live-update datepicker based on changes in inputfields */
280
280
  const handleChange = (e, src) => {
281
- const day = (0, utils_1.parseDate)(e.target.value, today, locale, "date");
281
+ const day = (0, utils_1.parseDate)(e.target.value, today, locale, "date", allowTwoDigitYear);
282
282
  const isBefore = fromDate && (0, differenceInCalendarDays_1.default)(fromDate, day) > 0;
283
283
  const isAfter = toDate && (0, differenceInCalendarDays_1.default)(day, toDate) > 0;
284
284
  return src === RANGE.FROM
@@ -12,7 +12,7 @@ const dateIsInCurrentMonth = (date, dateToCompare) => {
12
12
  exports.dateIsInCurrentMonth = dateIsInCurrentMonth;
13
13
  /** @private */
14
14
  function isValidDate(day) {
15
- return !isNaN(day.getTime());
15
+ return day && !isNaN(day === null || day === void 0 ? void 0 : day.getTime()) && day.getFullYear() > 999;
16
16
  }
17
17
  exports.isValidDate = isValidDate;
18
18
  const hasNextYear = (year, years, val) => {
@@ -5,6 +5,8 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.parseDate = exports.INPUT_DATE_STRING_FORMAT_MONTH = exports.INPUT_DATE_STRING_FORMAT_DATE = void 0;
7
7
  const parse_1 = __importDefault(require("date-fns/parse"));
8
+ const isBefore_1 = __importDefault(require("date-fns/isBefore"));
9
+ const sub_1 = __importDefault(require("date-fns/sub"));
8
10
  const _1 = require(".");
9
11
  exports.INPUT_DATE_STRING_FORMAT_DATE = "dd.MM.yyyy";
10
12
  exports.INPUT_DATE_STRING_FORMAT_MONTH = "MMMM yyyy";
@@ -23,7 +25,47 @@ const ALLOWED_INPUT_FORMATS_MONTH = [
23
25
  exports.INPUT_DATE_STRING_FORMAT_MONTH,
24
26
  ...ALLOWED_INPUT_FORMATS_DATE,
25
27
  ];
26
- const isTwoDigitYear = (dateString, today, locale, formats) => {
28
+ const parseDate = (date, today, locale, type, allowTwoDigitYear) => {
29
+ let parsed;
30
+ const ALLOWED_FORMATS = type === "date" ? ALLOWED_INPUT_FORMATS_DATE : ALLOWED_INPUT_FORMATS_MONTH;
31
+ if (allowTwoDigitYear) {
32
+ for (const format of ALLOWED_FORMATS) {
33
+ parsed = (0, parse_1.default)(date, format, today, { locale });
34
+ if ((0, _1.isValidDate)(parsed) &&
35
+ !isTwoDigitYear(date, today, locale, ALLOWED_FORMATS)) {
36
+ return parsed;
37
+ }
38
+ }
39
+ for (const format of [
40
+ ...ALLOWED_FORMATS.map((x) => x.replace("yyyy", "yy")),
41
+ ]) {
42
+ parsed = (0, parse_1.default)(date, format, today, { locale });
43
+ if ((0, _1.isValidDate)(parsed) &&
44
+ isTwoDigitYear(date, today, locale, ALLOWED_FORMATS)) {
45
+ const convertedDate = assignCenturyToDate(date, format, today, locale);
46
+ if ((0, _1.isValidDate)(new Date(convertedDate))) {
47
+ return new Date(convertedDate);
48
+ }
49
+ else {
50
+ return new Date("Invalid date");
51
+ }
52
+ }
53
+ }
54
+ return new Date("Invalid date");
55
+ }
56
+ else {
57
+ for (const format of ALLOWED_FORMATS) {
58
+ parsed = (0, parse_1.default)(date, format, today, { locale });
59
+ if ((0, _1.isValidDate)(parsed) &&
60
+ !isTwoDigitYear(date, today, locale, ALLOWED_FORMATS)) {
61
+ return parsed;
62
+ }
63
+ }
64
+ return new Date("Invalid date");
65
+ }
66
+ };
67
+ exports.parseDate = parseDate;
68
+ function isTwoDigitYear(dateString, today, locale, formats) {
27
69
  let parsed;
28
70
  const newFormat = formats.map((x) => x.replace("yyyy", "yy"));
29
71
  for (const format of newFormat) {
@@ -33,17 +75,20 @@ const isTwoDigitYear = (dateString, today, locale, formats) => {
33
75
  }
34
76
  }
35
77
  return false;
36
- };
37
- const parseDate = (date, today, locale, type) => {
38
- let parsed;
39
- const ALLOWED_FORMATS = type === "date" ? ALLOWED_INPUT_FORMATS_DATE : ALLOWED_INPUT_FORMATS_MONTH;
40
- for (const format of ALLOWED_FORMATS) {
41
- parsed = (0, parse_1.default)(date, format, today, { locale });
42
- if ((0, _1.isValidDate)(parsed) &&
43
- !isTwoDigitYear(date, today, locale, ALLOWED_FORMATS)) {
44
- return parsed;
45
- }
78
+ }
79
+ function assignCenturyToDate(dateStr, format, today, locale) {
80
+ const date20Century = (0, parse_1.default)(appendCenturyToTwoYearDigitDateString(dateStr, "19"), format.replace("yy", "yyyy"), today, { locale });
81
+ const date21Century = (0, parse_1.default)(appendCenturyToTwoYearDigitDateString(dateStr, "20"), format.replace("yy", "yyyy"), today, { locale });
82
+ if ((0, _1.isValidDate)(date20Century) && (0, _1.isValidDate)(date21Century)) {
83
+ return (0, isBefore_1.default)(date20Century, (0, sub_1.default)(new Date(), {
84
+ years: 80,
85
+ }))
86
+ ? date21Century
87
+ : date20Century;
46
88
  }
47
89
  return new Date("Invalid date");
48
- };
49
- exports.parseDate = parseDate;
90
+ }
91
+ function appendCenturyToTwoYearDigitDateString(dateString, century) {
92
+ const twoDigitYear = dateString.slice(-2);
93
+ return `${dateString.slice(0, dateString.length - 2)}${century}${twoDigitYear}`;
94
+ }
@@ -27,6 +27,13 @@ export interface UseDatepickerOptions extends Pick<DatePickerProps, "locale" | "
27
27
  * validation-callback
28
28
  */
29
29
  onValidate?: (val: DateValidationT) => void;
30
+ /**
31
+ * Allows input of with 'yy' year format.
32
+ * @default true
33
+ * @Note Decision between 20th and 21st century is based on before(todays year - 80) ? 21st : 20th.
34
+ * In 2023 this equals to 1943 - 2042
35
+ */
36
+ allowTwoDigitYear?: boolean;
30
37
  }
31
38
  interface UseDatepickerValue {
32
39
  /**
@@ -6,7 +6,7 @@ import { formatDateForInput, getLocaleFromString, isValidDate, parseDate, } from
6
6
  const getValidationMessage = (val = {}) => (Object.assign({ isDisabled: false, isWeekend: false, isEmpty: false, isInvalid: false, isBefore: false, isAfter: false, isValidDate: true }, val));
7
7
  export const useDatepicker = (opt = {}) => {
8
8
  var _a;
9
- const { locale: _locale = "nb", required, defaultSelected: _defaultSelected, today = new Date(), fromDate, toDate, disabled, disableWeekends, onDateChange, inputFormat, onValidate, defaultMonth, } = opt;
9
+ const { locale: _locale = "nb", required, defaultSelected: _defaultSelected, today = new Date(), fromDate, toDate, disabled, disableWeekends, onDateChange, inputFormat, onValidate, defaultMonth, allowTwoDigitYear = true, } = opt;
10
10
  const locale = getLocaleFromString(_locale);
11
11
  const inputRef = useRef(null);
12
12
  const daypickerRef = useRef(null);
@@ -66,14 +66,14 @@ export const useDatepicker = (opt = {}) => {
66
66
  };
67
67
  const handleFocus = (e) => {
68
68
  !open && setOpen(true);
69
- let day = parseDate(e.target.value, today, locale, "date");
69
+ let day = parseDate(e.target.value, today, locale, "date", allowTwoDigitYear);
70
70
  if (isValidDate(day)) {
71
71
  setMonth(day);
72
72
  setInputValue(formatDateForInput(day, locale, "date", inputFormat));
73
73
  }
74
74
  };
75
75
  const handleBlur = (e) => {
76
- let day = parseDate(e.target.value, today, locale, "date");
76
+ let day = parseDate(e.target.value, today, locale, "date", allowTwoDigitYear);
77
77
  isValidDate(day) &&
78
78
  setInputValue(formatDateForInput(day, locale, "date", inputFormat));
79
79
  };
@@ -99,7 +99,7 @@ export const useDatepicker = (opt = {}) => {
99
99
  // the calendar’s month.
100
100
  const handleChange = (e) => {
101
101
  setInputValue(e.target.value);
102
- const day = parseDate(e.target.value, today, locale, "date");
102
+ const day = parseDate(e.target.value, today, locale, "date", allowTwoDigitYear);
103
103
  const isBefore = fromDate && day && differenceInCalendarDays(fromDate, day) > 0;
104
104
  const isAfter = toDate && day && differenceInCalendarDays(day, toDate) > 0;
105
105
  if (!isValidDate(day) ||
@@ -1 +1 @@
1
- {"version":3,"file":"useDatepicker.js","sourceRoot":"","sources":["../../../src/date/hooks/useDatepicker.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useDatepicker.js","sourceRoot":"","sources":["../../../src/date/hooks/useDatepicker.tsx"],"names":[],"mappings":"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"}
@@ -23,6 +23,13 @@ export interface UseMonthPickerOptions extends Pick<MonthPickerProps, "locale" |
23
23
  * Default shown year
24
24
  */
25
25
  defaultYear?: Date;
26
+ /**
27
+ * Allows input of with 'yy' year format.
28
+ * @default true
29
+ * @Note Decision between 20th and 21st century is based on before(todays year - 80) ? 21st : 20th.
30
+ * In 2023 this equals to 1943 - 2042
31
+ */
32
+ allowTwoDigitYear?: boolean;
26
33
  }
27
34
  interface UseMonthPickerValue {
28
35
  /**
@@ -3,7 +3,7 @@ import { formatDateForInput, getLocaleFromString, isMatch, isValidDate, parseDat
3
3
  const getValidationMessage = (val = {}) => (Object.assign({ isDisabled: false, isEmpty: false, isInvalid: false, isBefore: false, isAfter: false, isValidMonth: true }, val));
4
4
  export const useMonthpicker = (opt = {}) => {
5
5
  var _a;
6
- const { locale: _locale = "nb", defaultSelected: _defaultSelected, fromDate, toDate, disabled, required, onMonthChange, inputFormat, onValidate, defaultYear, } = opt;
6
+ const { locale: _locale = "nb", defaultSelected: _defaultSelected, fromDate, toDate, disabled, required, onMonthChange, inputFormat, onValidate, defaultYear, allowTwoDigitYear = true, } = opt;
7
7
  const [defaultSelected, setDefaultSelected] = useState(_defaultSelected);
8
8
  const today = new Date();
9
9
  const locale = getLocaleFromString(_locale);
@@ -64,14 +64,14 @@ export const useMonthpicker = (opt = {}) => {
64
64
  };
65
65
  const handleFocus = (e) => {
66
66
  !open && setOpen(true);
67
- let day = parseDate(e.target.value, today, locale, "month");
67
+ let day = parseDate(e.target.value, today, locale, "month", allowTwoDigitYear);
68
68
  if (isValidDate(day)) {
69
69
  setYear(day);
70
70
  setInputValue(formatDateForInput(day, locale, "month", inputFormat));
71
71
  }
72
72
  };
73
73
  const handleBlur = (e) => {
74
- let day = parseDate(e.target.value, today, locale, "month");
74
+ let day = parseDate(e.target.value, today, locale, "month", allowTwoDigitYear);
75
75
  isValidDate(day) &&
76
76
  setInputValue(formatDateForInput(day, locale, "month", inputFormat));
77
77
  };
@@ -96,7 +96,7 @@ export const useMonthpicker = (opt = {}) => {
96
96
  // the calendar’s month.
97
97
  const handleChange = (e) => {
98
98
  setInputValue(e.target.value);
99
- const month = parseDate(e.target.value, today, locale, "month");
99
+ const month = parseDate(e.target.value, today, locale, "month", allowTwoDigitYear);
100
100
  const isBefore = fromDate &&
101
101
  month &&
102
102
  (fromDate.getFullYear() > month.getFullYear() ||
@@ -1 +1 @@
1
- {"version":3,"file":"useMonthPicker.js","sourceRoot":"","sources":["../../../src/date/hooks/useMonthPicker.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useMonthPicker.js","sourceRoot":"","sources":["../../../src/date/hooks/useMonthPicker.tsx"],"names":[],"mappings":"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"}
@@ -72,7 +72,7 @@ const initialValidation = (range, opt) => {
72
72
  return getValidationMessage(Object.assign({}, fromVal), Object.assign({}, toVal));
73
73
  };
74
74
  export const useRangeDatepicker = (opt = {}) => {
75
- const { locale: _locale = "nb", defaultSelected: _defaultSelected, today = new Date(), fromDate, toDate, disabled, disableWeekends, onRangeChange, inputFormat, onValidate, defaultMonth, } = opt;
75
+ const { locale: _locale = "nb", defaultSelected: _defaultSelected, today = new Date(), fromDate, toDate, disabled, disableWeekends, onRangeChange, inputFormat, onValidate, defaultMonth, allowTwoDigitYear = true, } = opt;
76
76
  const locale = getLocaleFromString(_locale);
77
77
  const inputRefTo = useRef(null);
78
78
  const inputRefFrom = useRef(null);
@@ -148,7 +148,7 @@ export const useRangeDatepicker = (opt = {}) => {
148
148
  };
149
149
  const handleFocus = (e, src) => {
150
150
  !open && setOpen(true);
151
- let day = parseDate(e.target.value, today, locale, "date");
151
+ let day = parseDate(e.target.value, today, locale, "date", allowTwoDigitYear);
152
152
  if (isValidDate(day)) {
153
153
  setMonth(day);
154
154
  src === RANGE.FROM
@@ -157,7 +157,7 @@ export const useRangeDatepicker = (opt = {}) => {
157
157
  }
158
158
  };
159
159
  const handleBlur = (e, src) => {
160
- let day = parseDate(e.target.value, today, locale, "date");
160
+ let day = parseDate(e.target.value, today, locale, "date", allowTwoDigitYear);
161
161
  if (!isValidDate(day)) {
162
162
  return;
163
163
  }
@@ -220,7 +220,7 @@ export const useRangeDatepicker = (opt = {}) => {
220
220
  return;
221
221
  }
222
222
  if (toInputValue && !(selectedRange === null || selectedRange === void 0 ? void 0 : selectedRange.to)) {
223
- const toDay = parseDate(toInputValue, today, locale, "date");
223
+ const toDay = parseDate(toInputValue, today, locale, "date", allowTwoDigitYear);
224
224
  if (validateDay(toDay)) {
225
225
  updateRange({ from: day, to: toDay });
226
226
  setMonth(day);
@@ -272,7 +272,7 @@ export const useRangeDatepicker = (opt = {}) => {
272
272
  };
273
273
  /* live-update datepicker based on changes in inputfields */
274
274
  const handleChange = (e, src) => {
275
- const day = parseDate(e.target.value, today, locale, "date");
275
+ const day = parseDate(e.target.value, today, locale, "date", allowTwoDigitYear);
276
276
  const isBefore = fromDate && differenceInCalendarDays(fromDate, day) > 0;
277
277
  const isAfter = toDate && differenceInCalendarDays(day, toDate) > 0;
278
278
  return src === RANGE.FROM
@@ -1 +1 @@
1
- {"version":3,"file":"useRangeDatepicker.js","sourceRoot":"","sources":["../../../src/date/hooks/useRangeDatepicker.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useRangeDatepicker.js","sourceRoot":"","sources":["../../../src/date/hooks/useRangeDatepicker.tsx"],"names":[],"mappings":"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"}
@@ -5,7 +5,7 @@ export const dateIsInCurrentMonth = (date, dateToCompare) => {
5
5
  };
6
6
  /** @private */
7
7
  export function isValidDate(day) {
8
- return !isNaN(day.getTime());
8
+ return day && !isNaN(day === null || day === void 0 ? void 0 : day.getTime()) && day.getFullYear() > 999;
9
9
  }
10
10
  export const hasNextYear = (year, years, val) => {
11
11
  return years.some((x) => year.getFullYear() + val === x.getFullYear());
@@ -1 +1 @@
1
- {"version":3,"file":"check-dates.js","sourceRoot":"","sources":["../../../src/date/utils/check-dates.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,kBAAkB,CAAC;AACvC,OAAO,WAAW,MAAM,sBAAsB,CAAC;AAE/C,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAClC,IAAU,EACV,aAAmB,EACV,EAAE;IACX,OAAO,WAAW,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,aAAa,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC;AACzE,CAAC,CAAC;AAEF,eAAe;AACf,MAAM,UAAU,WAAW,CAAC,GAAS;IACnC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;AAC/B,CAAC;AAED,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,IAAU,EAAE,KAAa,EAAE,GAAQ,EAAW,EAAE;IAC1E,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,GAAG,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;AACzE,CAAC,CAAC"}
1
+ {"version":3,"file":"check-dates.js","sourceRoot":"","sources":["../../../src/date/utils/check-dates.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,kBAAkB,CAAC;AACvC,OAAO,WAAW,MAAM,sBAAsB,CAAC;AAE/C,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAClC,IAAU,EACV,aAAmB,EACV,EAAE;IACX,OAAO,WAAW,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,aAAa,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC;AACzE,CAAC,CAAC;AAEF,eAAe;AACf,MAAM,UAAU,WAAW,CAAC,GAAS;IACnC,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,OAAO,EAAE,CAAC,IAAI,GAAG,CAAC,WAAW,EAAE,GAAG,GAAG,CAAC;AAClE,CAAC;AAED,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,IAAU,EAAE,KAAa,EAAE,GAAQ,EAAW,EAAE;IAC1E,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,GAAG,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;AACzE,CAAC,CAAC"}
@@ -1,3 +1,3 @@
1
1
  export declare const INPUT_DATE_STRING_FORMAT_DATE = "dd.MM.yyyy";
2
2
  export declare const INPUT_DATE_STRING_FORMAT_MONTH = "MMMM yyyy";
3
- export declare const parseDate: (date: string, today: Date, locale: Locale, type: "date" | "month") => Date;
3
+ export declare const parseDate: (date: string, today: Date, locale: Locale, type: "date" | "month", allowTwoDigitYear: boolean) => Date;
@@ -1,4 +1,6 @@
1
1
  import parse from "date-fns/parse";
2
+ import isBefore from "date-fns/isBefore";
3
+ import sub from "date-fns/sub";
2
4
  import { isValidDate } from ".";
3
5
  export const INPUT_DATE_STRING_FORMAT_DATE = "dd.MM.yyyy";
4
6
  export const INPUT_DATE_STRING_FORMAT_MONTH = "MMMM yyyy";
@@ -17,7 +19,46 @@ const ALLOWED_INPUT_FORMATS_MONTH = [
17
19
  INPUT_DATE_STRING_FORMAT_MONTH,
18
20
  ...ALLOWED_INPUT_FORMATS_DATE,
19
21
  ];
20
- const isTwoDigitYear = (dateString, today, locale, formats) => {
22
+ export const parseDate = (date, today, locale, type, allowTwoDigitYear) => {
23
+ let parsed;
24
+ const ALLOWED_FORMATS = type === "date" ? ALLOWED_INPUT_FORMATS_DATE : ALLOWED_INPUT_FORMATS_MONTH;
25
+ if (allowTwoDigitYear) {
26
+ for (const format of ALLOWED_FORMATS) {
27
+ parsed = parse(date, format, today, { locale });
28
+ if (isValidDate(parsed) &&
29
+ !isTwoDigitYear(date, today, locale, ALLOWED_FORMATS)) {
30
+ return parsed;
31
+ }
32
+ }
33
+ for (const format of [
34
+ ...ALLOWED_FORMATS.map((x) => x.replace("yyyy", "yy")),
35
+ ]) {
36
+ parsed = parse(date, format, today, { locale });
37
+ if (isValidDate(parsed) &&
38
+ isTwoDigitYear(date, today, locale, ALLOWED_FORMATS)) {
39
+ const convertedDate = assignCenturyToDate(date, format, today, locale);
40
+ if (isValidDate(new Date(convertedDate))) {
41
+ return new Date(convertedDate);
42
+ }
43
+ else {
44
+ return new Date("Invalid date");
45
+ }
46
+ }
47
+ }
48
+ return new Date("Invalid date");
49
+ }
50
+ else {
51
+ for (const format of ALLOWED_FORMATS) {
52
+ parsed = parse(date, format, today, { locale });
53
+ if (isValidDate(parsed) &&
54
+ !isTwoDigitYear(date, today, locale, ALLOWED_FORMATS)) {
55
+ return parsed;
56
+ }
57
+ }
58
+ return new Date("Invalid date");
59
+ }
60
+ };
61
+ function isTwoDigitYear(dateString, today, locale, formats) {
21
62
  let parsed;
22
63
  const newFormat = formats.map((x) => x.replace("yyyy", "yy"));
23
64
  for (const format of newFormat) {
@@ -27,17 +68,21 @@ const isTwoDigitYear = (dateString, today, locale, formats) => {
27
68
  }
28
69
  }
29
70
  return false;
30
- };
31
- export const parseDate = (date, today, locale, type) => {
32
- let parsed;
33
- const ALLOWED_FORMATS = type === "date" ? ALLOWED_INPUT_FORMATS_DATE : ALLOWED_INPUT_FORMATS_MONTH;
34
- for (const format of ALLOWED_FORMATS) {
35
- parsed = parse(date, format, today, { locale });
36
- if (isValidDate(parsed) &&
37
- !isTwoDigitYear(date, today, locale, ALLOWED_FORMATS)) {
38
- return parsed;
39
- }
71
+ }
72
+ function assignCenturyToDate(dateStr, format, today, locale) {
73
+ const date20Century = parse(appendCenturyToTwoYearDigitDateString(dateStr, "19"), format.replace("yy", "yyyy"), today, { locale });
74
+ const date21Century = parse(appendCenturyToTwoYearDigitDateString(dateStr, "20"), format.replace("yy", "yyyy"), today, { locale });
75
+ if (isValidDate(date20Century) && isValidDate(date21Century)) {
76
+ return isBefore(date20Century, sub(new Date(), {
77
+ years: 80,
78
+ }))
79
+ ? date21Century
80
+ : date20Century;
40
81
  }
41
82
  return new Date("Invalid date");
42
- };
83
+ }
84
+ function appendCenturyToTwoYearDigitDateString(dateString, century) {
85
+ const twoDigitYear = dateString.slice(-2);
86
+ return `${dateString.slice(0, dateString.length - 2)}${century}${twoDigitYear}`;
87
+ }
43
88
  //# sourceMappingURL=parse-date.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"parse-date.js","sourceRoot":"","sources":["../../../src/date/utils/parse-date.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,gBAAgB,CAAC;AACnC,OAAO,EAAE,WAAW,EAAE,MAAM,GAAG,CAAC;AAEhC,MAAM,CAAC,MAAM,6BAA6B,GAAG,YAAY,CAAC;AAE1D,MAAM,CAAC,MAAM,8BAA8B,GAAG,WAAW,CAAC;AAE1D,MAAM,0BAA0B,GAAG;IACjC,6BAA6B;IAC7B,UAAU;IACV,YAAY;IACZ,YAAY;CACb,CAAC;AAEF,MAAM,2BAA2B,GAAG;IAClC,QAAQ;IACR,SAAS;IACT,QAAQ;IACR,SAAS;IACT,SAAS;IACT,8BAA8B;IAC9B,GAAG,0BAA0B;CAC9B,CAAC;AAEF,MAAM,cAAc,GAAG,CAAC,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE;IAC5D,IAAI,MAAM,CAAC;IACX,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC;IAC9D,KAAK,MAAM,MAAM,IAAI,SAAS,EAAE;QAC9B,MAAM,GAAG,KAAK,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;QACtD,IAAI,WAAW,CAAC,MAAM,CAAC,EAAE;YACvB,OAAO,IAAI,CAAC;SACb;KACF;IACD,OAAO,KAAK,CAAC;AACf,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,SAAS,GAAG,CACvB,IAAY,EACZ,KAAW,EACX,MAAc,EACd,IAAsB,EAChB,EAAE;IACR,IAAI,MAAM,CAAC;IACX,MAAM,eAAe,GACnB,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,0BAA0B,CAAC,CAAC,CAAC,2BAA2B,CAAC;IAC7E,KAAK,MAAM,MAAM,IAAI,eAAe,EAAE;QACpC,MAAM,GAAG,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;QAChD,IACE,WAAW,CAAC,MAAM,CAAC;YACnB,CAAC,cAAc,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,eAAe,CAAC,EACrD;YACA,OAAO,MAAM,CAAC;SACf;KACF;IACD,OAAO,IAAI,IAAI,CAAC,cAAc,CAAC,CAAC;AAClC,CAAC,CAAC"}
1
+ {"version":3,"file":"parse-date.js","sourceRoot":"","sources":["../../../src/date/utils/parse-date.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@navikt/ds-react",
3
- "version": "2.0.18",
3
+ "version": "2.1.0",
4
4
  "description": "Aksel react-components for NAV designsystem",
5
5
  "author": "Aksel | NAV designsystem team",
6
6
  "license": "MIT",
@@ -37,7 +37,7 @@
37
37
  },
38
38
  "dependencies": {
39
39
  "@floating-ui/react": "0.17.0",
40
- "@navikt/ds-icons": "^2.0.18",
40
+ "@navikt/ds-icons": "^2.1.0",
41
41
  "@radix-ui/react-tabs": "1.0.0",
42
42
  "@radix-ui/react-toggle-group": "1.0.0",
43
43
  "clsx": "^1.2.1",
@@ -49,6 +49,13 @@ export interface UseDatepickerOptions
49
49
  * validation-callback
50
50
  */
51
51
  onValidate?: (val: DateValidationT) => void;
52
+ /**
53
+ * Allows input of with 'yy' year format.
54
+ * @default true
55
+ * @Note Decision between 20th and 21st century is based on before(todays year - 80) ? 21st : 20th.
56
+ * In 2023 this equals to 1943 - 2042
57
+ */
58
+ allowTwoDigitYear?: boolean;
52
59
  }
53
60
 
54
61
  interface UseDatepickerValue {
@@ -115,6 +122,7 @@ export const useDatepicker = (
115
122
  inputFormat,
116
123
  onValidate,
117
124
  defaultMonth,
125
+ allowTwoDigitYear = true,
118
126
  } = opt;
119
127
 
120
128
  const locale = getLocaleFromString(_locale);
@@ -191,7 +199,13 @@ export const useDatepicker = (
191
199
 
192
200
  const handleFocus: React.FocusEventHandler<HTMLInputElement> = (e) => {
193
201
  !open && setOpen(true);
194
- let day = parseDate(e.target.value, today, locale, "date");
202
+ let day = parseDate(
203
+ e.target.value,
204
+ today,
205
+ locale,
206
+ "date",
207
+ allowTwoDigitYear
208
+ );
195
209
  if (isValidDate(day)) {
196
210
  setMonth(day);
197
211
  setInputValue(formatDateForInput(day, locale, "date", inputFormat));
@@ -199,7 +213,13 @@ export const useDatepicker = (
199
213
  };
200
214
 
201
215
  const handleBlur: React.FocusEventHandler<HTMLInputElement> = (e) => {
202
- let day = parseDate(e.target.value, today, locale, "date");
216
+ let day = parseDate(
217
+ e.target.value,
218
+ today,
219
+ locale,
220
+ "date",
221
+ allowTwoDigitYear
222
+ );
203
223
  isValidDate(day) &&
204
224
  setInputValue(formatDateForInput(day, locale, "date", inputFormat));
205
225
  };
@@ -230,7 +250,13 @@ export const useDatepicker = (
230
250
  // the calendar’s month.
231
251
  const handleChange: React.ChangeEventHandler<HTMLInputElement> = (e) => {
232
252
  setInputValue(e.target.value);
233
- const day = parseDate(e.target.value, today, locale, "date");
253
+ const day = parseDate(
254
+ e.target.value,
255
+ today,
256
+ locale,
257
+ "date",
258
+ allowTwoDigitYear
259
+ );
234
260
 
235
261
  const isBefore =
236
262
  fromDate && day && differenceInCalendarDays(fromDate, day) > 0;
@@ -35,6 +35,13 @@ export interface UseMonthPickerOptions
35
35
  * Default shown year
36
36
  */
37
37
  defaultYear?: Date;
38
+ /**
39
+ * Allows input of with 'yy' year format.
40
+ * @default true
41
+ * @Note Decision between 20th and 21st century is based on before(todays year - 80) ? 21st : 20th.
42
+ * In 2023 this equals to 1943 - 2042
43
+ */
44
+ allowTwoDigitYear?: boolean;
38
45
  }
39
46
 
40
47
  interface UseMonthPickerValue {
@@ -96,6 +103,7 @@ export const useMonthpicker = (
96
103
  inputFormat,
97
104
  onValidate,
98
105
  defaultYear,
106
+ allowTwoDigitYear = true,
99
107
  } = opt;
100
108
 
101
109
  const [defaultSelected, setDefaultSelected] = useState(_defaultSelected);
@@ -173,7 +181,13 @@ export const useMonthpicker = (
173
181
 
174
182
  const handleFocus: React.FocusEventHandler<HTMLInputElement> = (e) => {
175
183
  !open && setOpen(true);
176
- let day = parseDate(e.target.value, today, locale, "month");
184
+ let day = parseDate(
185
+ e.target.value,
186
+ today,
187
+ locale,
188
+ "month",
189
+ allowTwoDigitYear
190
+ );
177
191
  if (isValidDate(day)) {
178
192
  setYear(day);
179
193
  setInputValue(formatDateForInput(day, locale, "month", inputFormat));
@@ -181,7 +195,13 @@ export const useMonthpicker = (
181
195
  };
182
196
 
183
197
  const handleBlur: React.FocusEventHandler<HTMLInputElement> = (e) => {
184
- let day = parseDate(e.target.value, today, locale, "month");
198
+ let day = parseDate(
199
+ e.target.value,
200
+ today,
201
+ locale,
202
+ "month",
203
+ allowTwoDigitYear
204
+ );
185
205
  isValidDate(day) &&
186
206
  setInputValue(formatDateForInput(day, locale, "month", inputFormat));
187
207
  };
@@ -211,7 +231,13 @@ export const useMonthpicker = (
211
231
  // the calendar’s month.
212
232
  const handleChange: React.ChangeEventHandler<HTMLInputElement> = (e) => {
213
233
  setInputValue(e.target.value);
214
- const month = parseDate(e.target.value, today, locale, "month");
234
+ const month = parseDate(
235
+ e.target.value,
236
+ today,
237
+ locale,
238
+ "month",
239
+ allowTwoDigitYear
240
+ );
215
241
 
216
242
  const isBefore =
217
243
  fromDate &&
@@ -202,6 +202,7 @@ export const useRangeDatepicker = (
202
202
  inputFormat,
203
203
  onValidate,
204
204
  defaultMonth,
205
+ allowTwoDigitYear = true,
205
206
  } = opt;
206
207
 
207
208
  const locale = getLocaleFromString(_locale);
@@ -322,7 +323,13 @@ export const useRangeDatepicker = (
322
323
 
323
324
  const handleFocus = (e, src: RangeT) => {
324
325
  !open && setOpen(true);
325
- let day = parseDate(e.target.value, today, locale, "date");
326
+ let day = parseDate(
327
+ e.target.value,
328
+ today,
329
+ locale,
330
+ "date",
331
+ allowTwoDigitYear
332
+ );
326
333
  if (isValidDate(day)) {
327
334
  setMonth(day);
328
335
  src === RANGE.FROM
@@ -334,7 +341,13 @@ export const useRangeDatepicker = (
334
341
  };
335
342
 
336
343
  const handleBlur = (e, src: RangeT) => {
337
- let day = parseDate(e.target.value, today, locale, "date");
344
+ let day = parseDate(
345
+ e.target.value,
346
+ today,
347
+ locale,
348
+ "date",
349
+ allowTwoDigitYear
350
+ );
338
351
  if (!isValidDate(day)) {
339
352
  return;
340
353
  }
@@ -426,7 +439,13 @@ export const useRangeDatepicker = (
426
439
  }
427
440
 
428
441
  if (toInputValue && !selectedRange?.to) {
429
- const toDay = parseDate(toInputValue, today, locale, "date");
442
+ const toDay = parseDate(
443
+ toInputValue,
444
+ today,
445
+ locale,
446
+ "date",
447
+ allowTwoDigitYear
448
+ );
430
449
  if (validateDay(toDay)) {
431
450
  updateRange({ from: day, to: toDay });
432
451
  setMonth(day);
@@ -489,7 +508,13 @@ export const useRangeDatepicker = (
489
508
 
490
509
  /* live-update datepicker based on changes in inputfields */
491
510
  const handleChange = (e, src: RangeT) => {
492
- const day = parseDate(e.target.value, today, locale, "date");
511
+ const day = parseDate(
512
+ e.target.value,
513
+ today,
514
+ locale,
515
+ "date",
516
+ allowTwoDigitYear
517
+ );
493
518
  const isBefore = fromDate && differenceInCalendarDays(fromDate, day) > 0;
494
519
  const isAfter = toDate && differenceInCalendarDays(day, toDate) > 0;
495
520
 
@@ -2,7 +2,9 @@ import { parseDate } from "../parse-date";
2
2
  import nb from "date-fns/locale/nb";
3
3
  import { formatDateForInput } from "../format-date";
4
4
 
5
- const parse = (inp: string) => parseDate(inp, new Date(), nb, "date");
5
+ const parse = (inp: string) => parseDate(inp, new Date(), nb, "date", false);
6
+ const parseTwoDigit = (inp: string) =>
7
+ parseDate(inp, new Date(), nb, "date", true);
6
8
 
7
9
  describe("Format date to correct output", () => {
8
10
  test("formatDateForInput", () => {
@@ -19,4 +21,12 @@ describe("Format date to correct output", () => {
19
21
  "15.05.2022"
20
22
  );
21
23
  });
24
+ test("formatDateForInput with twoDigitYears", () => {
25
+ expect(formatDateForInput(parseTwoDigit("15/05/22"), nb, "date")).toEqual(
26
+ "15.05.2022"
27
+ );
28
+ expect(formatDateForInput(parseTwoDigit("1/5/95"), nb, "date")).toEqual(
29
+ "01.05.1995"
30
+ );
31
+ });
22
32
  });
@@ -4,11 +4,14 @@ import nb from "date-fns/locale/nb";
4
4
  import getMonth from "date-fns/getMonth";
5
5
 
6
6
  const check = (inp: string) =>
7
- expect(isValidDate(parseDate(inp, new Date(), nb, "date")));
7
+ expect(isValidDate(parseDate(inp, new Date(), nb, "date", false)));
8
8
 
9
- const parse = (inp: string) => parseDate(inp, new Date(), nb, "date");
9
+ const checkTwoDigit = (inp: string) =>
10
+ expect(isValidDate(parseDate(inp, new Date(), nb, "date", true)));
10
11
 
11
- describe("Parse date-inputs", () => {
12
+ const parse = (inp: string) => parseDate(inp, new Date(), nb, "date", false);
13
+
14
+ describe("Parse date-inputs with 4-digit years", () => {
12
15
  test("No spaces", () => {
13
16
  check("11052022").toBeTruthy();
14
17
  check("15052022").toBeTruthy();
@@ -34,6 +37,44 @@ describe("Parse date-inputs", () => {
34
37
  });
35
38
  });
36
39
 
40
+ describe("Parse date-inputs with 2-digit years", () => {
41
+ test("No spaces", () => {
42
+ checkTwoDigit("110522").toBeTruthy();
43
+ checkTwoDigit("150522").toBeTruthy();
44
+ });
45
+
46
+ test(". divider", () => {
47
+ checkTwoDigit("1.5.22").toBeTruthy();
48
+ checkTwoDigit("11.05.22").toBeTruthy();
49
+ });
50
+
51
+ test("/ divider", () => {
52
+ checkTwoDigit("1/5/22").toBeTruthy();
53
+ checkTwoDigit("10/5/22").toBeTruthy();
54
+ checkTwoDigit("1/05/22").toBeTruthy();
55
+ checkTwoDigit("10/05/22").toBeTruthy();
56
+ });
57
+
58
+ test("- divider", () => {
59
+ checkTwoDigit("1-5-22").toBeTruthy();
60
+ checkTwoDigit("10-5-22").toBeTruthy();
61
+ checkTwoDigit("1-05-22").toBeTruthy();
62
+ checkTwoDigit("10-05-22").toBeTruthy();
63
+ });
64
+
65
+ test("Dissallow 1 and 3 digit years", () => {
66
+ checkTwoDigit("11052").toBeFalsy();
67
+ checkTwoDigit("1105222").toBeFalsy();
68
+ checkTwoDigit("1105999").toBeFalsy();
69
+ });
70
+
71
+ test("Dissallow date before year 1000", () => {
72
+ checkTwoDigit("11050999").toBeFalsy();
73
+ checkTwoDigit("11050010").toBeFalsy();
74
+ checkTwoDigit("11051000").toBeTruthy();
75
+ });
76
+ });
77
+
37
78
  describe("Parse date-inputs to correct month", () => {
38
79
  test("No spaces", () => {
39
80
  expect(getMonth(parse("11052022"))).toEqual(4);
@@ -10,7 +10,7 @@ export const dateIsInCurrentMonth = (
10
10
 
11
11
  /** @private */
12
12
  export function isValidDate(day: Date): boolean {
13
- return !isNaN(day.getTime());
13
+ return day && !isNaN(day?.getTime()) && day.getFullYear() > 999;
14
14
  }
15
15
 
16
16
  export const hasNextYear = (year: Date, years: Date[], val: any): boolean => {
@@ -1,4 +1,6 @@
1
1
  import parse from "date-fns/parse";
2
+ import isBefore from "date-fns/isBefore";
3
+ import sub from "date-fns/sub";
2
4
  import { isValidDate } from ".";
3
5
 
4
6
  export const INPUT_DATE_STRING_FORMAT_DATE = "dd.MM.yyyy";
@@ -22,7 +24,60 @@ const ALLOWED_INPUT_FORMATS_MONTH = [
22
24
  ...ALLOWED_INPUT_FORMATS_DATE,
23
25
  ];
24
26
 
25
- const isTwoDigitYear = (dateString, today, locale, formats) => {
27
+ export const parseDate = (
28
+ date: string,
29
+ today: Date,
30
+ locale: Locale,
31
+ type: "date" | "month",
32
+ allowTwoDigitYear: boolean
33
+ ): Date => {
34
+ let parsed;
35
+ const ALLOWED_FORMATS =
36
+ type === "date" ? ALLOWED_INPUT_FORMATS_DATE : ALLOWED_INPUT_FORMATS_MONTH;
37
+
38
+ if (allowTwoDigitYear) {
39
+ for (const format of ALLOWED_FORMATS) {
40
+ parsed = parse(date, format, today, { locale });
41
+ if (
42
+ isValidDate(parsed) &&
43
+ !isTwoDigitYear(date, today, locale, ALLOWED_FORMATS)
44
+ ) {
45
+ return parsed;
46
+ }
47
+ }
48
+ for (const format of [
49
+ ...ALLOWED_FORMATS.map((x) => x.replace("yyyy", "yy")),
50
+ ]) {
51
+ parsed = parse(date, format, today, { locale });
52
+ if (
53
+ isValidDate(parsed) &&
54
+ isTwoDigitYear(date, today, locale, ALLOWED_FORMATS)
55
+ ) {
56
+ const convertedDate = assignCenturyToDate(date, format, today, locale);
57
+
58
+ if (isValidDate(new Date(convertedDate))) {
59
+ return new Date(convertedDate);
60
+ } else {
61
+ return new Date("Invalid date");
62
+ }
63
+ }
64
+ }
65
+ return new Date("Invalid date");
66
+ } else {
67
+ for (const format of ALLOWED_FORMATS) {
68
+ parsed = parse(date, format, today, { locale });
69
+ if (
70
+ isValidDate(parsed) &&
71
+ !isTwoDigitYear(date, today, locale, ALLOWED_FORMATS)
72
+ ) {
73
+ return parsed;
74
+ }
75
+ }
76
+ return new Date("Invalid date");
77
+ }
78
+ };
79
+
80
+ function isTwoDigitYear(dateString, today, locale, formats) {
26
81
  let parsed;
27
82
  const newFormat = formats.map((x) => x.replace("yyyy", "yy"));
28
83
  for (const format of newFormat) {
@@ -32,25 +87,49 @@ const isTwoDigitYear = (dateString, today, locale, formats) => {
32
87
  }
33
88
  }
34
89
  return false;
35
- };
90
+ }
36
91
 
37
- export const parseDate = (
38
- date: string,
92
+ function assignCenturyToDate(
93
+ dateStr: string,
94
+ format: string,
39
95
  today: Date,
40
- locale: Locale,
41
- type: "date" | "month"
42
- ): Date => {
43
- let parsed;
44
- const ALLOWED_FORMATS =
45
- type === "date" ? ALLOWED_INPUT_FORMATS_DATE : ALLOWED_INPUT_FORMATS_MONTH;
46
- for (const format of ALLOWED_FORMATS) {
47
- parsed = parse(date, format, today, { locale });
48
- if (
49
- isValidDate(parsed) &&
50
- !isTwoDigitYear(date, today, locale, ALLOWED_FORMATS)
51
- ) {
52
- return parsed;
53
- }
96
+ locale: Locale
97
+ ) {
98
+ const date20Century = parse(
99
+ appendCenturyToTwoYearDigitDateString(dateStr, "19"),
100
+ format.replace("yy", "yyyy"),
101
+ today,
102
+ { locale }
103
+ );
104
+
105
+ const date21Century = parse(
106
+ appendCenturyToTwoYearDigitDateString(dateStr, "20"),
107
+ format.replace("yy", "yyyy"),
108
+ today,
109
+ { locale }
110
+ );
111
+
112
+ if (isValidDate(date20Century) && isValidDate(date21Century)) {
113
+ return isBefore(
114
+ date20Century,
115
+ sub(new Date(), {
116
+ years: 80,
117
+ })
118
+ )
119
+ ? date21Century
120
+ : date20Century;
54
121
  }
122
+
55
123
  return new Date("Invalid date");
56
- };
124
+ }
125
+
126
+ function appendCenturyToTwoYearDigitDateString(
127
+ dateString: string,
128
+ century: "19" | "20"
129
+ ) {
130
+ const twoDigitYear = dateString.slice(-2);
131
+ return `${dateString.slice(
132
+ 0,
133
+ dateString.length - 2
134
+ )}${century}${twoDigitYear}`;
135
+ }