@canlooks/can-ui 0.0.67 → 0.0.69

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.
Files changed (139) hide show
  1. package/dist/cjs/components/accordion/accordion.js +2 -2
  2. package/dist/cjs/components/alert/alert.js +4 -3
  3. package/dist/cjs/components/anchorList/anchorList.js +26 -20
  4. package/dist/cjs/components/boundary/errorBoundary.js +2 -2
  5. package/dist/cjs/components/bubbleConfirm/bubbleConfirm.js +2 -2
  6. package/dist/cjs/components/calendar/panelYear.js +2 -2
  7. package/dist/cjs/components/cascade/cascade.js +5 -5
  8. package/dist/cjs/components/cascade/cascadePanel.js +2 -2
  9. package/dist/cjs/components/checkboxBase/checkboxBase.js +2 -2
  10. package/dist/cjs/components/counter/counter.js +3 -3
  11. package/dist/cjs/components/curd/curd.js +5 -5
  12. package/dist/cjs/components/curd/curd.style.js +5 -0
  13. package/dist/cjs/components/curd/curdColumnConfig.js +4 -3
  14. package/dist/cjs/components/curd/curdDialog.js +2 -2
  15. package/dist/cjs/components/curd/curdFilter.js +3 -3
  16. package/dist/cjs/components/curd/curdResizable.js +2 -2
  17. package/dist/cjs/components/dataGrid/dataGrid.js +3 -2
  18. package/dist/cjs/components/dataGrid/dataGridHead.js +2 -2
  19. package/dist/cjs/components/dataGrid/dataGridRows.js +3 -3
  20. package/dist/cjs/components/dateTimePicker/dateTimePicker.js +3 -3
  21. package/dist/cjs/components/dialog/dialog.js +2 -2
  22. package/dist/cjs/components/drawer/drawer.js +2 -2
  23. package/dist/cjs/components/gallery/gallery.js +7 -7
  24. package/dist/cjs/components/image/image.d.ts +1 -1
  25. package/dist/cjs/components/image/image.js +5 -4
  26. package/dist/cjs/components/inputBase/inputBase.js +2 -2
  27. package/dist/cjs/components/menu/menu.js +2 -2
  28. package/dist/cjs/components/menuItem/menuItem.js +2 -2
  29. package/dist/cjs/components/overlayBase/overlayBase.d.ts +3 -1
  30. package/dist/cjs/components/overlayBase/overlayBase.js +5 -5
  31. package/dist/cjs/components/pagination/pager.js +3 -3
  32. package/dist/cjs/components/palette/palette.js +2 -2
  33. package/dist/cjs/components/pickerDialog/pickerDialog.js +2 -2
  34. package/dist/cjs/components/pinchable/pinchable.js +7 -0
  35. package/dist/cjs/components/popper/popper.d.ts +3 -1
  36. package/dist/cjs/components/popper/popper.js +6 -6
  37. package/dist/cjs/components/progress/progress.js +7 -5
  38. package/dist/cjs/components/rating/rating.js +2 -2
  39. package/dist/cjs/components/select/select.js +3 -3
  40. package/dist/cjs/components/snackbarBase/snackbarBase.d.ts +3 -2
  41. package/dist/cjs/components/snackbarBase/snackbarBase.js +6 -6
  42. package/dist/cjs/components/stepper/step.js +5 -5
  43. package/dist/cjs/components/tabs/tabsEllipsis.js +2 -2
  44. package/dist/cjs/components/tag/tag.js +2 -2
  45. package/dist/cjs/components/theme/themeVariables.d.ts +1 -0
  46. package/dist/cjs/components/theme/themeVariables.js +1 -0
  47. package/dist/cjs/components/touchRipple/index.d.ts +1 -0
  48. package/dist/cjs/components/touchRipple/index.js +1 -0
  49. package/dist/cjs/components/touchRipple/touchRipple.d.ts +6 -14
  50. package/dist/cjs/components/touchRipple/touchRipple.js +54 -39
  51. package/dist/cjs/components/touchRipple/touchRipple.style.js +25 -27
  52. package/dist/cjs/components/transfer/transfer.js +5 -5
  53. package/dist/cjs/components/transfer/transferPanel.js +2 -1
  54. package/dist/cjs/components/tree/tree.js +2 -2
  55. package/dist/cjs/components/tree/treeNode.js +2 -2
  56. package/dist/cjs/components/treeSelect/treeSelect.js +2 -2
  57. package/dist/cjs/components/typography/typography.js +4 -4
  58. package/dist/cjs/components/upload/dropArea.js +2 -2
  59. package/dist/cjs/components/upload/fileItem.js +5 -5
  60. package/dist/cjs/components/upload/imageItem.js +3 -3
  61. package/dist/cjs/components/upload/upload.js +5 -5
  62. package/dist/cjs/components/waterfall/waterfallItem.js +1 -1
  63. package/dist/cjs/extensions/documentViewer/documentViewer.js +4 -3
  64. package/dist/cjs/extensions/documentViewer/documentViewer.style.js +2 -1
  65. package/dist/cjs/extensions/documentViewer/svgViewer.d.ts +2 -2
  66. package/dist/cjs/extensions/documentViewer/svgViewer.js +13 -9
  67. package/dist/cjs/utils/hooks.d.ts +8 -0
  68. package/dist/cjs/utils/hooks.js +22 -0
  69. package/dist/esm/components/accordion/accordion.js +1 -1
  70. package/dist/esm/components/alert/alert.js +2 -1
  71. package/dist/esm/components/anchorList/anchorList.js +26 -20
  72. package/dist/esm/components/boundary/errorBoundary.js +1 -1
  73. package/dist/esm/components/bubbleConfirm/bubbleConfirm.js +1 -1
  74. package/dist/esm/components/calendar/panelYear.js +1 -1
  75. package/dist/esm/components/cascade/cascade.js +3 -3
  76. package/dist/esm/components/cascade/cascadePanel.js +1 -1
  77. package/dist/esm/components/checkboxBase/checkboxBase.js +1 -1
  78. package/dist/esm/components/counter/counter.js +1 -1
  79. package/dist/esm/components/curd/curd.js +1 -1
  80. package/dist/esm/components/curd/curd.style.js +5 -0
  81. package/dist/esm/components/curd/curdColumnConfig.js +3 -2
  82. package/dist/esm/components/curd/curdDialog.js +1 -1
  83. package/dist/esm/components/curd/curdFilter.js +1 -1
  84. package/dist/esm/components/curd/curdResizable.js +1 -1
  85. package/dist/esm/components/dataGrid/dataGrid.js +3 -2
  86. package/dist/esm/components/dataGrid/dataGridHead.js +1 -1
  87. package/dist/esm/components/dataGrid/dataGridRows.js +1 -1
  88. package/dist/esm/components/dateTimePicker/dateTimePicker.js +1 -1
  89. package/dist/esm/components/dialog/dialog.js +1 -1
  90. package/dist/esm/components/drawer/drawer.js +1 -1
  91. package/dist/esm/components/gallery/gallery.js +3 -3
  92. package/dist/esm/components/image/image.d.ts +1 -1
  93. package/dist/esm/components/image/image.js +3 -2
  94. package/dist/esm/components/inputBase/inputBase.js +1 -1
  95. package/dist/esm/components/menu/menu.js +2 -2
  96. package/dist/esm/components/menuItem/menuItem.js +1 -1
  97. package/dist/esm/components/overlayBase/overlayBase.d.ts +3 -1
  98. package/dist/esm/components/overlayBase/overlayBase.js +6 -6
  99. package/dist/esm/components/pagination/pager.js +1 -1
  100. package/dist/esm/components/palette/palette.js +1 -1
  101. package/dist/esm/components/pickerDialog/pickerDialog.js +1 -1
  102. package/dist/esm/components/pinchable/pinchable.js +7 -0
  103. package/dist/esm/components/popper/popper.d.ts +3 -1
  104. package/dist/esm/components/popper/popper.js +7 -7
  105. package/dist/esm/components/progress/progress.js +5 -3
  106. package/dist/esm/components/rating/rating.js +1 -1
  107. package/dist/esm/components/select/select.js +1 -1
  108. package/dist/esm/components/snackbarBase/snackbarBase.d.ts +3 -2
  109. package/dist/esm/components/snackbarBase/snackbarBase.js +5 -5
  110. package/dist/esm/components/stepper/step.js +1 -1
  111. package/dist/esm/components/tabs/tabsEllipsis.js +1 -1
  112. package/dist/esm/components/tag/tag.js +1 -1
  113. package/dist/esm/components/theme/themeVariables.d.ts +1 -0
  114. package/dist/esm/components/theme/themeVariables.js +1 -0
  115. package/dist/esm/components/touchRipple/index.d.ts +1 -0
  116. package/dist/esm/components/touchRipple/index.js +1 -0
  117. package/dist/esm/components/touchRipple/touchRipple.d.ts +6 -14
  118. package/dist/esm/components/touchRipple/touchRipple.js +54 -39
  119. package/dist/esm/components/touchRipple/touchRipple.style.js +25 -27
  120. package/dist/esm/components/transfer/transfer.js +3 -3
  121. package/dist/esm/components/transfer/transferPanel.js +2 -1
  122. package/dist/esm/components/tree/tree.js +1 -1
  123. package/dist/esm/components/tree/treeNode.js +1 -1
  124. package/dist/esm/components/treeSelect/treeSelect.js +1 -1
  125. package/dist/esm/components/typography/typography.js +1 -1
  126. package/dist/esm/components/upload/dropArea.js +1 -1
  127. package/dist/esm/components/upload/fileItem.js +1 -1
  128. package/dist/esm/components/upload/imageItem.js +1 -1
  129. package/dist/esm/components/upload/upload.js +3 -3
  130. package/dist/esm/components/waterfall/waterfallItem.js +2 -2
  131. package/dist/esm/extensions/documentViewer/documentViewer.js +2 -1
  132. package/dist/esm/extensions/documentViewer/documentViewer.style.js +2 -1
  133. package/dist/esm/extensions/documentViewer/svgViewer.d.ts +2 -2
  134. package/dist/esm/extensions/documentViewer/svgViewer.js +12 -8
  135. package/dist/esm/utils/hooks.d.ts +8 -0
  136. package/dist/esm/utils/hooks.js +21 -0
  137. package/documentation/dist/assets/{index-GiFWv3kZ.js → index-DvrKS6Tv.js} +2978 -2957
  138. package/documentation/dist/index.html +1 -1
  139. package/package.json +1 -2
