@navikt/ds-react 1.3.0-alpha.0 → 1.3.1

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 (149) hide show
  1. package/_docs.json +333 -1070
  2. package/cjs/index.js +0 -1
  3. package/cjs/stepper/Step.js +11 -5
  4. package/cjs/stepper/Stepper.js +2 -1
  5. package/cjs/toggle-group/ToggleGroup.js +2 -2
  6. package/esm/form/TextField.d.ts +2 -2
  7. package/esm/index.d.ts +0 -1
  8. package/esm/index.js +0 -1
  9. package/esm/index.js.map +1 -1
  10. package/esm/stepper/Step.d.ts +10 -0
  11. package/esm/stepper/Step.js +11 -5
  12. package/esm/stepper/Step.js.map +1 -1
  13. package/esm/stepper/Stepper.d.ts +6 -0
  14. package/esm/stepper/Stepper.js +2 -1
  15. package/esm/stepper/Stepper.js.map +1 -1
  16. package/esm/toggle-group/ToggleGroup.js +2 -2
  17. package/esm/toggle-group/ToggleGroup.js.map +1 -1
  18. package/package.json +3 -7
  19. package/src/form/TextField.tsx +2 -2
  20. package/src/help-text/help-text.stories.tsx +4 -1
  21. package/src/index.ts +0 -1
  22. package/src/stepper/Step.tsx +41 -8
  23. package/src/stepper/Stepper.tsx +8 -0
  24. package/src/stepper/stepper.stories.tsx +94 -21
  25. package/src/toggle-group/ToggleGroup.tsx +2 -6
  26. package/cjs/datepicker/DatePicker.js +0 -122
  27. package/cjs/datepicker/DatePickerInput.js +0 -68
  28. package/cjs/datepicker/DatePickerStandalone.js +0 -80
  29. package/cjs/datepicker/caption/Caption.js +0 -23
  30. package/cjs/datepicker/caption/DropdownCaption.js +0 -36
  31. package/cjs/datepicker/caption/index.js +0 -10
  32. package/cjs/datepicker/caption/package.json +0 -6
  33. package/cjs/datepicker/hooks/index.js +0 -7
  34. package/cjs/datepicker/hooks/package.json +0 -6
  35. package/cjs/datepicker/hooks/useDatepicker.js +0 -101
  36. package/cjs/datepicker/hooks/useRangeDatepicker.js +0 -174
  37. package/cjs/datepicker/index.js +0 -11
  38. package/cjs/datepicker/package.json +0 -6
  39. package/cjs/datepicker/utils/dates-disabled.js +0 -29
  40. package/cjs/datepicker/utils/format-date.js +0 -7
  41. package/cjs/datepicker/utils/get-dates.js +0 -43
  42. package/cjs/datepicker/utils/index.js +0 -19
  43. package/cjs/datepicker/utils/labels.js +0 -59
  44. package/cjs/datepicker/utils/locale.js +0 -21
  45. package/cjs/datepicker/utils/package.json +0 -6
  46. package/cjs/datepicker/utils/parse-date.js +0 -29
  47. package/cjs/datepicker/utils/valid-date.js +0 -8
  48. package/cjs/monthpicker/MonthPicker.js +0 -112
  49. package/cjs/monthpicker/index.js +0 -8
  50. package/cjs/monthpicker/package.json +0 -6
  51. package/cjs/monthpicker/utils/check-dates.js +0 -12
  52. package/cjs/monthpicker/utils/handle-selected.js +0 -17
  53. package/esm/datepicker/DatePicker.d.ts +0 -107
  54. package/esm/datepicker/DatePicker.js +0 -94
  55. package/esm/datepicker/DatePicker.js.map +0 -1
  56. package/esm/datepicker/DatePickerInput.d.ts +0 -25
  57. package/esm/datepicker/DatePickerInput.js +0 -40
  58. package/esm/datepicker/DatePickerInput.js.map +0 -1
  59. package/esm/datepicker/DatePickerStandalone.d.ts +0 -12
  60. package/esm/datepicker/DatePickerStandalone.js +0 -52
  61. package/esm/datepicker/DatePickerStandalone.js.map +0 -1
  62. package/esm/datepicker/caption/Caption.d.ts +0 -4
  63. package/esm/datepicker/caption/Caption.js +0 -17
  64. package/esm/datepicker/caption/Caption.js.map +0 -1
  65. package/esm/datepicker/caption/DropdownCaption.d.ts +0 -4
  66. package/esm/datepicker/caption/DropdownCaption.js +0 -30
  67. package/esm/datepicker/caption/DropdownCaption.js.map +0 -1
  68. package/esm/datepicker/caption/index.d.ts +0 -2
  69. package/esm/datepicker/caption/index.js +0 -3
  70. package/esm/datepicker/caption/index.js.map +0 -1
  71. package/esm/datepicker/hooks/index.d.ts +0 -2
  72. package/esm/datepicker/hooks/index.js +0 -3
  73. package/esm/datepicker/hooks/index.js.map +0 -1
  74. package/esm/datepicker/hooks/useDatepicker.d.ts +0 -37
  75. package/esm/datepicker/hooks/useDatepicker.js +0 -98
  76. package/esm/datepicker/hooks/useDatepicker.js.map +0 -1
  77. package/esm/datepicker/hooks/useRangeDatepicker.d.ts +0 -36
  78. package/esm/datepicker/hooks/useRangeDatepicker.js +0 -171
  79. package/esm/datepicker/hooks/useRangeDatepicker.js.map +0 -1
  80. package/esm/datepicker/index.d.ts +0 -5
  81. package/esm/datepicker/index.js +0 -3
  82. package/esm/datepicker/index.js.map +0 -1
  83. package/esm/datepicker/utils/dates-disabled.d.ts +0 -1
  84. package/esm/datepicker/utils/dates-disabled.js +0 -26
  85. package/esm/datepicker/utils/dates-disabled.js.map +0 -1
  86. package/esm/datepicker/utils/format-date.d.ts +0 -1
  87. package/esm/datepicker/utils/format-date.js +0 -4
  88. package/esm/datepicker/utils/format-date.js.map +0 -1
  89. package/esm/datepicker/utils/get-dates.d.ts +0 -2
  90. package/esm/datepicker/utils/get-dates.js +0 -39
  91. package/esm/datepicker/utils/get-dates.js.map +0 -1
  92. package/esm/datepicker/utils/index.d.ts +0 -6
  93. package/esm/datepicker/utils/index.js +0 -7
  94. package/esm/datepicker/utils/index.js.map +0 -1
  95. package/esm/datepicker/utils/labels.d.ts +0 -4
  96. package/esm/datepicker/utils/labels.js +0 -55
  97. package/esm/datepicker/utils/labels.js.map +0 -1
  98. package/esm/datepicker/utils/locale.d.ts +0 -2
  99. package/esm/datepicker/utils/locale.js +0 -15
  100. package/esm/datepicker/utils/locale.js.map +0 -1
  101. package/esm/datepicker/utils/parse-date.d.ts +0 -2
  102. package/esm/datepicker/utils/parse-date.js +0 -26
  103. package/esm/datepicker/utils/parse-date.js.map +0 -1
  104. package/esm/datepicker/utils/valid-date.d.ts +0 -2
  105. package/esm/datepicker/utils/valid-date.js +0 -5
  106. package/esm/datepicker/utils/valid-date.js.map +0 -1
  107. package/esm/monthpicker/MonthPicker.d.ts +0 -27
  108. package/esm/monthpicker/MonthPicker.js +0 -84
  109. package/esm/monthpicker/MonthPicker.js.map +0 -1
  110. package/esm/monthpicker/index.d.ts +0 -2
  111. package/esm/monthpicker/index.js +0 -2
  112. package/esm/monthpicker/index.js.map +0 -1
  113. package/esm/monthpicker/utils/check-dates.d.ts +0 -2
  114. package/esm/monthpicker/utils/check-dates.js +0 -8
  115. package/esm/monthpicker/utils/check-dates.js.map +0 -1
  116. package/esm/monthpicker/utils/handle-selected.d.ts +0 -3
  117. package/esm/monthpicker/utils/handle-selected.js +0 -12
  118. package/esm/monthpicker/utils/handle-selected.js.map +0 -1
  119. package/src/datepicker/DatePicker.tsx +0 -281
  120. package/src/datepicker/DatePickerInput.tsx +0 -131
  121. package/src/datepicker/DatePickerStandalone.tsx +0 -121
  122. package/src/datepicker/caption/Caption.tsx +0 -51
  123. package/src/datepicker/caption/DropdownCaption.tsx +0 -94
  124. package/src/datepicker/caption/index.ts +0 -2
  125. package/src/datepicker/datepicker.stories.mdx +0 -467
  126. package/src/datepicker/datepicker.stories.tsx +0 -257
  127. package/src/datepicker/hooks/index.ts +0 -2
  128. package/src/datepicker/hooks/useDatepicker.tsx +0 -181
  129. package/src/datepicker/hooks/useRangeDatepicker.tsx +0 -285
  130. package/src/datepicker/index.ts +0 -5
  131. package/src/datepicker/utils/__tests__/dates-disabled.test.ts +0 -48
  132. package/src/datepicker/utils/__tests__/format-dates.test.ts +0 -14
  133. package/src/datepicker/utils/__tests__/get-dates.test.ts +0 -79
  134. package/src/datepicker/utils/__tests__/parse-dates.test.ts +0 -81
  135. package/src/datepicker/utils/dates-disabled.ts +0 -26
  136. package/src/datepicker/utils/format-date.ts +0 -5
  137. package/src/datepicker/utils/get-dates.ts +0 -44
  138. package/src/datepicker/utils/index.ts +0 -6
  139. package/src/datepicker/utils/labels.ts +0 -58
  140. package/src/datepicker/utils/locale.ts +0 -15
  141. package/src/datepicker/utils/parse-date.ts +0 -28
  142. package/src/datepicker/utils/valid-date.ts +0 -4
  143. package/src/monthpicker/MonthPicker.tsx +0 -238
  144. package/src/monthpicker/index.ts +0 -2
  145. package/src/monthpicker/monthpicker.stories.tsx +0 -35
  146. package/src/monthpicker/utils/__tests__/check-dates.test.ts +0 -34
  147. package/src/monthpicker/utils/__tests__/handle-selected.test.ts +0 -87
  148. package/src/monthpicker/utils/check-dates.ts +0 -15
  149. package/src/monthpicker/utils/handle-selected.ts +0 -26
