@canlooks/can-ui 0.0.88 → 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.
@@ -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.jsxs)(form_1.Form, { ...(0, utils_1.mergeComponentProps)({
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: [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) &&
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;
@@ -88,7 +88,7 @@ exports.style = (0, utils_1.defineCss)(({ spacing, text, background, borderRadiu
88
88
  min-height: 0;
89
89
  border-radius: ${borderRadius}px;
90
90
 
91
- .${loading_style_1.classes.container} {
91
+ .${loading_style_1.classes.root} {
92
92
  height: 100%;
93
93
  }
94
94
  }
@@ -139,6 +139,7 @@ exports.style = (0, utils_1.defineCss)(({ spacing, mode, gray, text, colors, eas
139
139
  }
140
140
 
141
141
  .${exports.classes.empty} {
142
+ height: auto;
142
143
  position: sticky;
143
144
  left: 0;
144
145
  }
@@ -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
- if (max && max.isSame(value, 'date') && max.get(type) < num) {
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);
@@ -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<Element | null>): RefObject<T | null>;
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.useEffect)(() => {
27
- const beforeOpen = () => {
28
- if (ref.current && scrollerRef.current && scrollerRef.current.scrollHeight > scrollerRef.current.clientHeight) {
29
- scrollerRef.current.scrollTop = ref.current.offsetTop + ref.current.clientHeight / 2 - scrollerRef.current.clientHeight / 2;
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
- return () => {
34
- beforeOpenCallbacks.delete(beforeOpen);
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: [_jsxs(Form, { ...mergeComponentProps({
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: [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) &&
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;
@@ -85,7 +85,7 @@ export const style = defineCss(({ spacing, text, background, borderRadius }) =>
85
85
  min-height: 0;
86
86
  border-radius: ${borderRadius}px;
87
87
 
88
- .${loadingClasses.container} {
88
+ .${loadingClasses.root} {
89
89
  height: 100%;
90
90
  }
91
91
  }
@@ -136,6 +136,7 @@ export const style = defineCss(({ spacing, mode, gray, text, colors, easing }) =
136
136
  }
137
137
 
138
138
  .${classes.empty} {
139
+ height: auto;
139
140
  position: sticky;
140
141
  left: 0;
141
142
  }
@@ -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
- if (max && max.isSame(value, 'date') && max.get(type) < num) {
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);
@@ -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<Element | null>): RefObject<T | null>;
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
- useEffect(() => {
22
- const beforeOpen = () => {
23
- if (ref.current && scrollerRef.current && scrollerRef.current.scrollHeight > scrollerRef.current.clientHeight) {
24
- scrollerRef.current.scrollTop = ref.current.offsetTop + ref.current.clientHeight / 2 - scrollerRef.current.clientHeight / 2;
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
- return () => {
29
- beforeOpenCallbacks.delete(beforeOpen);
30
- };
30
+ }, []);
31
+ useEffect(() => () => {
32
+ beforeOpenCallbacks.delete(beforeOpen);
31
33
  }, []);
32
34
  return ref;
33
35
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@canlooks/can-ui",
3
- "version": "0.0.88",
3
+ "version": "0.0.89",
4
4
  "author": "C.CanLiang <canlooks@gmail.com>",
5
5
  "description": "My ui framework",
6
6
  "license": "MIT",