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

Sign up to get free protection for your applications and to get access to all the features.
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/>;