@navikt/ds-react 5.7.6 → 5.9.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 +1824 -1758
- package/cjs/accordion/AccordionHeader.js +2 -2
- package/cjs/date/context/useDateInputContext.js +1 -5
- package/cjs/date/datepicker/DatePicker.js +26 -25
- package/cjs/date/hooks/useDatepicker.js +9 -17
- package/cjs/date/hooks/useMonthPicker.js +9 -17
- package/cjs/date/hooks/useRangeDatepicker.js +9 -20
- package/cjs/date/monthpicker/MonthPicker.js +11 -6
- package/cjs/date/{DateInput.js → parts/DateInput.js} +14 -10
- package/cjs/date/parts/DateWrapper.js +55 -0
- package/cjs/date/utils/labels.js +77 -1
- package/cjs/form/combobox/Combobox.js +2 -2
- package/cjs/form/combobox/ComboboxProvider.js +1 -2
- package/cjs/form/combobox/FilteredOptions/FilteredOptions.js +15 -14
- package/cjs/form/combobox/FilteredOptions/filtered-options-util.js +24 -0
- package/cjs/form/combobox/FilteredOptions/filteredOptionsContext.js +24 -108
- package/cjs/form/combobox/FilteredOptions/useVirtualFocus.js +55 -0
- package/cjs/form/combobox/Input/Input.js +33 -16
- package/cjs/form/combobox/customOptionsContext.js +2 -3
- package/cjs/layout/sidemal-test/Sidebar.js +1 -1
- package/cjs/loader/Loader.js +1 -1
- package/cjs/modal/Modal.js +39 -15
- package/cjs/popover/Popover.js +5 -7
- package/cjs/tooltip/Tooltip.js +14 -3
- package/cjs/util/useMedia.js +30 -0
- package/esm/accordion/AccordionHeader.js +2 -2
- package/esm/accordion/AccordionHeader.js.map +1 -1
- package/esm/date/context/useDateInputContext.d.ts +6 -2
- package/esm/date/context/useDateInputContext.js +1 -5
- package/esm/date/context/useDateInputContext.js.map +1 -1
- package/esm/date/datepicker/DatePicker.d.ts +1 -1
- package/esm/date/datepicker/DatePicker.js +28 -27
- package/esm/date/datepicker/DatePicker.js.map +1 -1
- package/esm/date/datepicker/types.d.ts +0 -5
- package/esm/date/hooks/useDatepicker.d.ts +8 -5
- package/esm/date/hooks/useDatepicker.js +10 -18
- package/esm/date/hooks/useDatepicker.js.map +1 -1
- package/esm/date/hooks/useMonthPicker.d.ts +7 -4
- package/esm/date/hooks/useMonthPicker.js +10 -18
- package/esm/date/hooks/useMonthPicker.js.map +1 -1
- package/esm/date/hooks/useRangeDatepicker.d.ts +9 -3
- package/esm/date/hooks/useRangeDatepicker.js +10 -21
- package/esm/date/hooks/useRangeDatepicker.js.map +1 -1
- package/esm/date/index.d.ts +1 -1
- package/esm/date/index.js.map +1 -1
- package/esm/date/monthpicker/MonthPicker.d.ts +1 -1
- package/esm/date/monthpicker/MonthPicker.js +13 -8
- package/esm/date/monthpicker/MonthPicker.js.map +1 -1
- package/esm/date/monthpicker/types.d.ts +0 -5
- package/esm/date/{DateInput.d.ts → parts/DateInput.d.ts} +5 -1
- package/esm/date/{DateInput.js → parts/DateInput.js} +15 -11
- package/esm/date/parts/DateInput.js.map +1 -0
- package/esm/date/parts/DateWrapper.d.ts +15 -0
- package/esm/date/parts/DateWrapper.js +26 -0
- package/esm/date/parts/DateWrapper.js.map +1 -0
- package/esm/date/utils/labels.d.ts +2 -0
- package/esm/date/utils/labels.js +74 -0
- package/esm/date/utils/labels.js.map +1 -1
- package/esm/form/combobox/Combobox.js +2 -2
- package/esm/form/combobox/Combobox.js.map +1 -1
- package/esm/form/combobox/ComboboxProvider.js +1 -2
- package/esm/form/combobox/ComboboxProvider.js.map +1 -1
- package/esm/form/combobox/FilteredOptions/FilteredOptions.js +15 -14
- package/esm/form/combobox/FilteredOptions/FilteredOptions.js.map +1 -1
- package/esm/form/combobox/FilteredOptions/filtered-options-util.d.ts +12 -0
- package/esm/form/combobox/FilteredOptions/filtered-options-util.js +23 -0
- package/esm/form/combobox/FilteredOptions/filtered-options-util.js.map +1 -0
- package/esm/form/combobox/FilteredOptions/filteredOptionsContext.d.ts +10 -13
- package/esm/form/combobox/FilteredOptions/filteredOptionsContext.js +25 -109
- package/esm/form/combobox/FilteredOptions/filteredOptionsContext.js.map +1 -1
- package/esm/form/combobox/FilteredOptions/useVirtualFocus.d.ts +15 -0
- package/esm/form/combobox/FilteredOptions/useVirtualFocus.js +54 -0
- package/esm/form/combobox/FilteredOptions/useVirtualFocus.js.map +1 -0
- package/esm/form/combobox/Input/Input.js +33 -16
- package/esm/form/combobox/Input/Input.js.map +1 -1
- package/esm/form/combobox/customOptionsContext.d.ts +4 -1
- package/esm/form/combobox/customOptionsContext.js +2 -3
- package/esm/form/combobox/customOptionsContext.js.map +1 -1
- package/esm/layout/bleed/Bleed.d.ts +1 -1
- package/esm/layout/bleed/Bleed.js +1 -1
- package/esm/layout/bleed/Bleed.js.map +1 -1
- package/esm/layout/box/Box.d.ts +1 -2
- package/esm/layout/box/Box.js +1 -1
- package/esm/layout/box/Box.js.map +1 -1
- package/esm/layout/grid/HGrid.d.ts +1 -1
- package/esm/layout/grid/HGrid.js +1 -1
- package/esm/layout/grid/HGrid.js.map +1 -1
- package/esm/layout/responsive/Responsive.d.ts +1 -1
- package/esm/layout/sidemal-test/Sidebar.js +1 -1
- package/esm/layout/sidemal-test/Sidebar.js.map +1 -1
- package/esm/layout/stack/Stack.d.ts +1 -1
- package/esm/layout/stack/Stack.js +1 -1
- package/esm/layout/stack/Stack.js.map +1 -1
- package/esm/layout/utilities/css.d.ts +1 -8
- package/esm/layout/utilities/css.js.map +1 -1
- package/esm/layout/utilities/types.d.ts +9 -0
- package/esm/loader/Loader.d.ts +1 -1
- package/esm/loader/Loader.js +1 -1
- package/esm/modal/Modal.js +39 -15
- package/esm/modal/Modal.js.map +1 -1
- package/esm/modal/ModalContext.d.ts +1 -0
- package/esm/modal/ModalContext.js.map +1 -1
- package/esm/modal/types.d.ts +7 -0
- package/esm/popover/Popover.d.ts +0 -5
- package/esm/popover/Popover.js +5 -7
- package/esm/popover/Popover.js.map +1 -1
- package/esm/tooltip/Tooltip.js +16 -5
- package/esm/tooltip/Tooltip.js.map +1 -1
- package/esm/util/useMedia.d.ts +8 -0
- package/esm/util/useMedia.js +27 -0
- package/esm/util/useMedia.js.map +1 -0
- package/package.json +3 -3
- package/src/accordion/AccordionHeader.tsx +3 -3
- package/src/date/context/useDateInputContext.tsx +5 -5
- package/src/date/datepicker/DatePicker.tsx +58 -65
- package/src/date/datepicker/datepicker.stories.tsx +37 -46
- package/src/date/datepicker/types.ts +0 -5
- package/src/date/hooks/useDatepicker.tsx +20 -25
- package/src/date/hooks/useMonthPicker.tsx +18 -24
- package/src/date/hooks/useRangeDatepicker.tsx +27 -30
- package/src/date/index.ts +1 -1
- package/src/date/monthpicker/MonthPicker.tsx +39 -43
- package/src/date/monthpicker/types.ts +0 -5
- package/src/date/{DateInput.tsx → parts/DateInput.tsx} +23 -12
- package/src/date/parts/DateWrapper.tsx +80 -0
- package/src/date/utils/labels.ts +83 -0
- package/src/form/combobox/Combobox.tsx +2 -2
- package/src/form/combobox/ComboboxProvider.tsx +1 -2
- package/src/form/combobox/FilteredOptions/FilteredOptions.tsx +28 -16
- package/src/form/combobox/FilteredOptions/filtered-options-util.ts +38 -0
- package/src/form/combobox/FilteredOptions/filteredOptionsContext.tsx +71 -142
- package/src/form/combobox/FilteredOptions/useVirtualFocus.ts +87 -0
- package/src/form/combobox/Input/Input.tsx +40 -21
- package/src/form/combobox/combobox.stories.tsx +44 -0
- package/src/form/combobox/customOptionsContext.tsx +10 -5
- package/src/guide-panel/guidepanel.stories.tsx +2 -2
- package/src/layout/bleed/Bleed.tsx +2 -5
- package/src/layout/box/Box.tsx +1 -3
- package/src/layout/grid/HGrid.tsx +2 -6
- package/src/layout/responsive/Responsive.tsx +1 -1
- package/src/layout/sidemal-test/Sidebar.tsx +1 -1
- package/src/layout/stack/Stack.tsx +2 -6
- package/src/layout/utilities/css.ts +1 -36
- package/src/layout/utilities/types.ts +16 -0
- package/src/loader/Loader.tsx +1 -1
- package/src/modal/Modal.tsx +54 -21
- package/src/modal/ModalContext.ts +1 -0
- package/src/modal/modal.stories.tsx +30 -2
- package/src/modal/types.ts +7 -0
- package/src/popover/Popover.tsx +4 -12
- package/src/tooltip/Tooltip.tsx +18 -6
- package/src/util/__tests__/useMedia.test.tsx +19 -0
- package/src/util/useMedia.ts +38 -0
- package/cjs/date/hooks/useEscape.js +0 -23
- package/cjs/date/hooks/useOutsideClickHandler.js +0 -26
- package/esm/date/DateInput.js.map +0 -1
- package/esm/date/hooks/useEscape.d.ts +0 -2
- package/esm/date/hooks/useEscape.js +0 -20
- package/esm/date/hooks/useEscape.js.map +0 -1
- package/esm/date/hooks/useOutsideClickHandler.d.ts +0 -1
- package/esm/date/hooks/useOutsideClickHandler.js +0 -23
- package/esm/date/hooks/useOutsideClickHandler.js.map +0 -1
- package/src/date/hooks/useEscape.tsx +0 -30
- package/src/date/hooks/useOutsideClickHandler.tsx +0 -34
package/cjs/tooltip/Tooltip.js
CHANGED
|
@@ -41,9 +41,10 @@ exports.Tooltip = void 0;
|
|
|
41
41
|
const react_1 = require("@floating-ui/react");
|
|
42
42
|
const clsx_1 = __importDefault(require("clsx"));
|
|
43
43
|
const react_2 = __importStar(require("react"));
|
|
44
|
+
const ModalContext_1 = require("../modal/ModalContext");
|
|
45
|
+
const provider_1 = require("../provider");
|
|
44
46
|
const typography_1 = require("../typography");
|
|
45
47
|
const util_1 = require("../util");
|
|
46
|
-
const provider_1 = require("../provider");
|
|
47
48
|
/**
|
|
48
49
|
* A component that displays a tooltip when the user hovers over its child element.
|
|
49
50
|
*
|
|
@@ -62,7 +63,11 @@ exports.Tooltip = (0, react_2.forwardRef)((_a, ref) => {
|
|
|
62
63
|
var { children, className, arrow: _arrow = true, placement: _placement = "top", open: userOpen, defaultOpen = false, offset: _offset, content, delay = 150, id, keys, maxChar = 80 } = _a, rest = __rest(_a, ["children", "className", "arrow", "placement", "open", "defaultOpen", "offset", "content", "delay", "id", "keys", "maxChar"]);
|
|
63
64
|
const [open, setOpen] = (0, react_2.useState)(defaultOpen);
|
|
64
65
|
const arrowRef = (0, react_2.useRef)(null);
|
|
65
|
-
const
|
|
66
|
+
const modalContext = (0, react_2.useContext)(ModalContext_1.ModalContext);
|
|
67
|
+
const providerRootElement = (_b = (0, provider_1.useProvider)()) === null || _b === void 0 ? void 0 : _b.rootElement;
|
|
68
|
+
const rootElement = modalContext
|
|
69
|
+
? modalContext.ref.current
|
|
70
|
+
: providerRootElement;
|
|
66
71
|
const { x, y, strategy, context, placement, middlewareData: { arrow: { x: arrowX, y: arrowY } = {}, hide: { referenceHidden } = {}, }, refs, } = (0, react_1.useFloating)({
|
|
67
72
|
placement: _placement,
|
|
68
73
|
open: userOpen !== null && userOpen !== void 0 ? userOpen : open,
|
|
@@ -73,7 +78,13 @@ exports.Tooltip = (0, react_2.forwardRef)((_a, ref) => {
|
|
|
73
78
|
(0, react_1.flip)({ padding: 5, fallbackPlacements: ["bottom", "top"] }),
|
|
74
79
|
(0, react_1.arrow)({ element: arrowRef, padding: 5 }),
|
|
75
80
|
],
|
|
76
|
-
whileElementsMounted:
|
|
81
|
+
whileElementsMounted: modalContext
|
|
82
|
+
? (reference, floating, update) =>
|
|
83
|
+
// Reduces jumping in Chrome when used in a Modal and it's the first focusable element.
|
|
84
|
+
// Can be removed when autofocus starts working on <dialog> in Chrome. See also Modal.tsx
|
|
85
|
+
(0, react_1.autoUpdate)(reference, floating, update, { animationFrame: true })
|
|
86
|
+
: react_1.autoUpdate,
|
|
87
|
+
strategy: modalContext ? "fixed" : undefined,
|
|
77
88
|
});
|
|
78
89
|
const { getReferenceProps, getFloatingProps } = (0, react_1.useInteractions)([
|
|
79
90
|
(0, react_1.useHover)(context, { handleClose: (0, react_1.safePolygon)(), restMs: delay }),
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.useMedia = exports.noMatchMedia = void 0;
|
|
4
|
+
const react_1 = require("react");
|
|
5
|
+
exports.noMatchMedia = typeof window !== "undefined" && window.matchMedia === undefined;
|
|
6
|
+
/**
|
|
7
|
+
* @example useMedia("screen and (min-width: 1024px)")
|
|
8
|
+
* @param media string
|
|
9
|
+
* @param fallback boolean
|
|
10
|
+
* @returns boolean | undefined
|
|
11
|
+
*/
|
|
12
|
+
const useMedia = (media, fallback) => {
|
|
13
|
+
const [matches, setMatches] = (0, react_1.useState)(fallback);
|
|
14
|
+
(0, react_1.useEffect)(() => {
|
|
15
|
+
if (exports.noMatchMedia) {
|
|
16
|
+
return;
|
|
17
|
+
}
|
|
18
|
+
const mediaQueryList = window.matchMedia(media);
|
|
19
|
+
setMatches(mediaQueryList.matches);
|
|
20
|
+
const listener = (evt) => {
|
|
21
|
+
setMatches(evt.matches);
|
|
22
|
+
};
|
|
23
|
+
mediaQueryList.addEventListener("change", listener);
|
|
24
|
+
return () => {
|
|
25
|
+
mediaQueryList.removeEventListener("change", listener);
|
|
26
|
+
};
|
|
27
|
+
}, [media]);
|
|
28
|
+
return matches;
|
|
29
|
+
};
|
|
30
|
+
exports.useMedia = useMedia;
|
|
@@ -9,12 +9,12 @@ var __rest = (this && this.__rest) || function (s, e) {
|
|
|
9
9
|
}
|
|
10
10
|
return t;
|
|
11
11
|
};
|
|
12
|
+
import { ChevronDownIcon } from "@navikt/aksel-icons";
|
|
12
13
|
import cl from "clsx";
|
|
13
14
|
import React, { forwardRef, useContext } from "react";
|
|
14
15
|
import { Heading } from "../typography";
|
|
15
16
|
import { AccordionContext } from "./AccordionContext";
|
|
16
17
|
import { AccordionItemContext } from "./AccordionItem";
|
|
17
|
-
import { ChevronDownIcon } from "@navikt/aksel-icons";
|
|
18
18
|
const AccordionHeader = forwardRef((_a, ref) => {
|
|
19
19
|
var _b;
|
|
20
20
|
var { children, className, onClick } = _a, rest = __rest(_a, ["children", "className", "onClick"]);
|
|
@@ -28,7 +28,7 @@ const AccordionHeader = forwardRef((_a, ref) => {
|
|
|
28
28
|
itemContext.toggleOpen();
|
|
29
29
|
onClick && onClick(e);
|
|
30
30
|
}, "aria-expanded": itemContext.open, type: "button" }),
|
|
31
|
-
React.createElement("
|
|
31
|
+
React.createElement("span", { className: "navds-accordion__icon-wrapper" },
|
|
32
32
|
React.createElement(ChevronDownIcon, { className: "navds-accordion__header-chevron", title: "Vis mer", "aria-hidden": true })),
|
|
33
33
|
React.createElement(Heading, { size: (_b = accordionContext === null || accordionContext === void 0 ? void 0 : accordionContext.headingSize) !== null && _b !== void 0 ? _b : "small", as: "span", className: "navds-accordion__header-content" }, children)));
|
|
34
34
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AccordionHeader.js","sourceRoot":"","sources":["../../src/accordion/AccordionHeader.tsx"],"names":[],"mappings":";;;;;;;;;;;AAAA,OAAO,EAAE,MAAM,MAAM,CAAC;AACtB,OAAO,KAAK,EAAE,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AACtD,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"AccordionHeader.js","sourceRoot":"","sources":["../../src/accordion/AccordionHeader.tsx"],"names":[],"mappings":";;;;;;;;;;;AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,MAAM,MAAM,CAAC;AACtB,OAAO,KAAK,EAAE,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AACtD,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAUvD,MAAM,eAAe,GAAG,UAAU,CAChC,CAAC,EAAyC,EAAE,GAAG,EAAE,EAAE;;QAAlD,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,OAAW,EAAN,IAAI,cAAvC,oCAAyC,CAAF;IACtC,MAAM,WAAW,GAAG,UAAU,CAAC,oBAAoB,CAAC,CAAC;IACrD,MAAM,gBAAgB,GAAG,UAAU,CAAC,gBAAgB,CAAC,CAAC;IAEtD,IAAI,WAAW,KAAK,IAAI,EAAE;QACxB,OAAO,CAAC,KAAK,CACX,2GAA2G,CAC5G,CAAC;QACF,OAAO,IAAI,CAAC;KACb;IAED,OAAO,CACL,8CACE,GAAG,EAAE,GAAG,IACJ,IAAI,IACR,SAAS,EAAE,EAAE,CAAC,yBAAyB,EAAE,SAAS,CAAC,EACnD,OAAO,EAAE,CAAC,CAAkD,EAAE,EAAE;YAC9D,WAAW,CAAC,UAAU,EAAE,CAAC;YACzB,OAAO,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC;QACxB,CAAC,mBACc,WAAW,CAAC,IAAI,EAC/B,IAAI,EAAC,QAAQ;QAEb,8BAAM,SAAS,EAAC,+BAA+B;YAC7C,oBAAC,eAAe,IACd,SAAS,EAAC,iCAAiC,EAC3C,KAAK,EAAC,SAAS,wBAEf,CACG;QACP,oBAAC,OAAO,IACN,IAAI,EAAE,MAAA,gBAAgB,aAAhB,gBAAgB,uBAAhB,gBAAgB,CAAE,WAAW,mCAAI,OAAO,EAC9C,EAAE,EAAC,MAAM,EACT,SAAS,EAAC,iCAAiC,IAE1C,QAAQ,CACD,CACH,CACV,CAAC;AACJ,CAAC,CACF,CAAC;AAEF,eAAe,eAAe,CAAC"}
|
|
@@ -12,7 +12,11 @@ interface DateContextContextProps {
|
|
|
12
12
|
* Aria-connected ID
|
|
13
13
|
*/
|
|
14
14
|
ariaId?: string;
|
|
15
|
+
/**
|
|
16
|
+
* Flag for enabled-check
|
|
17
|
+
*/
|
|
18
|
+
defined: boolean;
|
|
15
19
|
}
|
|
16
|
-
export declare const DateContext: import("react").Context<DateContextContextProps>;
|
|
17
|
-
export declare const useDateInputContext: () => DateContextContextProps;
|
|
20
|
+
export declare const DateContext: import("react").Context<DateContextContextProps | null>;
|
|
21
|
+
export declare const useDateInputContext: () => DateContextContextProps | null;
|
|
18
22
|
export {};
|
|
@@ -1,9 +1,5 @@
|
|
|
1
1
|
import { createContext, useContext } from "react";
|
|
2
|
-
export const DateContext = createContext(
|
|
3
|
-
open: false,
|
|
4
|
-
onOpen: () => null,
|
|
5
|
-
ariaId: undefined,
|
|
6
|
-
});
|
|
2
|
+
export const DateContext = createContext(null);
|
|
7
3
|
export const useDateInputContext = () => {
|
|
8
4
|
const context = useContext(DateContext);
|
|
9
5
|
if (!context) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useDateInputContext.js","sourceRoot":"","sources":["../../../src/date/context/useDateInputContext.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"useDateInputContext.js","sourceRoot":"","sources":["../../../src/date/context/useDateInputContext.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAqBlD,MAAM,CAAC,MAAM,WAAW,GAAG,aAAa,CAAiC,IAAI,CAAC,CAAC;AAE/E,MAAM,CAAC,MAAM,mBAAmB,GAAG,GAAG,EAAE;IACtC,MAAM,OAAO,GAAG,UAAU,CAAC,WAAW,CAAC,CAAC;IAExC,IAAI,CAAC,OAAO,EAAE;QACZ,OAAO,CAAC,IAAI,CAAC,mDAAmD,CAAC,CAAC;KACnE;IAED,OAAO,OAAO,CAAC;AACjB,CAAC,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import React from "react";
|
|
2
|
-
import { DatePickerInput } from "../DateInput";
|
|
2
|
+
import { DatePickerInput } from "../parts/DateInput";
|
|
3
3
|
import DatePickerStandalone from "./DatePickerStandalone";
|
|
4
4
|
import { ConditionalModeProps, DatePickerDefaultProps } from "./types";
|
|
5
5
|
export type DatePickerProps = DatePickerDefaultProps & ConditionalModeProps;
|
|
@@ -11,12 +11,12 @@ var __rest = (this && this.__rest) || function (s, e) {
|
|
|
11
11
|
};
|
|
12
12
|
import cl from "clsx";
|
|
13
13
|
import isWeekend from "date-fns/isWeekend";
|
|
14
|
-
import React, { forwardRef, useRef, useState } from "react";
|
|
14
|
+
import React, { forwardRef, useMemo, useRef, useState } from "react";
|
|
15
15
|
import { DayPicker, isMatch } from "react-day-picker";
|
|
16
|
-
import {
|
|
17
|
-
import { omit, useId } from "../../util";
|
|
18
|
-
import { DatePickerInput } from "../DateInput";
|
|
16
|
+
import { mergeRefs, omit, useId } from "../../util";
|
|
19
17
|
import { DateContext } from "../context";
|
|
18
|
+
import { DatePickerInput } from "../parts/DateInput";
|
|
19
|
+
import { DateWrapper } from "../parts/DateWrapper";
|
|
20
20
|
import { getLocaleFromString, labels } from "../utils";
|
|
21
21
|
import DatePickerStandalone from "./DatePickerStandalone";
|
|
22
22
|
import Caption from "./parts/Caption";
|
|
@@ -50,10 +50,11 @@ import WeekNumber from "./parts/WeekNumber";
|
|
|
50
50
|
*/
|
|
51
51
|
export const DatePicker = forwardRef((_a, ref) => {
|
|
52
52
|
var _b;
|
|
53
|
-
var { children, locale = "nb", dropdownCaption, disabled = [], disableWeekends = false, showWeekNumber = false, selected, id, defaultSelected, className, wrapperClassName, open: _open, onClose, onOpenToggle, strategy,
|
|
53
|
+
var { children, locale = "nb", dropdownCaption, disabled = [], disableWeekends = false, showWeekNumber = false, selected, id, defaultSelected, className, wrapperClassName, open: _open, onClose, onOpenToggle, strategy, onWeekNumberClick } = _a, rest = __rest(_a, ["children", "locale", "dropdownCaption", "disabled", "disableWeekends", "showWeekNumber", "selected", "id", "defaultSelected", "className", "wrapperClassName", "open", "onClose", "onOpenToggle", "strategy", "onWeekNumberClick"]);
|
|
54
54
|
const ariaId = useId(id);
|
|
55
55
|
const [open, setOpen] = useState(_open !== null && _open !== void 0 ? _open : false);
|
|
56
56
|
const wrapperRef = useRef(null);
|
|
57
|
+
const mergedRef = useMemo(() => mergeRefs([wrapperRef, ref]), [ref]);
|
|
57
58
|
const [selectedDates, setSelectedDates] = React.useState(defaultSelected);
|
|
58
59
|
const mode = (_b = rest.mode) !== null && _b !== void 0 ? _b : "single";
|
|
59
60
|
/**
|
|
@@ -70,6 +71,22 @@ export const DatePicker = forwardRef((_a, ref) => {
|
|
|
70
71
|
}
|
|
71
72
|
(_c = rest === null || rest === void 0 ? void 0 : rest.onSelect) === null || _c === void 0 ? void 0 : _c.call(rest, newSelected);
|
|
72
73
|
};
|
|
74
|
+
const DatePickerComponent = (React.createElement(DayPicker, Object.assign({ locale: getLocaleFromString(locale), mode: mode, onSelect: handleSelect, selected: selected !== null && selected !== void 0 ? selected : selectedDates, components: {
|
|
75
|
+
Caption: dropdownCaption ? DropdownCaption : Caption,
|
|
76
|
+
Head: TableHead,
|
|
77
|
+
HeadRow,
|
|
78
|
+
WeekNumber,
|
|
79
|
+
Row,
|
|
80
|
+
Day: DayButton,
|
|
81
|
+
}, className: cl("navds-date", className), classNames: {
|
|
82
|
+
vhidden: "navds-sr-only",
|
|
83
|
+
}, disabled: (day) => {
|
|
84
|
+
return (disableWeekends && isWeekend(day)) || isMatch(day, disabled);
|
|
85
|
+
}, weekStartsOn: 1, initialFocus: false, labels: labels, modifiers: {
|
|
86
|
+
weekend: (day) => disableWeekends && isWeekend(day),
|
|
87
|
+
}, modifiersClassNames: {
|
|
88
|
+
weekend: "rdp-day__weekend",
|
|
89
|
+
}, showWeekNumber: showWeekNumber, onWeekNumberClick: mode === "multiple" ? onWeekNumberClick : undefined, fixedWeeks: true, showOutsideDays: true }, omit(rest, ["onSelect"]))));
|
|
73
90
|
return (React.createElement(DateContext.Provider, { value: {
|
|
74
91
|
open: _open !== null && _open !== void 0 ? _open : open,
|
|
75
92
|
onOpen: () => {
|
|
@@ -77,30 +94,14 @@ export const DatePicker = forwardRef((_a, ref) => {
|
|
|
77
94
|
onOpenToggle === null || onOpenToggle === void 0 ? void 0 : onOpenToggle();
|
|
78
95
|
},
|
|
79
96
|
ariaId,
|
|
97
|
+
defined: true,
|
|
80
98
|
} },
|
|
81
|
-
React.createElement("div", { ref:
|
|
99
|
+
React.createElement("div", { ref: mergedRef, className: cl("navds-date__wrapper", wrapperClassName) },
|
|
82
100
|
children,
|
|
83
|
-
(_open !== null && _open !== void 0 ? _open : open
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
}
|
|
87
|
-
React.createElement(DayPicker, Object.assign({ locale: getLocaleFromString(locale), mode: mode, onSelect: handleSelect, selected: selected !== null && selected !== void 0 ? selected : selectedDates, components: {
|
|
88
|
-
Caption: dropdownCaption ? DropdownCaption : Caption,
|
|
89
|
-
Head: TableHead,
|
|
90
|
-
HeadRow,
|
|
91
|
-
WeekNumber,
|
|
92
|
-
Row,
|
|
93
|
-
Day: DayButton,
|
|
94
|
-
}, className: cl("navds-date", className), classNames: {
|
|
95
|
-
vhidden: "navds-sr-only",
|
|
96
|
-
}, disabled: (day) => {
|
|
97
|
-
return ((disableWeekends && isWeekend(day)) ||
|
|
98
|
-
isMatch(day, disabled));
|
|
99
|
-
}, weekStartsOn: 1, initialFocus: false, labels: labels, modifiers: {
|
|
100
|
-
weekend: (day) => disableWeekends && isWeekend(day),
|
|
101
|
-
}, modifiersClassNames: {
|
|
102
|
-
weekend: "rdp-day__weekend",
|
|
103
|
-
}, showWeekNumber: showWeekNumber, onWeekNumberClick: mode === "multiple" ? onWeekNumberClick : undefined, fixedWeeks: true, showOutsideDays: true }, omit(rest, ["onSelect"]))))))));
|
|
101
|
+
React.createElement(DateWrapper, { open: _open !== null && _open !== void 0 ? _open : open, anchor: wrapperRef.current, onClose: () => { var _a; return (_a = onClose === null || onClose === void 0 ? void 0 : onClose()) !== null && _a !== void 0 ? _a : setOpen(false); }, locale: locale, variant: mode, popoverProps: {
|
|
102
|
+
id: ariaId,
|
|
103
|
+
strategy,
|
|
104
|
+
} }, DatePickerComponent))));
|
|
104
105
|
});
|
|
105
106
|
DatePicker.Standalone = DatePickerStandalone;
|
|
106
107
|
DatePicker.Input = DatePickerInput;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DatePicker.js","sourceRoot":"","sources":["../../../src/date/datepicker/DatePicker.tsx"],"names":[],"mappings":";;;;;;;;;;;AAAA,OAAO,EAAE,MAAM,MAAM,CAAC;AACtB,OAAO,SAAS,MAAM,oBAAoB,CAAC;AAC3C,OAAO,KAAK,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"DatePicker.js","sourceRoot":"","sources":["../../../src/date/datepicker/DatePicker.tsx"],"names":[],"mappings":"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"}
|
|
@@ -94,9 +94,4 @@ export interface DatePickerDefaultProps extends Omit<React.HTMLAttributes<HTMLDi
|
|
|
94
94
|
* @default See Popover
|
|
95
95
|
*/
|
|
96
96
|
strategy?: "absolute" | "fixed";
|
|
97
|
-
/**
|
|
98
|
-
* Bubbles Escape keydown-event up trough DOM-tree. This is set to false by default to prevent closing components like Modal on Escape
|
|
99
|
-
* @default false
|
|
100
|
-
*/
|
|
101
|
-
bubbleEscape?: boolean;
|
|
102
97
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import React from "react";
|
|
2
|
-
import { DateInputProps } from "../DateInput";
|
|
3
2
|
import { DatePickerProps } from "../datepicker/DatePicker";
|
|
3
|
+
import { DateInputProps } from "../parts/DateInput";
|
|
4
4
|
export interface UseDatepickerOptions extends Pick<DatePickerProps, "locale" | "fromDate" | "toDate" | "today" | "toDate" | "fromDate" | "toDate" | "disabled" | "disableWeekends"> {
|
|
5
5
|
/**
|
|
6
6
|
* The initially selected Date
|
|
@@ -35,10 +35,10 @@ export interface UseDatepickerOptions extends Pick<DatePickerProps, "locale" | "
|
|
|
35
35
|
*/
|
|
36
36
|
allowTwoDigitYear?: boolean;
|
|
37
37
|
/**
|
|
38
|
-
*
|
|
39
|
-
* @
|
|
38
|
+
* Will be removed in a future major-version
|
|
39
|
+
* @deprecated
|
|
40
40
|
*/
|
|
41
|
-
openOnFocus?:
|
|
41
|
+
openOnFocus?: false;
|
|
42
42
|
}
|
|
43
43
|
interface UseDatepickerValue {
|
|
44
44
|
/**
|
|
@@ -49,7 +49,10 @@ interface UseDatepickerValue {
|
|
|
49
49
|
* Use: <DatePicker.Input {...inputProps}/>
|
|
50
50
|
*/
|
|
51
51
|
inputProps: Pick<DateInputProps, "onChange" | "onFocus" | "onBlur" | "value"> & {
|
|
52
|
-
|
|
52
|
+
/**
|
|
53
|
+
* @private
|
|
54
|
+
*/
|
|
55
|
+
setAnchorRef: React.Dispatch<React.SetStateAction<HTMLButtonElement | null>>;
|
|
53
56
|
};
|
|
54
57
|
/**
|
|
55
58
|
* Resets all states (callback)
|
|
@@ -1,10 +1,8 @@
|
|
|
1
1
|
import differenceInCalendarDays from "date-fns/differenceInCalendarDays";
|
|
2
2
|
import isWeekend from "date-fns/isWeekend";
|
|
3
|
-
import { useCallback,
|
|
3
|
+
import { useCallback, useState } from "react";
|
|
4
4
|
import { isMatch } from "react-day-picker";
|
|
5
5
|
import { formatDateForInput, getLocaleFromString, isValidDate, parseDate, } from "../utils";
|
|
6
|
-
import { useEscape } from "./useEscape";
|
|
7
|
-
import { useOutsideClickHandler } from "./useOutsideClickHandler";
|
|
8
6
|
const getValidationMessage = (val = {}) => (Object.assign({ isDisabled: false, isWeekend: false, isEmpty: false, isInvalid: false, isBefore: false, isAfter: false, isValidDate: true }, val));
|
|
9
7
|
/**
|
|
10
8
|
*
|
|
@@ -20,11 +18,10 @@ const getValidationMessage = (val = {}) => (Object.assign({ isDisabled: false, i
|
|
|
20
18
|
* });
|
|
21
19
|
*/
|
|
22
20
|
export const useDatepicker = (opt = {}) => {
|
|
23
|
-
var _a
|
|
24
|
-
const { locale: _locale = "nb", required, defaultSelected: _defaultSelected, today = new Date(), fromDate, toDate, disabled, disableWeekends, onDateChange, inputFormat, onValidate, defaultMonth, allowTwoDigitYear = true,
|
|
21
|
+
var _a;
|
|
22
|
+
const { locale: _locale = "nb", required, defaultSelected: _defaultSelected, today = new Date(), fromDate, toDate, disabled, disableWeekends, onDateChange, inputFormat, onValidate, defaultMonth, allowTwoDigitYear = true, } = opt;
|
|
23
|
+
const [anchorRef, setAnchorRef] = useState(null);
|
|
25
24
|
const locale = getLocaleFromString(_locale);
|
|
26
|
-
const inputRef = useRef(null);
|
|
27
|
-
const [daypickerRef, setDaypickerRef] = useState();
|
|
28
25
|
const [defaultSelected, setDefaultSelected] = useState(_defaultSelected);
|
|
29
26
|
// Initialize states
|
|
30
27
|
const [month, setMonth] = useState((_a = defaultSelected !== null && defaultSelected !== void 0 ? defaultSelected : defaultMonth) !== null && _a !== void 0 ? _a : today);
|
|
@@ -40,12 +37,6 @@ export const useDatepicker = (opt = {}) => {
|
|
|
40
37
|
newOpen &&
|
|
41
38
|
setMonth((_b = (_a = selectedDay !== null && selectedDay !== void 0 ? selectedDay : defaultSelected) !== null && _a !== void 0 ? _a : defaultMonth) !== null && _b !== void 0 ? _b : today);
|
|
42
39
|
}, [defaultMonth, defaultSelected, selectedDay, today]);
|
|
43
|
-
useOutsideClickHandler(open, handleOpen, [
|
|
44
|
-
daypickerRef,
|
|
45
|
-
inputRef.current,
|
|
46
|
-
(_b = inputRef.current) === null || _b === void 0 ? void 0 : _b.nextSibling,
|
|
47
|
-
]);
|
|
48
|
-
useEscape(open, handleOpen, inputRef);
|
|
49
40
|
const updateDate = (date) => {
|
|
50
41
|
onDateChange === null || onDateChange === void 0 ? void 0 : onDateChange(date);
|
|
51
42
|
setSelectedDay(date);
|
|
@@ -68,7 +59,6 @@ export const useDatepicker = (opt = {}) => {
|
|
|
68
59
|
if (e.target.readOnly) {
|
|
69
60
|
return;
|
|
70
61
|
}
|
|
71
|
-
!open && openOnFocus && handleOpen(true);
|
|
72
62
|
const day = parseDate(e.target.value, today, locale, "date", allowTwoDigitYear);
|
|
73
63
|
if (isValidDate(day)) {
|
|
74
64
|
setInputValue(formatDateForInput(day, locale, "date", inputFormat));
|
|
@@ -86,7 +76,7 @@ export const useDatepicker = (opt = {}) => {
|
|
|
86
76
|
const handleDayClick = (day, { selected }) => {
|
|
87
77
|
if (day && !selected) {
|
|
88
78
|
handleOpen(false);
|
|
89
|
-
|
|
79
|
+
anchorRef === null || anchorRef === void 0 ? void 0 : anchorRef.focus();
|
|
90
80
|
}
|
|
91
81
|
if (!required && selected) {
|
|
92
82
|
updateDate(undefined);
|
|
@@ -145,18 +135,20 @@ export const useDatepicker = (opt = {}) => {
|
|
|
145
135
|
toDate,
|
|
146
136
|
today,
|
|
147
137
|
open,
|
|
138
|
+
onClose: () => {
|
|
139
|
+
handleOpen(false);
|
|
140
|
+
anchorRef === null || anchorRef === void 0 ? void 0 : anchorRef.focus();
|
|
141
|
+
},
|
|
148
142
|
onOpenToggle: () => handleOpen(!open),
|
|
149
143
|
disabled,
|
|
150
144
|
disableWeekends,
|
|
151
|
-
bubbleEscape: true,
|
|
152
|
-
ref: setDaypickerRef,
|
|
153
145
|
};
|
|
154
146
|
const inputProps = {
|
|
155
147
|
onChange: handleChange,
|
|
156
148
|
onFocus: handleFocus,
|
|
157
149
|
onBlur: handleBlur,
|
|
158
150
|
value: inputValue,
|
|
159
|
-
|
|
151
|
+
setAnchorRef,
|
|
160
152
|
};
|
|
161
153
|
return { datepickerProps, inputProps, reset, selectedDay, setSelected };
|
|
162
154
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useDatepicker.js","sourceRoot":"","sources":["../../../src/date/hooks/useDatepicker.tsx"],"names":[],"mappings":"AAAA,OAAO,wBAAwB,MAAM,mCAAmC,CAAC;AACzE,OAAO,SAAS,MAAM,oBAAoB,CAAC;AAC3C,OAAc,EAAE,WAAW,EAAE,
|
|
1
|
+
{"version":3,"file":"useDatepicker.js","sourceRoot":"","sources":["../../../src/date/hooks/useDatepicker.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import React from "react";
|
|
2
|
-
import { DateInputProps } from "../DateInput";
|
|
3
2
|
import { MonthPickerProps } from "../monthpicker/types";
|
|
3
|
+
import { DateInputProps } from "../parts/DateInput";
|
|
4
4
|
export interface UseMonthPickerOptions extends Pick<MonthPickerProps, "locale" | "fromDate" | "toDate" | "disabled" | "defaultSelected"> {
|
|
5
5
|
/**
|
|
6
6
|
* Make Date-selection required
|
|
@@ -31,8 +31,8 @@ export interface UseMonthPickerOptions extends Pick<MonthPickerProps, "locale" |
|
|
|
31
31
|
*/
|
|
32
32
|
allowTwoDigitYear?: boolean;
|
|
33
33
|
/**
|
|
34
|
-
*
|
|
35
|
-
* @
|
|
34
|
+
* Will be removed in a future major-version
|
|
35
|
+
* @deprecated
|
|
36
36
|
*/
|
|
37
37
|
openOnFocus?: boolean;
|
|
38
38
|
}
|
|
@@ -45,7 +45,10 @@ interface UseMonthPickerValue {
|
|
|
45
45
|
* Use: <MonthPicker.Input {...inputProps} />
|
|
46
46
|
*/
|
|
47
47
|
inputProps: Pick<DateInputProps, "onChange" | "onFocus" | "value"> & {
|
|
48
|
-
|
|
48
|
+
/**
|
|
49
|
+
* @private
|
|
50
|
+
*/
|
|
51
|
+
setAnchorRef: React.Dispatch<React.SetStateAction<HTMLButtonElement | null>>;
|
|
49
52
|
};
|
|
50
53
|
/**
|
|
51
54
|
* Currently selected Date
|
|
@@ -1,7 +1,5 @@
|
|
|
1
|
-
import { useCallback, useMemo,
|
|
1
|
+
import { useCallback, useMemo, useState } from "react";
|
|
2
2
|
import { formatDateForInput, getLocaleFromString, isMatch, isValidDate, parseDate, } from "../utils";
|
|
3
|
-
import { useEscape } from "./useEscape";
|
|
4
|
-
import { useOutsideClickHandler } from "./useOutsideClickHandler";
|
|
5
3
|
const getValidationMessage = (val = {}) => (Object.assign({ isDisabled: false, isEmpty: false, isInvalid: false, isBefore: false, isAfter: false, isValidMonth: true }, val));
|
|
6
4
|
const getIsBefore = (opt) => opt.fromDate &&
|
|
7
5
|
opt.date &&
|
|
@@ -27,13 +25,12 @@ const getIsAfter = (opt) => opt.toDate &&
|
|
|
27
25
|
* });
|
|
28
26
|
*/
|
|
29
27
|
export const useMonthpicker = (opt = {}) => {
|
|
30
|
-
var _a
|
|
31
|
-
const { locale: _locale = "nb", defaultSelected: _defaultSelected, fromDate, toDate, disabled, required, onMonthChange, inputFormat, onValidate, defaultYear, allowTwoDigitYear = true,
|
|
28
|
+
var _a;
|
|
29
|
+
const { locale: _locale = "nb", defaultSelected: _defaultSelected, fromDate, toDate, disabled, required, onMonthChange, inputFormat, onValidate, defaultYear, allowTwoDigitYear = true, } = opt;
|
|
30
|
+
const [anchorRef, setAnchorRef] = useState(null);
|
|
32
31
|
const [defaultSelected, setDefaultSelected] = useState(_defaultSelected);
|
|
33
32
|
const today = useMemo(() => new Date(), []);
|
|
34
33
|
const locale = getLocaleFromString(_locale);
|
|
35
|
-
const inputRef = useRef(null);
|
|
36
|
-
const [monthpickerRef, setMonthpickerRef] = useState();
|
|
37
34
|
// Initialize states
|
|
38
35
|
const [year, setYear] = useState((_a = defaultSelected !== null && defaultSelected !== void 0 ? defaultSelected : defaultYear) !== null && _a !== void 0 ? _a : today);
|
|
39
36
|
const [selectedMonth, setSelectedMonth] = useState(defaultSelected);
|
|
@@ -48,12 +45,6 @@ export const useMonthpicker = (opt = {}) => {
|
|
|
48
45
|
newOpen &&
|
|
49
46
|
setYear((_b = (_a = selectedMonth !== null && selectedMonth !== void 0 ? selectedMonth : defaultSelected) !== null && _a !== void 0 ? _a : defaultYear) !== null && _b !== void 0 ? _b : today);
|
|
50
47
|
}, [defaultSelected, defaultYear, selectedMonth, today]);
|
|
51
|
-
useOutsideClickHandler(open, handleOpen, [
|
|
52
|
-
monthpickerRef,
|
|
53
|
-
inputRef.current,
|
|
54
|
-
(_b = inputRef.current) === null || _b === void 0 ? void 0 : _b.nextSibling,
|
|
55
|
-
]);
|
|
56
|
-
useEscape(open, handleOpen, inputRef);
|
|
57
48
|
const updateMonth = (date) => {
|
|
58
49
|
onMonthChange === null || onMonthChange === void 0 ? void 0 : onMonthChange(date);
|
|
59
50
|
setSelectedMonth(date);
|
|
@@ -77,7 +68,6 @@ export const useMonthpicker = (opt = {}) => {
|
|
|
77
68
|
if (e.target.readOnly) {
|
|
78
69
|
return;
|
|
79
70
|
}
|
|
80
|
-
!open && openOnFocus && handleOpen(true);
|
|
81
71
|
const day = parseDate(e.target.value, today, locale, "month", allowTwoDigitYear);
|
|
82
72
|
const isBefore = getIsBefore({ fromDate, date: day });
|
|
83
73
|
const isAfter = getIsAfter({ toDate, date: day });
|
|
@@ -98,8 +88,8 @@ export const useMonthpicker = (opt = {}) => {
|
|
|
98
88
|
const handleMonthClick = (month) => {
|
|
99
89
|
if (month) {
|
|
100
90
|
handleOpen(false);
|
|
101
|
-
inputRef.current && inputRef.current.focus();
|
|
102
91
|
setYear(month);
|
|
92
|
+
anchorRef === null || anchorRef === void 0 ? void 0 : anchorRef.focus();
|
|
103
93
|
}
|
|
104
94
|
if (!required && !month) {
|
|
105
95
|
updateMonth(undefined);
|
|
@@ -157,16 +147,18 @@ export const useMonthpicker = (opt = {}) => {
|
|
|
157
147
|
toDate,
|
|
158
148
|
open,
|
|
159
149
|
onOpenToggle: () => handleOpen(!open),
|
|
150
|
+
onClose: () => {
|
|
151
|
+
handleOpen(false);
|
|
152
|
+
anchorRef === null || anchorRef === void 0 ? void 0 : anchorRef.focus();
|
|
153
|
+
},
|
|
160
154
|
disabled,
|
|
161
|
-
bubbleEscape: true,
|
|
162
|
-
ref: setMonthpickerRef,
|
|
163
155
|
};
|
|
164
156
|
const inputProps = {
|
|
165
157
|
onChange: handleChange,
|
|
166
158
|
onFocus: handleFocus,
|
|
167
159
|
onBlur: handleBlur,
|
|
168
160
|
value: inputValue,
|
|
169
|
-
|
|
161
|
+
setAnchorRef,
|
|
170
162
|
};
|
|
171
163
|
return { monthpickerProps, inputProps, reset, selectedMonth, setSelected };
|
|
172
164
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useMonthPicker.js","sourceRoot":"","sources":["../../../src/date/hooks/useMonthPicker.tsx"],"names":[],"mappings":"AAAA,OAAc,EAAE,WAAW,EAAE,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"useMonthPicker.js","sourceRoot":"","sources":["../../../src/date/hooks/useMonthPicker.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import React from "react";
|
|
2
2
|
import { DateRange } from "react-day-picker";
|
|
3
|
-
import { DateInputProps } from "../DateInput";
|
|
4
3
|
import { DatePickerProps } from "../datepicker/DatePicker";
|
|
4
|
+
import { DateInputProps } from "../parts/DateInput";
|
|
5
5
|
import { DateValidationT, UseDatepickerOptions } from "./useDatepicker";
|
|
6
6
|
export type RangeValidationT = {
|
|
7
7
|
from: DateValidationT;
|
|
@@ -32,13 +32,19 @@ interface UseRangeDatepickerValue {
|
|
|
32
32
|
* Use: <DatePicker.Input label="from" {...fromInputProps}/>
|
|
33
33
|
*/
|
|
34
34
|
fromInputProps: Pick<DateInputProps, "onChange" | "onFocus" | "onBlur" | "value"> & {
|
|
35
|
-
|
|
35
|
+
/**
|
|
36
|
+
* @private
|
|
37
|
+
*/
|
|
38
|
+
setAnchorRef: React.Dispatch<React.SetStateAction<HTMLButtonElement | null>>;
|
|
36
39
|
};
|
|
37
40
|
/**
|
|
38
41
|
* Use: <DatePicker.Input label="to" {...toInputProps}/>
|
|
39
42
|
*/
|
|
40
43
|
toInputProps: Pick<DateInputProps, "onChange" | "onFocus" | "onBlur" | "value"> & {
|
|
41
|
-
|
|
44
|
+
/**
|
|
45
|
+
* @private
|
|
46
|
+
*/
|
|
47
|
+
setAnchorRef?: React.Dispatch<React.SetStateAction<HTMLButtonElement | null>>;
|
|
42
48
|
};
|
|
43
49
|
/**
|
|
44
50
|
* Resets all states (callback)
|