@@ -1,7 +1,6 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "@emotion/react/jsx-runtime";
2
2
  import { memo, useMemo, useRef, useState } from 'react';
3
3
  import { classes, svgStyle } from './documentViewer.style';
4
- import { TransformWrapper, TransformComponent } from 'react-zoom-pan-pinch';
5
4
  import { clsx } from '../../utils';
6
5
  import { Button } from '../../components/button';
7
6
  import { Tooltip } from '../../components/tooltip';
@@ -10,7 +9,7 @@ import { Switch } from '../../components/switch';
10
9
  import { ThemeProvider, useTheme } from '../../components/theme';
11
10
  import { Loading } from '../../components/loading';
12
11
  import { useBlob, useDocumentTitle } from './documentViewer';
13
- import { Icon } from '../..';
12
+ import { Icon } from '../../components/icon';
14
13
  import { faDiagramProject } from '@fortawesome/free-solid-svg-icons/faDiagramProject';
15
14
  import { faDownload } from '@fortawesome/free-solid-svg-icons/faDownload';
16
15
  import { faExpand } from '@fortawesome/free-solid-svg-icons/faExpand';
@@ -20,6 +19,7 @@ import { faRotateLeft } from '@fortawesome/free-solid-svg-icons/faRotateLeft';
20
19
  import { faRotateRight } from '@fortawesome/free-solid-svg-icons/faRotateRight';
