linear-react-components-ui 2.2.0-beta.10 → 2.2.0-beta.11
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/lib/assets/styles/datepicker2.css +11 -81
- package/lib/inputs/select/Dropdown.js +1 -11
- package/lib/inputs/select/Dropdown.js.map +1 -1
- package/lib/inputs/select/multiple/index.js +2 -5
- package/lib/inputs/select/multiple/index.js.map +1 -1
- package/lib/inputs/select/simple/index.js +2 -5
- package/lib/inputs/select/simple/index.js.map +1 -1
- package/lib/inputs/select/types.d.ts +2 -3
- package/lib/inputs/types.d.ts +1 -2
- package/lib/inputs2/date/{hooks/useCalendarPosition.d.ts → base/constants.d.ts} +1 -1
- package/lib/inputs2/date/base/constants.js +69 -0
- package/lib/inputs2/date/base/constants.js.map +1 -0
- package/lib/inputs2/date/datefield/base.js +214 -691
- package/lib/inputs2/date/datefield/base.js.map +1 -1
- package/lib/inputs2/date/datefield/calendarbox.d.ts +6 -0
- package/lib/inputs2/date/datefield/calendarbox.js +228 -0
- package/lib/inputs2/date/datefield/calendarbox.js.map +1 -0
- package/lib/inputs2/date/datefield/triggers.js +4 -4
- package/lib/inputs2/date/datefield/triggers.js.map +1 -1
- package/lib/inputs2/date/datefield/types.d.ts +12 -5
- package/lib/inputs2/date/dateperiodfield/base.js +809 -694
- package/lib/inputs2/date/dateperiodfield/base.js.map +1 -1
- package/lib/inputs2/date/dateperiodfield/calendarbox.d.ts +6 -0
- package/lib/inputs2/date/dateperiodfield/calendarbox.js +282 -0
- package/lib/inputs2/date/dateperiodfield/calendarbox.js.map +1 -0
- package/lib/inputs2/date/dateperiodfield/triggers.js +9 -21
- package/lib/inputs2/date/dateperiodfield/triggers.js.map +1 -1
- package/lib/inputs2/date/dateperiodfield/types.d.ts +23 -13
- package/lib/inputs2/date/helpers.d.ts +4 -44
- package/lib/inputs2/date/helpers.js +4 -200
- package/lib/inputs2/date/helpers.js.map +1 -1
- package/lib/inputs2/date/types.d.ts +1 -22
- package/lib/inputs2/date/types.js.map +1 -1
- package/lib/inputs2/selectfield/base.js +33 -16
- package/lib/inputs2/selectfield/base.js.map +1 -1
- package/lib/inputs2/selectfield/context.d.ts +1 -0
- package/lib/inputs2/selectfield/context.js.map +1 -1
- package/lib/inputs2/selectfield/item.js +52 -50
- package/lib/inputs2/selectfield/item.js.map +1 -1
- package/lib/inputs2/selectfield/listbox.d.ts +1 -2
- package/lib/inputs2/selectfield/listbox.js +0 -10
- package/lib/inputs2/selectfield/listbox.js.map +1 -1
- package/lib/inputs2/selectfield/types.d.ts +3 -5
- package/lib/inputs2/selectfield/types.js.map +1 -1
- package/lib/node_modules/lodash/lodash.js +2 -2
- package/lib/node_modules/lodash/lodash.js.map +1 -1
- package/lib/panel/Content.js +82 -28
- package/lib/panel/Content.js.map +1 -1
- package/lib/panel/Default.d.ts +1 -1
- package/lib/panel/Default.js +54 -60
- package/lib/panel/Default.js.map +1 -1
- package/lib/panel/helpers.js +16 -1
- package/lib/panel/helpers.js.map +1 -1
- package/lib/panel/types.d.ts +6 -3
- package/package.json +1 -1
- package/lib/hooks/useScrollEndReached/index.d.ts +0 -8
- package/lib/hooks/useScrollEndReached/index.js +0 -69
- package/lib/hooks/useScrollEndReached/index.js.map +0 -1
- package/lib/hooks/useScrollEndReached/types.d.ts +0 -7
- package/lib/inputs2/date/calendarbox.d.ts +0 -23
- package/lib/inputs2/date/calendarbox.js +0 -254
- package/lib/inputs2/date/calendarbox.js.map +0 -1
- package/lib/inputs2/date/hooks/useCalendarPosition.js +0 -93
- package/lib/inputs2/date/hooks/useCalendarPosition.js.map +0 -1
- package/lib/inputs2/date/hooks/useDateCalendarState.d.ts +0 -14
- package/lib/inputs2/date/hooks/useDateCalendarState.js +0 -250
- package/lib/inputs2/date/hooks/useDateCalendarState.js.map +0 -1
- package/lib/inputs2/date/hooks/useDateMask.d.ts +0 -22
- package/lib/inputs2/date/hooks/useDateMask.js +0 -143
- package/lib/inputs2/date/hooks/useDateMask.js.map +0 -1
- package/lib/inputs2/date/timeselector.d.ts +0 -17
- package/lib/inputs2/date/timeselector.js +0 -226
- package/lib/inputs2/date/timeselector.js.map +0 -1
- package/lib/node_modules/moment/dist/locale/pt-br.js +0 -54
- package/lib/node_modules/moment/dist/locale/pt-br.js.map +0 -1
package/lib/panel/Content.js
CHANGED
|
@@ -1,11 +1,10 @@
|
|
|
1
1
|
import { jsx } from "react/jsx-runtime";
|
|
2
2
|
import { c as compilerRuntimeExports } from "../_virtual/compiler-runtime.js";
|
|
3
|
-
import { useContext, useRef } from "react";
|
|
4
|
-
import PanelContext from "./helpers.js";
|
|
3
|
+
import { useContext, useRef, useEffect } from "react";
|
|
4
|
+
import PanelContext, { getCurrentThreshold } from "./helpers.js";
|
|
5
5
|
import NoPermission from "../noPermission/index.js";
|
|
6
|
-
import { useScrollEndReached } from "../hooks/useScrollEndReached/index.js";
|
|
7
6
|
const PanelContent = (t0) => {
|
|
8
|
-
const $ = compilerRuntimeExports.c(
|
|
7
|
+
const $ = compilerRuntimeExports.c(18);
|
|
9
8
|
let children;
|
|
10
9
|
let customClass;
|
|
11
10
|
let rest;
|
|
@@ -28,43 +27,98 @@ const PanelContent = (t0) => {
|
|
|
28
27
|
opened,
|
|
29
28
|
onEndReached,
|
|
30
29
|
onEndReachedThreshold: t1,
|
|
31
|
-
itemsCount,
|
|
32
30
|
hideContent
|
|
33
31
|
} = useContext(PanelContext);
|
|
34
32
|
const onEndReachedThreshold = t1 === void 0 ? 0.1 : t1;
|
|
35
33
|
const rootElementRef = useRef(null);
|
|
34
|
+
const lastScrollHeight = useRef(0);
|
|
35
|
+
const enableOnEndReached = useRef(true);
|
|
36
36
|
let t2;
|
|
37
|
-
if ($[4] !==
|
|
38
|
-
t2 = {
|
|
39
|
-
|
|
40
|
-
onEndReached
|
|
41
|
-
|
|
42
|
-
|
|
37
|
+
if ($[4] !== onEndReached || $[5] !== onEndReachedThreshold) {
|
|
38
|
+
t2 = async () => {
|
|
39
|
+
const element = rootElementRef.current;
|
|
40
|
+
if (element && onEndReached) {
|
|
41
|
+
const {
|
|
42
|
+
scrollTop,
|
|
43
|
+
scrollHeight,
|
|
44
|
+
clientHeight
|
|
45
|
+
} = element;
|
|
46
|
+
const scrollOffset = scrollHeight - clientHeight - scrollTop - 1;
|
|
47
|
+
const threshold = getCurrentThreshold(element, onEndReachedThreshold);
|
|
48
|
+
if (scrollOffset <= threshold && enableOnEndReached.current) {
|
|
49
|
+
enableOnEndReached.current = false;
|
|
50
|
+
await new Promise((resolve) => {
|
|
51
|
+
resolve(onEndReached());
|
|
52
|
+
});
|
|
53
|
+
lastScrollHeight.current = scrollHeight;
|
|
54
|
+
}
|
|
55
|
+
}
|
|
43
56
|
};
|
|
44
|
-
$[4] =
|
|
45
|
-
$[5] =
|
|
46
|
-
$[6] =
|
|
47
|
-
$[7] = t2;
|
|
57
|
+
$[4] = onEndReached;
|
|
58
|
+
$[5] = onEndReachedThreshold;
|
|
59
|
+
$[6] = t2;
|
|
48
60
|
} else {
|
|
49
|
-
t2 = $[
|
|
61
|
+
t2 = $[6];
|
|
50
62
|
}
|
|
51
|
-
|
|
63
|
+
const onScrollEndReached = t2;
|
|
64
|
+
let t3;
|
|
65
|
+
if ($[7] !== onEndReached || $[8] !== onScrollEndReached) {
|
|
66
|
+
t3 = () => {
|
|
67
|
+
let observer;
|
|
68
|
+
if (rootElementRef?.current && onEndReached) {
|
|
69
|
+
observer = new ResizeObserver(() => {
|
|
70
|
+
const currentElement = rootElementRef.current;
|
|
71
|
+
if (currentElement) {
|
|
72
|
+
const {
|
|
73
|
+
scrollHeight: scrollHeight_0
|
|
74
|
+
} = currentElement;
|
|
75
|
+
if (scrollHeight_0 && scrollHeight_0 !== lastScrollHeight.current) {
|
|
76
|
+
enableOnEndReached.current = true;
|
|
77
|
+
observer?.disconnect();
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
});
|
|
81
|
+
observer.observe(rootElementRef.current);
|
|
82
|
+
rootElementRef.current.addEventListener("scroll", onScrollEndReached);
|
|
83
|
+
rootElementRef.current.addEventListener("resize", onScrollEndReached);
|
|
84
|
+
}
|
|
85
|
+
return () => {
|
|
86
|
+
rootElementRef.current?.removeEventListener("scroll", onScrollEndReached);
|
|
87
|
+
rootElementRef.current?.removeEventListener("resize", onScrollEndReached);
|
|
88
|
+
observer?.disconnect();
|
|
89
|
+
};
|
|
90
|
+
};
|
|
91
|
+
$[7] = onEndReached;
|
|
92
|
+
$[8] = onScrollEndReached;
|
|
93
|
+
$[9] = t3;
|
|
94
|
+
} else {
|
|
95
|
+
t3 = $[9];
|
|
96
|
+
}
|
|
97
|
+
let t4;
|
|
98
|
+
if ($[10] !== onScrollEndReached) {
|
|
99
|
+
t4 = [onScrollEndReached];
|
|
100
|
+
$[10] = onScrollEndReached;
|
|
101
|
+
$[11] = t4;
|
|
102
|
+
} else {
|
|
103
|
+
t4 = $[11];
|
|
104
|
+
}
|
|
105
|
+
useEffect(t3, t4);
|
|
52
106
|
if (!opened) {
|
|
53
107
|
return null;
|
|
54
108
|
}
|
|
55
|
-
let
|
|
56
|
-
if ($[
|
|
57
|
-
|
|
58
|
-
$[
|
|
59
|
-
$[
|
|
60
|
-
$[
|
|
61
|
-
$[
|
|
62
|
-
$[
|
|
63
|
-
$[
|
|
109
|
+
let t5;
|
|
110
|
+
if ($[12] !== children || $[13] !== customClass || $[14] !== hideContent || $[15] !== opened || $[16] !== rest) {
|
|
111
|
+
t5 = hideContent ? /* @__PURE__ */ jsx(NoPermission, {}) : /* @__PURE__ */ jsx("div", { ref: rootElementRef, className: `panel-content ${customClass ?? ""}`, ...rest, children: opened && children });
|
|
112
|
+
$[12] = children;
|
|
113
|
+
$[13] = customClass;
|
|
114
|
+
$[14] = hideContent;
|
|
115
|
+
$[15] = opened;
|
|
116
|
+
$[16] = rest;
|
|
117
|
+
$[17] = t5;
|
|
64
118
|
} else {
|
|
65
|
-
|
|
119
|
+
t5 = $[17];
|
|
66
120
|
}
|
|
67
|
-
return
|
|
121
|
+
return t5;
|
|
68
122
|
};
|
|
69
123
|
export {
|
|
70
124
|
PanelContent as default
|
package/lib/panel/Content.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Content.js","sources":["../../src/lib/panel/Content.tsx"],"sourcesContent":["import { useContext, useRef } from 'react';\nimport PanelContext from './helpers';\nimport NoPermission from '../noPermission';\nimport { IPanelContentProps } from './types';\
|
|
1
|
+
{"version":3,"file":"Content.js","sources":["../../src/lib/panel/Content.tsx"],"sourcesContent":["import { useCallback, useContext, useEffect, useRef } from 'react';\nimport PanelContext, { getCurrentThreshold } from './helpers';\nimport NoPermission from '../noPermission';\nimport { IPanelContentProps } from './types';\n\nconst PanelContent = ({ customClass, children, ...rest }: IPanelContentProps) => {\n const {\n opened, onEndReached, onEndReachedThreshold = 0.1, hideContent,\n } = useContext(PanelContext);\n const rootElementRef = useRef<HTMLDivElement>(null);\n const lastScrollHeight = useRef(0);\n const enableOnEndReached = useRef(true);\n\n const onScrollEndReached = useCallback(async () => {\n const element = rootElementRef.current;\n\n if (element && onEndReached) {\n const { scrollTop, scrollHeight, clientHeight } = element;\n const scrollOffset = scrollHeight - clientHeight - scrollTop - 1;\n const threshold = getCurrentThreshold(element, onEndReachedThreshold);\n\n if (scrollOffset <= threshold && enableOnEndReached.current) {\n enableOnEndReached.current = false;\n await new Promise((resolve) => {\n resolve(onEndReached());\n });\n lastScrollHeight.current = scrollHeight;\n }\n }\n }, [\n onEndReached, onEndReachedThreshold,\n rootElementRef.current, lastScrollHeight.current,\n ]);\n\n useEffect(() => {\n let observer: ResizeObserver | null;\n if (rootElementRef?.current && onEndReached) {\n observer = new ResizeObserver(() => {\n const currentElement = rootElementRef.current;\n if (currentElement) {\n const { scrollHeight } = currentElement as HTMLDivElement;\n if (scrollHeight && scrollHeight !== lastScrollHeight.current) {\n enableOnEndReached.current = true;\n observer?.disconnect();\n }\n }\n });\n\n observer.observe(rootElementRef.current);\n rootElementRef.current.addEventListener('scroll', onScrollEndReached);\n rootElementRef.current.addEventListener('resize', onScrollEndReached);\n }\n\n return () => {\n rootElementRef.current?.removeEventListener('scroll', onScrollEndReached);\n rootElementRef.current?.removeEventListener('resize', onScrollEndReached);\n observer?.disconnect();\n };\n }, [onScrollEndReached]);\n\n if (!opened) return null;\n return (\n hideContent\n ? (\n <NoPermission />\n )\n : (\n <div\n ref={rootElementRef}\n className={`panel-content ${customClass ?? ''}`}\n {...rest}>\n {opened && children}\n </div>\n )\n );\n};\n\nexport default PanelContent;\n"],"names":["PanelContent","t0","$","_c","children","customClass","rest","opened","onEndReached","onEndReachedThreshold","t1","hideContent","useContext","PanelContext","undefined","rootElementRef","useRef","lastScrollHeight","enableOnEndReached","t2","element","current","scrollTop","scrollHeight","clientHeight","scrollOffset","threshold","getCurrentThreshold","Promise","resolve","onScrollEndReached","t3","observer","ResizeObserver","currentElement","scrollHeight_0","disconnect","observe","addEventListener","removeEventListener","t4","useEffect","t5"],"mappings":"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"}
|
package/lib/panel/Default.d.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { IPanelProps } from './types';
|
|
2
|
-
declare const DefaultPanel: ({ startOpened, toggleable, customClass, children, title, gridCols, onEndReached, onEndReachedThreshold,
|
|
2
|
+
declare const DefaultPanel: ({ startOpened, toggleable, customClass, children, title, gridCols, onEndReached, onEndReachedThreshold, permissionAttr, colorStyle, ...rest }: IPanelProps) => import("react/jsx-runtime").JSX.Element | null;
|
|
3
3
|
export default DefaultPanel;
|
package/lib/panel/Default.js
CHANGED
|
@@ -6,12 +6,11 @@ import PanelHeader from "./Header.js";
|
|
|
6
6
|
import PanelContext from "./helpers.js";
|
|
7
7
|
import { OPTIONS_ON_DENIED, actionsOnPermissionDenied } from "../permissionValidations.js";
|
|
8
8
|
const DefaultPanel = (t0) => {
|
|
9
|
-
const $ = compilerRuntimeExports.c(
|
|
9
|
+
const $ = compilerRuntimeExports.c(37);
|
|
10
10
|
let children;
|
|
11
11
|
let colorStyle;
|
|
12
12
|
let customClass;
|
|
13
13
|
let gridCols;
|
|
14
|
-
let itemsCount;
|
|
15
14
|
let onEndReached;
|
|
16
15
|
let permissionAttr;
|
|
17
16
|
let rest;
|
|
@@ -29,7 +28,6 @@ const DefaultPanel = (t0) => {
|
|
|
29
28
|
gridCols,
|
|
30
29
|
onEndReached,
|
|
31
30
|
onEndReachedThreshold: t2,
|
|
32
|
-
itemsCount,
|
|
33
31
|
permissionAttr,
|
|
34
32
|
colorStyle,
|
|
35
33
|
...rest
|
|
@@ -39,27 +37,25 @@ const DefaultPanel = (t0) => {
|
|
|
39
37
|
$[2] = colorStyle;
|
|
40
38
|
$[3] = customClass;
|
|
41
39
|
$[4] = gridCols;
|
|
42
|
-
$[5] =
|
|
43
|
-
$[6] =
|
|
44
|
-
$[7] =
|
|
45
|
-
$[8] =
|
|
46
|
-
$[9] =
|
|
47
|
-
$[10] =
|
|
48
|
-
$[11] =
|
|
49
|
-
$[12] = toggleable;
|
|
40
|
+
$[5] = onEndReached;
|
|
41
|
+
$[6] = permissionAttr;
|
|
42
|
+
$[7] = rest;
|
|
43
|
+
$[8] = t1;
|
|
44
|
+
$[9] = t2;
|
|
45
|
+
$[10] = title;
|
|
46
|
+
$[11] = toggleable;
|
|
50
47
|
} else {
|
|
51
48
|
children = $[1];
|
|
52
49
|
colorStyle = $[2];
|
|
53
50
|
customClass = $[3];
|
|
54
51
|
gridCols = $[4];
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
toggleable = $[12];
|
|
52
|
+
onEndReached = $[5];
|
|
53
|
+
permissionAttr = $[6];
|
|
54
|
+
rest = $[7];
|
|
55
|
+
t1 = $[8];
|
|
56
|
+
t2 = $[9];
|
|
57
|
+
title = $[10];
|
|
58
|
+
toggleable = $[11];
|
|
63
59
|
}
|
|
64
60
|
const startOpened = t1 === void 0 ? true : t1;
|
|
65
61
|
const onEndReachedThreshold = t2 === void 0 ? 0.1 : t2;
|
|
@@ -69,45 +65,45 @@ const DefaultPanel = (t0) => {
|
|
|
69
65
|
unvisible
|
|
70
66
|
} = OPTIONS_ON_DENIED;
|
|
71
67
|
let t3;
|
|
72
|
-
if ($[
|
|
68
|
+
if ($[12] !== permissionAttr) {
|
|
73
69
|
t3 = actionsOnPermissionDenied([hideContent, unvisible], permissionAttr);
|
|
74
|
-
$[
|
|
75
|
-
$[
|
|
70
|
+
$[12] = permissionAttr;
|
|
71
|
+
$[13] = t3;
|
|
76
72
|
} else {
|
|
77
|
-
t3 = $[
|
|
73
|
+
t3 = $[13];
|
|
78
74
|
}
|
|
79
75
|
const [onDenied] = useState(t3);
|
|
80
76
|
let t4;
|
|
81
|
-
if ($[
|
|
77
|
+
if ($[14] !== colorStyle || $[15] !== customClass) {
|
|
82
78
|
t4 = () => {
|
|
83
79
|
let cssClass = `panel-component ${customClass}`;
|
|
84
80
|
cssClass = cssClass + (colorStyle !== "" ? ` -${colorStyle}` : "");
|
|
85
81
|
return cssClass;
|
|
86
82
|
};
|
|
87
|
-
$[
|
|
88
|
-
$[
|
|
89
|
-
$[
|
|
83
|
+
$[14] = colorStyle;
|
|
84
|
+
$[15] = customClass;
|
|
85
|
+
$[16] = t4;
|
|
90
86
|
} else {
|
|
91
|
-
t4 = $[
|
|
87
|
+
t4 = $[16];
|
|
92
88
|
}
|
|
93
89
|
const getCssClass = t4;
|
|
94
90
|
let t5;
|
|
95
|
-
if ($[
|
|
91
|
+
if ($[17] !== children || $[18] !== getCssClass || $[19] !== rest || $[20] !== title) {
|
|
96
92
|
t5 = () => /* @__PURE__ */ jsxs("div", { className: getCssClass(), ...rest, children: [
|
|
97
93
|
title && /* @__PURE__ */ jsx(PanelHeader, { title }),
|
|
98
94
|
children
|
|
99
95
|
] });
|
|
100
|
-
$[
|
|
101
|
-
$[
|
|
102
|
-
$[
|
|
103
|
-
$[
|
|
104
|
-
$[
|
|
96
|
+
$[17] = children;
|
|
97
|
+
$[18] = getCssClass;
|
|
98
|
+
$[19] = rest;
|
|
99
|
+
$[20] = title;
|
|
100
|
+
$[21] = t5;
|
|
105
101
|
} else {
|
|
106
|
-
t5 = $[
|
|
102
|
+
t5 = $[21];
|
|
107
103
|
}
|
|
108
104
|
const renderContent = t5;
|
|
109
105
|
let t6;
|
|
110
|
-
if ($[
|
|
106
|
+
if ($[22] !== onDenied.hideContent || $[23] !== onDenied.unvisible || $[24] !== onEndReached || $[25] !== onEndReachedThreshold || $[26] !== opened || $[27] !== toggleable) {
|
|
111
107
|
t6 = () => ({
|
|
112
108
|
toggleable,
|
|
113
109
|
handlerToggleable: () => {
|
|
@@ -116,50 +112,48 @@ const DefaultPanel = (t0) => {
|
|
|
116
112
|
opened,
|
|
117
113
|
onEndReached,
|
|
118
114
|
onEndReachedThreshold,
|
|
119
|
-
itemsCount,
|
|
120
115
|
hideContent: onDenied.hideContent,
|
|
121
116
|
unvisible: onDenied.unvisible
|
|
122
117
|
});
|
|
123
|
-
$[
|
|
124
|
-
$[
|
|
125
|
-
$[
|
|
126
|
-
$[
|
|
127
|
-
$[
|
|
128
|
-
$[
|
|
129
|
-
$[
|
|
130
|
-
$[30] = t6;
|
|
118
|
+
$[22] = onDenied.hideContent;
|
|
119
|
+
$[23] = onDenied.unvisible;
|
|
120
|
+
$[24] = onEndReached;
|
|
121
|
+
$[25] = onEndReachedThreshold;
|
|
122
|
+
$[26] = opened;
|
|
123
|
+
$[27] = toggleable;
|
|
124
|
+
$[28] = t6;
|
|
131
125
|
} else {
|
|
132
|
-
t6 = $[
|
|
126
|
+
t6 = $[28];
|
|
133
127
|
}
|
|
134
128
|
const contextValues = t6;
|
|
135
129
|
if (onDenied.unvisible) {
|
|
136
130
|
return null;
|
|
137
131
|
}
|
|
138
132
|
let t7;
|
|
139
|
-
if ($[
|
|
133
|
+
if ($[29] !== contextValues) {
|
|
140
134
|
t7 = contextValues();
|
|
141
|
-
$[
|
|
142
|
-
$[
|
|
135
|
+
$[29] = contextValues;
|
|
136
|
+
$[30] = t7;
|
|
143
137
|
} else {
|
|
144
|
-
t7 = $[
|
|
138
|
+
t7 = $[30];
|
|
145
139
|
}
|
|
146
140
|
let t8;
|
|
147
|
-
if ($[
|
|
141
|
+
if ($[31] !== gridCols || $[32] !== renderContent) {
|
|
148
142
|
t8 = gridCols ? /* @__PURE__ */ jsx(GridCol, { cols: gridCols, children: renderContent() }) : renderContent();
|
|
149
|
-
$[
|
|
150
|
-
$[
|
|
151
|
-
$[
|
|
143
|
+
$[31] = gridCols;
|
|
144
|
+
$[32] = renderContent;
|
|
145
|
+
$[33] = t8;
|
|
152
146
|
} else {
|
|
153
|
-
t8 = $[
|
|
147
|
+
t8 = $[33];
|
|
154
148
|
}
|
|
155
149
|
let t9;
|
|
156
|
-
if ($[
|
|
150
|
+
if ($[34] !== t7 || $[35] !== t8) {
|
|
157
151
|
t9 = /* @__PURE__ */ jsx(PanelContext.Provider, { value: t7, children: t8 });
|
|
158
|
-
$[
|
|
159
|
-
$[
|
|
160
|
-
$[
|
|
152
|
+
$[34] = t7;
|
|
153
|
+
$[35] = t8;
|
|
154
|
+
$[36] = t9;
|
|
161
155
|
} else {
|
|
162
|
-
t9 = $[
|
|
156
|
+
t9 = $[36];
|
|
163
157
|
}
|
|
164
158
|
return t9;
|
|
165
159
|
};
|
package/lib/panel/Default.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Default.js","sources":["../../src/lib/panel/Default.tsx"],"sourcesContent":["import { useState } from 'react';\nimport Grid from '../gridlayout';\nimport Header from './Header';\nimport PanelContext from './helpers';\nimport { actionsOnPermissionDenied, OPTIONS_ON_DENIED } from '../permissionValidations';\nimport { IPanelProps, ContextProps } from './types';\nimport { OnDenied } from '../@types/PermissionAttr';\n\nconst DefaultPanel = ({\n startOpened = true, toggleable, customClass, children, title, gridCols, onEndReached,\n onEndReachedThreshold = 0.1,
|
|
1
|
+
{"version":3,"file":"Default.js","sources":["../../src/lib/panel/Default.tsx"],"sourcesContent":["import { useState } from 'react';\nimport Grid from '../gridlayout';\nimport Header from './Header';\nimport PanelContext from './helpers';\nimport { actionsOnPermissionDenied, OPTIONS_ON_DENIED } from '../permissionValidations';\nimport { IPanelProps, ContextProps } from './types';\nimport { OnDenied } from '../@types/PermissionAttr';\n\nconst DefaultPanel = ({\n startOpened = true, toggleable, customClass, children, title, gridCols, onEndReached,\n onEndReachedThreshold = 0.1, permissionAttr, colorStyle, ...rest\n}: IPanelProps) => {\n const [opened, setOpened] = useState(startOpened);\n const { hideContent, unvisible } = OPTIONS_ON_DENIED;\n const [onDenied] =\n useState<OnDenied>(actionsOnPermissionDenied([hideContent, unvisible], permissionAttr));\n\n const getCssClass = () => {\n let cssClass = `panel-component ${customClass}`;\n cssClass += colorStyle !== '' ? ` -${colorStyle}` : '';\n return cssClass;\n };\n\n const renderContent = () => (\n <div className={getCssClass()} {...rest}>\n {title && <Header title={title} />}\n {children}\n </div>\n );\n\n const contextValues = () => ({\n toggleable,\n handlerToggleable: () => { setOpened(!opened); },\n opened,\n onEndReached,\n onEndReachedThreshold,\n hideContent: onDenied.hideContent,\n unvisible: onDenied.unvisible,\n }) as ContextProps;\n\n if (onDenied.unvisible) return null;\n\n return (\n <PanelContext.Provider value={contextValues()}>\n { gridCols\n ? (\n <Grid cols={gridCols}>{renderContent()}</Grid>\n )\n : (\n renderContent()\n )}\n </PanelContext.Provider>\n );\n};\n\nexport default DefaultPanel;\n"],"names":["DefaultPanel","t0","$","_c","children","colorStyle","customClass","gridCols","onEndReached","permissionAttr","rest","t1","t2","title","toggleable","startOpened","onEndReachedThreshold","undefined","opened","setOpened","useState","hideContent","unvisible","OPTIONS_ON_DENIED","t3","actionsOnPermissionDenied","onDenied","t4","cssClass","getCssClass","t5","Header","renderContent","t6","handlerToggleable","contextValues","t7","t8","Grid","t9"],"mappings":"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"}
|
package/lib/panel/helpers.js
CHANGED
|
@@ -1,6 +1,21 @@
|
|
|
1
1
|
import { createContext } from "react";
|
|
2
|
+
function getCurrentThreshold(scrollableElement, scrollThreshold) {
|
|
3
|
+
const MIN_THRESHOLD = 0;
|
|
4
|
+
const MAX_THRESHOLD = 1;
|
|
5
|
+
if (scrollThreshold < MIN_THRESHOLD) return MIN_THRESHOLD;
|
|
6
|
+
if (scrollThreshold > MAX_THRESHOLD) return MAX_THRESHOLD;
|
|
7
|
+
const {
|
|
8
|
+
scrollHeight,
|
|
9
|
+
clientHeight
|
|
10
|
+
} = scrollableElement;
|
|
11
|
+
const offsetHeight = scrollHeight - clientHeight;
|
|
12
|
+
const calculatedScrollThreshold = Math.round(scrollHeight * scrollThreshold);
|
|
13
|
+
const maxScrollThreshold = Math.round(offsetHeight - offsetHeight * 0.3);
|
|
14
|
+
return Math.min(calculatedScrollThreshold, maxScrollThreshold);
|
|
15
|
+
}
|
|
2
16
|
const PanelContext = createContext({});
|
|
3
17
|
export {
|
|
4
|
-
PanelContext as default
|
|
18
|
+
PanelContext as default,
|
|
19
|
+
getCurrentThreshold
|
|
5
20
|
};
|
|
6
21
|
//# sourceMappingURL=helpers.js.map
|
package/lib/panel/helpers.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helpers.js","sources":["../../src/lib/panel/helpers.ts"],"sourcesContent":["import { createContext } from 'react';\nimport { ContextProps } from './types';\n\nexport function getCurrentThreshold(\n scrollableElement: HTMLDivElement,\n scrollThreshold: number,\n): number {\n const MIN_THRESHOLD = 0;\n const MAX_THRESHOLD = 1;\n if (scrollThreshold < MIN_THRESHOLD) return MIN_THRESHOLD;\n if (scrollThreshold > MAX_THRESHOLD) return MAX_THRESHOLD;\n const { scrollHeight, clientHeight } = scrollableElement;\n const offsetHeight = scrollHeight - clientHeight;\n\n const calculatedScrollThreshold = Math.round(scrollHeight * scrollThreshold);\n const maxScrollThreshold = Math.round(offsetHeight - (offsetHeight * 0.3));\n\n return Math.min(calculatedScrollThreshold, maxScrollThreshold);\n}\n\nconst PanelContext = createContext<ContextProps>({} as ContextProps);\n\nexport default PanelContext;\n"],"names":["PanelContext","createContext"],"mappings":";
|
|
1
|
+
{"version":3,"file":"helpers.js","sources":["../../src/lib/panel/helpers.ts"],"sourcesContent":["import { createContext } from 'react';\nimport { ContextProps } from './types';\n\nexport function getCurrentThreshold(\n scrollableElement: HTMLDivElement,\n scrollThreshold: number,\n): number {\n const MIN_THRESHOLD = 0;\n const MAX_THRESHOLD = 1;\n if (scrollThreshold < MIN_THRESHOLD) return MIN_THRESHOLD;\n if (scrollThreshold > MAX_THRESHOLD) return MAX_THRESHOLD;\n const { scrollHeight, clientHeight } = scrollableElement;\n const offsetHeight = scrollHeight - clientHeight;\n\n const calculatedScrollThreshold = Math.round(scrollHeight * scrollThreshold);\n const maxScrollThreshold = Math.round(offsetHeight - (offsetHeight * 0.3));\n\n return Math.min(calculatedScrollThreshold, maxScrollThreshold);\n}\n\nconst PanelContext = createContext<ContextProps>({} as ContextProps);\n\nexport default PanelContext;\n"],"names":["getCurrentThreshold","scrollableElement","scrollThreshold","MIN_THRESHOLD","MAX_THRESHOLD","scrollHeight","clientHeight","offsetHeight","calculatedScrollThreshold","Math","round","maxScrollThreshold","min","PanelContext","createContext"],"mappings":";AAGO,SAASA,oBACdC,mBACAC,iBACQ;AACR,QAAMC,gBAAgB;AACtB,QAAMC,gBAAgB;AACtB,MAAIF,kBAAkBC,cAAe,QAAOA;AAC5C,MAAID,kBAAkBE,cAAe,QAAOA;AAC5C,QAAM;AAAA,IAAEC;AAAAA,IAAcC;AAAAA,EAAAA,IAAiBL;AACvC,QAAMM,eAAeF,eAAeC;AAEpC,QAAME,4BAA4BC,KAAKC,MAAML,eAAeH,eAAe;AAC3E,QAAMS,qBAAqBF,KAAKC,MAAMH,eAAgBA,eAAe,GAAI;AAEzE,SAAOE,KAAKG,IAAIJ,2BAA2BG,kBAAkB;AAC/D;AAEA,MAAME,eAAeC,cAA4B,CAAA,CAAkB;"}
|
package/lib/panel/types.d.ts
CHANGED
|
@@ -2,10 +2,9 @@ import { ComponentPropsWithoutRef, ReactElement, ReactNode } from 'react';
|
|
|
2
2
|
import { PermissionAttr } from '../@types/PermissionAttr';
|
|
3
3
|
import { default as ColorStyles } from '../internals/colorStyles';
|
|
4
4
|
import { IconNames } from '../@types/Icon';
|
|
5
|
-
import { UseScrollEndReachedParams } from '../hooks/useScrollEndReached/types';
|
|
6
5
|
export type Func = () => void;
|
|
7
6
|
export type AsyncFunc = () => Promise<void>;
|
|
8
|
-
export interface IPanelProps extends Omit<ComponentPropsWithoutRef<'div'>, 'className'
|
|
7
|
+
export interface IPanelProps extends Omit<ComponentPropsWithoutRef<'div'>, 'className'> {
|
|
9
8
|
customClass?: string;
|
|
10
9
|
startOpened?: boolean;
|
|
11
10
|
toggleable?: boolean;
|
|
@@ -13,6 +12,8 @@ export interface IPanelProps extends Omit<ComponentPropsWithoutRef<'div'>, 'clas
|
|
|
13
12
|
colorStyle?: typeof ColorStyles | string;
|
|
14
13
|
gridCols?: string;
|
|
15
14
|
title?: string;
|
|
15
|
+
onEndReached?: Func | AsyncFunc;
|
|
16
|
+
onEndReachedThreshold?: number;
|
|
16
17
|
permissionAttr?: PermissionAttr | PermissionAttr[];
|
|
17
18
|
}
|
|
18
19
|
export interface IPanelContentProps extends Omit<ComponentPropsWithoutRef<'div'>, 'className'> {
|
|
@@ -27,11 +28,13 @@ export interface IPanelHeaderProps extends Omit<ComponentPropsWithoutRef<'div'>,
|
|
|
27
28
|
customClassForTitle?: string;
|
|
28
29
|
headerColored?: boolean;
|
|
29
30
|
}
|
|
30
|
-
export type ContextProps =
|
|
31
|
+
export type ContextProps = {
|
|
31
32
|
toggleable: boolean;
|
|
32
33
|
handlerToggleable: () => void;
|
|
33
34
|
opened: boolean;
|
|
34
35
|
hideContent: boolean;
|
|
36
|
+
onEndReached?: Func | AsyncFunc;
|
|
37
|
+
onEndReachedThreshold: number;
|
|
35
38
|
};
|
|
36
39
|
export interface IParameterFunction {
|
|
37
40
|
props: any;
|
package/package.json
CHANGED
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import { AsyncFunc, Func, UseScrollEndReachedParams } from './types';
|
|
2
|
-
export interface ScrollEndReachedParams extends UseScrollEndReachedParams {
|
|
3
|
-
elementRef: React.RefObject<HTMLElement | null>;
|
|
4
|
-
onEndReached?: Func | AsyncFunc;
|
|
5
|
-
onEndReachedThreshold?: number;
|
|
6
|
-
}
|
|
7
|
-
export declare function getCurrentThreshold(scrollableElement: HTMLElement, scrollThreshold: number): number;
|
|
8
|
-
export declare function useScrollEndReached({ elementRef, onEndReached, onEndReachedThreshold, itemsCount, }: ScrollEndReachedParams): void;
|
|
@@ -1,69 +0,0 @@
|
|
|
1
|
-
import { useRef, useEffect } from "react";
|
|
2
|
-
function getCurrentThreshold(scrollableElement, scrollThreshold) {
|
|
3
|
-
const MIN_THRESHOLD = 0;
|
|
4
|
-
const MAX_THRESHOLD = 1;
|
|
5
|
-
if (scrollThreshold < MIN_THRESHOLD) return MIN_THRESHOLD;
|
|
6
|
-
if (scrollThreshold > MAX_THRESHOLD) return MAX_THRESHOLD;
|
|
7
|
-
const {
|
|
8
|
-
scrollHeight,
|
|
9
|
-
clientHeight
|
|
10
|
-
} = scrollableElement;
|
|
11
|
-
const scrollableHeight = Math.max(scrollHeight - clientHeight, 0);
|
|
12
|
-
const thresholdBase = Math.min(clientHeight, scrollableHeight);
|
|
13
|
-
return Math.round(thresholdBase * scrollThreshold);
|
|
14
|
-
}
|
|
15
|
-
function useScrollEndReached({
|
|
16
|
-
elementRef,
|
|
17
|
-
onEndReached,
|
|
18
|
-
onEndReachedThreshold = 0.25,
|
|
19
|
-
itemsCount
|
|
20
|
-
}) {
|
|
21
|
-
const lastScrollTop = useRef(null);
|
|
22
|
-
const enableOnEndReached = useRef(true);
|
|
23
|
-
const lastItemsCount = useRef(itemsCount);
|
|
24
|
-
const waitingForItems = useRef(false);
|
|
25
|
-
useEffect(() => {
|
|
26
|
-
if (itemsCount !== void 0 && lastItemsCount.current !== itemsCount) {
|
|
27
|
-
lastItemsCount.current = itemsCount;
|
|
28
|
-
waitingForItems.current = false;
|
|
29
|
-
enableOnEndReached.current = true;
|
|
30
|
-
}
|
|
31
|
-
}, [itemsCount]);
|
|
32
|
-
const onScrollEndReached = async () => {
|
|
33
|
-
const element = elementRef.current;
|
|
34
|
-
if (element && onEndReached) {
|
|
35
|
-
const {
|
|
36
|
-
scrollTop,
|
|
37
|
-
scrollHeight,
|
|
38
|
-
clientHeight
|
|
39
|
-
} = element;
|
|
40
|
-
const isScrollingDown = lastScrollTop.current === null || scrollTop > lastScrollTop.current;
|
|
41
|
-
lastScrollTop.current = scrollTop;
|
|
42
|
-
const scrollOffset = scrollHeight - clientHeight - scrollTop - 1;
|
|
43
|
-
const threshold = getCurrentThreshold(element, onEndReachedThreshold);
|
|
44
|
-
if (scrollOffset <= threshold && isScrollingDown && enableOnEndReached.current && !waitingForItems.current) {
|
|
45
|
-
enableOnEndReached.current = false;
|
|
46
|
-
waitingForItems.current = itemsCount !== void 0;
|
|
47
|
-
try {
|
|
48
|
-
await onEndReached();
|
|
49
|
-
} finally {
|
|
50
|
-
enableOnEndReached.current = itemsCount === void 0;
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
};
|
|
55
|
-
useEffect(() => {
|
|
56
|
-
const element_0 = elementRef.current;
|
|
57
|
-
if (element_0 && onEndReached) {
|
|
58
|
-
element_0.addEventListener("scroll", onScrollEndReached);
|
|
59
|
-
}
|
|
60
|
-
return () => {
|
|
61
|
-
element_0?.removeEventListener("scroll", onScrollEndReached);
|
|
62
|
-
};
|
|
63
|
-
}, [onEndReached, onEndReachedThreshold]);
|
|
64
|
-
}
|
|
65
|
-
export {
|
|
66
|
-
getCurrentThreshold,
|
|
67
|
-
useScrollEndReached
|
|
68
|
-
};
|
|
69
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../src/lib/hooks/useScrollEndReached/index.ts"],"sourcesContent":["import { useEffect, useRef } from \"react\";\nimport { AsyncFunc, Func, UseScrollEndReachedParams } from \"./types\";\n\nexport interface ScrollEndReachedParams extends UseScrollEndReachedParams {\n elementRef: React.RefObject<HTMLElement | null>;\n onEndReached?: Func | AsyncFunc;\n onEndReachedThreshold?: number;\n}\n\nexport function getCurrentThreshold(\n scrollableElement: HTMLElement,\n scrollThreshold: number,\n): number {\n const MIN_THRESHOLD = 0;\n const MAX_THRESHOLD = 1;\n if (scrollThreshold < MIN_THRESHOLD) return MIN_THRESHOLD;\n if (scrollThreshold > MAX_THRESHOLD) return MAX_THRESHOLD;\n const { scrollHeight, clientHeight } = scrollableElement;\n const scrollableHeight = Math.max(scrollHeight - clientHeight, 0);\n const thresholdBase = Math.min(clientHeight, scrollableHeight);\n\n return Math.round(thresholdBase * scrollThreshold);\n}\n\nexport function useScrollEndReached({\n elementRef,\n onEndReached,\n onEndReachedThreshold = 0.25,\n itemsCount,\n}: ScrollEndReachedParams) {\n const lastScrollTop = useRef<number | null>(null);\n const enableOnEndReached = useRef(true);\n const lastItemsCount = useRef<number | undefined>(itemsCount);\n const waitingForItems = useRef(false);\n\n useEffect(() => {\n if (itemsCount !== undefined && lastItemsCount.current !== itemsCount) {\n lastItemsCount.current = itemsCount;\n waitingForItems.current = false;\n enableOnEndReached.current = true;\n }\n }, [itemsCount]);\n\n const onScrollEndReached = async () => {\n const element = elementRef.current;\n\n if (element && onEndReached) {\n const { scrollTop, scrollHeight, clientHeight } = element;\n const isScrollingDown =\n lastScrollTop.current === null || scrollTop > lastScrollTop.current;\n lastScrollTop.current = scrollTop;\n const scrollOffset = scrollHeight - clientHeight - scrollTop - 1;\n const threshold = getCurrentThreshold(element, onEndReachedThreshold);\n\n if (\n scrollOffset <= threshold &&\n isScrollingDown &&\n enableOnEndReached.current &&\n !waitingForItems.current\n ) {\n enableOnEndReached.current = false;\n waitingForItems.current = itemsCount !== undefined;\n try {\n await onEndReached();\n } finally {\n enableOnEndReached.current = itemsCount === undefined;\n }\n }\n }\n };\n\n useEffect(() => {\n const element = elementRef.current;\n if (element && onEndReached) {\n element.addEventListener('scroll', onScrollEndReached);\n }\n\n return () => {\n element?.removeEventListener('scroll', onScrollEndReached);\n };\n }, [onEndReached, onEndReachedThreshold]);\n}\n"],"names":["getCurrentThreshold","scrollableElement","scrollThreshold","MIN_THRESHOLD","MAX_THRESHOLD","scrollHeight","clientHeight","scrollableHeight","Math","max","thresholdBase","min","round","useScrollEndReached","elementRef","onEndReached","onEndReachedThreshold","itemsCount","lastScrollTop","useRef","enableOnEndReached","lastItemsCount","waitingForItems","useEffect","undefined","current","onScrollEndReached","element","scrollTop","isScrollingDown","scrollOffset","threshold","addEventListener","removeEventListener"],"mappings":";AASO,SAASA,oBACdC,mBACAC,iBACQ;AACR,QAAMC,gBAAgB;AACtB,QAAMC,gBAAgB;AACtB,MAAIF,kBAAkBC,cAAe,QAAOA;AAC5C,MAAID,kBAAkBE,cAAe,QAAOA;AAC5C,QAAM;AAAA,IAAEC;AAAAA,IAAcC;AAAAA,EAAAA,IAAiBL;AACvC,QAAMM,mBAAmBC,KAAKC,IAAIJ,eAAeC,cAAc,CAAC;AAChE,QAAMI,gBAAgBF,KAAKG,IAAIL,cAAcC,gBAAgB;AAE7D,SAAOC,KAAKI,MAAMF,gBAAgBR,eAAe;AACnD;AAEO,SAASW,oBAAoB;AAAA,EAClCC;AAAAA,EACAC;AAAAA,EACAC,wBAAwB;AAAA,EACxBC;AACsB,GAAG;AACzB,QAAMC,gBAAgBC,OAAsB,IAAI;AAChD,QAAMC,qBAAqBD,OAAO,IAAI;AACtC,QAAME,iBAAiBF,OAA2BF,UAAU;AAC5D,QAAMK,kBAAkBH,OAAO,KAAK;AAEpCI,YAAU,MAAM;AACd,QAAIN,eAAeO,UAAaH,eAAeI,YAAYR,YAAY;AACrEI,qBAAeI,UAAUR;AACzBK,sBAAgBG,UAAU;AAC1BL,yBAAmBK,UAAU;AAAA,IAC/B;AAAA,EACF,GAAG,CAACR,UAAU,CAAC;AAEf,QAAMS,qBAAqB,YAAY;AACrC,UAAMC,UAAUb,WAAWW;AAE3B,QAAIE,WAAWZ,cAAc;AAC3B,YAAM;AAAA,QAAEa;AAAAA,QAAWvB;AAAAA,QAAcC;AAAAA,MAAAA,IAAiBqB;AAClD,YAAME,kBACJX,cAAcO,YAAY,QAAQG,YAAYV,cAAcO;AAC9DP,oBAAcO,UAAUG;AACxB,YAAME,eAAezB,eAAeC,eAAesB,YAAY;AAC/D,YAAMG,YAAY/B,oBAAoB2B,SAASX,qBAAqB;AAEpE,UACEc,gBAAgBC,aAChBF,mBACAT,mBAAmBK,WACnB,CAACH,gBAAgBG,SACjB;AACAL,2BAAmBK,UAAU;AAC7BH,wBAAgBG,UAAUR,eAAeO;AACzC,YAAI;AACF,gBAAMT,aAAAA;AAAAA,QACR,UAAA;AACEK,6BAAmBK,UAAUR,eAAeO;AAAAA,QAC9C;AAAA,MACF;AAAA,IACF;AAAA,EACF;AAEAD,YAAU,MAAM;AACd,UAAMI,YAAUb,WAAWW;AAC3B,QAAIE,aAAWZ,cAAc;AAC3BY,gBAAQK,iBAAiB,UAAUN,kBAAkB;AAAA,IACvD;AAEA,WAAO,MAAM;AACXC,iBAASM,oBAAoB,UAAUP,kBAAkB;AAAA,IAC3D;AAAA,EACF,GAAG,CAACX,cAAcC,qBAAqB,CAAC;AAC1C;"}
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
import { Moment } from 'moment';
|
|
2
|
-
import { ReactNode, RefObject } from 'react';
|
|
3
|
-
interface CalendarDayState {
|
|
4
|
-
isSelected: boolean;
|
|
5
|
-
isInRange?: boolean;
|
|
6
|
-
isDisabled?: boolean;
|
|
7
|
-
}
|
|
8
|
-
interface CalendarBoxProps {
|
|
9
|
-
testIdPrefix: string;
|
|
10
|
-
headerId: string;
|
|
11
|
-
calendarBoxOpen: boolean;
|
|
12
|
-
activeDescendant: string;
|
|
13
|
-
calendarDisplayDate: Moment;
|
|
14
|
-
containerRef: RefObject<HTMLDivElement | null>;
|
|
15
|
-
onNextMonth: () => void;
|
|
16
|
-
onPreviousMonth: () => void;
|
|
17
|
-
getDayState: (day: Moment) => CalendarDayState;
|
|
18
|
-
onSelectDay: (day: Moment) => void;
|
|
19
|
-
children?: ReactNode;
|
|
20
|
-
}
|
|
21
|
-
declare const CalendarBox: import('react').ForwardRefExoticComponent<CalendarBoxProps & import('react').RefAttributes<HTMLDivElement>>;
|
|
22
|
-
export { CalendarBox };
|
|
23
|
-
export type { CalendarBoxProps, CalendarDayState };
|