@@ -1,122 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
25
- var __rest = (this && this.__rest) || function (s, e) {
26
- var t = {};
27
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
28
- t[p] = s[p];
29
- if (s != null && typeof Object.getOwnPropertySymbols === "function")
30
- for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
31
- if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
32
- t[p[i]] = s[p[i]];
33
- }
34
- return t;
35
- };
36
- var __importDefault = (this && this.__importDefault) || function (mod) {
37
- return (mod && mod.__esModule) ? mod : { "default": mod };
38
- };
39
- Object.defineProperty(exports, "__esModule", { value: true });
40
- exports.DatePicker = exports.DatePickerContext = void 0;
41
- const react_dom_interactions_1 = require("@floating-ui/react-dom-interactions");
42
- const clsx_1 = __importDefault(require("clsx"));
43
- const date_fns_1 = require("date-fns");
44
- const react_1 = __importStar(require("react"));
45
- const react_day_picker_1 = require("react-day-picker");
46
- const __1 = require("..");
47
- const util_1 = require("../util");
48
- const caption_1 = require("./caption");
49
- const DatePickerInput_1 = __importDefault(require("./DatePickerInput"));
50
- const DatePickerStandalone_1 = __importDefault(require("./DatePickerStandalone"));
51
- const utils_1 = require("./utils");
52
- exports.DatePickerContext = (0, react_1.createContext)({
53
- open: false,
54
- onOpen: () => null,
55
- buttonRef: null,
56
- ariaId: undefined,
57
- });
58
- exports.DatePicker = (0, react_1.forwardRef)((_a, ref) => {
59
- var { children, locale = "nb", yearSelector, disabled = [], disableWeekends = false, showWeekNumber = false, mode = "single", selected, id, defaultSelected, classNames, open: _open, onClose, onOpenToggle } = _a, rest = __rest(_a, ["children", "locale", "yearSelector", "disabled", "disableWeekends", "showWeekNumber", "mode", "selected", "id", "defaultSelected", "classNames", "open", "onClose", "onOpenToggle"]);
60
- const ariaId = (0, __1.useId)(id);
61
- const [open, setOpen] = (0, react_1.useState)(_open !== null && _open !== void 0 ? _open : false);
62
- const wrapperRef = (0, react_1.useRef)(null);
63
- const buttonRef = (0, react_1.useRef)(null);
64
- const [selectedDates, setSelectedDates] = react_1.default.useState(defaultSelected);
65
- const handleSingleSelect = (selectedDay) => {
66
- var _a, _b;
67
- setSelectedDates(selectedDay);
68
- selectedDay && ((_a = onClose === null || onClose === void 0 ? void 0 : onClose()) !== null && _a !== void 0 ? _a : setOpen(false));
69
- selectedDay && buttonRef && ((_b = buttonRef === null || buttonRef === void 0 ? void 0 : buttonRef.current) === null || _b === void 0 ? void 0 : _b.focus());
70
- (rest === null || rest === void 0 ? void 0 : rest.onSelect) && (rest === null || rest === void 0 ? void 0 : rest.onSelect)(selectedDay);
71
- };
72
- const handleMultipleSelect = (selectedDays) => {
73
- setSelectedDates(selectedDays);
74
- (rest === null || rest === void 0 ? void 0 : rest.onSelect) &&
75
- (rest === null || rest === void 0 ? void 0 : rest.onSelect)(selectedDays);
76
- };
77
- const handleRangeSelect = (selectedDays) => {
78
- var _a, _b;
79
- setSelectedDates(selectedDays);
80
- (selectedDays === null || selectedDays === void 0 ? void 0 : selectedDays.from) && (selectedDays === null || selectedDays === void 0 ? void 0 : selectedDays.to) && ((_a = onClose === null || onClose === void 0 ? void 0 : onClose()) !== null && _a !== void 0 ? _a : setOpen(false));
81
- (selectedDays === null || selectedDays === void 0 ? void 0 : selectedDays.from) &&
82
- (selectedDays === null || selectedDays === void 0 ? void 0 : selectedDays.to) &&
83
- buttonRef &&
84
- ((_b = buttonRef === null || buttonRef === void 0 ? void 0 : buttonRef.current) === null || _b === void 0 ? void 0 : _b.focus());
85
- (rest === null || rest === void 0 ? void 0 : rest.onSelect) &&
86
- (rest === null || rest === void 0 ? void 0 : rest.onSelect)(selectedDays);
87
- };
88
- const overrideProps = {
89
- onSelect: mode === "single"
90
- ? handleSingleSelect
91
- : mode === "multiple"
92
- ? handleMultipleSelect
93
- : handleRangeSelect,
94
- };
95
- return (react_1.default.createElement(exports.DatePickerContext.Provider, { value: {
96
- open: _open !== null && _open !== void 0 ? _open : open,
97
- onOpen: () => {
98
- setOpen((x) => !x);
99
- onOpenToggle === null || onOpenToggle === void 0 ? void 0 : onOpenToggle();
100
- },
101
- buttonRef,
102
- ariaId,
103
- } },
104
- react_1.default.createElement("div", { ref: wrapperRef, className: (0, clsx_1.default)("navds-date__wrapper", classNames === null || classNames === void 0 ? void 0 : classNames.wrapper) },
105
- children,
106
- react_1.default.createElement(react_dom_interactions_1.FloatingPortal, null, (_open !== null && _open !== void 0 ? _open : open) && (react_1.default.createElement(__1.Popover, { arrow: false, anchorEl: wrapperRef.current, open: _open !== null && _open !== void 0 ? _open : open, onClose: () => { var _a; return (_a = onClose === null || onClose === void 0 ? void 0 : onClose()) !== null && _a !== void 0 ? _a : setOpen(false); }, placement: "bottom-start", id: ariaId, "aria-roledescription": locale === "en" ? "datepicker" : "datovelger", role: "dialog", ref: ref },
107
- react_1.default.createElement(react_day_picker_1.DayPicker, Object.assign({ locale: (0, utils_1.getLocaleFromString)(locale), mode: mode }, overrideProps, { selected: selected !== null && selected !== void 0 ? selected : selectedDates, components: {
108
- Caption: yearSelector ? caption_1.DropdownCaption : caption_1.Caption,
109
- }, className: (0, clsx_1.default)("navds-date", classNames === null || classNames === void 0 ? void 0 : classNames.datepicker), classNames: {
110
- vhidden: "navds-sr-only",
111
- }, disabled: (day) => {
112
- return ((disableWeekends && (0, date_fns_1.isWeekend)(day)) ||
113
- (0, react_day_picker_1.isMatch)(day, disabled));
114
- }, weekStartsOn: 1, initialFocus: false, labels: utils_1.labels, modifiers: {
115
- weekend: (day) => disableWeekends && (0, date_fns_1.isWeekend)(day),
116
- }, modifiersClassNames: {
117
- weekend: "rdp-day__weekend",
118
- }, showWeekNumber: showWeekNumber }, (0, util_1.omit)(rest, ["onSelect"])))))))));
119
- });
120
- exports.DatePicker.Input = DatePickerInput_1.default;
121
- exports.DatePicker.Standalone = DatePickerStandalone_1.default;
122
- exports.default = exports.DatePicker;
@@ -1,68 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
25
- var __rest = (this && this.__rest) || function (s, e) {
26
- var t = {};
27
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
28
- t[p] = s[p];
29
- if (s != null && typeof Object.getOwnPropertySymbols === "function")
30
- for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
31
- if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
32
- t[p[i]] = s[p[i]];
33
- }
34
- return t;
35
- };
36
- var __importDefault = (this && this.__importDefault) || function (mod) {
37
- return (mod && mod.__esModule) ? mod : { "default": mod };
38
- };
39
- Object.defineProperty(exports, "__esModule", { value: true });
40
- exports.DatePickerInput = void 0;
41
- const ds_icons_1 = require("@navikt/ds-icons");
42
- const clsx_1 = __importDefault(require("clsx"));
43
- const react_1 = __importStar(require("react"));
44
- const button_1 = require("../button");
45
- const useFormField_1 = require("../form/useFormField");
46
- const typography_1 = require("../typography");
47
- const util_1 = require("../util");
48
- const DatePicker_1 = require("./DatePicker");
49
- exports.DatePickerInput = (0, react_1.forwardRef)((props, ref) => {
50
- const { onOpen, buttonRef, ariaId, open } = (0, react_1.useContext)(DatePicker_1.DatePickerContext);
51
- const { inputProps, size = "medium", inputDescriptionId, errorId, showErrorMsg, hasError, } = (0, useFormField_1.useFormField)(props, "datepicker-input");
52
- const { className, hideLabel = false, label, description } = props, rest = __rest(props, ["className", "hideLabel", "label", "description"]);
53
- return (react_1.default.createElement("div", { className: (0, clsx_1.default)(className, "navds-form-field", `navds-form-field--${size}`, "navds-date__field", {
54
- "navds-date__field--error": hasError,
55
- "navds-date__field--disabled": !!inputProps.disabled,
56
- }), ref: props === null || props === void 0 ? void 0 : props.wrapperRef },
57
- react_1.default.createElement(typography_1.Label, { htmlFor: inputProps.id, size: size, className: (0, clsx_1.default)("navds-form-field__label", {
58
- "navds-sr-only": hideLabel,
59
- }) }, label),
60
- !!description && (react_1.default.createElement(typography_1.BodyShort, { as: "div", className: (0, clsx_1.default)("navds-form-field__description", {
61
- "navds-sr-only": hideLabel,
62
- }), id: inputDescriptionId, size: size }, description)),
63
- react_1.default.createElement("div", { className: "navds-date__field-wrapper" },
64
- react_1.default.createElement("input", Object.assign({ ref: ref }, (0, util_1.omit)(rest, ["error", "errorId", "size", "wrapperRef"]), inputProps, { autoComplete: "off", "aria-controls": ariaId, className: (0, clsx_1.default)(className, "navds-date__field-input", "navds-text-field__input", "navds-body-short", `navds-body-${size}`), size: 14, "aria-haspopup": "grid" })),
65
- react_1.default.createElement(button_1.Button, { ref: buttonRef, variant: "tertiary", type: "button", size: "small", onClick: () => onOpen(), className: "navds-date__field-button", icon: react_1.default.createElement(ds_icons_1.Calender, { title: open ? "Lukk datovelger" : "Åpne datovelger" }), "aria-haspopup": "grid" })),
66
- react_1.default.createElement("div", { className: "navds-form-field__error", id: errorId, "aria-relevant": "additions removals", "aria-live": "polite" }, showErrorMsg && react_1.default.createElement(typography_1.ErrorMessage, { size: size }, props.error))));
67
- });
68
- exports.default = exports.DatePickerInput;
@@ -1,80 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
25
- var __rest = (this && this.__rest) || function (s, e) {
26
- var t = {};
27
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
28
- t[p] = s[p];
29
- if (s != null && typeof Object.getOwnPropertySymbols === "function")
30
- for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
31
- if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
32
- t[p[i]] = s[p[i]];
33
- }
34
- return t;
35
- };
36
- var __importDefault = (this && this.__importDefault) || function (mod) {
37
- return (mod && mod.__esModule) ? mod : { "default": mod };
38
- };
39
- Object.defineProperty(exports, "__esModule", { value: true });
40
- exports.DatePickerStandalone = void 0;
41
- const clsx_1 = __importDefault(require("clsx"));
42
- const date_fns_1 = require("date-fns");
43
- const react_1 = __importStar(require("react"));
44
- const react_day_picker_1 = require("react-day-picker");
45
- const caption_1 = require("./caption");
46
- const utils_1 = require("./utils");
47
- exports.DatePickerStandalone = (0, react_1.forwardRef)((_a, ref) => {
48
- var { children, className, locale = "nb", yearSelector, disabled = [], disableWeekends = false, showWeekNumber = false, mode = "single", selected, id, defaultSelected, onSelect } = _a, rest = __rest(_a, ["children", "className", "locale", "yearSelector", "disabled", "disableWeekends", "showWeekNumber", "mode", "selected", "id", "defaultSelected", "onSelect"]);
49
- const [selectedDates, setSelectedDates] = react_1.default.useState(defaultSelected);
50
- const handleSingleSelect = (selectedDay) => {
51
- setSelectedDates(selectedDay);
52
- onSelect && onSelect(selectedDay);
53
- };
54
- const handleMultipleSelect = (selectedDays) => {
55
- setSelectedDates(selectedDays);
56
- onSelect && onSelect(selectedDays);
57
- };
58
- const handleRangeSelect = (selectedDays) => {
59
- setSelectedDates(selectedDays);
60
- onSelect && onSelect(selectedDays);
61
- };
62
- const overrideProps = {
63
- onSelect: mode === "single"
64
- ? handleSingleSelect
65
- : mode === "multiple"
66
- ? handleMultipleSelect
67
- : handleRangeSelect,
68
- };
69
- return (react_1.default.createElement("div", { ref: ref, className: (0, clsx_1.default)("navds-date__standalone-wrapper", className) },
70
- react_1.default.createElement(react_day_picker_1.DayPicker, Object.assign({ locale: (0, utils_1.getLocaleFromString)(locale), mode: mode }, overrideProps, { selected: selected !== null && selected !== void 0 ? selected : selectedDates, components: {
71
- Caption: yearSelector ? caption_1.DropdownCaption : caption_1.Caption,
72
- }, className: "navds-date", classNames: { vhidden: "navds-sr-only" }, disabled: (day) => {
73
- return ((disableWeekends && (0, date_fns_1.isWeekend)(day)) || (0, react_day_picker_1.isMatch)(day, disabled));
74
- }, weekStartsOn: 1, initialFocus: false, labels: utils_1.labels, modifiers: {
75
- weekend: (day) => disableWeekends && (0, date_fns_1.isWeekend)(day),
76
- }, modifiersClassNames: {
77
- weekend: "rdp-day__weekend",
78
- }, showWeekNumber: showWeekNumber }, rest))));
79
- });
80
- exports.default = exports.DatePickerStandalone;
@@ -1,23 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.DatePickerCaption = void 0;
7
- const ds_icons_1 = require("@navikt/ds-icons");
8
- const react_1 = __importDefault(require("react"));
9
- const react_day_picker_1 = require("react-day-picker");
10
- const __1 = require("../..");
11
- const DatePickerCaption = ({ displayMonth, id }) => {
12
- const { goToMonth, nextMonth, previousMonth } = (0, react_day_picker_1.useNavigation)();
13
- const { labels: { labelPrevious, labelNext }, formatters: { formatCaption }, locale, } = (0, react_day_picker_1.useDayPicker)();
14
- const previousLabel = labelPrevious(previousMonth, { locale });
15
- const nextLabel = labelNext(nextMonth, { locale });
16
- return (react_1.default.createElement("div", { className: "navds-date__caption" },
17
- react_1.default.createElement(__1.Label, { as: "span", "aria-live": "polite", "aria-atomic": "true", id: id, className: "navds-date__caption-label" }, formatCaption(displayMonth, { locale })),
18
- react_1.default.createElement("div", { className: "navds-date__caption__month-wrapper" },
19
- react_1.default.createElement(__1.Button, { "aria-label": previousLabel, variant: "tertiary", disabled: !previousMonth, onClick: () => previousMonth && goToMonth(previousMonth), icon: react_1.default.createElement(ds_icons_1.Left, { title: "velg forrige m\u00E5nede" }), className: "navds-date__caption-button" }),
20
- react_1.default.createElement(__1.Button, { "aria-label": nextLabel, icon: react_1.default.createElement(ds_icons_1.Right, { title: "velg neste m\u00E5nede" }), onClick: () => nextMonth && goToMonth(nextMonth), disabled: !nextMonth, variant: "tertiary", className: "navds-date__caption-button" }))));
21
- };
22
- exports.DatePickerCaption = DatePickerCaption;
23
- exports.default = exports.DatePickerCaption;
@@ -1,36 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.DropdownCaption = void 0;
7
- const ds_icons_1 = require("@navikt/ds-icons");
8
- const date_fns_1 = require("date-fns");
9
- const react_1 = __importDefault(require("react"));
10
- const react_day_picker_1 = require("react-day-picker");
11
- const __1 = require("../..");
12
- const get_dates_1 = require("../utils/get-dates");
13
- const labels_1 = require("../utils/labels");
14
- const DropdownCaption = ({ displayMonth, id }) => {
15
- const { goToMonth, nextMonth, previousMonth } = (0, react_day_picker_1.useNavigation)();
16
- const { fromDate, toDate, formatters: { formatYearCaption, formatMonthCaption, formatCaption }, labels: { labelPrevious, labelNext }, locale, } = (0, react_day_picker_1.useDayPicker)();
17
- if (!fromDate || !toDate)
18
- return react_1.default.createElement(react_1.default.Fragment, null);
19
- const handleYearChange = (e) => goToMonth((0, date_fns_1.setYear)((0, date_fns_1.startOfMonth)(displayMonth), Number(e.target.value)));
20
- const handleMonthChange = (e) => goToMonth((0, date_fns_1.setMonth)((0, date_fns_1.startOfMonth)(displayMonth), Number(e.target.value)));
21
- const years = (0, get_dates_1.getYears)(fromDate, toDate);
22
- const months = (0, get_dates_1.getMonths)(fromDate, toDate, displayMonth);
23
- const previousLabel = labelPrevious(previousMonth, { locale });
24
- const nextLabel = labelNext(nextMonth, { locale });
25
- const yearDropdownLabel = (0, labels_1.labelYearDropdown)(locale);
26
- const MonthDropdownLabel = (0, labels_1.labelMonthDropdown)(locale);
27
- return (react_1.default.createElement("div", { className: "navds-date__caption-dropdown" },
28
- react_1.default.createElement("span", { "aria-live": "polite", "aria-atomic": "true", id: id, className: "navds-sr-only" }, formatCaption(displayMonth, { locale })),
29
- react_1.default.createElement(__1.Button, { "aria-label": previousLabel, variant: "tertiary", disabled: !previousMonth, onClick: () => previousMonth && goToMonth(previousMonth), icon: react_1.default.createElement(ds_icons_1.Left, { title: "velg forrige m\u00E5nede" }), className: "navds-date__caption-button" }),
30
- react_1.default.createElement("div", { className: "navds-date__caption__month-wrapper" },
31
- react_1.default.createElement(__1.Select, { label: MonthDropdownLabel, hideLabel: true, className: "navds-date__caption__month", value: displayMonth.getMonth(), onChange: handleMonthChange }, months.map((m) => (react_1.default.createElement("option", { key: m.getMonth(), value: m.getMonth() }, formatMonthCaption(m, { locale }))))),
32
- react_1.default.createElement(__1.Select, { label: yearDropdownLabel, hideLabel: true, value: displayMonth.getFullYear(), onChange: handleYearChange }, years.map((year) => (react_1.default.createElement("option", { key: year.getFullYear(), value: year.getFullYear() }, formatYearCaption(year, { locale })))))),
33
- react_1.default.createElement(__1.Button, { "aria-label": nextLabel, icon: react_1.default.createElement(ds_icons_1.Right, { title: "velg neste m\u00E5nede" }), onClick: () => nextMonth && goToMonth(nextMonth), disabled: !nextMonth, variant: "tertiary", className: "navds-date__caption-button" })));
34
- };
35
- exports.DropdownCaption = DropdownCaption;
36
- exports.default = exports.DropdownCaption;
@@ -1,10 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.DropdownCaption = exports.Caption = void 0;
7
- var Caption_1 = require("./Caption");
8
- Object.defineProperty(exports, "Caption", { enumerable: true, get: function () { return __importDefault(Caption_1).default; } });
9
- var DropdownCaption_1 = require("./DropdownCaption");
10
- Object.defineProperty(exports, "DropdownCaption", { enumerable: true, get: function () { return __importDefault(DropdownCaption_1).default; } });
@@ -1,6 +0,0 @@
1
- {
2
- "sideEffects": false,
3
- "main": "./index.js",
4
- "module": "../../../esm/datepicker/caption/index.js",
5
- "types": "../../../esm/datepicker/caption/index.d.ts"
6
- }
@@ -1,7 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.useRangeDatepicker = exports.useDatepicker = void 0;
4
- var useDatepicker_1 = require("./useDatepicker");
5
- Object.defineProperty(exports, "useDatepicker", { enumerable: true, get: function () { return useDatepicker_1.useDatepicker; } });
6
- var useRangeDatepicker_1 = require("./useRangeDatepicker");
7
- Object.defineProperty(exports, "useRangeDatepicker", { enumerable: true, get: function () { return useRangeDatepicker_1.useRangeDatepicker; } });
@@ -1,6 +0,0 @@
1
- {
2
- "sideEffects": false,
3
- "main": "./index.js",
4
- "module": "../../../esm/datepicker/hooks/index.js",
5
- "types": "../../../esm/datepicker/hooks/index.d.ts"
6
- }
@@ -1,101 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.useDatepicker = void 0;
4
- const date_fns_1 = require("date-fns");
5
- const react_1 = require("react");
6
- const utils_1 = require("../utils");
7
- const parse_date_1 = require("../utils/parse-date");
8
- const useDatepicker = (opt = {}) => {
9
- const { locale: _locale = "nb", required, defaultSelected, today = new Date(), fromDate, toDate, openOnFocus = true, } = opt;
10
- const locale = (0, utils_1.getLocaleFromString)(_locale);
11
- const inputRef = (0, react_1.useRef)(null);
12
- const daypickerRef = (0, react_1.useRef)(null);
13
- // Initialize states
14
- const [month, setMonth] = (0, react_1.useState)(defaultSelected !== null && defaultSelected !== void 0 ? defaultSelected : today);
15
- const [selectedDay, setSelectedDay] = (0, react_1.useState)(defaultSelected);
16
- const [open, setOpen] = (0, react_1.useState)(false);
17
- const defaultInputValue = defaultSelected
18
- ? (0, utils_1.formatDateForInput)(defaultSelected, locale)
19
- : "";
20
- const [inputValue, setInputValue] = (0, react_1.useState)(defaultInputValue);
21
- const handleFocusOut = (0, react_1.useCallback)((e) => ![daypickerRef.current, inputRef.current].some((element) => element === null || element === void 0 ? void 0 : element.contains(e.relatedTarget)) && setOpen(false), []);
22
- (0, react_1.useEffect)(() => {
23
- const el = inputRef.current;
24
- el === null || el === void 0 ? void 0 : el.addEventListener("focusout", handleFocusOut);
25
- return () => { var _a; return (_a = el === null || el === void 0 ? void 0 : el.removeEventListener) === null || _a === void 0 ? void 0 : _a.call(el, "focusout", handleFocusOut); };
26
- }, [handleFocusOut]);
27
- const reset = () => {
28
- setSelectedDay(defaultSelected);
29
- setMonth(defaultSelected !== null && defaultSelected !== void 0 ? defaultSelected : today);
30
- setInputValue(defaultInputValue !== null && defaultInputValue !== void 0 ? defaultInputValue : "");
31
- };
32
- const setSelected = (date) => {
33
- setSelectedDay(date);
34
- setMonth(date !== null && date !== void 0 ? date : today);
35
- setInputValue(date ? (0, utils_1.formatDateForInput)(date, locale) : "");
36
- };
37
- const handleFocus = (e) => {
38
- !open && openOnFocus && setOpen(true);
39
- if (!e.target.value) {
40
- reset();
41
- return;
42
- }
43
- let day = (0, parse_date_1.parseDate)(e.target.value, today, locale);
44
- if ((0, utils_1.isValidDate)(day)) {
45
- setMonth(day);
46
- setInputValue((0, utils_1.formatDateForInput)(day, locale));
47
- }
48
- };
49
- const handleBlur = (e) => {
50
- let day = (0, parse_date_1.parseDate)(e.target.value, today, locale);
51
- (0, utils_1.isValidDate)(day) && setInputValue((0, utils_1.formatDateForInput)(day, locale));
52
- };
53
- /* Only allow de-selecting if not required */
54
- const handleDayClick = (day, { selected }) => {
55
- if (!required && selected) {
56
- setSelectedDay(undefined);
57
- setInputValue("");
58
- return;
59
- }
60
- setSelectedDay(day);
61
- setInputValue(day ? (0, utils_1.formatDateForInput)(day, locale) : "");
62
- };
63
- // When changing the input field, save its value in state and check if the
64
- // string is a valid date. If it is a valid day, set it as selected and update
65
- // the calendar’s month.
66
- const handleChange = (e) => {
67
- setInputValue(e.target.value);
68
- const day = (0, parse_date_1.parseDate)(e.target.value, today, locale);
69
- const isBefore = fromDate && (0, date_fns_1.differenceInCalendarDays)(fromDate, day) > 0;
70
- const isAfter = toDate && (0, date_fns_1.differenceInCalendarDays)(day, toDate) > 0;
71
- if (!(0, utils_1.isValidDate)(day) || isBefore || isAfter) {
72
- setSelectedDay(undefined);
73
- return;
74
- }
75
- setSelectedDay(day);
76
- setMonth(day);
77
- };
78
- const dayPickerProps = {
79
- month,
80
- onMonthChange: (month) => setMonth(month),
81
- onDayClick: handleDayClick,
82
- selected: selectedDay,
83
- locale: _locale,
84
- fromDate,
85
- toDate,
86
- today,
87
- open,
88
- onClose: () => setOpen(false),
89
- onOpenToggle: () => setOpen((x) => !x),
90
- ref: daypickerRef,
91
- };
92
- const inputProps = {
93
- onChange: handleChange,
94
- onFocus: handleFocus,
95
- onBlur: handleBlur,
96
- value: inputValue,
97
- wrapperRef: inputRef,
98
- };
99
- return { dayPickerProps, inputProps, reset, selectedDay, setSelected };
100
- };
101
- exports.useDatepicker = useDatepicker;
@@ -1,174 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.useRangeDatepicker = void 0;
4
- const date_fns_1 = require("date-fns");
5
- const react_1 = require("react");
6
- const utils_1 = require("../utils");
7
- const RANGE = {
8
- FROM: "FROM",
9
- TO: "TO",
10
- };
11
- const useRangeDatepicker = (opt = {}) => {
12
- const { locale: _locale = "nb", defaultSelected, today = new Date(), fromDate, toDate, openOnFocus = true, } = opt;
13
- const locale = (0, utils_1.getLocaleFromString)(_locale);
14
- const inputRefTo = (0, react_1.useRef)(null);
15
- const inputRefFrom = (0, react_1.useRef)(null);
16
- const datePickerRef = (0, react_1.useRef)(null);
17
- // Initialize states
18
- const [month, setMonth] = (0, react_1.useState)(defaultSelected ? defaultSelected.from : today);
19
- const [selectedRange, setSelectedRange] = (0, react_1.useState)(defaultSelected);
20
- const [fromInputValue, setFromInputValue] = (0, react_1.useState)((defaultSelected === null || defaultSelected === void 0 ? void 0 : defaultSelected.from)
21
- ? (0, utils_1.formatDateForInput)(defaultSelected.from, locale)
22
- : "");
23
- const [toInputValue, setToInputValue] = (0, react_1.useState)((defaultSelected === null || defaultSelected === void 0 ? void 0 : defaultSelected.to) ? (0, utils_1.formatDateForInput)(defaultSelected.to, locale) : "");
24
- const [open, setOpen] = (0, react_1.useState)(false);
25
- const handleFocusOut = (0, react_1.useCallback)((e) => ![datePickerRef.current, inputRefTo.current, inputRefFrom.current].some((element) => element === null || element === void 0 ? void 0 : element.contains(e.relatedTarget)) && setOpen(false), []);
26
- (0, react_1.useEffect)(() => {
27
- const from = inputRefFrom.current;
28
- const to = inputRefTo.current;
29
- from === null || from === void 0 ? void 0 : from.addEventListener("focusout", handleFocusOut);
30
- to === null || to === void 0 ? void 0 : to.addEventListener("focusout", handleFocusOut);
31
- return () => {
32
- var _a, _b;
33
- (_a = from === null || from === void 0 ? void 0 : from.removeEventListener) === null || _a === void 0 ? void 0 : _a.call(from, "focusout", handleFocusOut);
34
- (_b = to === null || to === void 0 ? void 0 : to.removeEventListener) === null || _b === void 0 ? void 0 : _b.call(to, "focusout", handleFocusOut);
35
- };
36
- }, [handleFocusOut]);
37
- const reset = () => {
38
- setSelectedRange(defaultSelected);
39
- setMonth(defaultSelected ? defaultSelected.from : today);
40
- setFromInputValue((defaultSelected === null || defaultSelected === void 0 ? void 0 : defaultSelected.from)
41
- ? (0, utils_1.formatDateForInput)(defaultSelected.from, locale)
42
- : "");
43
- setToInputValue((defaultSelected === null || defaultSelected === void 0 ? void 0 : defaultSelected.to) ? (0, utils_1.formatDateForInput)(defaultSelected.to, locale) : "");
44
- };
45
- const setSelected = (range) => {
46
- setSelectedRange(range);
47
- setFromInputValue((range === null || range === void 0 ? void 0 : range.from) ? (0, utils_1.formatDateForInput)(range.from, locale) : "");
48
- setToInputValue((range === null || range === void 0 ? void 0 : range.to) ? (0, utils_1.formatDateForInput)(range === null || range === void 0 ? void 0 : range.to, locale) : "");
49
- };
50
- const handleFocus = (e, src) => {
51
- !open && openOnFocus && setOpen(true);
52
- let day = (0, utils_1.parseDate)(e.target.value, today, locale);
53
- if ((0, utils_1.isValidDate)(day)) {
54
- setMonth(day);
55
- src === RANGE.FROM
56
- ? setFromInputValue((0, utils_1.formatDateForInput)(day, locale))
57
- : setToInputValue((0, utils_1.formatDateForInput)(day, locale));
58
- }
59
- };
60
- const handleInputs = (day, src) => {
61
- if (src === RANGE.FROM) {
62
- const isAfter = toInputValue &&
63
- (0, date_fns_1.differenceInCalendarDays)(day, (0, utils_1.parseDate)(toInputValue, today, locale)) >
64
- 0;
65
- if (isAfter) {
66
- setFromInputValue((0, utils_1.formatDateForInput)((0, utils_1.parseDate)(toInputValue, today, locale), locale));
67
- setToInputValue((0, utils_1.formatDateForInput)(day, locale));
68
- }
69
- else {
70
- setFromInputValue((0, utils_1.formatDateForInput)(day, locale));
71
- }
72
- }
73
- else if (src === RANGE.TO) {
74
- const isBefore = fromInputValue &&
75
- (0, date_fns_1.differenceInCalendarDays)((0, utils_1.parseDate)(fromInputValue, today, locale), day) > 0;
76
- if (isBefore) {
77
- setToInputValue((0, utils_1.formatDateForInput)((0, utils_1.parseDate)(fromInputValue, today, locale), locale));
78
- setFromInputValue((0, utils_1.formatDateForInput)(day, locale));
79
- }
80
- else {
81
- setToInputValue((0, utils_1.formatDateForInput)(day, locale));
82
- }
83
- }
84
- };
85
- const handleBlur = (e, src) => {
86
- let day = (0, utils_1.parseDate)(e.target.value, today, locale);
87
- if (!(0, utils_1.isValidDate)(day)) {
88
- return;
89
- }
90
- handleInputs(day, src);
91
- };
92
- const handleSelect = (range) => {
93
- const prevToRange = !(selectedRange === null || selectedRange === void 0 ? void 0 : selectedRange.from) && (selectedRange === null || selectedRange === void 0 ? void 0 : selectedRange.to) ? selectedRange === null || selectedRange === void 0 ? void 0 : selectedRange.to : range === null || range === void 0 ? void 0 : range.to;
94
- (range === null || range === void 0 ? void 0 : range.from)
95
- ? setFromInputValue((0, utils_1.formatDateForInput)(range === null || range === void 0 ? void 0 : range.from, locale))
96
- : setFromInputValue("");
97
- prevToRange
98
- ? setToInputValue((0, utils_1.formatDateForInput)(prevToRange, locale))
99
- : setToInputValue("");
100
- setSelectedRange({ from: range === null || range === void 0 ? void 0 : range.from, to: prevToRange });
101
- };
102
- /* live-update datepicker based on changes in inputfields */
103
- const handleChange = (e, src) => {
104
- src === RANGE.FROM
105
- ? setFromInputValue(e.target.value)
106
- : setToInputValue(e.target.value);
107
- const day = (0, utils_1.parseDate)(e.target.value, today, locale);
108
- const isBefore = fromDate && (0, date_fns_1.differenceInCalendarDays)(fromDate, day) > 0;
109
- const isAfter = toDate && (0, date_fns_1.differenceInCalendarDays)(day, toDate) > 0;
110
- if (!(0, utils_1.isValidDate)(day) || isBefore || isAfter) {
111
- src === RANGE.FROM
112
- ? setSelectedRange((x) => (Object.assign(Object.assign({}, x), { from: undefined })))
113
- : setSelectedRange((x) => ({ from: x === null || x === void 0 ? void 0 : x.from, to: undefined }));
114
- return;
115
- }
116
- /* If to-value < from-value, switch places in state */
117
- if (src === RANGE.TO &&
118
- (selectedRange === null || selectedRange === void 0 ? void 0 : selectedRange.from) &&
119
- (0, date_fns_1.differenceInCalendarDays)(selectedRange === null || selectedRange === void 0 ? void 0 : selectedRange.from, day) >= 0) {
120
- setSelectedRange({ from: day, to: selectedRange === null || selectedRange === void 0 ? void 0 : selectedRange.from });
121
- setMonth(day);
122
- return;
123
- }
124
- /* If from-value > to-value , switch places in state */
125
- if (src === RANGE.FROM &&
126
- (selectedRange === null || selectedRange === void 0 ? void 0 : selectedRange.to) &&
127
- (0, date_fns_1.differenceInCalendarDays)(day, selectedRange === null || selectedRange === void 0 ? void 0 : selectedRange.to) >= 0) {
128
- setSelectedRange({ to: day, from: selectedRange === null || selectedRange === void 0 ? void 0 : selectedRange.to });
129
- setMonth(day);
130
- return;
131
- }
132
- src === RANGE.FROM && setSelectedRange((x) => (Object.assign(Object.assign({}, x), { from: day })));
133
- src === RANGE.TO && setSelectedRange((x) => ({ from: x === null || x === void 0 ? void 0 : x.from, to: day }));
134
- setMonth(day);
135
- };
136
- const dayPickerProps = {
137
- month: month,
138
- onMonthChange: (month) => setMonth(month),
139
- onSelect: handleSelect,
140
- selected: selectedRange,
141
- locale: _locale,
142
- fromDate,
143
- toDate,
144
- today,
145
- mode: "range",
146
- open,
147
- onClose: () => setOpen(false),
148
- onOpenToggle: () => setOpen((x) => !x),
149
- ref: datePickerRef,
150
- };
151
- const fromInputProps = {
152
- onChange: (e) => handleChange(e, RANGE.FROM),
153
- onFocus: (e) => handleFocus(e, RANGE.FROM),
154
- onBlur: (e) => handleBlur(e, RANGE.FROM),
155
- value: fromInputValue,
156
- wrapperRef: inputRefFrom,
157
- };
158
- const toInputProps = {
159
- onChange: (e) => handleChange(e, RANGE.TO),
160
- onFocus: (e) => handleFocus(e, RANGE.TO),
161
- onBlur: (e) => handleBlur(e, RANGE.TO),
162
- value: toInputValue,
163
- wrapperRef: inputRefTo,
164
- };
165
- return {
166
- dayPickerProps,
167
- fromInputProps,
168
- toInputProps,
169
- reset,
170
- selectedRange,
171
- setSelected,
172
- };
173
- };
174
- exports.useRangeDatepicker = useRangeDatepicker;