plain-design 1.0.0-beta.34 → 1.0.0-beta.37

Sign up to get free protection for your applications and to get access to all the features.
Files changed (189) hide show
  1. package/dist/plain-design.commonjs.min.js +1 -1
  2. package/dist/plain-design.min.css +2 -2
  3. package/dist/plain-design.min.js +1 -1
  4. package/dist/report.html +2 -2
  5. package/package.json +6 -5
  6. package/src/packages/components/$object/createObjectService.tsx +31 -20
  7. package/src/packages/components/$object/object.service.utils.ts +7 -3
  8. package/src/packages/components/$previewer/ImagePreviewerFixedContainer.tsx +1 -0
  9. package/src/packages/components/AutoTable/use/useTableOption.table.tsx +3 -3
  10. package/src/packages/components/AutoTable/utils/TableOption.space.tsx +3 -0
  11. package/src/packages/components/Carousel/index.tsx +5 -5
  12. package/src/packages/components/ImagePreviewer/ImagePreviewer.tsx +77 -75
  13. package/src/packages/components/ImagePreviewer/ImagePreviewerCarouselImage.tsx +1 -1
  14. package/src/packages/components/ImagePreviewer/ImagePreviewerGallery.tsx +1 -1
  15. package/src/packages/components/PlcOv/index.tsx +14 -4
  16. package/src/packages/components/StackCard/index.tsx +5 -5
  17. package/src/packages/components/Table/standard/PlcOperation/outer-operation.scss +2 -0
  18. package/src/packages/components/Table/table/use/useTableFormEditor.tsx +1 -1
  19. package/src/packages/components/Table/table/use/useTableModifyEditor.tsx +1 -1
  20. package/src/packages/components/VirtualTable/virtual-table.scss +1 -2
  21. package/src/packages/components/useDialog/index.tsx +1 -1
  22. package/src/packages/utils/inheritSlots.ts +28 -0
  23. package/src/pages/data/address.json +0 -39317
  24. package/src/pages/data/data-1.json +0 -754
  25. package/src/pages/data/data-2.json +0 -3006
  26. package/src/pages/data/data-200.json +0 -5206
  27. package/src/pages/data/data-2000.json +0 -51954
  28. package/src/pages/data/data-50.json +0 -2075
  29. package/src/pages/data/data.json +0 -30002
  30. package/src/pages/data/demo.json +0 -1702
  31. package/src/pages/data/mock.database.js +0 -43
  32. package/src/pages/data/mock.js +0 -141
  33. package/src/pages/data/tree.data.json +0 -87
  34. package/src/pages/env/config/local.js +0 -3
  35. package/src/pages/env/config/prod.js +0 -3
  36. package/src/pages/env/config/undefined.js +0 -1
  37. package/src/pages/env/env.d.ts +0 -4
  38. package/src/pages/env/index.ts +0 -1
  39. package/src/pages/history/createHistory.ts +0 -94
  40. package/src/pages/history/history.utils.ts +0 -64
  41. package/src/pages/index/App.tsx +0 -17
  42. package/src/pages/index/Demo/DemoLine.tsx +0 -23
  43. package/src/pages/index/Demo/DemoRow.scss +0 -131
  44. package/src/pages/index/Demo/DemoRow.tsx +0 -71
  45. package/src/pages/index/Demo/DemoRow.utils.ts +0 -23
  46. package/src/pages/index/Demo/DemoRowController.tsx +0 -45
  47. package/src/pages/index/Demo/index.ts +0 -8
  48. package/src/pages/index/app.scss +0 -197
  49. package/src/pages/index/components/AutoTable/AutoHeightAutoRow.tsx +0 -56
  50. package/src/pages/index/components/AutoTable/AutoHeightFixedRow.tsx +0 -50
  51. package/src/pages/index/components/AutoTable/AutoTableBasicUsage.tsx +0 -75
  52. package/src/pages/index/components/AutoTable/AutoTableCascade.tsx +0 -99
  53. package/src/pages/index/components/AutoTable/AutoTableDefaultSearch.tsx +0 -73
  54. package/src/pages/index/components/AutoTable/AutoTableFiles.tsx +0 -26
  55. package/src/pages/index/components/AutoTable/AutoTableFill.tsx +0 -51
  56. package/src/pages/index/components/AutoTable/AutoTableGroupUsage.tsx +0 -71
  57. package/src/pages/index/components/AutoTable/AutoTableObjectPicker.tsx +0 -181
  58. package/src/pages/index/components/AutoTable/AutoTableOvList.tsx +0 -80
  59. package/src/pages/index/components/AutoTable/AutoTableProductList.tsx +0 -98
  60. package/src/pages/index/components/AutoTable/AutoTableRowFormatter.tsx +0 -58
  61. package/src/pages/index/components/AutoTable/FixedHeightAutoRow.tsx +0 -50
  62. package/src/pages/index/components/AutoTable/FixedHeightFixedRow.tsx +0 -49
  63. package/src/pages/index/components/bus/DemoAddress.tsx +0 -181
  64. package/src/pages/index/components/bus/DemoAddressCascade.tsx +0 -132
  65. package/src/pages/index/components/bus/DemoFilter.tsx +0 -184
  66. package/src/pages/index/components/columns/DemoPlcAddress.tsx +0 -161
  67. package/src/pages/index/components/columns/DemoPlcDate.tsx +0 -363
  68. package/src/pages/index/components/columns/DemoPlcSelect.tsx +0 -505
  69. package/src/pages/index/components/columns/DemoPlcTime.tsx +0 -293
  70. package/src/pages/index/components/columns/DemoTableColumns.tsx +0 -88
  71. package/src/pages/index/components/form/DemoFormBasic.tsx +0 -516
  72. package/src/pages/index/components/form/DemoFormBlur.tsx +0 -204
  73. package/src/pages/index/components/form/DemoFormDynamicFields.tsx +0 -54
  74. package/src/pages/index/components/form/DemoFormEditControl.tsx +0 -164
  75. package/src/pages/index/components/form/DemoFormElement.tsx +0 -207
  76. package/src/pages/index/components/form/DemoFormLayout.scss +0 -7
  77. package/src/pages/index/components/form/DemoFormLayout.tsx +0 -311
  78. package/src/pages/index/components/form/DemoFormSimplify.tsx +0 -587
  79. package/src/pages/index/components/form/DemoFormSize.tsx +0 -274
  80. package/src/pages/index/components/form/DemoFormVertical.tsx +0 -280
  81. package/src/pages/index/components/normal/DemoAlert.tsx +0 -66
  82. package/src/pages/index/components/normal/DemoBadge.tsx +0 -53
  83. package/src/pages/index/components/normal/DemoButton.tsx +0 -300
  84. package/src/pages/index/components/normal/DemoCard.tsx +0 -176
  85. package/src/pages/index/components/normal/DemoCarousel.tsx +0 -230
  86. package/src/pages/index/components/normal/DemoCascade.tsx +0 -880
  87. package/src/pages/index/components/normal/DemoCheckbox.scss +0 -24
  88. package/src/pages/index/components/normal/DemoCheckbox.tsx +0 -294
  89. package/src/pages/index/components/normal/DemoCollapse.tsx +0 -104
  90. package/src/pages/index/components/normal/DemoColor.scss +0 -20
  91. package/src/pages/index/components/normal/DemoColor.tsx +0 -82
  92. package/src/pages/index/components/normal/DemoColorPicker.tsx +0 -163
  93. package/src/pages/index/components/normal/DemoDate.tsx +0 -443
  94. package/src/pages/index/components/normal/DemoDialog.tsx +0 -507
  95. package/src/pages/index/components/normal/DemoDropdown.tsx +0 -464
  96. package/src/pages/index/components/normal/DemoGrid.scss +0 -26
  97. package/src/pages/index/components/normal/DemoGrid.tsx +0 -181
  98. package/src/pages/index/components/normal/DemoIcon.tsx +0 -39
  99. package/src/pages/index/components/normal/DemoImage.tsx +0 -122
  100. package/src/pages/index/components/normal/DemoInput.scss +0 -0
  101. package/src/pages/index/components/normal/DemoInput.tsx +0 -790
  102. package/src/pages/index/components/normal/DemoKeepAlive.tsx +0 -505
  103. package/src/pages/index/components/normal/DemoLayout.tsx +0 -144
  104. package/src/pages/index/components/normal/DemoList.scss +0 -15
  105. package/src/pages/index/components/normal/DemoList.tsx +0 -82
  106. package/src/pages/index/components/normal/DemoLoading.tsx +0 -86
  107. package/src/pages/index/components/normal/DemoNumber.tsx +0 -269
  108. package/src/pages/index/components/normal/DemoPagination.tsx +0 -164
  109. package/src/pages/index/components/normal/DemoPopup.tsx +0 -695
  110. package/src/pages/index/components/normal/DemoProgress.tsx +0 -133
  111. package/src/pages/index/components/normal/DemoRadio.scss +0 -16
  112. package/src/pages/index/components/normal/DemoRadio.tsx +0 -188
  113. package/src/pages/index/components/normal/DemoRate.tsx +0 -77
  114. package/src/pages/index/components/normal/DemoScroll.scss +0 -22
  115. package/src/pages/index/components/normal/DemoScroll.tsx +0 -300
  116. package/src/pages/index/components/normal/DemoSegment.tsx +0 -71
  117. package/src/pages/index/components/normal/DemoSelect.tsx +0 -819
  118. package/src/pages/index/components/normal/DemoSlider.tsx +0 -128
  119. package/src/pages/index/components/normal/DemoSortList.tsx +0 -70
  120. package/src/pages/index/components/normal/DemoStackCard.tsx +0 -356
  121. package/src/pages/index/components/normal/DemoStep.scss +0 -18
  122. package/src/pages/index/components/normal/DemoStep.tsx +0 -291
  123. package/src/pages/index/components/normal/DemoTab.tsx +0 -338
  124. package/src/pages/index/components/normal/DemoTag.tsx +0 -100
  125. package/src/pages/index/components/normal/DemoTime.tsx +0 -403
  126. package/src/pages/index/components/normal/DemoToggle.tsx +0 -56
  127. package/src/pages/index/components/normal/DemoTooltip.tsx +0 -120
  128. package/src/pages/index/components/normal/DemoTree.tsx +0 -1183
  129. package/src/pages/index/components/normal/DemoUpload.tsx +0 -484
  130. package/src/pages/index/components/normal/DemoVirtualList.tsx +0 -464
  131. package/src/pages/index/components/service/DemoDialogService.tsx +0 -249
  132. package/src/pages/index/components/service/DemoFileService.tsx +0 -110
  133. package/src/pages/index/components/service/DemoImagePreviewer.tsx +0 -185
  134. package/src/pages/index/components/service/DemoMessageService.tsx +0 -100
  135. package/src/pages/index/components/service/DemoNoticeService.tsx +0 -99
  136. package/src/pages/index/components/service/DemoPopupService.tsx +0 -325
  137. package/src/pages/index/components/table/DemoPlcOperation.tsx +0 -307
  138. package/src/pages/index/components/table/DemoTableBasic.tsx +0 -220
  139. package/src/pages/index/components/table/DemoTableCheck.tsx +0 -78
  140. package/src/pages/index/components/table/DemoTableClassAndStyle.scss +0 -18
  141. package/src/pages/index/components/table/DemoTableClassAndStyle.tsx +0 -112
  142. package/src/pages/index/components/table/DemoTableColDraggable.tsx +0 -80
  143. package/src/pages/index/components/table/DemoTableEdit.tsx +0 -136
  144. package/src/pages/index/components/table/DemoTableExpand.tsx +0 -203
  145. package/src/pages/index/components/table/DemoTableFixed.tsx +0 -131
  146. package/src/pages/index/components/table/DemoTableFormatter.tsx +0 -66
  147. package/src/pages/index/components/table/DemoTableOverflowTooltip.tsx +0 -67
  148. package/src/pages/index/components/table/DemoTableRowDraggable.tsx +0 -106
  149. package/src/pages/index/components/table/DemoTableSlots.tsx +0 -153
  150. package/src/pages/index/components/table/DemoTableSpan.tsx +0 -167
  151. package/src/pages/index/components/table/DemoTableTree.tsx +0 -976
  152. package/src/pages/index/components/table/DemoVirtualTable.tsx +0 -274
  153. package/src/pages/index/components/test/DemoI18n.tsx +0 -27
  154. package/src/pages/index/components/test/DemoI18n2.jsx +0 -11
  155. package/src/pages/index/home/AppContent.tsx +0 -69
  156. package/src/pages/index/home/AppHead.tsx +0 -18
  157. package/src/pages/index/home/AppHome.tsx +0 -31
  158. package/src/pages/index/home/AppMenu.tsx +0 -38
  159. package/src/pages/index/home/menus.tsx +0 -220
  160. package/src/pages/index/home/plain-design.png +0 -0
  161. package/src/pages/index/main.tsx +0 -23
  162. package/src/pages/index/nav/$nav.ts +0 -41
  163. package/src/pages/index/pages.d.ts +0 -6
  164. package/src/pages/libs/iconfont-fontcls/demo.css +0 -539
  165. package/src/pages/libs/iconfont-fontcls/demo_index.html +0 -303
  166. package/src/pages/libs/iconfont-fontcls/iconfont.css +0 -35
  167. package/src/pages/libs/iconfont-fontcls/iconfont.js +0 -1
  168. package/src/pages/libs/iconfont-fontcls/iconfont.json +0 -44
  169. package/src/pages/libs/iconfont-fontcls/iconfont.ttf +0 -0
  170. package/src/pages/libs/iconfont-fontcls/iconfont.woff +0 -0
  171. package/src/pages/libs/iconfont-fontcls/iconfont.woff2 +0 -0
  172. package/src/pages/libs/iconfont-symbol/demo.css +0 -539
  173. package/src/pages/libs/iconfont-symbol/demo_index.html +0 -303
  174. package/src/pages/libs/iconfont-symbol/iconfont.css +0 -35
  175. package/src/pages/libs/iconfont-symbol/iconfont.js +0 -1
  176. package/src/pages/libs/iconfont-symbol/iconfont.json +0 -44
  177. package/src/pages/libs/iconfont-symbol/iconfont.ttf +0 -0
  178. package/src/pages/libs/iconfont-symbol/iconfont.woff +0 -0
  179. package/src/pages/libs/iconfont-symbol/iconfont.woff2 +0 -0
  180. package/src/pages/libs/install.iconfont-fontcls.tsx +0 -11
  181. package/src/pages/libs/install.iconfont-symbol.scss +0 -7
  182. package/src/pages/libs/install.iconfont-symbol.tsx +0 -14
  183. package/src/pages/module/address.ts +0 -27
  184. package/src/pages/module/http.ts +0 -24
  185. package/src/pages/module/index.ts +0 -19
  186. package/src/pages/module/object.ts +0 -5
  187. package/src/pages/module/ov.tsx +0 -13
  188. package/src/pages/module/upload.ts +0 -9
  189. package/src/pages/module/useTableOption.ts +0 -28
