plain-design 1.0.0-beta.1 → 1.0.0-beta.10

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 (59) hide show
  1. package/dist/plain-design.commonjs.min.js +11 -2
  2. package/dist/plain-design.min.css +3 -1
  3. package/dist/plain-design.min.js +11 -2
  4. package/dist/report.html +2 -2
  5. package/package.json +4 -4
  6. package/src/packages/build.ts +1 -1
  7. package/src/packages/components/Application/theme/theme.ts +1 -1
  8. package/src/packages/components/ColorPicker/sub/ColorSlider.tsx +8 -5
  9. package/src/packages/components/ColorPicker/sub/ColorSvPanel.tsx +7 -4
  10. package/src/packages/components/Dialog/index.tsx +2 -1
  11. package/src/packages/components/Dialog/useDialogMovable.tsx +7 -4
  12. package/src/packages/components/Dialog/utils/dialog.mouse.ts +4 -2
  13. package/src/packages/components/Input/useMultipleInput.tsx +5 -2
  14. package/src/packages/components/Input/useTextareaInput.tsx +10 -5
  15. package/src/packages/components/InputNumber/NumberResize.tsx +6 -2
  16. package/src/packages/components/Layout/index.tsx +31 -0
  17. package/src/packages/components/Layout/layout.scss +227 -0
  18. package/src/packages/components/Layout/layout.utils.ts +3 -0
  19. package/src/packages/components/LayoutSection/index.tsx +67 -0
  20. package/src/packages/components/LayoutSection/useLayoutSectionResizer.tsx +184 -0
  21. package/src/{pages/index/PageThemeUtils.tsx → packages/components/PageThemeUtils/index.tsx} +6 -4
  22. package/src/packages/components/Popup/index.tsx +20 -8
  23. package/src/packages/components/Rate/index.tsx +3 -1
  24. package/src/packages/components/Scroll/HorizontalScrollbar.tsx +7 -3
  25. package/src/packages/components/Scroll/VerticalScrollbar.tsx +7 -3
  26. package/src/packages/components/Slider/useSliderDotDragier.tsx +7 -4
  27. package/src/packages/components/Table/table/head/useHeadCellResize.ts +8 -3
  28. package/src/packages/components/Table/table/use/useTableDraggier.col.tsx +10 -5
  29. package/src/packages/components/Table/table/use/useTableDraggier.row.tsx +11 -6
  30. package/src/packages/components/ThemePrimaryColors/index.ts +5 -0
  31. package/src/packages/components/Tree/RenderTreeNode.tsx +2 -1
  32. package/src/packages/components/Tree/tree.scss +34 -8
  33. package/src/packages/components/TreeCore/TreeCore.type.tsx +2 -0
  34. package/src/packages/components/TreeCore/createTreeCore.tsx +5 -1
  35. package/src/packages/components/TreeCore/createTreeDraggier.tsx +9 -5
  36. package/src/packages/components/TreeCore/createTreeProps.ts +1 -0
  37. package/src/packages/components/TreeNodeWithMenu/index.tsx +53 -0
  38. package/src/packages/components/TreeNodeWithMenu/tree-node-with-menu.scss +38 -0
  39. package/src/packages/components/createProvider/index.ts +5 -0
  40. package/src/packages/components/nextPopupId/index.ts +5 -0
  41. package/src/packages/components/useImage/ImageService.tsx +7 -4
  42. package/src/packages/components/usePopupManager/index.ts +5 -0
  43. package/src/packages/components/usePopupTrigger/index.tsx +5 -0
  44. package/src/packages/components/useReferenceTrigger/index.tsx +5 -0
  45. package/src/packages/components/useTooltip/index.tsx +2 -0
  46. package/src/packages/components/useWatchAutoClear/index.ts +5 -0
  47. package/src/packages/entry.tsx +29 -0
  48. package/src/packages/utils/ClientZoom.ts +24 -2
  49. package/src/packages/utils/useMove.tsx +10 -4
  50. package/src/pages/index/App.tsx +3 -2
  51. package/src/pages/index/app.scss +5 -0
  52. package/src/pages/index/components/normal/DemoLayout.tsx +144 -0
  53. package/src/pages/index/components/normal/DemoLoading.tsx +3 -0
  54. package/src/pages/index/components/normal/DemoTree.tsx +71 -2
  55. package/src/pages/index/components/service/DemoPopupService.tsx +6 -3
  56. package/src/pages/index/home/AppHead.tsx +4 -4
  57. package/src/pages/index/home/menus.tsx +1 -0
  58. package/src/pages/index/home/plain-design.png +0 -0
  59. package/src/pages/index/main.tsx +0 -4
