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.
- package/dist/plain-design.commonjs.min.js +11 -2
- package/dist/plain-design.min.css +3 -1
- package/dist/plain-design.min.js +11 -2
- package/dist/report.html +2 -2
- package/package.json +4 -4
- package/src/packages/build.ts +1 -1
- package/src/packages/components/Application/theme/theme.ts +1 -1
- package/src/packages/components/ColorPicker/sub/ColorSlider.tsx +8 -5
- package/src/packages/components/ColorPicker/sub/ColorSvPanel.tsx +7 -4
- package/src/packages/components/Dialog/index.tsx +2 -1
- package/src/packages/components/Dialog/useDialogMovable.tsx +7 -4
- package/src/packages/components/Dialog/utils/dialog.mouse.ts +4 -2
- package/src/packages/components/Input/useMultipleInput.tsx +5 -2
- package/src/packages/components/Input/useTextareaInput.tsx +10 -5
- package/src/packages/components/InputNumber/NumberResize.tsx +6 -2
- package/src/packages/components/Layout/index.tsx +31 -0
- package/src/packages/components/Layout/layout.scss +227 -0
- package/src/packages/components/Layout/layout.utils.ts +3 -0
- package/src/packages/components/LayoutSection/index.tsx +67 -0
- package/src/packages/components/LayoutSection/useLayoutSectionResizer.tsx +184 -0
- package/src/{pages/index/PageThemeUtils.tsx → packages/components/PageThemeUtils/index.tsx} +6 -4
- package/src/packages/components/Popup/index.tsx +20 -8
- package/src/packages/components/Rate/index.tsx +3 -1
- package/src/packages/components/Scroll/HorizontalScrollbar.tsx +7 -3
- package/src/packages/components/Scroll/VerticalScrollbar.tsx +7 -3
- package/src/packages/components/Slider/useSliderDotDragier.tsx +7 -4
- package/src/packages/components/Table/table/head/useHeadCellResize.ts +8 -3
- package/src/packages/components/Table/table/use/useTableDraggier.col.tsx +10 -5
- package/src/packages/components/Table/table/use/useTableDraggier.row.tsx +11 -6
- package/src/packages/components/ThemePrimaryColors/index.ts +5 -0
- package/src/packages/components/Tree/RenderTreeNode.tsx +2 -1
- package/src/packages/components/Tree/tree.scss +34 -8
- package/src/packages/components/TreeCore/TreeCore.type.tsx +2 -0
- package/src/packages/components/TreeCore/createTreeCore.tsx +5 -1
- package/src/packages/components/TreeCore/createTreeDraggier.tsx +9 -5
- package/src/packages/components/TreeCore/createTreeProps.ts +1 -0
- package/src/packages/components/TreeNodeWithMenu/index.tsx +53 -0
- package/src/packages/components/TreeNodeWithMenu/tree-node-with-menu.scss +38 -0
- package/src/packages/components/createProvider/index.ts +5 -0
- package/src/packages/components/nextPopupId/index.ts +5 -0
- package/src/packages/components/useImage/ImageService.tsx +7 -4
- package/src/packages/components/usePopupManager/index.ts +5 -0
- package/src/packages/components/usePopupTrigger/index.tsx +5 -0
- package/src/packages/components/useReferenceTrigger/index.tsx +5 -0
- package/src/packages/components/useTooltip/index.tsx +2 -0
- package/src/packages/components/useWatchAutoClear/index.ts +5 -0
- package/src/packages/entry.tsx +29 -0
- package/src/packages/utils/ClientZoom.ts +24 -2
- package/src/packages/utils/useMove.tsx +10 -4
- package/src/pages/index/App.tsx +3 -2
- package/src/pages/index/app.scss +5 -0
- package/src/pages/index/components/normal/DemoLayout.tsx +144 -0
- package/src/pages/index/components/normal/DemoLoading.tsx +3 -0
- package/src/pages/index/components/normal/DemoTree.tsx +71 -2
- package/src/pages/index/components/service/DemoPopupService.tsx +6 -3
- package/src/pages/index/home/AppHead.tsx +4 -4
- package/src/pages/index/home/menus.tsx +1 -0
- package/src/pages/index/home/plain-design.png +0 -0
- 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:
|
301
|
-
y:
|
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: '
|
50
|
-
<
|
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},
|
Binary file
|
package/src/pages/index/main.tsx
CHANGED
@@ -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/>;
|