@@ -1,99 +0,0 @@
1
- import {designPage} from "plain-design-composition";
2
- import {DemoRow} from "../../Demo/DemoRow";
3
- import {Button, useMessage, useNotice} from "../../../../packages";
4
-
5
- export const demo1 = designPage(() => {
6
-
7
- const { $notice } = useNotice();
8
-
9
- return () => (
10
- <DemoRow title="基本用法">
11
- <Button label="basic notice" onClick={() => $notice('您有一条未读消息!')}/>
12
- </DemoRow>
13
- );
14
- });
15
-
16
- export const demo2 = designPage(() => {
17
-
18
- const { $notice } = useNotice();
19
-
20
- return () => (
21
- <DemoRow title="状态">
22
- <Button label="Primary" onClick={() => $notice.primary('您有一条未读消息!')} mode="fill" status="primary"/>
23
- <Button label="Success" onClick={() => $notice.success('您有一条未读消息!')} mode="fill" status="success"/>
24
- <Button label="Warn" onClick={() => $notice.warn('您有一条未读消息!')} mode="fill" status="warn"/>
25
- <Button label="Error" onClick={() => $notice.error('您有一条未读消息!')} mode="fill" status="error"/>
26
- <Button label="Secondary" onClick={() => $notice.secondary('您有一条未读消息!')} mode="fill" status="secondary"/>
27
- </DemoRow>
28
- );
29
- });
30
-
31
- export const demo3 = designPage(() => {
32
-
33
- const { $notice } = useNotice();
34
-
35
- return () => (
36
- <DemoRow title="停留时间">
37
- <Button label="3s(default)" onClick={() => $notice('您有一条未读消息!')}/>
38
- <Button label="1s" onClick={() => $notice('您有一条未读消息!', { time: 1000 })}/>
39
- <Button label="never" onClick={() => $notice('您有一条未读消息!', { time: null })}/>
40
- </DemoRow>
41
- );
42
- });
43
-
44
-
45
- export const demo4 = designPage(() => {
46
-
47
- const { $notice } = useNotice();
48
- const { $message } = useMessage();
49
-
50
- const showNotice = () => {
51
- const close = $notice({
52
- icon: 'pi-customer-service',
53
- time: null,
54
- renderHead: () => <>订单状态变更通知</>,
55
- renderContent: () => <>
56
- 您的订单已经被商家受理,正在安排仓库发货。
57
- </>,
58
- renderFoot: () => <>
59
- <Button size="mini" label="取消订阅" onClick={() => {
60
- close();
61
- $message('取消订阅');
62
- }}/>
63
- <Button size="mini" label="查看订单" mode="fill" onClick={close}/>
64
- </>
65
- });
66
- };
67
-
68
- return () => (
69
- <DemoRow title="自定义内容">
70
- <Button label="custom" onClick={showNotice}/>
71
- </DemoRow>
72
- );
73
- });
74
-
75
- export const demo5 = designPage(() => {
76
-
77
- const { $notice } = useNotice();
78
-
79
- return () => (
80
- <DemoRow title="消息位置">
81
- <Button label="Top Left" onClick={() => $notice('您有一条未读消息!', { horizontal: 'start', vertical: 'start' })}/>
82
- <Button label="Top Right" onClick={() => $notice('您有一条未读消息!', { horizontal: 'end', vertical: 'start' })}/>
83
- <Button label="Bottom Left" onClick={() => $notice('您有一条未读消息!', { horizontal: 'start', vertical: 'end' })}/>
84
- <Button label="Bottom Right" onClick={() => $notice('您有一条未读消息!', { horizontal: 'end', vertical: 'end' })}/>
85
- </DemoRow>
86
- );
87
- });
88
-
89
- export const demo6 = designPage(() => {
90
-
91
- const { $notice } = useNotice();
92
- const { $message } = useMessage();
93
-
94
- return () => (
95
- <DemoRow title="监听点击/关闭动作">
96
- <Button label="basic notice" onClick={() => $notice('您有一条未读消息!', { onClose: () => $message('close'), onClick: () => $message('click') })}/>
97
- </DemoRow>
98
- );
99
- });
@@ -1,325 +0,0 @@
1
- import {designPage, getComponentCls, iMouseEvent, reactive, useRefs} from "plain-design-composition";
2
- import {Button, Checkbox, ClientZoom} from "../../../../packages";
3
- import {DemoRow} from "../../Demo/DemoRow";
4
- import {usePopup} from "../../../../packages/components/usePopup/usePopup";
5
- import {ePopupAnimation, ePopupTrigger, iPopupPlacement, iPopupUseOption} from "../../../../packages/components/usePopup/utils/popup.utils";
6
- import ButtonGroup from "../../../../packages/components/ButtonGroup";
7
- import {useMove} from "../../../../packages/utils/useMove";
8
- import {useReferenceTrigger} from "../../../../packages/components/usePopup/trigger/useReferenceTrigger";
9
-
10
- export const demo1 = designPage(() => {
11
-
12
- const { refs, onRef } = useRefs({ button: Button });
13
-
14
- const { $popup, popupId } = usePopup();
15
-
16
- const state = reactive({
17
- placement: 'top' as iPopupPlacement,
18
- arrow: true,
19
- boundary: true,
20
- refreshOnScroll: true,
21
- hideOnScroll: false,
22
- trigger: ePopupTrigger.click as typeof ePopupTrigger.TYPE,
23
- interactive: true,
24
- hideOnClickReference: true,
25
- sizeEqual: false,
26
- animation: ePopupAnimation.slide as typeof ePopupAnimation.TYPE,
27
- // offsetAlign: 40,
28
-
29
- placementListArray: [
30
- ['top', 'bottom', 'left', 'right',],
31
- ['top-start', 'top-center', 'top-end',],
32
- ['bottom-start', 'bottom-center', 'bottom-end',],
33
- ['left-start', 'left-center', 'left-end',],
34
- ['right-start', 'right-center', 'right-end',],
35
- ] as iPopupPlacement[][],
36
-
37
- triggers: [
38
- ePopupTrigger.click,
39
- ePopupTrigger.contextmenu,
40
- ePopupTrigger.hover,
41
- ePopupTrigger.focus,
42
- ePopupTrigger.manual,
43
- ] as typeof ePopupTrigger.TYPE[],
44
-
45
- animations: [
46
- ePopupAnimation.fade,
47
- ePopupAnimation.slide,
48
- ePopupAnimation.drop,
49
- ePopupAnimation.scale,
50
- ePopupAnimation["scale-y"],
51
- ] as typeof ePopupAnimation.TYPE[],
52
- });
53
-
54
- const utils = {
55
- getOption: (): iPopupUseOption => {
56
- return {
57
- id: popupId,
58
- type: "1",
59
- placement: state.placement,
60
- reference: refs.button!.refs.el!,
61
- trigger: state.trigger,
62
- arrowSize: state.arrow ? undefined : 0,
63
- boundary: state.boundary ? `#boundary-${popupId}` : undefined,
64
- refreshOnScroll: state.refreshOnScroll,
65
- hideOnScroll: state.hideOnScroll,
66
- interactive: state.interactive,
67
- hideOnClickReference: state.hideOnClickReference,
68
- sizeEqual: state.sizeEqual,
69
- animation: state.animation,
70
- // offsetAlign: 40,
71
- render: () => (
72
- <div>
73
- <div>桃花坞里桃花庵;</div>
74
- <div>桃花庵里桃花仙;</div>
75
- <div>桃花仙人种桃树;</div>
76
- <div>又摘桃花换酒钱;</div>
77
- </div>
78
- )
79
- };
80
- },
81
- update: () => {
82
- $popup.update(utils.getOption());
83
- },
84
- };
85
-
86
- useMove({
87
- elGetter: () => refs.button?.refs.el,
88
- onMove: () => $popup.refresh(utils.getOption())
89
- });
90
-
91
- useReferenceTrigger({
92
- get: () => ({ reference: refs.button?.refs.el, trigger: state.trigger }),
93
- getOption: () => utils.getOption(),
94
- manager: $popup.manager,
95
- });
96
-
97
- return () => (
98
- <DemoRow title="基本用法">
99
- <div id={`boundary-${popupId}`} style={{ width: '400px', height: '400px', marginBottom: '100px', backgroundColor: '#f1f1f1', padding: '12px', display: 'flex', alignItems: 'center', justifyContent: 'center' }}>
100
- <Button label="POPUP" ref={onRef.button} mode="fill"/>
101
- </div>
102
- {state.placementListArray.map(list => (
103
- <ButtonGroup key={list[0]} style={{ marginBottom: '12px' }}>
104
- {list.map(item => (
105
- <Button
106
- key={item}
107
- label={item}
108
- mode={item === state.placement ? 'fill' : 'flat'}
109
- onClick={() => {
110
- state.placement = item;
111
- utils.update();
112
- }}
113
- />
114
- ))}
115
- </ButtonGroup>
116
- ))}
117
- <div style={{ height: '24px' }}/>
118
- <ButtonGroup>
119
- {state.triggers.map(trigger => (
120
- <Button
121
- key={trigger}
122
- label={trigger}
123
- mode={trigger === state.trigger ? 'fill' : 'flat'}
124
- onClick={() => {
125
- state.trigger = trigger;
126
- utils.update();
127
- }}
128
- />
129
- ))}
130
- </ButtonGroup>
131
- <div style={{ height: '24px' }}/>
132
- <ButtonGroup>
133
- {state.animations.map(animation => (
134
- <Button
135
- key={animation}
136
- label={animation}
137
- mode={animation === state.animation ? 'fill' : 'flat'}
138
- onClick={() => {
139
- state.animation = animation;
140
- utils.update();
141
- }}
142
- />
143
- ))}
144
- </ButtonGroup>
145
- <div style={{ height: '24px' }}/>
146
- <Checkbox label="arrow" v-model={state.arrow} onChange={utils.update}/>
147
- <div style={{ height: '24px' }}/>
148
- <Checkbox label="boundary" v-model={state.boundary} onChange={utils.update}/>
149
- <div style={{ height: '24px' }}/>
150
- <Checkbox label="refreshOnScroll" v-model={state.refreshOnScroll} onChange={utils.update}/>
151
- <div style={{ height: '24px' }}/>
152
- <Checkbox label="hideOnScroll" v-model={state.hideOnScroll} onChange={utils.update}/>
153
- {state.trigger === ePopupTrigger.hover && <>
154
- <div style={{ height: '24px' }}/>
155
- <Checkbox label="interactive" v-model={state.interactive} onChange={utils.update}/>
156
- </>}
157
- {(state.trigger === ePopupTrigger.hover || state.trigger === ePopupTrigger.contextmenu) && <>
158
- <div style={{ height: '24px' }}/>
159
- <Checkbox label="hideOnClickReference" v-model={state.hideOnClickReference} onChange={utils.update}/>
160
- </>}
161
- <div style={{ height: '24px' }}/>
162
- <Checkbox label="sizeEqual" v-model={state.sizeEqual} onChange={utils.update}/>
163
- </DemoRow>
164
- );
165
- });
166
-
167
-
168
- export const demo2 = designPage(() => {
169
-
170
- const { refs, onRef } = useRefs({ button: Button, boundary: HTMLDivElement });
171
-
172
- const { $popup, popupId } = usePopup();
173
-
174
- const state = reactive({
175
- placement: 'top' as iPopupPlacement,
176
- arrow: true,
177
- boundary: true,
178
- refreshOnScroll: true,
179
- hideOnScroll: false,
180
- trigger: ePopupTrigger.click as typeof ePopupTrigger.TYPE,
181
- interactive: true,
182
- hideOnClickReference: true,
183
-
184
- placementListArray: [
185
- ['top', 'bottom', 'left', 'right',],
186
- ['top-start', 'top-center', 'top-end',],
187
- ['bottom-start', 'bottom-center', 'bottom-end',],
188
- ['left-start', 'left-center', 'left-end',],
189
- ['right-start', 'right-center', 'right-end',],
190
- ] as iPopupPlacement[][],
191
-
192
- triggers: [
193
- ePopupTrigger.click,
194
- ePopupTrigger.contextmenu,
195
- ePopupTrigger.hover,
196
- ePopupTrigger.focus,
197
- ePopupTrigger.manual,
198
- ] as typeof ePopupTrigger.TYPE[]
199
- });
200
-
201
- const utils = {
202
- getOption: (): iPopupUseOption => {
203
- return {
204
- id: popupId,
205
- type: "1",
206
- placement: state.placement,
207
- reference: refs.button!.refs.el!,
208
- trigger: state.trigger,
209
- arrowSize: state.arrow ? undefined : 0,
210
- refreshOnScroll: state.refreshOnScroll,
211
- hideOnScroll: state.hideOnScroll,
212
- interactive: state.interactive,
213
- hideOnClickReference: state.hideOnClickReference,
214
- stickyReference: refs.boundary,
215
- render: () => (
216
- <div>
217
- <div>桃花坞里桃花庵;</div>
218
- <div>桃花庵里桃花仙;</div>
219
- <div>桃花仙人种桃树;</div>
220
- <div>又摘桃花换酒钱;</div>
221
- </div>
222
- )
223
- };
224
- },
225
- update: () => {
226
- $popup.update(utils.getOption());
227
- },
228
- };
229
-
230
- useMove({
231
- elGetter: () => refs.button?.refs.el,
232
- onMove: () => $popup.refresh(utils.getOption())
233
- });
234
-
235
- useReferenceTrigger({
236
- get: () => ({ reference: refs.button?.refs.el, trigger: state.trigger }),
237
- getOption: () => utils.getOption(),
238
- manager: $popup.manager,
239
- });
240
-
241
- return () => (
242
- <DemoRow title="StickyReference">
243
- <div ref={onRef.boundary} style={{ width: '400px', height: '400px', marginBottom: '100px', backgroundColor: '#f1f1f1', padding: '12px', display: 'flex', alignItems: 'center', justifyContent: 'center' }}>
244
- <Button label="POPUP" ref={onRef.button} mode="fill"/>
245
- </div>
246
- {state.placementListArray.map(list => (
247
- <ButtonGroup key={list[0]} style={{ marginBottom: '12px' }}>
248
- {list.map(item => (
249
- <Button
250
- key={item}
251
- label={item}
252
- mode={item === state.placement ? 'fill' : 'flat'}
253
- onClick={() => {
254
- state.placement = item;
255
- utils.update();
256
- }}
257
- />
258
- ))}
259
- </ButtonGroup>
260
- ))}
261
- <div style={{ height: '24px' }}/>
262
- <ButtonGroup>
263
- {state.triggers.map(trigger => (
264
- <Button
265
- key={trigger}
266
- label={trigger}
267
- mode={trigger === state.trigger ? 'fill' : 'flat'}
268
- onClick={() => {
269
- state.trigger = trigger;
270
- }}
271
- />
272
- ))}
273
- </ButtonGroup>
274
- <div style={{ height: '24px' }}/>
275
- <Checkbox label="arrow" v-model={state.arrow} onChange={utils.update}/>
276
- <div style={{ height: '24px' }}/>
277
- <Checkbox label="refreshOnScroll" v-model={state.refreshOnScroll} onChange={utils.update}/>
278
- <div style={{ height: '24px' }}/>
279
- <Checkbox label="hideOnScroll" v-model={state.hideOnScroll} onChange={utils.update}/>
280
- {state.trigger === ePopupTrigger.hover && <>
281
- <div style={{ height: '24px' }}/>
282
- <Checkbox label="interactive" v-model={state.interactive} onChange={utils.update}/>
283
- </>}
284
- {(state.trigger === ePopupTrigger.hover || state.trigger === ePopupTrigger.contextmenu) && <>
285
- <div style={{ height: '24px' }}/>
286
- <Checkbox label="hideOnClickReference" v-model={state.hideOnClickReference} onChange={utils.update}/>
287
- </>}
288
- </DemoRow>
289
- );
290
- });
291
-
292
- export const demoAbsolute = designPage(() => {
293
-
294
- const { $popup } = usePopup();
295
-
296
- const handler = {
297
- onContextmenu: (e: iMouseEvent) => {
298
-
299
- const { clientX, clientY } = ClientZoom.getClientPosition(e);
300
-
301
- e.preventDefault();
302
- $popup.absolute({
303
- x: clientX,
304
- y: clientY,
305
- type: 'demo-absolute',
306
- placement: 'right-start',
307
- trigger: 'contextmenu',
308
- render: () => (
309
- <div>
310
- <div>桃花坞里桃花庵;</div>
311
- <div>桃花庵里桃花仙;</div>
312
- <div>桃花仙人种桃树;</div>
313
- <div>又摘桃花换酒钱;</div>
314
- </div>
315
- )
316
- });
317
- },
318
- };
319
-
320
- return () => (
321
- <DemoRow title="绝对定位">
322
- <div onContextMenu={handler.onContextmenu} style={{ height: '100px', width: '100px', backgroundColor: `var(--${getComponentCls('primary-1')})`, display: 'inline-flex', alignItems: 'center', justifyContent: 'center' }}>REFERENCE</div>
323
- </DemoRow>
324
- );
325
- });