@@ -1,6 +1,6 @@
1
1
  import {designPage, getComponentCls, reactive, useRefs} from "plain-design-composition";
2
2
  import {DemoRow} from "../../Demo/DemoRow";
3
- import {$message, Alert, Button, ButtonGroup, Checkbox, Input, Segment, SegmentGroup, Tree} from "../../../../packages";
3
+ import {$message, Alert, Button, ButtonGroup, Checkbox, Input, Layout, LayoutSection, Segment, SegmentGroup, Tree, TreeNodeWithMenu} from "../../../../packages";
4
4
  import treeData from '../../../data/tree.data.json';
5
5
  import addressData from '../../../data/address.json';
6
6
  import {iTreeNode} from "../../../../packages/components/TreeCore/createTreeNode";
@@ -1089,7 +1089,7 @@ export const demoVirtualDraggable = designPage(() => {
1089
1089
  onDragChange={onDragChange}
1090
1090
  innerAttrs={{
1091
1091
  style: {
1092
- backgroundColor: `var(--custom-background-hover)`,
1092
+ // backgroundColor: `var(--custom-background-hover)`,
1093
1093
  }
1094
1094
  }}
1095
1095
  />
@@ -1097,3 +1097,72 @@ export const demoVirtualDraggable = designPage(() => {
1097
1097
  </DemoRow>
1098
1098
  );
1099
1099
  });
1100
+
1101
+
1102
+ export const demoCustomDraggier = designPage(() => {
1103
+
1104
+ const { refs, onRef } = useRefs({ tree: Tree });
1105
+
1106
+ const state = reactive({
1107
+ checked: [] as any[],
1108
+ undoDraggier: false,
1109
+ });
1110
+
1111
+ const onDragChange = (data: iTreeDragChangeData) => {
1112
+ console.log(data);
1113
+ if (state.undoDraggier) {
1114
+ delay(2000).then(() => {data.undo();});
1115
+ }
1116
+ };
1117
+
1118
+ return () => (
1119
+ <DemoRow title="自定义拖拽节点">
1120
+ <ButtonGroup style={{ margin: '4px 0' }}>
1121
+ <Button label="全部展开" onClick={() => refs.tree!.methods.expandAll()}/>
1122
+ <Button label="全部收起" onClick={() => refs.tree!.methods.collapseAll()}/>
1123
+ <Button label="展开特定节点" onClick={() => refs.tree!.methods.expand(['2-2-2'])}/>
1124
+ <Button label="展开部分节点" onClick={() => refs.tree!.methods.expand(['2-2-2', '3-1-2'])}/>
1125
+ <Button label="当前选中节点" onClick={() => {
1126
+ const current = refs.tree!.methods.getCurrent();
1127
+ $message(!!current ? current.data.name : '未选中任何节点!');
1128
+ }}/>
1129
+ <Button label="展开并且设置当前选中节点" onClick={() => {
1130
+ refs.tree!.methods.expand('2-2-2');
1131
+ refs.tree!.methods.setCurrent('2-2-2');
1132
+ }}/>
1133
+ <Button>
1134
+ <Checkbox v-model={state.undoDraggier} label="拖拽移动2s后撤回拖拽操作"/>
1135
+ </Button>
1136
+ </ButtonGroup>
1137
+ <Layout style={{ marginTop: '16px' }}>
1138
+ <LayoutSection position="left" modelValue={120}>
1139
+ <Tree
1140
+ v-model={state.checked}
1141
+ ref={onRef.tree}
1142
+ data={addressData}
1143
+ keyField="id"
1144
+ labelField="name"
1145
+ childrenField="children"
1146
+ singleValueType="last"
1147
+ virtual
1148
+ onDragChange={onDragChange}
1149
+ draggable
1150
+ customDraggier
1151
+ expandOnClickNode
1152
+ v-slots={{
1153
+ default: ({ treeNode }: { treeNode: iTreeNode }) => (
1154
+ <TreeNodeWithMenu treeNode={treeNode}/>
1155
+ )
1156
+ }}
1157
+ />
1158
+ </LayoutSection>
1159
+ <LayoutSection>
1160
+ <div style={{ height: '500px', padding: '0 16px' }}>
1161
+ 内容区域
1162
+ </div>
1163
+ </LayoutSection>
1164
+ </Layout>
1165
+
1166
+ </DemoRow>
1167
+ );
1168
+ });
@@ -1,5 +1,5 @@
1
1
  import {designPage, getComponentCls, iMouseEvent, reactive, useRefs} from "plain-design-composition";
2
- import {Button, Checkbox} from "../../../../packages";
2
+ import {Button, Checkbox, ClientZoom} from "../../../../packages";
3
3
  import {DemoRow} from "../../Demo/DemoRow";
4
4
  import {usePopup} from "../../../../packages/components/usePopup/usePopup";
5
5
  import {ePopupAnimation, ePopupTrigger, iPopupPlacement, iPopupUseOption} from "../../../../packages/components/usePopup/utils/popup.utils";
@@ -295,10 +295,13 @@ export const demoAbsolute = designPage(() => {
295
295
 
296
296
  const handler = {
297
297
  onContextmenu: (e: iMouseEvent) => {
298
+
299
+ const { clientX, clientY } = ClientZoom.getClientPosition(e);
300
+
298
301
  e.preventDefault();
299
302
  $popup.absolute({
300
- x: e.clientX,
301
- y: e.clientY,
303
+ x: clientX,
304
+ y: clientY,
302
305
  type: 'demo-absolute',
303
306
  placement: 'right-start',
304
307
  trigger: 'contextmenu',
@@ -1,8 +1,8 @@
1
1
  import {designPage, reactive} from "plain-design-composition";
2
2
  import {PlainLogo} from 'plain-icons/src/packages/component/logo/react';
3
- import {Select, SelectOption} from "../../../packages";
4
- import {PageThemeUtils, ThemePrimaryColors} from "../PageThemeUtils";
3
+ import {PageThemeUtils, Select, SelectOption, ThemePrimaryColors} from "../../../packages";
5
4
  import ClientZoom from "../../../packages/components/ClientZoom";
5
+ import logoImage from './plain-design.png';
6
6
 
7
7
  export const AppHead = designPage(() => {
8
8
 
@@ -46,8 +46,8 @@ export const AppHead = designPage(() => {
46
46
  return () => (
47
47
  <div className="app-head">
48
48
  <div className="app-head-logo">
49
- <PlainLogo style={{ fontSize: '1.8em', marginRight: '0.4em' }}/>
50
- <span>Plain Design</span>
49
+ <PlainLogo style={{ fontSize: '28px', marginRight: '0.4em' }}/>
50
+ <img src={logoImage}/>
51
51
  </div>
52
52
  <div className="app-head-operation">
53
53
  <Select v-model={state.inputMode} onChange={onInputModeChange} size="mini" width="100" placeholder="输入框" popperAttrs={publicPopperAttrs}>
@@ -117,6 +117,7 @@ export const MenuGroups: MenuGroup[] = [
117
117
  { name: 'Card', title: '卡片', page: '/normal/DemoCard', complete: true },
118
118
  { name: 'Carousel', title: '轮播', page: '/normal/DemoCarousel', complete: true },
119
119
  { name: 'Collapse', title: '折叠面板', page: '/normal/DemoCollapse', complete: true },
120
+ { name: 'Layout', title: '布局', page: '/normal/DemoLayout', complete: true },
120
121
  { name: 'Alert', title: '提示信息', page: '/normal/DemoAlert', complete: true },
121
122
  { name: 'KeepAlive', title: '保活', page: '/normal/DemoKeepAlive', complete: true },
122
123
  // {name: 'Triangle', title: '三角形元素', page: '/normal/triangle', complete: false},
@@ -6,8 +6,6 @@ import {installAllIcon} from "../../packages/utils/installAllIcons";
6
6
  import {designPage, provide, setComponentPrefix} from "plain-design-composition";
7
7
  import {App} from "./App";
8
8
  import '../module';
9
- import {ClientZoom} from "../../packages";
10
- import {PageThemeUtils} from "./PageThemeUtils";
11
9
 
12
10
  setComponentPrefix(globalComponentPrefix);
13
11
 
@@ -17,8 +15,6 @@ installIconfontSymbol();
17
15
  installAllIcon();
18
16
  // installAllLazyIcons();
19
17
 
20
- PageThemeUtils.state.zoom != null && ClientZoom.set(PageThemeUtils.state.zoom);
21
-
22
18
  const Main = designPage(() => {
23
19
  provide('customAppMessage', '全局上下文名称');
24
20
  return () => <App/>;