@mantine/dates 6.0.4 → 6.0.6
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/cjs/components/Calendar/pick-calendar-levels-props/pick-calendar-levels-props.js +18 -0
- package/cjs/components/Calendar/pick-calendar-levels-props/pick-calendar-levels-props.js.map +1 -1
- package/cjs/components/DateInput/DateInput.js +1 -1
- package/cjs/components/DateInput/DateInput.js.map +1 -1
- package/cjs/components/DecadeLevelGroup/DecadeLevelGroup.js +10 -11
- package/cjs/components/DecadeLevelGroup/DecadeLevelGroup.js.map +1 -1
- package/cjs/components/Month/Month.js +1 -1
- package/cjs/components/Month/Month.js.map +1 -1
- package/cjs/components/Month/get-date-in-tab-order/get-date-in-tab-order.js +3 -2
- package/cjs/components/Month/get-date-in-tab-order/get-date-in-tab-order.js.map +1 -1
- package/cjs/components/MonthLevelGroup/MonthLevelGroup.js +4 -5
- package/cjs/components/MonthLevelGroup/MonthLevelGroup.js.map +1 -1
- package/cjs/components/WeekdaysRow/get-weekdays-names/get-weekdays-names.js +2 -2
- package/cjs/components/WeekdaysRow/get-weekdays-names/get-weekdays-names.js.map +1 -1
- package/cjs/components/YearLevelGroup/YearLevelGroup.js +10 -11
- package/cjs/components/YearLevelGroup/YearLevelGroup.js.map +1 -1
- package/cjs/hooks/use-uncontrolled-dates/use-uncontrolled-dates.js +32 -2
- package/cjs/hooks/use-uncontrolled-dates/use-uncontrolled-dates.js.map +1 -1
- package/cjs/utils/handle-control-key-down.js +138 -56
- package/cjs/utils/handle-control-key-down.js.map +1 -1
- package/esm/components/Calendar/pick-calendar-levels-props/pick-calendar-levels-props.js +18 -0
- package/esm/components/Calendar/pick-calendar-levels-props/pick-calendar-levels-props.js.map +1 -1
- package/esm/components/DateInput/DateInput.js +1 -1
- package/esm/components/DateInput/DateInput.js.map +1 -1
- package/esm/components/DecadeLevelGroup/DecadeLevelGroup.js +10 -11
- package/esm/components/DecadeLevelGroup/DecadeLevelGroup.js.map +1 -1
- package/esm/components/Month/Month.js +1 -1
- package/esm/components/Month/Month.js.map +1 -1
- package/esm/components/Month/get-date-in-tab-order/get-date-in-tab-order.js +3 -2
- package/esm/components/Month/get-date-in-tab-order/get-date-in-tab-order.js.map +1 -1
- package/esm/components/MonthLevelGroup/MonthLevelGroup.js +4 -5
- package/esm/components/MonthLevelGroup/MonthLevelGroup.js.map +1 -1
- package/esm/components/WeekdaysRow/get-weekdays-names/get-weekdays-names.js +2 -2
- package/esm/components/WeekdaysRow/get-weekdays-names/get-weekdays-names.js.map +1 -1
- package/esm/components/YearLevelGroup/YearLevelGroup.js +10 -11
- package/esm/components/YearLevelGroup/YearLevelGroup.js.map +1 -1
- package/esm/hooks/use-uncontrolled-dates/use-uncontrolled-dates.js +32 -2
- package/esm/hooks/use-uncontrolled-dates/use-uncontrolled-dates.js.map +1 -1
- package/esm/utils/handle-control-key-down.js +138 -56
- package/esm/utils/handle-control-key-down.js.map +1 -1
- package/lib/components/Calendar/pick-calendar-levels-props/pick-calendar-levels-props.d.ts +7 -1
- package/lib/components/Calendar/pick-calendar-levels-props/pick-calendar-levels-props.d.ts.map +1 -1
- package/lib/components/DateInput/DateInput.d.ts +9 -1
- package/lib/components/DateInput/DateInput.d.ts.map +1 -1
- package/lib/components/DecadeLevelGroup/DecadeLevelGroup.d.ts.map +1 -1
- package/lib/components/Month/Month.d.ts.map +1 -1
- package/lib/components/Month/get-date-in-tab-order/get-date-in-tab-order.d.ts +1 -1
- package/lib/components/Month/get-date-in-tab-order/get-date-in-tab-order.d.ts.map +1 -1
- package/lib/components/MonthLevelGroup/MonthLevelGroup.d.ts.map +1 -1
- package/lib/components/YearLevelGroup/YearLevelGroup.d.ts.map +1 -1
- package/lib/hooks/use-dates-state/use-dates-state.d.ts +1 -1
- package/lib/hooks/use-uncontrolled-dates/use-uncontrolled-dates.d.ts +1 -1
- package/lib/hooks/use-uncontrolled-dates/use-uncontrolled-dates.d.ts.map +1 -1
- package/lib/utils/handle-control-key-down.d.ts +5 -7
- package/lib/utils/handle-control-key-down.d.ts.map +1 -1
- package/package.json +4 -4
|
@@ -3,19 +3,49 @@
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
5
|
var hooks = require('@mantine/hooks');
|
|
6
|
+
var React = require('react');
|
|
6
7
|
|
|
8
|
+
const getEmptyValue = (type) => type === "range" ? [null, null] : type === "multiple" ? [] : null;
|
|
7
9
|
function useUncontrolledDates({
|
|
8
10
|
type,
|
|
9
11
|
value,
|
|
10
12
|
defaultValue,
|
|
11
13
|
onChange
|
|
12
14
|
}) {
|
|
13
|
-
|
|
15
|
+
const storedType = React.useRef(type);
|
|
16
|
+
const [_value, _setValue] = hooks.useUncontrolled({
|
|
14
17
|
value,
|
|
15
18
|
defaultValue,
|
|
16
19
|
onChange,
|
|
17
|
-
finalValue: type
|
|
20
|
+
finalValue: getEmptyValue(type)
|
|
18
21
|
});
|
|
22
|
+
let _finalValue = _value;
|
|
23
|
+
if (storedType.current !== type) {
|
|
24
|
+
storedType.current = type;
|
|
25
|
+
if (value === void 0) {
|
|
26
|
+
_finalValue = defaultValue !== void 0 ? defaultValue : getEmptyValue(type);
|
|
27
|
+
_setValue(_finalValue);
|
|
28
|
+
} else if (process.env.NODE_ENV === "development") {
|
|
29
|
+
switch (type) {
|
|
30
|
+
case "default":
|
|
31
|
+
if (value !== null && typeof value !== "string") {
|
|
32
|
+
console.error("[@mantine/dates/use-uncontrolled-dates] Value must be type of `null` or `string`");
|
|
33
|
+
}
|
|
34
|
+
break;
|
|
35
|
+
case "multiple":
|
|
36
|
+
if (!(value instanceof Array)) {
|
|
37
|
+
console.error("[@mantine/dates/use-uncontrolled-dates] Value must be type of `string[]`");
|
|
38
|
+
}
|
|
39
|
+
break;
|
|
40
|
+
case "range":
|
|
41
|
+
if (!(value instanceof Array) || value.length !== 2) {
|
|
42
|
+
console.error("[@mantine/dates/use-uncontrolled-dates] Value must be type of `[string, string]`");
|
|
43
|
+
}
|
|
44
|
+
break;
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
return [_finalValue, _setValue];
|
|
19
49
|
}
|
|
20
50
|
|
|
21
51
|
exports.useUncontrolledDates = useUncontrolledDates;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-uncontrolled-dates.js","sources":["../../../src/hooks/use-uncontrolled-dates/use-uncontrolled-dates.ts"],"sourcesContent":["import { useUncontrolled } from '@mantine/hooks';\nimport { DatePickerType, DatePickerValue } from '../../types';\n\ninterface UseUncontrolledDates<Type extends DatePickerType = 'default'> {\n type: Type;\n value: DatePickerValue<Type>;\n defaultValue: DatePickerValue<Type>;\n onChange(value: DatePickerValue<Type>): void;\n}\n\nexport function useUncontrolledDates<Type extends DatePickerType = 'default'>({\n type,\n value,\n defaultValue,\n onChange,\n}: UseUncontrolledDates<Type>) {\n
|
|
1
|
+
{"version":3,"file":"use-uncontrolled-dates.js","sources":["../../../src/hooks/use-uncontrolled-dates/use-uncontrolled-dates.ts"],"sourcesContent":["import { useUncontrolled } from '@mantine/hooks';\nimport { useRef } from 'react';\nimport { DatePickerType, DatePickerValue } from '../../types';\n\ninterface UseUncontrolledDates<Type extends DatePickerType = 'default'> {\n type: Type;\n value: DatePickerValue<Type>;\n defaultValue: DatePickerValue<Type>;\n onChange(value: DatePickerValue<Type>): void;\n}\n\nconst getEmptyValue = <Type extends DatePickerType = 'default'>(type: Type) =>\n type === 'range' ? [null, null] : type === 'multiple' ? [] : null;\n\nexport function useUncontrolledDates<Type extends DatePickerType = 'default'>({\n type,\n value,\n defaultValue,\n onChange,\n}: UseUncontrolledDates<Type>) {\n const storedType = useRef<Type>(type);\n const [_value, _setValue] = useUncontrolled<any>({\n value,\n defaultValue,\n onChange,\n finalValue: getEmptyValue(type),\n });\n\n let _finalValue = _value;\n\n if (storedType.current !== type) {\n // Type has changed. Do some checks or resets\n\n storedType.current = type;\n if (value === undefined) {\n // Reset uncontrolled value as types aren't compatible\n _finalValue = defaultValue !== undefined ? defaultValue : getEmptyValue(type);\n _setValue(_finalValue);\n } else if (process.env.NODE_ENV === 'development') {\n // Throw errors in dev mode in case type of value isn't correct\n switch (type) {\n case 'default':\n if (value !== null && typeof value !== 'string') {\n // eslint-disable-next-line no-console\n console.error(\n '[@mantine/dates/use-uncontrolled-dates] Value must be type of `null` or `string`'\n );\n }\n break;\n case 'multiple':\n if (!(value instanceof Array)) {\n // eslint-disable-next-line no-console\n console.error(\n '[@mantine/dates/use-uncontrolled-dates] Value must be type of `string[]`'\n );\n }\n break;\n case 'range':\n if (!(value instanceof Array) || value.length !== 2) {\n // eslint-disable-next-line no-console\n console.error(\n '[@mantine/dates/use-uncontrolled-dates] Value must be type of `[string, string]`'\n );\n }\n break;\n }\n }\n }\n\n return [_finalValue, _setValue];\n}\n"],"names":["useRef","useUncontrolled"],"mappings":";;;;;;;AAEA,MAAM,aAAa,GAAG,CAAC,IAAI,KAAK,IAAI,KAAK,OAAO,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,IAAI,KAAK,UAAU,GAAG,EAAE,GAAG,IAAI,CAAC;AAC3F,SAAS,oBAAoB,CAAC;AACrC,EAAE,IAAI;AACN,EAAE,KAAK;AACP,EAAE,YAAY;AACd,EAAE,QAAQ;AACV,CAAC,EAAE;AACH,EAAE,MAAM,UAAU,GAAGA,YAAM,CAAC,IAAI,CAAC,CAAC;AAClC,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAGC,qBAAe,CAAC;AAC9C,IAAI,KAAK;AACT,IAAI,YAAY;AAChB,IAAI,QAAQ;AACZ,IAAI,UAAU,EAAE,aAAa,CAAC,IAAI,CAAC;AACnC,GAAG,CAAC,CAAC;AACL,EAAE,IAAI,WAAW,GAAG,MAAM,CAAC;AAC3B,EAAE,IAAI,UAAU,CAAC,OAAO,KAAK,IAAI,EAAE;AACnC,IAAI,UAAU,CAAC,OAAO,GAAG,IAAI,CAAC;AAC9B,IAAI,IAAI,KAAK,KAAK,KAAK,CAAC,EAAE;AAC1B,MAAM,WAAW,GAAG,YAAY,KAAK,KAAK,CAAC,GAAG,YAAY,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;AACjF,MAAM,SAAS,CAAC,WAAW,CAAC,CAAC;AAC7B,KAAK,MAAM,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,aAAa,EAAE;AACvD,MAAM,QAAQ,IAAI;AAClB,QAAQ,KAAK,SAAS;AACtB,UAAU,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;AAC3D,YAAY,OAAO,CAAC,KAAK,CAAC,kFAAkF,CAAC,CAAC;AAC9G,WAAW;AACX,UAAU,MAAM;AAChB,QAAQ,KAAK,UAAU;AACvB,UAAU,IAAI,EAAE,KAAK,YAAY,KAAK,CAAC,EAAE;AACzC,YAAY,OAAO,CAAC,KAAK,CAAC,0EAA0E,CAAC,CAAC;AACtG,WAAW;AACX,UAAU,MAAM;AAChB,QAAQ,KAAK,OAAO;AACpB,UAAU,IAAI,EAAE,KAAK,YAAY,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;AAC/D,YAAY,OAAO,CAAC,KAAK,CAAC,kFAAkF,CAAC,CAAC;AAC9G,WAAW;AACX,UAAU,MAAM;AAChB,OAAO;AACP,KAAK;AACL,GAAG;AACH,EAAE,OAAO,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;AAClC;;;;"}
|
|
@@ -2,75 +2,157 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
+
function getNextIndex({ direction, levelIndex, rowIndex, cellIndex, size }) {
|
|
6
|
+
switch (direction) {
|
|
7
|
+
case "up":
|
|
8
|
+
if (levelIndex === 0 && rowIndex === 0) {
|
|
9
|
+
return null;
|
|
10
|
+
}
|
|
11
|
+
if (rowIndex === 0) {
|
|
12
|
+
return {
|
|
13
|
+
levelIndex: levelIndex - 1,
|
|
14
|
+
rowIndex: cellIndex <= size[levelIndex - 1][size[levelIndex - 1].length - 1] - 1 ? size[levelIndex - 1].length - 1 : size[levelIndex - 1].length - 2,
|
|
15
|
+
cellIndex
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
return {
|
|
19
|
+
levelIndex,
|
|
20
|
+
rowIndex: rowIndex - 1,
|
|
21
|
+
cellIndex
|
|
22
|
+
};
|
|
23
|
+
case "down":
|
|
24
|
+
if (rowIndex === size[levelIndex].length - 1) {
|
|
25
|
+
return {
|
|
26
|
+
levelIndex: levelIndex + 1,
|
|
27
|
+
rowIndex: 0,
|
|
28
|
+
cellIndex
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
if (rowIndex === size[levelIndex].length - 2 && cellIndex >= size[levelIndex][size[levelIndex].length - 1]) {
|
|
32
|
+
return {
|
|
33
|
+
levelIndex: levelIndex + 1,
|
|
34
|
+
rowIndex: 0,
|
|
35
|
+
cellIndex
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
return {
|
|
39
|
+
levelIndex,
|
|
40
|
+
rowIndex: rowIndex + 1,
|
|
41
|
+
cellIndex
|
|
42
|
+
};
|
|
43
|
+
case "left":
|
|
44
|
+
if (levelIndex === 0 && rowIndex === 0 && cellIndex === 0) {
|
|
45
|
+
return null;
|
|
46
|
+
}
|
|
47
|
+
if (rowIndex === 0 && cellIndex === 0) {
|
|
48
|
+
return {
|
|
49
|
+
levelIndex: levelIndex - 1,
|
|
50
|
+
rowIndex: size[levelIndex - 1].length - 1,
|
|
51
|
+
cellIndex: size[levelIndex - 1][size[levelIndex - 1].length - 1] - 1
|
|
52
|
+
};
|
|
53
|
+
}
|
|
54
|
+
if (cellIndex === 0) {
|
|
55
|
+
return {
|
|
56
|
+
levelIndex,
|
|
57
|
+
rowIndex: rowIndex - 1,
|
|
58
|
+
cellIndex: size[levelIndex][rowIndex - 1] - 1
|
|
59
|
+
};
|
|
60
|
+
}
|
|
61
|
+
return {
|
|
62
|
+
levelIndex,
|
|
63
|
+
rowIndex,
|
|
64
|
+
cellIndex: cellIndex - 1
|
|
65
|
+
};
|
|
66
|
+
case "right":
|
|
67
|
+
if (rowIndex === size[levelIndex].length - 1 && cellIndex === size[levelIndex][rowIndex] - 1) {
|
|
68
|
+
return {
|
|
69
|
+
levelIndex: levelIndex + 1,
|
|
70
|
+
rowIndex: 0,
|
|
71
|
+
cellIndex: 0
|
|
72
|
+
};
|
|
73
|
+
}
|
|
74
|
+
if (cellIndex === size[levelIndex][rowIndex] - 1) {
|
|
75
|
+
return {
|
|
76
|
+
levelIndex,
|
|
77
|
+
rowIndex: rowIndex + 1,
|
|
78
|
+
cellIndex: 0
|
|
79
|
+
};
|
|
80
|
+
}
|
|
81
|
+
return {
|
|
82
|
+
levelIndex,
|
|
83
|
+
rowIndex,
|
|
84
|
+
cellIndex: cellIndex + 1
|
|
85
|
+
};
|
|
86
|
+
default:
|
|
87
|
+
return { levelIndex, rowIndex, cellIndex };
|
|
88
|
+
}
|
|
89
|
+
}
|
|
5
90
|
function focusOnNextFocusableControl({
|
|
91
|
+
controlsRef,
|
|
6
92
|
direction,
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
93
|
+
levelIndex,
|
|
94
|
+
rowIndex,
|
|
95
|
+
cellIndex,
|
|
96
|
+
size
|
|
11
97
|
}) {
|
|
12
|
-
var _a;
|
|
13
|
-
const
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
98
|
+
var _a, _b;
|
|
99
|
+
const nextIndex = getNextIndex({ direction, size, rowIndex, cellIndex, levelIndex });
|
|
100
|
+
if (!nextIndex) {
|
|
101
|
+
return;
|
|
102
|
+
}
|
|
103
|
+
const controlToFocus = (_b = (_a = controlsRef.current[nextIndex.levelIndex]) == null ? void 0 : _a[nextIndex.rowIndex]) == null ? void 0 : _b[nextIndex.cellIndex];
|
|
17
104
|
if (!controlToFocus) {
|
|
18
105
|
return;
|
|
19
106
|
}
|
|
20
|
-
if (controlToFocus.disabled) {
|
|
21
|
-
focusOnNextFocusableControl({
|
|
107
|
+
if (controlToFocus.disabled || controlToFocus.getAttribute("data-hidden") || controlToFocus.getAttribute("data-outside")) {
|
|
108
|
+
focusOnNextFocusableControl({
|
|
109
|
+
controlsRef,
|
|
110
|
+
direction,
|
|
111
|
+
levelIndex: nextIndex.levelIndex,
|
|
112
|
+
cellIndex: nextIndex.cellIndex,
|
|
113
|
+
rowIndex: nextIndex.rowIndex,
|
|
114
|
+
size
|
|
115
|
+
});
|
|
22
116
|
} else {
|
|
23
117
|
controlToFocus.focus();
|
|
24
118
|
}
|
|
25
119
|
}
|
|
120
|
+
function getDirection(key) {
|
|
121
|
+
switch (key) {
|
|
122
|
+
case "ArrowDown":
|
|
123
|
+
return "down";
|
|
124
|
+
case "ArrowUp":
|
|
125
|
+
return "up";
|
|
126
|
+
case "ArrowRight":
|
|
127
|
+
return "right";
|
|
128
|
+
case "ArrowLeft":
|
|
129
|
+
return "left";
|
|
130
|
+
default:
|
|
131
|
+
return null;
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
function getControlsSize(controlsRef) {
|
|
135
|
+
return controlsRef.current.map((column) => column.map((row) => row.length));
|
|
136
|
+
}
|
|
26
137
|
function handleControlKeyDown({
|
|
27
138
|
controlsRef,
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
controlsPerRow
|
|
139
|
+
levelIndex,
|
|
140
|
+
rowIndex,
|
|
141
|
+
cellIndex,
|
|
142
|
+
event
|
|
33
143
|
}) {
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
event.preventDefault();
|
|
47
|
-
const hasRowAbove = payload.rowIndex > 0;
|
|
48
|
-
if (hasRowAbove) {
|
|
49
|
-
focusOnNextFocusableControl({ direction: "up", index, payload, controlsRef });
|
|
50
|
-
}
|
|
51
|
-
break;
|
|
52
|
-
}
|
|
53
|
-
case "ArrowRight": {
|
|
54
|
-
event.preventDefault();
|
|
55
|
-
if (payload.cellIndex !== _controlsPerRow - 1) {
|
|
56
|
-
focusOnNextFocusableControl({ direction: "right", index, payload, controlsRef });
|
|
57
|
-
} else if (index + 1 < numberOfColumns) {
|
|
58
|
-
if (controlsRef.current[index + 1][payload.rowIndex]) {
|
|
59
|
-
(_a = controlsRef.current[index + 1][payload.rowIndex][0]) == null ? void 0 : _a.focus();
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
break;
|
|
63
|
-
}
|
|
64
|
-
case "ArrowLeft": {
|
|
65
|
-
event.preventDefault();
|
|
66
|
-
if (payload.cellIndex !== 0) {
|
|
67
|
-
focusOnNextFocusableControl({ direction: "left", index, payload, controlsRef });
|
|
68
|
-
} else if (index > 0) {
|
|
69
|
-
if (controlsRef.current[index - 1][payload.rowIndex]) {
|
|
70
|
-
controlsRef.current[index - 1][payload.rowIndex][_controlsPerRow - 1].focus();
|
|
71
|
-
}
|
|
72
|
-
}
|
|
73
|
-
}
|
|
144
|
+
const direction = getDirection(event.key);
|
|
145
|
+
if (direction) {
|
|
146
|
+
event.preventDefault();
|
|
147
|
+
const size = getControlsSize(controlsRef);
|
|
148
|
+
focusOnNextFocusableControl({
|
|
149
|
+
controlsRef,
|
|
150
|
+
direction,
|
|
151
|
+
levelIndex,
|
|
152
|
+
rowIndex,
|
|
153
|
+
cellIndex,
|
|
154
|
+
size
|
|
155
|
+
});
|
|
74
156
|
}
|
|
75
157
|
}
|
|
76
158
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handle-control-key-down.js","sources":["../../src/utils/handle-control-key-down.ts"],"sourcesContent":["import { RefObject } from 'react';\
|
|
1
|
+
{"version":3,"file":"handle-control-key-down.js","sources":["../../src/utils/handle-control-key-down.ts"],"sourcesContent":["import { RefObject } from 'react';\n\ntype ControlsRef = RefObject<HTMLButtonElement[][][]>;\ntype Direction = 'up' | 'down' | 'left' | 'right';\n\ntype NextIndexInput = Omit<ShiftFocusInput, 'controlsRef'>;\n\nfunction getNextIndex({ direction, levelIndex, rowIndex, cellIndex, size }: NextIndexInput) {\n switch (direction) {\n case 'up':\n if (levelIndex === 0 && rowIndex === 0) {\n return null;\n }\n if (rowIndex === 0) {\n return {\n levelIndex: levelIndex - 1,\n rowIndex:\n cellIndex <= size[levelIndex - 1][size[levelIndex - 1].length - 1] - 1\n ? size[levelIndex - 1].length - 1\n : size[levelIndex - 1].length - 2,\n cellIndex,\n };\n }\n return {\n levelIndex,\n rowIndex: rowIndex - 1,\n cellIndex,\n };\n\n case 'down':\n if (rowIndex === size[levelIndex].length - 1) {\n return {\n levelIndex: levelIndex + 1,\n rowIndex: 0,\n cellIndex,\n };\n }\n if (\n rowIndex === size[levelIndex].length - 2 &&\n cellIndex >= size[levelIndex][size[levelIndex].length - 1]\n ) {\n return {\n levelIndex: levelIndex + 1,\n rowIndex: 0,\n cellIndex,\n };\n }\n return {\n levelIndex,\n rowIndex: rowIndex + 1,\n cellIndex,\n };\n\n case 'left':\n if (levelIndex === 0 && rowIndex === 0 && cellIndex === 0) {\n return null;\n }\n if (rowIndex === 0 && cellIndex === 0) {\n return {\n levelIndex: levelIndex - 1,\n rowIndex: size[levelIndex - 1].length - 1,\n cellIndex: size[levelIndex - 1][size[levelIndex - 1].length - 1] - 1,\n };\n }\n if (cellIndex === 0) {\n return {\n levelIndex,\n rowIndex: rowIndex - 1,\n cellIndex: size[levelIndex][rowIndex - 1] - 1,\n };\n }\n return {\n levelIndex,\n rowIndex,\n cellIndex: cellIndex - 1,\n };\n\n case 'right':\n if (\n rowIndex === size[levelIndex].length - 1 &&\n cellIndex === size[levelIndex][rowIndex] - 1\n ) {\n return {\n levelIndex: levelIndex + 1,\n rowIndex: 0,\n cellIndex: 0,\n };\n }\n if (cellIndex === size[levelIndex][rowIndex] - 1) {\n return {\n levelIndex,\n rowIndex: rowIndex + 1,\n cellIndex: 0,\n };\n }\n return {\n levelIndex,\n rowIndex,\n cellIndex: cellIndex + 1,\n };\n\n default:\n return { levelIndex, rowIndex, cellIndex };\n }\n}\n\ninterface ShiftFocusInput {\n controlsRef: ControlsRef;\n direction: Direction;\n levelIndex: number;\n rowIndex: number;\n cellIndex: number;\n size: number[][];\n}\n\nfunction focusOnNextFocusableControl({\n controlsRef,\n direction,\n levelIndex,\n rowIndex,\n cellIndex,\n size,\n}: ShiftFocusInput) {\n const nextIndex = getNextIndex({ direction, size, rowIndex, cellIndex, levelIndex });\n\n if (!nextIndex) {\n return;\n }\n\n const controlToFocus =\n controlsRef.current[nextIndex.levelIndex]?.[nextIndex.rowIndex]?.[nextIndex.cellIndex];\n\n if (!controlToFocus) {\n return;\n }\n\n if (\n controlToFocus.disabled ||\n controlToFocus.getAttribute('data-hidden') ||\n controlToFocus.getAttribute('data-outside')\n ) {\n focusOnNextFocusableControl({\n controlsRef,\n direction,\n levelIndex: nextIndex.levelIndex,\n cellIndex: nextIndex.cellIndex,\n rowIndex: nextIndex.rowIndex,\n size,\n });\n } else {\n controlToFocus.focus();\n }\n}\n\nfunction getDirection(key: KeyboardEvent['key']): Direction {\n switch (key) {\n case 'ArrowDown':\n return 'down';\n case 'ArrowUp':\n return 'up';\n case 'ArrowRight':\n return 'right';\n case 'ArrowLeft':\n return 'left';\n default:\n return null;\n }\n}\n\nfunction getControlsSize(controlsRef: ControlsRef) {\n return controlsRef.current.map((column) => column.map((row) => row.length));\n}\n\ninterface HandleControlKeyDownInput {\n controlsRef: ControlsRef;\n levelIndex: number;\n rowIndex: number;\n cellIndex: number;\n event: React.KeyboardEvent<HTMLButtonElement>;\n}\n\nexport function handleControlKeyDown({\n controlsRef,\n levelIndex,\n rowIndex,\n cellIndex,\n event,\n}: HandleControlKeyDownInput) {\n const direction = getDirection(event.key);\n\n if (direction) {\n event.preventDefault();\n\n const size = getControlsSize(controlsRef);\n\n focusOnNextFocusableControl({\n controlsRef,\n direction,\n levelIndex,\n rowIndex,\n cellIndex,\n size,\n });\n }\n}\n"],"names":[],"mappings":";;;;AAAA,SAAS,YAAY,CAAC,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE;AAC5E,EAAE,QAAQ,SAAS;AACnB,IAAI,KAAK,IAAI;AACb,MAAM,IAAI,UAAU,KAAK,CAAC,IAAI,QAAQ,KAAK,CAAC,EAAE;AAC9C,QAAQ,OAAO,IAAI,CAAC;AACpB,OAAO;AACP,MAAM,IAAI,QAAQ,KAAK,CAAC,EAAE;AAC1B,QAAQ,OAAO;AACf,UAAU,UAAU,EAAE,UAAU,GAAG,CAAC;AACpC,UAAU,QAAQ,EAAE,SAAS,IAAI,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,GAAG,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC;AAC9J,UAAU,SAAS;AACnB,SAAS,CAAC;AACV,OAAO;AACP,MAAM,OAAO;AACb,QAAQ,UAAU;AAClB,QAAQ,QAAQ,EAAE,QAAQ,GAAG,CAAC;AAC9B,QAAQ,SAAS;AACjB,OAAO,CAAC;AACR,IAAI,KAAK,MAAM;AACf,MAAM,IAAI,QAAQ,KAAK,IAAI,CAAC,UAAU,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;AACpD,QAAQ,OAAO;AACf,UAAU,UAAU,EAAE,UAAU,GAAG,CAAC;AACpC,UAAU,QAAQ,EAAE,CAAC;AACrB,UAAU,SAAS;AACnB,SAAS,CAAC;AACV,OAAO;AACP,MAAM,IAAI,QAAQ,KAAK,IAAI,CAAC,UAAU,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,SAAS,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE;AAClH,QAAQ,OAAO;AACf,UAAU,UAAU,EAAE,UAAU,GAAG,CAAC;AACpC,UAAU,QAAQ,EAAE,CAAC;AACrB,UAAU,SAAS;AACnB,SAAS,CAAC;AACV,OAAO;AACP,MAAM,OAAO;AACb,QAAQ,UAAU;AAClB,QAAQ,QAAQ,EAAE,QAAQ,GAAG,CAAC;AAC9B,QAAQ,SAAS;AACjB,OAAO,CAAC;AACR,IAAI,KAAK,MAAM;AACf,MAAM,IAAI,UAAU,KAAK,CAAC,IAAI,QAAQ,KAAK,CAAC,IAAI,SAAS,KAAK,CAAC,EAAE;AACjE,QAAQ,OAAO,IAAI,CAAC;AACpB,OAAO;AACP,MAAM,IAAI,QAAQ,KAAK,CAAC,IAAI,SAAS,KAAK,CAAC,EAAE;AAC7C,QAAQ,OAAO;AACf,UAAU,UAAU,EAAE,UAAU,GAAG,CAAC;AACpC,UAAU,QAAQ,EAAE,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC;AACnD,UAAU,SAAS,EAAE,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC;AAC9E,SAAS,CAAC;AACV,OAAO;AACP,MAAM,IAAI,SAAS,KAAK,CAAC,EAAE;AAC3B,QAAQ,OAAO;AACf,UAAU,UAAU;AACpB,UAAU,QAAQ,EAAE,QAAQ,GAAG,CAAC;AAChC,UAAU,SAAS,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,GAAG,CAAC;AACvD,SAAS,CAAC;AACV,OAAO;AACP,MAAM,OAAO;AACb,QAAQ,UAAU;AAClB,QAAQ,QAAQ;AAChB,QAAQ,SAAS,EAAE,SAAS,GAAG,CAAC;AAChC,OAAO,CAAC;AACR,IAAI,KAAK,OAAO;AAChB,MAAM,IAAI,QAAQ,KAAK,IAAI,CAAC,UAAU,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,SAAS,KAAK,IAAI,CAAC,UAAU,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;AACpG,QAAQ,OAAO;AACf,UAAU,UAAU,EAAE,UAAU,GAAG,CAAC;AACpC,UAAU,QAAQ,EAAE,CAAC;AACrB,UAAU,SAAS,EAAE,CAAC;AACtB,SAAS,CAAC;AACV,OAAO;AACP,MAAM,IAAI,SAAS,KAAK,IAAI,CAAC,UAAU,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;AACxD,QAAQ,OAAO;AACf,UAAU,UAAU;AACpB,UAAU,QAAQ,EAAE,QAAQ,GAAG,CAAC;AAChC,UAAU,SAAS,EAAE,CAAC;AACtB,SAAS,CAAC;AACV,OAAO;AACP,MAAM,OAAO;AACb,QAAQ,UAAU;AAClB,QAAQ,QAAQ;AAChB,QAAQ,SAAS,EAAE,SAAS,GAAG,CAAC;AAChC,OAAO,CAAC;AACR,IAAI;AACJ,MAAM,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC;AACjD,GAAG;AACH,CAAC;AACD,SAAS,2BAA2B,CAAC;AACrC,EAAE,WAAW;AACb,EAAE,SAAS;AACX,EAAE,UAAU;AACZ,EAAE,QAAQ;AACV,EAAE,SAAS;AACX,EAAE,IAAI;AACN,CAAC,EAAE;AACH,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;AACb,EAAE,MAAM,SAAS,GAAG,YAAY,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC,CAAC;AACvF,EAAE,IAAI,CAAC,SAAS,EAAE;AAClB,IAAI,OAAO;AACX,GAAG;AACH,EAAE,MAAM,cAAc,GAAG,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,WAAW,CAAC,OAAO,CAAC,SAAS,CAAC,UAAU,CAAC,KAAK,IAAI,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,IAAI,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;AACtK,EAAE,IAAI,CAAC,cAAc,EAAE;AACvB,IAAI,OAAO;AACX,GAAG;AACH,EAAE,IAAI,cAAc,CAAC,QAAQ,IAAI,cAAc,CAAC,YAAY,CAAC,aAAa,CAAC,IAAI,cAAc,CAAC,YAAY,CAAC,cAAc,CAAC,EAAE;AAC5H,IAAI,2BAA2B,CAAC;AAChC,MAAM,WAAW;AACjB,MAAM,SAAS;AACf,MAAM,UAAU,EAAE,SAAS,CAAC,UAAU;AACtC,MAAM,SAAS,EAAE,SAAS,CAAC,SAAS;AACpC,MAAM,QAAQ,EAAE,SAAS,CAAC,QAAQ;AAClC,MAAM,IAAI;AACV,KAAK,CAAC,CAAC;AACP,GAAG,MAAM;AACT,IAAI,cAAc,CAAC,KAAK,EAAE,CAAC;AAC3B,GAAG;AACH,CAAC;AACD,SAAS,YAAY,CAAC,GAAG,EAAE;AAC3B,EAAE,QAAQ,GAAG;AACb,IAAI,KAAK,WAAW;AACpB,MAAM,OAAO,MAAM,CAAC;AACpB,IAAI,KAAK,SAAS;AAClB,MAAM,OAAO,IAAI,CAAC;AAClB,IAAI,KAAK,YAAY;AACrB,MAAM,OAAO,OAAO,CAAC;AACrB,IAAI,KAAK,WAAW;AACpB,MAAM,OAAO,MAAM,CAAC;AACpB,IAAI;AACJ,MAAM,OAAO,IAAI,CAAC;AAClB,GAAG;AACH,CAAC;AACD,SAAS,eAAe,CAAC,WAAW,EAAE;AACtC,EAAE,OAAO,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;AAC9E,CAAC;AACM,SAAS,oBAAoB,CAAC;AACrC,EAAE,WAAW;AACb,EAAE,UAAU;AACZ,EAAE,QAAQ;AACV,EAAE,SAAS;AACX,EAAE,KAAK;AACP,CAAC,EAAE;AACH,EAAE,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AAC5C,EAAE,IAAI,SAAS,EAAE;AACjB,IAAI,KAAK,CAAC,cAAc,EAAE,CAAC;AAC3B,IAAI,MAAM,IAAI,GAAG,eAAe,CAAC,WAAW,CAAC,CAAC;AAC9C,IAAI,2BAA2B,CAAC;AAChC,MAAM,WAAW;AACjB,MAAM,SAAS;AACf,MAAM,UAAU;AAChB,MAAM,QAAQ;AACd,MAAM,SAAS;AACf,MAAM,IAAI;AACV,KAAK,CAAC,CAAC;AACP,GAAG;AACH;;;;"}
|
|
@@ -30,6 +30,12 @@ function pickCalendarProps(props) {
|
|
|
30
30
|
onMonthSelect,
|
|
31
31
|
onYearMouseEnter,
|
|
32
32
|
onMonthMouseEnter,
|
|
33
|
+
onNextMonth,
|
|
34
|
+
onPreviousMonth,
|
|
35
|
+
onNextYear,
|
|
36
|
+
onPreviousYear,
|
|
37
|
+
onNextDecade,
|
|
38
|
+
onPreviousDecade,
|
|
33
39
|
__updateDateOnYearSelect,
|
|
34
40
|
__updateDateOnMonthSelect,
|
|
35
41
|
firstDayOfWeek,
|
|
@@ -69,6 +75,12 @@ function pickCalendarProps(props) {
|
|
|
69
75
|
"onMonthSelect",
|
|
70
76
|
"onYearMouseEnter",
|
|
71
77
|
"onMonthMouseEnter",
|
|
78
|
+
"onNextMonth",
|
|
79
|
+
"onPreviousMonth",
|
|
80
|
+
"onNextYear",
|
|
81
|
+
"onPreviousYear",
|
|
82
|
+
"onNextDecade",
|
|
83
|
+
"onPreviousDecade",
|
|
72
84
|
"__updateDateOnYearSelect",
|
|
73
85
|
"__updateDateOnMonthSelect",
|
|
74
86
|
"firstDayOfWeek",
|
|
@@ -110,6 +122,12 @@ function pickCalendarProps(props) {
|
|
|
110
122
|
onMonthSelect,
|
|
111
123
|
onYearMouseEnter,
|
|
112
124
|
onMonthMouseEnter,
|
|
125
|
+
onNextMonth,
|
|
126
|
+
onPreviousMonth,
|
|
127
|
+
onNextYear,
|
|
128
|
+
onPreviousYear,
|
|
129
|
+
onNextDecade,
|
|
130
|
+
onPreviousDecade,
|
|
113
131
|
__updateDateOnYearSelect,
|
|
114
132
|
__updateDateOnMonthSelect,
|
|
115
133
|
firstDayOfWeek,
|
package/esm/components/Calendar/pick-calendar-levels-props/pick-calendar-levels-props.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pick-calendar-levels-props.js","sources":["../../../../src/components/Calendar/pick-calendar-levels-props/pick-calendar-levels-props.ts"],"sourcesContent":["export function pickCalendarProps<T extends Record<string, any>>(props: T) {\n const {\n maxLevel,\n minLevel,\n defaultLevel,\n level,\n onLevelChange,\n date,\n defaultDate,\n onDateChange,\n numberOfColumns,\n columnsToScroll,\n ariaLabels,\n onYearSelect,\n onMonthSelect,\n onYearMouseEnter,\n onMonthMouseEnter,\n __updateDateOnYearSelect,\n __updateDateOnMonthSelect,\n\n // MonthLevelGroup props\n firstDayOfWeek,\n weekdayFormat,\n weekendDays,\n getDayProps,\n excludeDate,\n renderDay,\n hideOutsideDates,\n hideWeekdays,\n getDayAriaLabel,\n monthLabelFormat,\n\n // YearLevelGroup props\n monthsListFormat,\n getMonthControlProps,\n yearLabelFormat,\n\n // DecadeLevelGroup props\n yearsListFormat,\n getYearControlProps,\n decadeLabelFormat,\n\n // External picker props\n allowSingleDateInRange,\n allowDeselect,\n\n // Other props\n minDate,\n maxDate,\n locale,\n ...others\n } = props;\n\n return {\n calendarProps: {\n maxLevel,\n minLevel,\n defaultLevel,\n level,\n onLevelChange,\n date,\n defaultDate,\n onDateChange,\n numberOfColumns,\n columnsToScroll,\n ariaLabels,\n onYearSelect,\n onMonthSelect,\n onYearMouseEnter,\n onMonthMouseEnter,\n __updateDateOnYearSelect,\n __updateDateOnMonthSelect,\n\n // MonthLevelGroup props\n firstDayOfWeek,\n weekdayFormat,\n weekendDays,\n getDayProps,\n excludeDate,\n renderDay,\n hideOutsideDates,\n hideWeekdays,\n getDayAriaLabel,\n monthLabelFormat,\n\n // YearLevelGroup props\n monthsListFormat,\n getMonthControlProps,\n yearLabelFormat,\n\n // DecadeLevelGroup props\n yearsListFormat,\n getYearControlProps,\n decadeLabelFormat,\n\n // External picker props\n allowSingleDateInRange,\n allowDeselect,\n\n // Other props\n minDate,\n maxDate,\n locale,\n },\n others,\n };\n}\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"pick-calendar-levels-props.js","sources":["../../../../src/components/Calendar/pick-calendar-levels-props/pick-calendar-levels-props.ts"],"sourcesContent":["export function pickCalendarProps<T extends Record<string, any>>(props: T) {\n const {\n maxLevel,\n minLevel,\n defaultLevel,\n level,\n onLevelChange,\n date,\n defaultDate,\n onDateChange,\n numberOfColumns,\n columnsToScroll,\n ariaLabels,\n onYearSelect,\n onMonthSelect,\n onYearMouseEnter,\n onMonthMouseEnter,\n onNextMonth,\n onPreviousMonth,\n onNextYear,\n onPreviousYear,\n onNextDecade,\n onPreviousDecade,\n __updateDateOnYearSelect,\n __updateDateOnMonthSelect,\n\n // MonthLevelGroup props\n firstDayOfWeek,\n weekdayFormat,\n weekendDays,\n getDayProps,\n excludeDate,\n renderDay,\n hideOutsideDates,\n hideWeekdays,\n getDayAriaLabel,\n monthLabelFormat,\n\n // YearLevelGroup props\n monthsListFormat,\n getMonthControlProps,\n yearLabelFormat,\n\n // DecadeLevelGroup props\n yearsListFormat,\n getYearControlProps,\n decadeLabelFormat,\n\n // External picker props\n allowSingleDateInRange,\n allowDeselect,\n\n // Other props\n minDate,\n maxDate,\n locale,\n ...others\n } = props;\n\n return {\n calendarProps: {\n maxLevel,\n minLevel,\n defaultLevel,\n level,\n onLevelChange,\n date,\n defaultDate,\n onDateChange,\n numberOfColumns,\n columnsToScroll,\n ariaLabels,\n onYearSelect,\n onMonthSelect,\n onYearMouseEnter,\n onMonthMouseEnter,\n onNextMonth,\n onPreviousMonth,\n onNextYear,\n onPreviousYear,\n onNextDecade,\n onPreviousDecade,\n __updateDateOnYearSelect,\n __updateDateOnMonthSelect,\n\n // MonthLevelGroup props\n firstDayOfWeek,\n weekdayFormat,\n weekendDays,\n getDayProps,\n excludeDate,\n renderDay,\n hideOutsideDates,\n hideWeekdays,\n getDayAriaLabel,\n monthLabelFormat,\n\n // YearLevelGroup props\n monthsListFormat,\n getMonthControlProps,\n yearLabelFormat,\n\n // DecadeLevelGroup props\n yearsListFormat,\n getYearControlProps,\n decadeLabelFormat,\n\n // External picker props\n allowSingleDateInRange,\n allowDeselect,\n\n // Other props\n minDate,\n maxDate,\n locale,\n },\n others,\n };\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DateInput.js","sources":["../../../src/components/DateInput/DateInput.tsx"],"sourcesContent":["import dayjs from 'dayjs';\nimport React, { forwardRef, useState, useEffect } from 'react';\nimport {\n DefaultProps,\n InputSharedProps,\n InputWrapperBaseProps,\n InputStylesNames,\n InputWrapperStylesNames,\n useInputProps,\n Input,\n PopoverProps,\n Popover,\n CloseButton,\n} from '@mantine/core';\nimport { useUncontrolled, useDidUpdate } from '@mantine/hooks';\nimport { Calendar, CalendarBaseProps, CalendarStylesNames, pickCalendarProps } from '../Calendar';\nimport { DecadeLevelSettings } from '../DecadeLevel';\nimport { YearLevelSettings } from '../YearLevel';\nimport { MonthLevelSettings } from '../MonthLevel';\nimport { HiddenDatesInput } from '../HiddenDatesInput';\nimport { assignTime } from '../../utils';\nimport { DateValue } from '../../types';\nimport { useDatesContext } from '../DatesProvider';\nimport { isDateValid } from './is-date-valid/is-date-valid';\nimport { dateStringParser } from './date-string-parser/date-string-parser';\n\nexport type DateInputStylesNames = CalendarStylesNames | InputStylesNames | InputWrapperStylesNames;\n\nexport interface DateInputProps\n extends DefaultProps<DateInputStylesNames>,\n InputSharedProps,\n InputWrapperBaseProps,\n CalendarBaseProps,\n DecadeLevelSettings,\n YearLevelSettings,\n MonthLevelSettings,\n Omit<React.ComponentPropsWithoutRef<'input'>, 'size' | 'value' | 'defaultValue' | 'onChange'> {\n /** Parses user input to convert it to Date object */\n dateParser?: (value: string) => Date | null;\n\n /** Value for controlled component */\n value?: DateValue;\n\n /** Default value for uncontrolled component */\n defaultValue?: DateValue;\n\n /** Called when value changes */\n onChange?(value: DateValue): void;\n\n /** Props added to Popover component */\n popoverProps?: Partial<Omit<PopoverProps, 'children'>>;\n\n /** Determines whether input value can be cleared, adds clear button to right section, false by default */\n clearable?: boolean;\n\n /** Props added to clear button */\n clearButtonProps?: React.ComponentPropsWithoutRef<'button'>;\n\n /** Dayjs format to display input value, \"MMMM D, YYYY\" by default */\n valueFormat?: string;\n\n /** Determines whether input value should be reverted to last known valid value on blur, true by default */\n fixOnBlur?: boolean;\n\n /** Determines whether value can be deselected when the user clicks on the selected date in the calendar or erases content of the input, true if clearable prop is set, false by default */\n allowDeselect?: boolean;\n\n /** Determines whether time (hours, minutes, seconds and milliseconds) should be preserved when new date is picked, true by default */\n preserveTime?: boolean;\n}\n\nconst defaultProps: Partial<DateInputProps> = {\n valueFormat: 'MMMM D, YYYY',\n fixOnBlur: true,\n preserveTime: true,\n size: 'sm',\n};\n\nexport const DateInput = forwardRef<HTMLInputElement, DateInputProps>((props, ref) => {\n const {\n inputProps,\n wrapperProps,\n value,\n defaultValue,\n onChange,\n clearable,\n clearButtonProps,\n popoverProps,\n getDayProps,\n locale,\n valueFormat,\n dateParser,\n minDate,\n maxDate,\n fixOnBlur,\n onFocus,\n onBlur,\n onClick,\n readOnly,\n name,\n form,\n rightSection,\n unstyled,\n classNames,\n styles,\n allowDeselect,\n preserveTime,\n date,\n defaultDate,\n onDateChange,\n ...rest\n } = useInputProps('DateInput', defaultProps, props);\n const { calendarProps, others } = pickCalendarProps(rest);\n const ctx = useDatesContext();\n const defaultDateParser = (val: string) => {\n const parsedDate = dayjs(val, valueFormat, ctx.getLocale(locale)).toDate();\n return Number.isNaN(parsedDate.getTime()) ? dateStringParser(val) : parsedDate;\n };\n\n const _dateParser = dateParser || defaultDateParser;\n const _allowDeselect = clearable || allowDeselect;\n\n const formatValue = (val: Date) =>\n val ? dayjs(val).locale(ctx.getLocale(locale)).format(valueFormat) : '';\n\n const [_value, setValue, controlled] = useUncontrolled({\n value,\n defaultValue,\n finalValue: null,\n onChange,\n });\n\n const [_date, setDate] = useUncontrolled({\n value: date,\n defaultValue,\n finalValue: null,\n onChange: onDateChange,\n });\n\n useEffect(() => {\n if (controlled) {\n setDate(value);\n }\n }, [controlled, value]);\n\n const [inputValue, setInputValue] = useState(formatValue(_value));\n\n useEffect(() => {\n setInputValue(formatValue(_value));\n }, [ctx.getLocale(locale)]);\n\n const [dropdownOpened, setDropdownOpened] = useState(false);\n\n const handleInputChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n const val = event.currentTarget.value;\n setInputValue(val);\n\n if (val.trim() === '' && _allowDeselect) {\n setValue(null);\n } else {\n const dateValue = _dateParser(val);\n if (isDateValid({ date: dateValue, minDate, maxDate })) {\n setValue(dateValue);\n setDate(dateValue);\n }\n }\n };\n\n const handleInputBlur = (event: React.FocusEvent<HTMLInputElement>) => {\n onBlur?.(event);\n setDropdownOpened(false);\n fixOnBlur && setInputValue(formatValue(_value));\n };\n\n const handleInputFocus = (event: React.FocusEvent<HTMLInputElement>) => {\n onFocus?.(event);\n setDropdownOpened(true);\n };\n\n const handleInputClick = (event: React.MouseEvent<HTMLInputElement>) => {\n onClick?.(event);\n setDropdownOpened(true);\n };\n\n const _getDayProps = (day: Date) => ({\n ...getDayProps?.(day),\n selected: dayjs(_value).isSame(day, 'day'),\n onClick: () => {\n const valueWithTime = preserveTime ? assignTime(_value, day) : day;\n const val = _allowDeselect\n ? dayjs(_value).isSame(day, 'day')\n ? null\n : valueWithTime\n : valueWithTime;\n setValue(val);\n !controlled && setInputValue(formatValue(val));\n setDropdownOpened(false);\n },\n });\n\n const _rightSection =\n rightSection ||\n (clearable && _value && !readOnly ? (\n <CloseButton\n variant=\"transparent\"\n onMouseDown={(event) => event.preventDefault()}\n tabIndex={-1}\n onClick={() => {\n setValue(null);\n !controlled && setInputValue('');\n }}\n unstyled={unstyled}\n {...clearButtonProps}\n />\n ) : null);\n\n useDidUpdate(() => {\n value !== undefined && !dropdownOpened && setInputValue(formatValue(value));\n }, [value]);\n\n return (\n <>\n <Input.Wrapper {...wrapperProps} __staticSelector=\"DateInput\">\n <Popover\n opened={dropdownOpened}\n trapFocus={false}\n position=\"bottom-start\"\n disabled={readOnly}\n withRoles={false}\n {...popoverProps}\n >\n <Popover.Target>\n <Input\n data-dates-input\n data-read-only={readOnly || undefined}\n autoComplete=\"off\"\n ref={ref}\n value={inputValue}\n onChange={handleInputChange}\n onBlur={handleInputBlur}\n onFocus={handleInputFocus}\n onClick={handleInputClick}\n readOnly={readOnly}\n rightSection={_rightSection}\n {...inputProps}\n {...others}\n __staticSelector=\"DateInput\"\n />\n </Popover.Target>\n <Popover.Dropdown onMouseDown={(event) => event.preventDefault()} data-dates-dropdown>\n <Calendar\n __staticSelector=\"DateInput\"\n {...calendarProps}\n classNames={classNames}\n styles={styles}\n unstyled={unstyled}\n __preventFocus\n minDate={minDate}\n maxDate={maxDate}\n locale={locale}\n getDayProps={_getDayProps}\n size={inputProps.size}\n date={_date}\n onDateChange={setDate}\n />\n </Popover.Dropdown>\n </Popover>\n </Input.Wrapper>\n <HiddenDatesInput name={name} form={form} value={_value} type=\"default\" />\n </>\n );\n});\n\nDateInput.displayName = '@mantine/dates/DateInput';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"DateInput.js","sources":["../../../src/components/DateInput/DateInput.tsx"],"sourcesContent":["import dayjs from 'dayjs';\nimport React, { forwardRef, useState, useEffect } from 'react';\nimport {\n DefaultProps,\n InputSharedProps,\n InputWrapperBaseProps,\n InputStylesNames,\n InputWrapperStylesNames,\n useInputProps,\n Input,\n PopoverProps,\n Popover,\n CloseButton,\n} from '@mantine/core';\nimport { useUncontrolled, useDidUpdate } from '@mantine/hooks';\nimport { Calendar, CalendarBaseProps, CalendarStylesNames, pickCalendarProps } from '../Calendar';\nimport { DecadeLevelSettings } from '../DecadeLevel';\nimport { YearLevelSettings } from '../YearLevel';\nimport { MonthLevelSettings } from '../MonthLevel';\nimport { HiddenDatesInput } from '../HiddenDatesInput';\nimport { assignTime } from '../../utils';\nimport { DateValue, CalendarLevel } from '../../types';\nimport { useDatesContext } from '../DatesProvider';\nimport { isDateValid } from './is-date-valid/is-date-valid';\nimport { dateStringParser } from './date-string-parser/date-string-parser';\n\nexport type DateInputStylesNames = CalendarStylesNames | InputStylesNames | InputWrapperStylesNames;\n\nexport interface DateInputProps\n extends DefaultProps<DateInputStylesNames>,\n InputSharedProps,\n InputWrapperBaseProps,\n CalendarBaseProps,\n DecadeLevelSettings,\n YearLevelSettings,\n MonthLevelSettings,\n Omit<React.ComponentPropsWithoutRef<'input'>, 'size' | 'value' | 'defaultValue' | 'onChange'> {\n /** Parses user input to convert it to Date object */\n dateParser?: (value: string) => Date | null;\n\n /** Value for controlled component */\n value?: DateValue;\n\n /** Default value for uncontrolled component */\n defaultValue?: DateValue;\n\n /** Called when value changes */\n onChange?(value: DateValue): void;\n\n /** Props added to Popover component */\n popoverProps?: Partial<Omit<PopoverProps, 'children'>>;\n\n /** Determines whether input value can be cleared, adds clear button to right section, false by default */\n clearable?: boolean;\n\n /** Props added to clear button */\n clearButtonProps?: React.ComponentPropsWithoutRef<'button'>;\n\n /** Dayjs format to display input value, \"MMMM D, YYYY\" by default */\n valueFormat?: string;\n\n /** Determines whether input value should be reverted to last known valid value on blur, true by default */\n fixOnBlur?: boolean;\n\n /** Determines whether value can be deselected when the user clicks on the selected date in the calendar or erases content of the input, true if clearable prop is set, false by default */\n allowDeselect?: boolean;\n\n /** Determines whether time (hours, minutes, seconds and milliseconds) should be preserved when new date is picked, true by default */\n preserveTime?: boolean;\n\n /** Max level that user can go up to (decade, year, month), defaults to decade */\n maxLevel?: CalendarLevel;\n\n /** Initial level displayed to the user (decade, year, month), used for uncontrolled component */\n defaultLevel?: CalendarLevel;\n\n /** Current level displayed to the user (decade, year, month), used for controlled component */\n level?: CalendarLevel;\n\n /** Called when level changes */\n onLevelChange?(level: CalendarLevel): void;\n}\n\nconst defaultProps: Partial<DateInputProps> = {\n valueFormat: 'MMMM D, YYYY',\n fixOnBlur: true,\n preserveTime: true,\n size: 'sm',\n};\n\nexport const DateInput = forwardRef<HTMLInputElement, DateInputProps>((props, ref) => {\n const {\n inputProps,\n wrapperProps,\n value,\n defaultValue,\n onChange,\n clearable,\n clearButtonProps,\n popoverProps,\n getDayProps,\n locale,\n valueFormat,\n dateParser,\n minDate,\n maxDate,\n fixOnBlur,\n onFocus,\n onBlur,\n onClick,\n readOnly,\n name,\n form,\n rightSection,\n unstyled,\n classNames,\n styles,\n allowDeselect,\n preserveTime,\n date,\n defaultDate,\n onDateChange,\n ...rest\n } = useInputProps('DateInput', defaultProps, props);\n const { calendarProps, others } = pickCalendarProps(rest);\n const ctx = useDatesContext();\n const defaultDateParser = (val: string) => {\n const parsedDate = dayjs(val, valueFormat, ctx.getLocale(locale)).toDate();\n return Number.isNaN(parsedDate.getTime()) ? dateStringParser(val) : parsedDate;\n };\n\n const _dateParser = dateParser || defaultDateParser;\n const _allowDeselect = clearable || allowDeselect;\n\n const formatValue = (val: Date) =>\n val ? dayjs(val).locale(ctx.getLocale(locale)).format(valueFormat) : '';\n\n const [_value, setValue, controlled] = useUncontrolled({\n value,\n defaultValue,\n finalValue: null,\n onChange,\n });\n\n const [_date, setDate] = useUncontrolled({\n value: date,\n defaultValue: defaultValue || defaultDate,\n finalValue: null,\n onChange: onDateChange,\n });\n\n useEffect(() => {\n if (controlled) {\n setDate(value);\n }\n }, [controlled, value]);\n\n const [inputValue, setInputValue] = useState(formatValue(_value));\n\n useEffect(() => {\n setInputValue(formatValue(_value));\n }, [ctx.getLocale(locale)]);\n\n const [dropdownOpened, setDropdownOpened] = useState(false);\n\n const handleInputChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n const val = event.currentTarget.value;\n setInputValue(val);\n\n if (val.trim() === '' && _allowDeselect) {\n setValue(null);\n } else {\n const dateValue = _dateParser(val);\n if (isDateValid({ date: dateValue, minDate, maxDate })) {\n setValue(dateValue);\n setDate(dateValue);\n }\n }\n };\n\n const handleInputBlur = (event: React.FocusEvent<HTMLInputElement>) => {\n onBlur?.(event);\n setDropdownOpened(false);\n fixOnBlur && setInputValue(formatValue(_value));\n };\n\n const handleInputFocus = (event: React.FocusEvent<HTMLInputElement>) => {\n onFocus?.(event);\n setDropdownOpened(true);\n };\n\n const handleInputClick = (event: React.MouseEvent<HTMLInputElement>) => {\n onClick?.(event);\n setDropdownOpened(true);\n };\n\n const _getDayProps = (day: Date) => ({\n ...getDayProps?.(day),\n selected: dayjs(_value).isSame(day, 'day'),\n onClick: () => {\n const valueWithTime = preserveTime ? assignTime(_value, day) : day;\n const val = _allowDeselect\n ? dayjs(_value).isSame(day, 'day')\n ? null\n : valueWithTime\n : valueWithTime;\n setValue(val);\n !controlled && setInputValue(formatValue(val));\n setDropdownOpened(false);\n },\n });\n\n const _rightSection =\n rightSection ||\n (clearable && _value && !readOnly ? (\n <CloseButton\n variant=\"transparent\"\n onMouseDown={(event) => event.preventDefault()}\n tabIndex={-1}\n onClick={() => {\n setValue(null);\n !controlled && setInputValue('');\n }}\n unstyled={unstyled}\n {...clearButtonProps}\n />\n ) : null);\n\n useDidUpdate(() => {\n value !== undefined && !dropdownOpened && setInputValue(formatValue(value));\n }, [value]);\n\n return (\n <>\n <Input.Wrapper {...wrapperProps} __staticSelector=\"DateInput\">\n <Popover\n opened={dropdownOpened}\n trapFocus={false}\n position=\"bottom-start\"\n disabled={readOnly}\n withRoles={false}\n {...popoverProps}\n >\n <Popover.Target>\n <Input\n data-dates-input\n data-read-only={readOnly || undefined}\n autoComplete=\"off\"\n ref={ref}\n value={inputValue}\n onChange={handleInputChange}\n onBlur={handleInputBlur}\n onFocus={handleInputFocus}\n onClick={handleInputClick}\n readOnly={readOnly}\n rightSection={_rightSection}\n {...inputProps}\n {...others}\n __staticSelector=\"DateInput\"\n />\n </Popover.Target>\n <Popover.Dropdown onMouseDown={(event) => event.preventDefault()} data-dates-dropdown>\n <Calendar\n __staticSelector=\"DateInput\"\n {...calendarProps}\n classNames={classNames}\n styles={styles}\n unstyled={unstyled}\n __preventFocus\n minDate={minDate}\n maxDate={maxDate}\n locale={locale}\n getDayProps={_getDayProps}\n size={inputProps.size}\n date={_date}\n onDateChange={setDate}\n />\n </Popover.Dropdown>\n </Popover>\n </Input.Wrapper>\n <HiddenDatesInput name={name} form={form} value={_value} type=\"default\" />\n </>\n );\n});\n\nDateInput.displayName = '@mantine/dates/DateInput';\n"],"names":[],"mappings":"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"}
|
|
@@ -106,7 +106,7 @@ const DecadeLevelGroup = forwardRef((props, ref) => {
|
|
|
106
106
|
variant,
|
|
107
107
|
size
|
|
108
108
|
});
|
|
109
|
-
const
|
|
109
|
+
const controlsRef = useRef([]);
|
|
110
110
|
const decades = Array(numberOfColumns).fill(0).map((_, decadeIndex) => {
|
|
111
111
|
const currentDecade = dayjs(decade).add(decadeIndex * 10, "years").toDate();
|
|
112
112
|
return /* @__PURE__ */ React.createElement(DecadeLevel, {
|
|
@@ -121,21 +121,20 @@ const DecadeLevelGroup = forwardRef((props, ref) => {
|
|
|
121
121
|
__onControlClick,
|
|
122
122
|
__onControlMouseEnter,
|
|
123
123
|
__onControlKeyDown: (event, payload) => handleControlKeyDown({
|
|
124
|
-
|
|
124
|
+
levelIndex: decadeIndex,
|
|
125
|
+
rowIndex: payload.rowIndex,
|
|
126
|
+
cellIndex: payload.cellIndex,
|
|
125
127
|
event,
|
|
126
|
-
|
|
127
|
-
controlsRef: controlsRefs,
|
|
128
|
-
numberOfColumns,
|
|
129
|
-
controlsPerRow: [3, 3, 3, 1]
|
|
128
|
+
controlsRef
|
|
130
129
|
}),
|
|
131
130
|
__getControlRef: (rowIndex, cellIndex, node) => {
|
|
132
|
-
if (!Array.isArray(
|
|
133
|
-
|
|
131
|
+
if (!Array.isArray(controlsRef.current[decadeIndex])) {
|
|
132
|
+
controlsRef.current[decadeIndex] = [];
|
|
134
133
|
}
|
|
135
|
-
if (!Array.isArray(
|
|
136
|
-
|
|
134
|
+
if (!Array.isArray(controlsRef.current[decadeIndex][rowIndex])) {
|
|
135
|
+
controlsRef.current[decadeIndex][rowIndex] = [];
|
|
137
136
|
}
|
|
138
|
-
|
|
137
|
+
controlsRef.current[decadeIndex][rowIndex][cellIndex] = node;
|
|
139
138
|
},
|
|
140
139
|
levelControlAriaLabel: typeof levelControlAriaLabel === "function" ? levelControlAriaLabel(currentDecade) : levelControlAriaLabel,
|
|
141
140
|
locale,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DecadeLevelGroup.js","sources":["../../../src/components/DecadeLevelGroup/DecadeLevelGroup.tsx"],"sourcesContent":["import React, { forwardRef, useRef } from 'react';\nimport { DefaultProps, Box, Selectors, useComponentDefaultProps } from '@mantine/core';\nimport dayjs from 'dayjs';\nimport { DecadeLevel, DecadeLevelStylesNames, DecadeLevelSettings } from '../DecadeLevel';\nimport { handleControlKeyDown } from '../../utils';\nimport useStyles from './DecadeLevelGroup.styles';\n\nexport type DecadeLevelGroupStylesNames = Selectors<typeof useStyles> | DecadeLevelStylesNames;\n\nexport interface DecadeLevelGroupProps\n extends DefaultProps<DecadeLevelGroupStylesNames>,\n Omit<\n DecadeLevelSettings,\n 'withPrevious' | 'withNext' | '__onControlKeyDown' | '__getControlRef'\n >,\n React.ComponentPropsWithoutRef<'div'> {\n variant?: string;\n __staticSelector?: string;\n\n /** Number of columns to render next to each other */\n numberOfColumns?: number;\n\n /** Decade that is currently displayed */\n decade: Date;\n\n /** Function that returns level control aria-label based on year date */\n levelControlAriaLabel?: ((decade: Date) => string) | string;\n}\n\nconst defaultProps: Partial<DecadeLevelGroupProps> = {\n numberOfColumns: 1,\n};\n\nexport const DecadeLevelGroup = forwardRef<HTMLDivElement, DecadeLevelGroupProps>((props, ref) => {\n const {\n // DecadeLevel settings\n decade,\n locale,\n minDate,\n maxDate,\n yearsListFormat,\n getYearControlProps,\n __onControlClick,\n __onControlMouseEnter,\n withCellSpacing,\n\n // CalendarHeader settings\n __preventFocus,\n nextIcon,\n previousIcon,\n nextLabel,\n previousLabel,\n onNext,\n onPrevious,\n nextDisabled,\n previousDisabled,\n\n // Other settings\n className,\n classNames,\n styles,\n unstyled,\n __staticSelector,\n __stopPropagation,\n numberOfColumns,\n levelControlAriaLabel,\n decadeLabelFormat,\n variant,\n size,\n ...others\n } = useComponentDefaultProps('DecadeLevelGroup', defaultProps, props);\n\n const { classes, cx } = useStyles(null, {\n name: ['DecadeLevelGroup', __staticSelector],\n styles,\n classNames,\n unstyled,\n variant,\n size,\n });\n\n const
|
|
1
|
+
{"version":3,"file":"DecadeLevelGroup.js","sources":["../../../src/components/DecadeLevelGroup/DecadeLevelGroup.tsx"],"sourcesContent":["import React, { forwardRef, useRef } from 'react';\nimport { DefaultProps, Box, Selectors, useComponentDefaultProps } from '@mantine/core';\nimport dayjs from 'dayjs';\nimport { DecadeLevel, DecadeLevelStylesNames, DecadeLevelSettings } from '../DecadeLevel';\nimport { handleControlKeyDown } from '../../utils';\nimport useStyles from './DecadeLevelGroup.styles';\n\nexport type DecadeLevelGroupStylesNames = Selectors<typeof useStyles> | DecadeLevelStylesNames;\n\nexport interface DecadeLevelGroupProps\n extends DefaultProps<DecadeLevelGroupStylesNames>,\n Omit<\n DecadeLevelSettings,\n 'withPrevious' | 'withNext' | '__onControlKeyDown' | '__getControlRef'\n >,\n React.ComponentPropsWithoutRef<'div'> {\n variant?: string;\n __staticSelector?: string;\n\n /** Number of columns to render next to each other */\n numberOfColumns?: number;\n\n /** Decade that is currently displayed */\n decade: Date;\n\n /** Function that returns level control aria-label based on year date */\n levelControlAriaLabel?: ((decade: Date) => string) | string;\n}\n\nconst defaultProps: Partial<DecadeLevelGroupProps> = {\n numberOfColumns: 1,\n};\n\nexport const DecadeLevelGroup = forwardRef<HTMLDivElement, DecadeLevelGroupProps>((props, ref) => {\n const {\n // DecadeLevel settings\n decade,\n locale,\n minDate,\n maxDate,\n yearsListFormat,\n getYearControlProps,\n __onControlClick,\n __onControlMouseEnter,\n withCellSpacing,\n\n // CalendarHeader settings\n __preventFocus,\n nextIcon,\n previousIcon,\n nextLabel,\n previousLabel,\n onNext,\n onPrevious,\n nextDisabled,\n previousDisabled,\n\n // Other settings\n className,\n classNames,\n styles,\n unstyled,\n __staticSelector,\n __stopPropagation,\n numberOfColumns,\n levelControlAriaLabel,\n decadeLabelFormat,\n variant,\n size,\n ...others\n } = useComponentDefaultProps('DecadeLevelGroup', defaultProps, props);\n\n const { classes, cx } = useStyles(null, {\n name: ['DecadeLevelGroup', __staticSelector],\n styles,\n classNames,\n unstyled,\n variant,\n size,\n });\n\n const controlsRef = useRef<HTMLButtonElement[][][]>([]);\n\n const decades = Array(numberOfColumns)\n .fill(0)\n .map((_, decadeIndex) => {\n const currentDecade = dayjs(decade)\n .add(decadeIndex * 10, 'years')\n .toDate();\n\n return (\n <DecadeLevel\n key={decadeIndex}\n variant={variant}\n size={size}\n yearsListFormat={yearsListFormat}\n decade={currentDecade}\n withNext={decadeIndex === numberOfColumns - 1}\n withPrevious={decadeIndex === 0}\n decadeLabelFormat={decadeLabelFormat}\n __onControlClick={__onControlClick}\n __onControlMouseEnter={__onControlMouseEnter}\n __onControlKeyDown={(event, payload) =>\n handleControlKeyDown({\n levelIndex: decadeIndex,\n rowIndex: payload.rowIndex,\n cellIndex: payload.cellIndex,\n event,\n controlsRef,\n })\n }\n __getControlRef={(rowIndex, cellIndex, node) => {\n if (!Array.isArray(controlsRef.current[decadeIndex])) {\n controlsRef.current[decadeIndex] = [];\n }\n\n if (!Array.isArray(controlsRef.current[decadeIndex][rowIndex])) {\n controlsRef.current[decadeIndex][rowIndex] = [];\n }\n\n controlsRef.current[decadeIndex][rowIndex][cellIndex] = node;\n }}\n levelControlAriaLabel={\n typeof levelControlAriaLabel === 'function'\n ? levelControlAriaLabel(currentDecade)\n : levelControlAriaLabel\n }\n locale={locale}\n minDate={minDate}\n maxDate={maxDate}\n __preventFocus={__preventFocus}\n __stopPropagation={__stopPropagation}\n nextIcon={nextIcon}\n previousIcon={previousIcon}\n nextLabel={nextLabel}\n previousLabel={previousLabel}\n onNext={onNext}\n onPrevious={onPrevious}\n nextDisabled={nextDisabled}\n previousDisabled={previousDisabled}\n getYearControlProps={getYearControlProps}\n __staticSelector={__staticSelector || 'DecadeLevelGroup'}\n classNames={classNames}\n styles={styles}\n unstyled={unstyled}\n withCellSpacing={withCellSpacing}\n />\n );\n });\n\n return (\n <Box className={cx(classes.decadeLevelGroup, className)} ref={ref} {...others}>\n {decades}\n </Box>\n );\n});\n\nDecadeLevelGroup.displayName = '@mantine/dates/DecadeLevelGroup';\n"],"names":[],"mappings":"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"}
|
|
@@ -124,7 +124,7 @@ const Month = forwardRef((props, ref) => {
|
|
|
124
124
|
size
|
|
125
125
|
};
|
|
126
126
|
const dates = getMonthDays(month, ctx.getFirstDayOfWeek(firstDayOfWeek));
|
|
127
|
-
const dateInTabOrder = getDateInTabOrder(dates, minDate, maxDate, getDayProps, excludeDate);
|
|
127
|
+
const dateInTabOrder = getDateInTabOrder(dates, minDate, maxDate, getDayProps, excludeDate, hideOutsideDates, month);
|
|
128
128
|
const rows = dates.map((row, rowIndex) => {
|
|
129
129
|
const cells = row.map((date, cellIndex) => {
|
|
130
130
|
const outside = !isSameMonth(date, month);
|