@canlooks/can-ui 0.0.87 → 0.0.89
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/dist/cjs/components/curd/curd.js +14 -14
- package/dist/cjs/components/curd/curd.style.js +1 -1
- package/dist/cjs/components/dataGrid/dataGrid.style.js +1 -0
- package/dist/cjs/components/dateTimePicker/timer.js +1 -4
- package/dist/cjs/components/dialog/dialog.js +0 -8
- package/dist/cjs/components/popper/popper.js +1 -0
- package/dist/cjs/components/popper/popperContext.d.ts +1 -1
- package/dist/cjs/components/popper/popperContext.js +11 -9
- package/dist/esm/components/curd/curd.js +14 -14
- package/dist/esm/components/curd/curd.style.js +1 -1
- package/dist/esm/components/dataGrid/dataGrid.style.js +1 -0
- package/dist/esm/components/dateTimePicker/timer.js +1 -4
- package/dist/esm/components/dialog/dialog.js +0 -8
- package/dist/esm/components/popper/popper.js +1 -0
- package/dist/esm/components/popper/popperContext.d.ts +1 -1
- package/dist/esm/components/popper/popperContext.js +12 -10
- package/package.json +1 -1
|
@@ -123,7 +123,7 @@ exports.Curd = (0, react_1.memo)((props) => {
|
|
|
123
123
|
const res = await loadRows(props.paginatable !== false
|
|
124
124
|
? {
|
|
125
125
|
page: innerPage.current,
|
|
126
|
-
pageSize: innerPageSize.current
|
|
126
|
+
pageSize: innerPageSize.current
|
|
127
127
|
}
|
|
128
128
|
: void 0, innerFilterRef.current.getFormValue(), innerOrderColumn.current
|
|
129
129
|
? {
|
|
@@ -187,24 +187,24 @@ exports.Curd = (0, react_1.memo)((props) => {
|
|
|
187
187
|
innerLoadRows().then();
|
|
188
188
|
message.success(deleteName + '成功').then();
|
|
189
189
|
};
|
|
190
|
-
return ((0, jsx_runtime_1.jsxs)("div", { ...wrapperProps, css: curd_style_1.style, className: (0, utils_1.clsx)(curd_style_1.classes.root, wrapperProps?.className), "data-variant": variant, children: [(0, jsx_runtime_1.
|
|
190
|
+
return ((0, jsx_runtime_1.jsxs)("div", { ...wrapperProps, css: curd_style_1.style, className: (0, utils_1.clsx)(curd_style_1.classes.root, wrapperProps?.className), "data-variant": variant, children: [(0, jsx_runtime_1.jsx)(form_1.Form, { ...(0, utils_1.mergeComponentProps)({
|
|
191
191
|
variant: 'plain',
|
|
192
192
|
initialValue: initialFilterValue
|
|
193
193
|
}, filterProps, {
|
|
194
194
|
ref: innerFilterRef,
|
|
195
195
|
onFinish: filterHandler
|
|
196
|
-
}), children:
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
196
|
+
}), children: renderFilterableFn() }), (creatable || toolbarLeft || toolbarRight || reloadable || resizable || columnConfigurable) &&
|
|
197
|
+
(0, jsx_runtime_1.jsxs)("div", { className: curd_style_1.classes.toolbar, children: [(0, jsx_runtime_1.jsxs)("div", { className: curd_style_1.classes.toolbarLeft, children: [creatable &&
|
|
198
|
+
(0, jsx_runtime_1.jsxs)(button_1.Button, { prefix: (0, jsx_runtime_1.jsx)(icon_1.Icon, { icon: faPlus_1.faPlus }), ...createButtonProps, onClick: createHandler, children: [createName, dataName] }), toolbarLeft] }), (0, jsx_runtime_1.jsxs)("div", { className: curd_style_1.classes.toolbarRight, children: [!!toolbarRight &&
|
|
199
|
+
(0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [toolbarRight, (0, jsx_runtime_1.jsx)(divider_1.Divider, { className: curd_style_1.classes.divider, orientation: "vertical" })] }), reloadable &&
|
|
200
|
+
(0, jsx_runtime_1.jsx)(tooltip_1.Tooltip, { title: "\u5237\u65B0", children: (0, jsx_runtime_1.jsx)(button_1.Button, { shape: "circular", variant: "text", color: "text.secondary", prefix: (0, jsx_runtime_1.jsx)(icon_1.Icon, { icon: faRotateRight_1.faRotateRight }), loading: innerLoading.current, onClick: reloadHandler }) }), resizable &&
|
|
201
|
+
(0, jsx_runtime_1.jsx)(curdResizable_1.CurdResizable, { innerSize: innerSize.current, setInnerSize: setInnerSize }), columnConfigurable &&
|
|
202
|
+
(0, jsx_runtime_1.jsx)(curdColumnConfig_1.CurdColumnConfig, { columns: orderedColumns, innerVisible: innerVisible.current, setInnerVisible: setInnerVisible, setInnerOrder: setInnerOrder })] })] }), (0, jsx_runtime_1.jsx)("div", { className: curd_style_1.classes.card, children: (0, jsx_runtime_1.jsx)(dataGrid_1.DataGrid, { ...dataGridProps, columns: actualColumns, tableProps: {
|
|
203
|
+
...props.tableProps,
|
|
204
|
+
...resizable && { size: innerSize.current }
|
|
205
|
+
}, loading: innerLoading.current, rows: innerRows.current, paginatable: !loadRows && props.paginatable, renderPagination: loadRows && props.paginatable !== false
|
|
206
|
+
? () => (0, jsx_runtime_1.jsx)(pagination_1.Pagination, { ...props.paginationProps, total: innerTotal.current, page: innerPage.current, onPageChange: setInnerPage, pageSize: innerPageSize.current, onPageSizeChange: setInnerPageSize })
|
|
207
|
+
: props.renderPagination, orderColumn: innerOrderColumn.current, orderType: innerOrderType.current, onOrderChange: orderChangeHandler }) }), (creatable || updatable) &&
|
|
208
208
|
(0, jsx_runtime_1.jsx)(curdDialog_1.CurdDialog, { ...dialogProps, ref: curdDialogRef, onFinish: finishHandler, curdProps: props })] }));
|
|
209
209
|
});
|
|
210
210
|
exports.Curd.Filter = curdFilterable_1.CurdFilterable;
|
|
@@ -34,10 +34,7 @@ function TimerItem({ type, value, onChange }) {
|
|
|
34
34
|
if (min && min.isSame(value, 'date') && min.get(type) > num) {
|
|
35
35
|
return true;
|
|
36
36
|
}
|
|
37
|
-
|
|
38
|
-
return true;
|
|
39
|
-
}
|
|
40
|
-
return false;
|
|
37
|
+
return !!(max && max.isSame(value, 'date') && max.get(type) < num);
|
|
41
38
|
};
|
|
42
39
|
const scrollerRef = (0, react_1.useRef)(null);
|
|
43
40
|
const selectedItemRef = (0, popper_1.useScrollToTarget)(scrollerRef);
|
|
@@ -63,14 +63,6 @@ function Dialog({ icon, title, footer, prefix, suffix, width = 420, minWidth, ma
|
|
|
63
63
|
el.dataset.borderBottom = (el.scrollHeight - el.clientHeight > el.scrollTop).toString();
|
|
64
64
|
}
|
|
65
65
|
};
|
|
66
|
-
(0, react_1.useEffect)(() => {
|
|
67
|
-
if (scrollBehavior === 'card') {
|
|
68
|
-
bodyRef.current.addEventListener('scroll', onScroll);
|
|
69
|
-
return () => {
|
|
70
|
-
bodyRef.current.removeEventListener('scroll', onScroll);
|
|
71
|
-
};
|
|
72
|
-
}
|
|
73
|
-
}, [scrollBehavior]);
|
|
74
66
|
(0, react_1.useEffect)(() => {
|
|
75
67
|
if (scrollBehavior !== 'card') {
|
|
76
68
|
return;
|
|
@@ -500,6 +500,7 @@ function Popper({ ref, popperRef, anchorElement, container = document.body, effe
|
|
|
500
500
|
*/
|
|
501
501
|
const beforeOpenCallbacks = (0, react_1.useRef)(new Set());
|
|
502
502
|
const triggerBeforeOpen = () => {
|
|
503
|
+
console.log('trigger', beforeOpenCallbacks.current);
|
|
503
504
|
for (const cb of beforeOpenCallbacks.current) {
|
|
504
505
|
cb();
|
|
505
506
|
}
|
|
@@ -17,4 +17,4 @@ export declare function usePopperContext(): {
|
|
|
17
17
|
* 当弹框打开时,滚动至已选项
|
|
18
18
|
* @returns {RefObject} ref
|
|
19
19
|
*/
|
|
20
|
-
export declare function useScrollToTarget<T extends HTMLElement>(scrollerRef: RefObject<
|
|
20
|
+
export declare function useScrollToTarget<T extends HTMLElement>(scrollerRef: RefObject<HTMLElement | null>): RefObject<T | null>;
|
|
@@ -23,16 +23,18 @@ function usePopperContext() {
|
|
|
23
23
|
function useScrollToTarget(scrollerRef) {
|
|
24
24
|
const ref = (0, react_1.useRef)(null);
|
|
25
25
|
const { beforeOpenCallbacks } = usePopperContext();
|
|
26
|
-
(0, react_1.
|
|
27
|
-
const
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
}
|
|
26
|
+
const beforeOpen = (0, react_1.useCallback)(() => {
|
|
27
|
+
const targetEl = ref.current;
|
|
28
|
+
const scrollerEl = scrollerRef.current;
|
|
29
|
+
if (targetEl && scrollerEl && scrollerEl.scrollHeight > scrollerEl.clientHeight) {
|
|
30
|
+
scrollerEl.scrollTop = targetEl.offsetTop + targetEl.clientHeight / 2 - scrollerEl.clientHeight / 2;
|
|
31
|
+
}
|
|
32
|
+
}, []);
|
|
33
|
+
(0, react_1.useMemo)(() => {
|
|
32
34
|
beforeOpenCallbacks.add(beforeOpen);
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
35
|
+
}, []);
|
|
36
|
+
(0, react_1.useEffect)(() => () => {
|
|
37
|
+
beforeOpenCallbacks.delete(beforeOpen);
|
|
36
38
|
}, []);
|
|
37
39
|
return ref;
|
|
38
40
|
}
|
|
@@ -120,7 +120,7 @@ export const Curd = memo((props) => {
|
|
|
120
120
|
const res = await loadRows(props.paginatable !== false
|
|
121
121
|
? {
|
|
122
122
|
page: innerPage.current,
|
|
123
|
-
pageSize: innerPageSize.current
|
|
123
|
+
pageSize: innerPageSize.current
|
|
124
124
|
}
|
|
125
125
|
: void 0, innerFilterRef.current.getFormValue(), innerOrderColumn.current
|
|
126
126
|
? {
|
|
@@ -184,24 +184,24 @@ export const Curd = memo((props) => {
|
|
|
184
184
|
innerLoadRows().then();
|
|
185
185
|
message.success(deleteName + '成功').then();
|
|
186
186
|
};
|
|
187
|
-
return (_jsxs("div", { ...wrapperProps, css: style, className: clsx(classes.root, wrapperProps?.className), "data-variant": variant, children: [
|
|
187
|
+
return (_jsxs("div", { ...wrapperProps, css: style, className: clsx(classes.root, wrapperProps?.className), "data-variant": variant, children: [_jsx(Form, { ...mergeComponentProps({
|
|
188
188
|
variant: 'plain',
|
|
189
189
|
initialValue: initialFilterValue
|
|
190
190
|
}, filterProps, {
|
|
191
191
|
ref: innerFilterRef,
|
|
192
192
|
onFinish: filterHandler
|
|
193
|
-
}), children:
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
193
|
+
}), children: renderFilterableFn() }), (creatable || toolbarLeft || toolbarRight || reloadable || resizable || columnConfigurable) &&
|
|
194
|
+
_jsxs("div", { className: classes.toolbar, children: [_jsxs("div", { className: classes.toolbarLeft, children: [creatable &&
|
|
195
|
+
_jsxs(Button, { prefix: _jsx(Icon, { icon: faPlus }), ...createButtonProps, onClick: createHandler, children: [createName, dataName] }), toolbarLeft] }), _jsxs("div", { className: classes.toolbarRight, children: [!!toolbarRight &&
|
|
196
|
+
_jsxs(_Fragment, { children: [toolbarRight, _jsx(Divider, { className: classes.divider, orientation: "vertical" })] }), reloadable &&
|
|
197
|
+
_jsx(Tooltip, { title: "\u5237\u65B0", children: _jsx(Button, { shape: "circular", variant: "text", color: "text.secondary", prefix: _jsx(Icon, { icon: faRotateRight }), loading: innerLoading.current, onClick: reloadHandler }) }), resizable &&
|
|
198
|
+
_jsx(CurdResizable, { innerSize: innerSize.current, setInnerSize: setInnerSize }), columnConfigurable &&
|
|
199
|
+
_jsx(CurdColumnConfig, { columns: orderedColumns, innerVisible: innerVisible.current, setInnerVisible: setInnerVisible, setInnerOrder: setInnerOrder })] })] }), _jsx("div", { className: classes.card, children: _jsx(DataGrid, { ...dataGridProps, columns: actualColumns, tableProps: {
|
|
200
|
+
...props.tableProps,
|
|
201
|
+
...resizable && { size: innerSize.current }
|
|
202
|
+
}, loading: innerLoading.current, rows: innerRows.current, paginatable: !loadRows && props.paginatable, renderPagination: loadRows && props.paginatable !== false
|
|
203
|
+
? () => _jsx(Pagination, { ...props.paginationProps, total: innerTotal.current, page: innerPage.current, onPageChange: setInnerPage, pageSize: innerPageSize.current, onPageSizeChange: setInnerPageSize })
|
|
204
|
+
: props.renderPagination, orderColumn: innerOrderColumn.current, orderType: innerOrderType.current, onOrderChange: orderChangeHandler }) }), (creatable || updatable) &&
|
|
205
205
|
_jsx(CurdDialog, { ...dialogProps, ref: curdDialogRef, onFinish: finishHandler, curdProps: props })] }));
|
|
206
206
|
});
|
|
207
207
|
Curd.Filter = CurdFilterable;
|
|
@@ -31,10 +31,7 @@ function TimerItem({ type, value, onChange }) {
|
|
|
31
31
|
if (min && min.isSame(value, 'date') && min.get(type) > num) {
|
|
32
32
|
return true;
|
|
33
33
|
}
|
|
34
|
-
|
|
35
|
-
return true;
|
|
36
|
-
}
|
|
37
|
-
return false;
|
|
34
|
+
return !!(max && max.isSame(value, 'date') && max.get(type) < num);
|
|
38
35
|
};
|
|
39
36
|
const scrollerRef = useRef(null);
|
|
40
37
|
const selectedItemRef = useScrollToTarget(scrollerRef);
|
|
@@ -60,14 +60,6 @@ export function Dialog({ icon, title, footer, prefix, suffix, width = 420, minWi
|
|
|
60
60
|
el.dataset.borderBottom = (el.scrollHeight - el.clientHeight > el.scrollTop).toString();
|
|
61
61
|
}
|
|
62
62
|
};
|
|
63
|
-
useEffect(() => {
|
|
64
|
-
if (scrollBehavior === 'card') {
|
|
65
|
-
bodyRef.current.addEventListener('scroll', onScroll);
|
|
66
|
-
return () => {
|
|
67
|
-
bodyRef.current.removeEventListener('scroll', onScroll);
|
|
68
|
-
};
|
|
69
|
-
}
|
|
70
|
-
}, [scrollBehavior]);
|
|
71
63
|
useEffect(() => {
|
|
72
64
|
if (scrollBehavior !== 'card') {
|
|
73
65
|
return;
|
|
@@ -497,6 +497,7 @@ export function Popper({ ref, popperRef, anchorElement, container = document.bod
|
|
|
497
497
|
*/
|
|
498
498
|
const beforeOpenCallbacks = useRef(new Set());
|
|
499
499
|
const triggerBeforeOpen = () => {
|
|
500
|
+
console.log('trigger', beforeOpenCallbacks.current);
|
|
500
501
|
for (const cb of beforeOpenCallbacks.current) {
|
|
501
502
|
cb();
|
|
502
503
|
}
|
|
@@ -17,4 +17,4 @@ export declare function usePopperContext(): {
|
|
|
17
17
|
* 当弹框打开时,滚动至已选项
|
|
18
18
|
* @returns {RefObject} ref
|
|
19
19
|
*/
|
|
20
|
-
export declare function useScrollToTarget<T extends HTMLElement>(scrollerRef: RefObject<
|
|
20
|
+
export declare function useScrollToTarget<T extends HTMLElement>(scrollerRef: RefObject<HTMLElement | null>): RefObject<T | null>;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { createContext, useContext, useRef, useEffect } from 'react';
|
|
1
|
+
import { createContext, useContext, useRef, useEffect, useMemo, useCallback } from 'react';
|
|
2
2
|
export const PopperContext = createContext({
|
|
3
3
|
autoClose: false,
|
|
4
4
|
open: false,
|
|
@@ -18,16 +18,18 @@ export function usePopperContext() {
|
|
|
18
18
|
export function useScrollToTarget(scrollerRef) {
|
|
19
19
|
const ref = useRef(null);
|
|
20
20
|
const { beforeOpenCallbacks } = usePopperContext();
|
|
21
|
-
|
|
22
|
-
const
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
}
|
|
21
|
+
const beforeOpen = useCallback(() => {
|
|
22
|
+
const targetEl = ref.current;
|
|
23
|
+
const scrollerEl = scrollerRef.current;
|
|
24
|
+
if (targetEl && scrollerEl && scrollerEl.scrollHeight > scrollerEl.clientHeight) {
|
|
25
|
+
scrollerEl.scrollTop = targetEl.offsetTop + targetEl.clientHeight / 2 - scrollerEl.clientHeight / 2;
|
|
26
|
+
}
|
|
27
|
+
}, []);
|
|
28
|
+
useMemo(() => {
|
|
27
29
|
beforeOpenCallbacks.add(beforeOpen);
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
30
|
+
}, []);
|
|
31
|
+
useEffect(() => () => {
|
|
32
|
+
beforeOpenCallbacks.delete(beforeOpen);
|
|
31
33
|
}, []);
|
|
32
34
|
return ref;
|
|
33
35
|
}
|