21
20
  import { faMagnifyingGlassMinus } from '@fortawesome/free-solid-svg-icons/faMagnifyingGlassMinus';
22
21
  import { faMagnifyingGlassPlus } from '@fortawesome/free-solid-svg-icons/faMagnifyingGlassPlus';
22
+ import { Pinchable } from '../../components/pinchable';
23
23
  const commonButtonProps = {
24
24
  variant: 'text',
25
25
  shape: 'circular'
@@ -27,7 +27,7 @@ const commonButtonProps = {
27
27
  export const SvgViewer = memo((props) => {
28
28
  return (_jsx(ThemeProvider, { children: _jsx(SvgViewerContent, { ...props }) }));
29
29
  });
30
- function SvgViewerContent({ showDownload = true, themeSwitchable = true, onThemeChange, transformWrapperProps,
30
+ function SvgViewerContent({ showDownload = true, themeSwitchable = true, onThemeChange, pinchableProps,
31
31
  // 从DocumentViewerBaseProps继承来的属性
32
32
  src, filename, onError, setDocumentTitle, ...props }) {
33
33
  /**
@@ -57,13 +57,17 @@ src, filename, onError, setDocumentTitle, ...props }) {
57
57
  return URL.createObjectURL(file);
58
58
  }
59
59
  return;
60
- }, [blob]);
60
+ }, [blob, filename]);
61
61
  /**
62
62
  * ---------------------------------------------------------------
63
63
  * 工具栏
64
64
  */
65
- const transformWrapperRef = useRef(null);
65
+ const pinchableRef = useRef(null);
66
66
  const [rotate, setRotate] = useState(0);
67
+ const resetHandler = () => {
68
+ pinchableRef.current.reset();
69
+ setRotate(0);
70
+ };
67
71
  const downloadHandler = () => {
68
72
  if (src) {
69
73
  const a = document.createElement('a');
@@ -73,9 +77,9 @@ src, filename, onError, setDocumentTitle, ...props }) {
73
77
  }
74
78
  };
75
79
  const objectOnLoad = () => {
76
- transformWrapperRef.current.centerView();
80
+ // transformWrapperRef.current!.centerView()
77
81
  };
78
- return (_jsxs(Loading, { ...props, css: svgStyle, className: clsx(classes.svgViewer, props.className), open: loading, children: [_jsxs("div", { className: classes.svgToolbar, children: [_jsxs("div", { className: classes.svgTitle, children: [_jsx(Icon, { icon: faDiagramProject, className: classes.svgIcon }), _jsx("div", { children: filename })] }), _jsxs("div", { className: classes.svgToolbarRight, children: [_jsx(Tooltip, { title: "\u65CB\u8F6C-90\u00B0", children: _jsx(Button, { ...commonButtonProps, onClick: () => setRotate(rotate - 90), children: _jsx(Icon, { icon: faRotateLeft }) }) }), _jsx(Tooltip, { title: "\u65CB\u8F6C90\u00B0", children: _jsx(Button, { ...commonButtonProps, onClick: () => setRotate(rotate + 90), children: _jsx(Icon, { icon: faRotateRight }) }) }), _jsx(Tooltip, { title: "\u7F29\u5C0F", children: _jsx(Button, { ...commonButtonProps, onClick: () => transformWrapperRef.current.zoomOut(), children: _jsx(Icon, { icon: faMagnifyingGlassMinus }) }) }), _jsx(Tooltip, { title: "\u653E\u5927", children: _jsx(Button, { ...commonButtonProps, onClick: () => transformWrapperRef.current.zoomIn(), children: _jsx(Icon, { icon: faMagnifyingGlassPlus }) }) }), _jsx(Tooltip, { title: "\u9002\u5E94\u5C4F\u5E55", children: _jsx(Button, { ...commonButtonProps, onClick: () => transformWrapperRef.current.resetTransform(), children: _jsx(Icon, { icon: faExpand }) }) }), themeSwitchable &&
82
+ return (_jsxs(Loading, { ...props, css: svgStyle, className: clsx(classes.svgViewer, props.className), open: loading, children: [_jsxs("div", { className: classes.svgToolbar, children: [_jsxs("div", { className: classes.svgTitle, children: [_jsx(Icon, { icon: faDiagramProject, className: classes.svgIcon }), _jsx("div", { children: filename })] }), _jsxs("div", { className: classes.svgToolbarRight, children: [_jsx(Tooltip, { title: "\u65CB\u8F6C-90\u00B0", children: _jsx(Button, { ...commonButtonProps, onClick: () => setRotate(rotate - 90), children: _jsx(Icon, { icon: faRotateLeft }) }) }), _jsx(Tooltip, { title: "\u65CB\u8F6C90\u00B0", children: _jsx(Button, { ...commonButtonProps, onClick: () => setRotate(rotate + 90), children: _jsx(Icon, { icon: faRotateRight }) }) }), _jsx(Tooltip, { title: "\u7F29\u5C0F", children: _jsx(Button, { ...commonButtonProps, onClick: () => pinchableRef.current.zoomOut(), children: _jsx(Icon, { icon: faMagnifyingGlassMinus }) }) }), _jsx(Tooltip, { title: "\u653E\u5927", children: _jsx(Button, { ...commonButtonProps, onClick: () => pinchableRef.current.zoomIn(), children: _jsx(Icon, { icon: faMagnifyingGlassPlus }) }) }), _jsx(Tooltip, { title: "\u9002\u5E94\u5C4F\u5E55", children: _jsx(Button, { ...commonButtonProps, onClick: resetHandler, children: _jsx(Icon, { icon: faExpand }) }) }), themeSwitchable &&
79
83
  _jsxs(_Fragment, { children: [_jsx(Divider, { className: classes.svgDivider, orientation: "vertical" }), _jsx(Switch, { checkedLabel: _jsx(Icon, { icon: faSun }), unCheckedLabel: _jsx(Icon, { icon: faMoon }), checked: mode === 'light', onChange: themeChangeHandler })] }), showDownload &&
80
- _jsxs(_Fragment, { children: [_jsx(Divider, { className: classes.svgDivider, orientation: "vertical" }), _jsx(Button, { prefix: _jsx(Icon, { icon: faDownload }), onClick: downloadHandler, children: "\u4E0B\u8F7D" })] })] })] }), _jsx(TransformWrapper, { smooth: false, ...transformWrapperProps, ref: transformWrapperRef, minScale: .2, children: _jsx(TransformComponent, { wrapperClass: classes.svgContainer, contentClass: classes.svgContent, children: _jsx("object", { className: classes.object, data: data, style: { rotate: `${rotate}deg` }, onLoad: objectOnLoad, onError: onError }) }) })] }));
84
+ _jsxs(_Fragment, { children: [_jsx(Divider, { className: classes.svgDivider, orientation: "vertical" }), _jsx(Button, { prefix: _jsx(Icon, { icon: faDownload }), onClick: downloadHandler, children: "\u4E0B\u8F7D" })] })] })] }), _jsx(Pinchable, { ...pinchableProps, ref: pinchableRef, className: clsx(classes.svgContainer, pinchableProps?.className), children: _jsx("div", { className: classes.svgContent, children: _jsx("object", { className: classes.object, data: data, style: { rotate: `${rotate}deg` }, onLoad: objectOnLoad, onError: onError }) }) })] }));
81
85
  }
@@ -1,4 +1,5 @@
1
1
  import { RefObject, Dispatch, SetStateAction } from 'react';
2
+ import { DefineElement } from '../types';
2
3
  /**
3
4
  * 获取渲染前的值
4
5
  * @param value
@@ -48,3 +49,10 @@ export declare function useLoading<A extends any[], R>(fn: (...args: A) => R | P
48
49
  (...args: A) => Promise<R>,
49
50
  Dispatch<SetStateAction<boolean>>
50
51
  ];
52
+ /**
53
+ * 获取容器元素,通常用于`container`或`effectContainer`属性
54
+ * @param container
55
+ * @param effectContainer
56
+ * @param defaultContainer 默认为`document.body`
57
+ */
58
+ export declare function useContainer<T extends HTMLElement | null>(container?: DefineElement<T>, effectContainer?: DefineElement<T>, defaultContainer?: T): RefObject<T>;
@@ -113,3 +113,24 @@ export function useLoading(fn, referredLoading = false) {
113
113
  setLoading
114
114
  ];
115
115
  }
116
+ /**
117
+ * 获取容器元素,通常用于`container`或`effectContainer`属性
118
+ * @param container
119
+ * @param effectContainer
120
+ * @param defaultContainer 默认为`document.body`
121
+ */
122
+ export function useContainer(container, effectContainer, defaultContainer = document.body) {
123
+ const [containerEl, setContainerEl] = useDerivedState(prev => {
124
+ if (container) {
125
+ return typeof container === 'function' ? container() : container;
126
+ }
127
+ return prev || defaultContainer;
128
+ }, [container, defaultContainer]);
129
+ useEffect(() => {
130
+ if (effectContainer) {
131
+ const el = typeof effectContainer === 'function' ? effectContainer() : effectContainer;
132
+ setContainerEl(el);
133
+ }
134
+ }, []);
135
+ return containerEl;
136
+ }