plain-design 1.0.0-beta.4 → 1.0.0-beta.40
Sign up to get free protection for your applications and to get access to all the features.
- package/dist/plain-design.commonjs.min.js +3 -3
- package/dist/plain-design.min.css +37 -29
- package/dist/plain-design.min.js +3 -3
- package/dist/report.html +5 -5
- package/package.json +9 -8
- package/src/packages/build.ts +2 -10
- package/src/packages/components/$object/createObjectService.tsx +31 -20
- package/src/packages/components/$object/object.service.utils.ts +7 -3
- package/src/packages/components/$previewer/ImagePreviewerFixedContainer.tsx +108 -0
- package/src/packages/components/$previewer/image-previewer-fixed-container.scss +18 -0
- package/src/packages/components/$previewer/index.tsx +52 -0
- package/src/packages/components/Alert/alert.scss +3 -3
- package/src/packages/components/Application/service/useApplicationService.tsx +2 -0
- package/src/packages/components/Application/theme/theme.ts +3 -3
- package/src/packages/components/ArrowStepGroup/arrow-step.scss +4 -4
- package/src/packages/components/AutoTable/filter/useTableOption.filter.form.tsx +1 -0
- package/src/packages/components/AutoTable/use/useTableOption.methods.tsx +2 -0
- package/src/packages/components/AutoTable/use/useTableOption.state.tsx +1 -0
- package/src/packages/components/AutoTable/use/useTableOption.table.tsx +3 -3
- package/src/packages/components/AutoTable/utils/TableOption.space.tsx +4 -0
- package/src/packages/components/Badge/badge.scss +1 -1
- package/src/packages/components/Button/button.scss +2 -2
- package/src/packages/components/Card/card.scss +1 -1
- package/src/packages/components/Carousel/carousel.scss +391 -0
- package/src/packages/components/Carousel/index.tsx +569 -22
- package/src/packages/components/CarouselItem/index.tsx +77 -0
- package/src/packages/components/CascadePanel/list/CascadeListPanelItem.tsx +3 -3
- package/src/packages/components/CheckboxInner/checkbox-inner.scss +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/DatePicker/date.scss +1 -1
- package/src/packages/components/Dialog/dialog.scss +1 -1
- package/src/packages/components/Dialog/index.tsx +4 -3
- package/src/packages/components/Dialog/useDialogMovable.tsx +7 -4
- package/src/packages/components/Dialog/utils/dialog.mouse.ts +4 -2
- package/src/packages/components/Dropdown/dropdown.public.scss +10 -0
- package/src/packages/components/Dropdown/dropdown.utils.tsx +3 -1
- package/src/packages/components/Dropdown/index.tsx +2 -2
- package/src/packages/components/DropdownOption/index.tsx +3 -3
- package/src/packages/components/DropdownSeparator/index.tsx +8 -0
- package/src/packages/components/FilterFormMultiple/index.tsx +31 -10
- package/src/packages/components/Image/image.scss +3 -3
- package/src/packages/components/ImagePreviewer/ImagePreviewer.tsx +574 -0
- package/src/packages/components/ImagePreviewer/ImagePreviewerButtonBar.tsx +140 -0
- package/src/packages/components/ImagePreviewer/ImagePreviewerCarouselImage.tsx +54 -0
- package/src/packages/components/ImagePreviewer/ImagePreviewerGallery.tsx +202 -0
- package/src/packages/components/ImagePreviewer/PreviewerLoading.tsx +26 -0
- package/src/packages/components/ImagePreviewer/image-previewer.scss +244 -0
- package/src/packages/components/ImagePreviewer/image-previewer.utils.tsx +135 -0
- package/src/packages/components/ImagePreviewer/index.tsx +5 -0
- package/src/packages/components/ImagePreviewer/previewer-loading.scss +52 -0
- package/src/packages/components/Input/index.scss +2 -2
- package/src/packages/components/Input/useMultipleInput.tsx +2 -76
- package/src/packages/components/Input/useTextareaInput.tsx +10 -5
- package/src/packages/components/Input/uses/useInputHooks.tsx +11 -11
- package/src/packages/components/InputNumber/NumberResize.tsx +20 -3
- package/src/packages/components/InputNumber/input-number.utils.tsx +7 -5
- package/src/packages/components/InputNumber/number.scss +10 -1
- package/src/packages/components/InputNumber/useInputNumber.public.tsx +25 -6
- 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/packages/components/LoadingMask/index.tsx +1 -1
- package/src/packages/components/PageThemeUtils/index.tsx +54 -14
- package/src/packages/components/Pagination/pagination.scss +2 -2
- package/src/packages/components/PlcOv/index.tsx +14 -4
- package/src/packages/components/Popup/index.tsx +24 -10
- package/src/packages/components/ProgressBar/progress-bar.scss +1 -1
- 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/Scroll/index.tsx +6 -6
- package/src/packages/components/Select/createPublicSelectRender.tsx +1 -1
- package/src/packages/components/Slider/slider.scss +1 -1
- package/src/packages/components/Slider/useSliderDotDragier.tsx +7 -4
- package/src/packages/components/SortList/index.tsx +191 -0
- package/src/packages/components/SortList/sort-list.scss +11 -0
- package/src/packages/components/StackCard/index.tsx +416 -0
- package/src/packages/components/StackCard/stack-card.scss +40 -0
- package/src/packages/components/StackCardItem/index.tsx +24 -0
- package/src/packages/components/StepGroup/step-group.scss +9 -9
- package/src/packages/components/TabGroup/TabsInner.tsx +5 -3
- package/src/packages/components/TabGroup/header/horizontal/tabs-header-horizontal.scss +0 -1
- package/src/packages/components/TabGroup/index.tsx +5 -1
- package/src/packages/components/TabGroup/tabs.scss +3 -0
- package/src/packages/components/Table/standard/PlcExpand.tsx +12 -20
- package/src/packages/components/Table/standard/PlcOperation/PlcOperation.tsx +1 -1
- package/src/packages/components/Table/standard/PlcOperation/outer-operation.scss +2 -0
- package/src/packages/components/Table/standard/PlcTree/RenderPlcTreeNode.tsx +2 -1
- package/src/packages/components/Table/table/Table.tsx +10 -3
- package/src/packages/components/Table/table/body/row.tsx +1 -1
- package/src/packages/components/Table/table/body/useCellValue.tsx +10 -6
- package/src/packages/components/Table/table/head/useHeadCellResize.ts +8 -3
- package/src/packages/components/Table/table/table.scss +2 -1
- package/src/packages/components/Table/table/use/useTableDraggier.col.tsx +10 -5
- package/src/packages/components/Table/table/use/useTableDraggier.row.tsx +12 -7
- package/src/packages/components/Table/table/use/useTableFormEditor.tsx +1 -1
- package/src/packages/components/Table/table/use/useTableModifyEditor.tsx +1 -1
- package/src/packages/components/Table/table/utils/createTableHooks.ts +4 -2
- package/src/packages/components/Table/table/utils/table.utils.ts +6 -1
- package/src/packages/components/ThemeEditor/index.tsx +173 -0
- package/src/packages/components/ThemeEditor/theme-editor.scss +105 -0
- package/src/packages/components/ThemePrimaryColors/index.ts +5 -0
- package/src/packages/components/Tree/RenderTreeNode.tsx +8 -3
- package/src/packages/components/Tree/index.tsx +4 -3
- package/src/packages/components/Tree/tree.scss +42 -9
- 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 +70 -56
- package/src/packages/components/TreeCore/createTreeMethods.tsx +1 -0
- package/src/packages/components/TreeCore/createTreeProps.ts +2 -1
- package/src/packages/components/TreeNodeWithMenu/index.tsx +91 -0
- package/src/packages/components/TreeNodeWithMenu/tree-node-with-menu.scss +39 -0
- package/src/packages/components/TreeNodeWithMenu/treeNodeWithMenu.utils.ts +12 -0
- package/src/packages/components/VirtualList/index.tsx +15 -6
- package/src/packages/components/VirtualList/useVirtualList.tsx +182 -107
- package/src/packages/components/VirtualList/virtual-list.scss +31 -17
- package/src/packages/components/VirtualTable/index.tsx +7 -7
- package/src/packages/components/VirtualTable/virtual-table.scss +1 -2
- package/src/packages/components/createProvider/index.ts +5 -0
- package/src/packages/components/nextPopupId/index.ts +5 -0
- package/src/packages/components/useDialog/DialogService.tsx +13 -1
- package/src/packages/components/useDialog/index.tsx +1 -1
- package/src/packages/components/useImage/ImageService.tsx +7 -4
- package/src/packages/components/useMessage/Message.tsx +5 -1
- package/src/packages/components/useMessage/message.scss +5 -1
- package/src/packages/components/useNotice/notice.scss +2 -2
- package/src/packages/components/usePopup/PopupItem.tsx +45 -26
- package/src/packages/components/usePopup/popup-item.scss +5 -1
- package/src/packages/components/usePopup/usePopupManager.tsx +2 -1
- package/src/packages/components/usePopup/utils/popup.utils.ts +2 -1
- 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 +48 -2
- package/src/packages/i18n/lang/en-us.ts +36 -0
- package/src/packages/i18n/lang/zh-cn.ts +36 -0
- package/src/packages/uses/useDragHorizontalScroll.ts +82 -0
- package/src/packages/uses/useEdit.ts +5 -1
- package/src/packages/uses/useStyle.tsx +10 -2
- package/src/packages/utils/ClientZoom.ts +24 -2
- package/src/packages/utils/ComponentUtils.ts +10 -0
- package/src/packages/utils/buildCycleIndexList.ts +31 -0
- package/src/packages/utils/getDeviceInfo.ts +44 -44
- package/src/packages/utils/getRectAutoFormat.ts +9 -0
- package/src/packages/utils/inheritSlots.ts +28 -0
- package/src/packages/utils/notNull.ts +9 -0
- package/src/packages/utils/useMove.tsx +10 -4
- package/src/packages/components/CarouselGroup/carousel.scss +0 -143
- package/src/packages/components/CarouselGroup/index.tsx +0 -274
- package/src/pages/data/address.json +0 -39317
- package/src/pages/data/data-1.json +0 -754
- package/src/pages/data/data-2.json +0 -3006
- package/src/pages/data/data-200.json +0 -5206
- package/src/pages/data/data-2000.json +0 -51954
- package/src/pages/data/data-50.json +0 -2075
- package/src/pages/data/data.json +0 -30002
- package/src/pages/data/demo.json +0 -1702
- package/src/pages/data/mock.database.js +0 -43
- package/src/pages/data/mock.js +0 -141
- package/src/pages/data/tree.data.json +0 -87
- package/src/pages/env/config/local.js +0 -3
- package/src/pages/env/config/prod.js +0 -3
- package/src/pages/env/config/undefined.js +0 -1
- package/src/pages/env/env.d.ts +0 -4
- package/src/pages/env/index.ts +0 -1
- package/src/pages/history/createHistory.ts +0 -94
- package/src/pages/history/history.utils.ts +0 -64
- package/src/pages/index/App.tsx +0 -17
- package/src/pages/index/Demo/DemoLine.tsx +0 -23
- package/src/pages/index/Demo/DemoRow.scss +0 -128
- package/src/pages/index/Demo/DemoRow.tsx +0 -71
- package/src/pages/index/Demo/DemoRow.utils.ts +0 -23
- package/src/pages/index/Demo/DemoRowController.tsx +0 -45
- package/src/pages/index/Demo/index.ts +0 -8
- package/src/pages/index/app.scss +0 -192
- package/src/pages/index/components/AutoTable/AutoHeightAutoRow.tsx +0 -51
- package/src/pages/index/components/AutoTable/AutoHeightFixedRow.tsx +0 -50
- package/src/pages/index/components/AutoTable/AutoTableBasicUsage.tsx +0 -75
- package/src/pages/index/components/AutoTable/AutoTableCascade.tsx +0 -99
- package/src/pages/index/components/AutoTable/AutoTableDefaultSearch.tsx +0 -73
- package/src/pages/index/components/AutoTable/AutoTableFiles.tsx +0 -26
- package/src/pages/index/components/AutoTable/AutoTableFill.tsx +0 -51
- package/src/pages/index/components/AutoTable/AutoTableGroupUsage.tsx +0 -71
- package/src/pages/index/components/AutoTable/AutoTableObjectPicker.tsx +0 -181
- package/src/pages/index/components/AutoTable/AutoTableOvList.tsx +0 -80
- package/src/pages/index/components/AutoTable/AutoTableProductList.tsx +0 -98
- package/src/pages/index/components/AutoTable/AutoTableRowFormatter.tsx +0 -58
- package/src/pages/index/components/AutoTable/FixedHeightAutoRow.tsx +0 -50
- package/src/pages/index/components/AutoTable/FixedHeightFixedRow.tsx +0 -49
- package/src/pages/index/components/bus/DemoAddress.tsx +0 -181
- package/src/pages/index/components/bus/DemoAddressCascade.tsx +0 -132
- package/src/pages/index/components/bus/DemoFilter.tsx +0 -184
- package/src/pages/index/components/columns/DemoPlcAddress.tsx +0 -161
- package/src/pages/index/components/columns/DemoPlcDate.tsx +0 -363
- package/src/pages/index/components/columns/DemoPlcSelect.tsx +0 -505
- package/src/pages/index/components/columns/DemoPlcTime.tsx +0 -293
- package/src/pages/index/components/columns/DemoTableColumns.tsx +0 -88
- package/src/pages/index/components/form/DemoFormBasic.tsx +0 -516
- package/src/pages/index/components/form/DemoFormBlur.tsx +0 -204
- package/src/pages/index/components/form/DemoFormDynamicFields.tsx +0 -54
- package/src/pages/index/components/form/DemoFormEditControl.tsx +0 -164
- package/src/pages/index/components/form/DemoFormElement.tsx +0 -207
- package/src/pages/index/components/form/DemoFormLayout.scss +0 -7
- package/src/pages/index/components/form/DemoFormLayout.tsx +0 -311
- package/src/pages/index/components/form/DemoFormSimplify.tsx +0 -587
- package/src/pages/index/components/form/DemoFormSize.tsx +0 -274
- package/src/pages/index/components/form/DemoFormVertical.tsx +0 -280
- package/src/pages/index/components/normal/DemoAlert.tsx +0 -66
- package/src/pages/index/components/normal/DemoBadge.tsx +0 -53
- package/src/pages/index/components/normal/DemoButton.tsx +0 -300
- package/src/pages/index/components/normal/DemoCard.tsx +0 -176
- package/src/pages/index/components/normal/DemoCarousel.tsx +0 -125
- package/src/pages/index/components/normal/DemoCascade.tsx +0 -880
- package/src/pages/index/components/normal/DemoCheckbox.scss +0 -24
- package/src/pages/index/components/normal/DemoCheckbox.tsx +0 -294
- package/src/pages/index/components/normal/DemoCollapse.tsx +0 -104
- package/src/pages/index/components/normal/DemoColor.scss +0 -20
- package/src/pages/index/components/normal/DemoColor.tsx +0 -82
- package/src/pages/index/components/normal/DemoColorPicker.tsx +0 -163
- package/src/pages/index/components/normal/DemoDate.tsx +0 -443
- package/src/pages/index/components/normal/DemoDialog.tsx +0 -507
- package/src/pages/index/components/normal/DemoDropdown.tsx +0 -463
- package/src/pages/index/components/normal/DemoGrid.scss +0 -26
- package/src/pages/index/components/normal/DemoGrid.tsx +0 -181
- package/src/pages/index/components/normal/DemoIcon.tsx +0 -39
- package/src/pages/index/components/normal/DemoImage.tsx +0 -122
- package/src/pages/index/components/normal/DemoInput.scss +0 -0
- package/src/pages/index/components/normal/DemoInput.tsx +0 -790
- package/src/pages/index/components/normal/DemoKeepAlive.tsx +0 -505
- package/src/pages/index/components/normal/DemoList.scss +0 -15
- package/src/pages/index/components/normal/DemoList.tsx +0 -82
- package/src/pages/index/components/normal/DemoLoading.tsx +0 -83
- package/src/pages/index/components/normal/DemoNumber.tsx +0 -266
- package/src/pages/index/components/normal/DemoPagination.tsx +0 -164
- package/src/pages/index/components/normal/DemoPopup.tsx +0 -695
- package/src/pages/index/components/normal/DemoProgress.tsx +0 -133
- package/src/pages/index/components/normal/DemoRadio.scss +0 -16
- package/src/pages/index/components/normal/DemoRadio.tsx +0 -188
- package/src/pages/index/components/normal/DemoRate.tsx +0 -77
- package/src/pages/index/components/normal/DemoScroll.scss +0 -22
- package/src/pages/index/components/normal/DemoScroll.tsx +0 -300
- package/src/pages/index/components/normal/DemoSegment.tsx +0 -71
- package/src/pages/index/components/normal/DemoSelect.tsx +0 -819
- package/src/pages/index/components/normal/DemoSlider.tsx +0 -128
- package/src/pages/index/components/normal/DemoStep.scss +0 -18
- package/src/pages/index/components/normal/DemoStep.tsx +0 -291
- package/src/pages/index/components/normal/DemoTab.tsx +0 -338
- package/src/pages/index/components/normal/DemoTag.tsx +0 -100
- package/src/pages/index/components/normal/DemoTime.tsx +0 -403
- package/src/pages/index/components/normal/DemoToggle.tsx +0 -56
- package/src/pages/index/components/normal/DemoTooltip.tsx +0 -120
- package/src/pages/index/components/normal/DemoTree.tsx +0 -1099
- package/src/pages/index/components/normal/DemoUpload.tsx +0 -484
- package/src/pages/index/components/normal/DemoVirtualList.tsx +0 -378
- package/src/pages/index/components/service/DemoDialogService.tsx +0 -248
- package/src/pages/index/components/service/DemoFileService.tsx +0 -110
- package/src/pages/index/components/service/DemoMessageService.tsx +0 -100
- package/src/pages/index/components/service/DemoNoticeService.tsx +0 -99
- package/src/pages/index/components/service/DemoPopupService.tsx +0 -322
- package/src/pages/index/components/table/DemoPlcOperation.tsx +0 -307
- package/src/pages/index/components/table/DemoTableBasic.tsx +0 -220
- package/src/pages/index/components/table/DemoTableCheck.tsx +0 -78
- package/src/pages/index/components/table/DemoTableClassAndStyle.scss +0 -18
- package/src/pages/index/components/table/DemoTableClassAndStyle.tsx +0 -112
- package/src/pages/index/components/table/DemoTableColDraggable.tsx +0 -80
- package/src/pages/index/components/table/DemoTableEdit.tsx +0 -136
- package/src/pages/index/components/table/DemoTableExpand.tsx +0 -181
- package/src/pages/index/components/table/DemoTableFixed.tsx +0 -131
- package/src/pages/index/components/table/DemoTableFormatter.tsx +0 -66
- package/src/pages/index/components/table/DemoTableOverflowTooltip.tsx +0 -67
- package/src/pages/index/components/table/DemoTableRowDraggable.tsx +0 -106
- package/src/pages/index/components/table/DemoTableSlots.tsx +0 -153
- package/src/pages/index/components/table/DemoTableSpan.tsx +0 -167
- package/src/pages/index/components/table/DemoTableTree.tsx +0 -976
- package/src/pages/index/components/table/DemoVirtualTable.tsx +0 -274
- package/src/pages/index/components/test/DemoI18n.tsx +0 -27
- package/src/pages/index/components/test/DemoI18n2.jsx +0 -11
- package/src/pages/index/home/AppContent.tsx +0 -69
- package/src/pages/index/home/AppHead.tsx +0 -104
- package/src/pages/index/home/AppHome.tsx +0 -16
- package/src/pages/index/home/AppMenu.tsx +0 -38
- package/src/pages/index/home/menus.tsx +0 -217
- package/src/pages/index/main.tsx +0 -23
- package/src/pages/index/nav/$nav.ts +0 -41
- package/src/pages/index/pages.d.ts +0 -6
- package/src/pages/libs/iconfont-fontcls/demo.css +0 -539
- package/src/pages/libs/iconfont-fontcls/demo_index.html +0 -303
- package/src/pages/libs/iconfont-fontcls/iconfont.css +0 -35
- package/src/pages/libs/iconfont-fontcls/iconfont.js +0 -1
- package/src/pages/libs/iconfont-fontcls/iconfont.json +0 -44
- package/src/pages/libs/iconfont-fontcls/iconfont.ttf +0 -0
- package/src/pages/libs/iconfont-fontcls/iconfont.woff +0 -0
- package/src/pages/libs/iconfont-fontcls/iconfont.woff2 +0 -0
- package/src/pages/libs/iconfont-symbol/demo.css +0 -539
- package/src/pages/libs/iconfont-symbol/demo_index.html +0 -303
- package/src/pages/libs/iconfont-symbol/iconfont.css +0 -35
- package/src/pages/libs/iconfont-symbol/iconfont.js +0 -1
- package/src/pages/libs/iconfont-symbol/iconfont.json +0 -44
- package/src/pages/libs/iconfont-symbol/iconfont.ttf +0 -0
- package/src/pages/libs/iconfont-symbol/iconfont.woff +0 -0
- package/src/pages/libs/iconfont-symbol/iconfont.woff2 +0 -0
- package/src/pages/libs/install.iconfont-fontcls.tsx +0 -11
- package/src/pages/libs/install.iconfont-symbol.scss +0 -7
- package/src/pages/libs/install.iconfont-symbol.tsx +0 -14
- package/src/pages/module/address.ts +0 -27
- package/src/pages/module/http.ts +0 -24
- package/src/pages/module/index.ts +0 -19
- package/src/pages/module/object.ts +0 -5
- package/src/pages/module/ov.tsx +0 -13
- package/src/pages/module/upload.ts +0 -9
- package/src/pages/module/useTableOption.ts +0 -28
@@ -2,6 +2,7 @@ import {designComponent, getComponentCls, iMouseEvent, nextIndex, onMounted, Pro
|
|
2
2
|
import {closeMessageServiceHook, iMessageServiceOption} from "./message.service.utils";
|
3
3
|
import Icon from "../Icon";
|
4
4
|
import './message.scss';
|
5
|
+
import {useStyle} from "../../uses/useStyle";
|
5
6
|
|
6
7
|
export const Message = designComponent({
|
7
8
|
name: 'message-service',
|
@@ -16,9 +17,12 @@ export const Message = designComponent({
|
|
16
17
|
|
17
18
|
onMounted(() => emit.onReady());
|
18
19
|
|
20
|
+
const { styleComputed } = useStyle();
|
21
|
+
|
19
22
|
const classes = useClasses(() => [
|
20
23
|
getComponentCls('message'),
|
21
|
-
`message-status-${props.option.status}
|
24
|
+
`message-status-${props.option.status}`,
|
25
|
+
`message-size-${styleComputed.value.size}`
|
22
26
|
]);
|
23
27
|
const styles = { zIndex: nextIndex() };
|
24
28
|
|
@@ -128,7 +128,7 @@
|
|
128
128
|
}
|
129
129
|
.message-close {
|
130
130
|
@include prefix(icon) {
|
131
|
-
|
131
|
+
color: plv(pbfc);
|
132
132
|
}
|
133
133
|
|
134
134
|
&:after {
|
@@ -142,4 +142,8 @@
|
|
142
142
|
}
|
143
143
|
}
|
144
144
|
}
|
145
|
+
|
146
|
+
@include sizeMixin(message, (font-size)) {
|
147
|
+
padding: calc(#{plv(dropdown-size-#{$name}-padding-y)} * 2);
|
148
|
+
}
|
145
149
|
}
|
@@ -65,7 +65,7 @@
|
|
65
65
|
cursor: pointer;
|
66
66
|
|
67
67
|
@include prefix(icon) {
|
68
|
-
color:
|
68
|
+
color: plv(pbfc);
|
69
69
|
position: relative;
|
70
70
|
z-index: 1;
|
71
71
|
|
@@ -111,7 +111,7 @@
|
|
111
111
|
font-size: plv(notice-content-font-size);
|
112
112
|
padding-top: 16px;
|
113
113
|
color: plv(text-2);
|
114
|
-
line-height:
|
114
|
+
line-height: plv(line-height);
|
115
115
|
}
|
116
116
|
|
117
117
|
.notice-foot {
|
@@ -1,4 +1,4 @@
|
|
1
|
-
import {designComponent, getComponentCls, iHTMLDivElement, iHTMLElement, iTransitionEvent, nextIndex, onBeforeUnmount, onMounted, Portal, PropType, reactive, SimpleFunction, useClassCache, useRefs, useStyleCache} from "plain-design-composition";
|
1
|
+
import {designComponent, getComponentCls, iHTMLDivElement, iHTMLElement, iMouseEvent, iTransitionEvent, nextIndex, onBeforeUnmount, onMounted, Portal, PropType, reactive, SimpleFunction, useClassCache, useRefs, useStyleCache} from "plain-design-composition";
|
2
2
|
import {ePopupAnimation, iPopupOption, iPopupRefs, PopupItemProvide} from "./utils/popup.utils";
|
3
3
|
import {createEffects} from "plain-utils/utils/createEffects";
|
4
4
|
import {delay} from "plain-utils/utils/delay";
|
@@ -82,6 +82,7 @@ export const PopupItem = designComponent({
|
|
82
82
|
'popup-item-is-dark': !application.value.theme.dark && !state.option.status && !!state.option.dark,
|
83
83
|
[`popup-item-status-${state.option.status}`]: !!state.option.status,
|
84
84
|
'popup-item-dark-app': application.value.theme.dark,
|
85
|
+
'popup-item-no-interactive': !state.option.interactive,
|
85
86
|
}
|
86
87
|
]);
|
87
88
|
|
@@ -193,7 +194,7 @@ export const PopupItem = designComponent({
|
|
193
194
|
clearTimeout(timer);
|
194
195
|
timer = null;
|
195
196
|
}
|
196
|
-
methods.refresh(
|
197
|
+
methods.refresh(state.option.transformRefreshOnScroll);
|
197
198
|
timer = setTimeout(() => {
|
198
199
|
methods.refresh();
|
199
200
|
}, 100);
|
@@ -262,6 +263,14 @@ export const PopupItem = designComponent({
|
|
262
263
|
};
|
263
264
|
return check;
|
264
265
|
})(),
|
266
|
+
/**
|
267
|
+
* 阻止点击popup的事件冒泡,如果有div包裹popup几点,在react中即使popup不是这个div的子节点也会导致事件冒泡到div上
|
268
|
+
* @author 韦胜健
|
269
|
+
* @date 2023/8/10 11:27
|
270
|
+
*/
|
271
|
+
onClickPopup: (e: iMouseEvent) => {
|
272
|
+
e.stopPropagation();
|
273
|
+
},
|
265
274
|
};
|
266
275
|
|
267
276
|
onMounted(async () => {
|
@@ -361,34 +370,44 @@ export const PopupItem = designComponent({
|
|
361
370
|
PopupItemProvide.provide(state);
|
362
371
|
|
363
372
|
return () => (
|
364
|
-
!!state.option.reference &&
|
365
|
-
|
366
|
-
|
367
|
-
ref={onRef.popup}
|
368
|
-
className={classes.value}
|
369
|
-
data-popup-show={String(state.isShow)}
|
370
|
-
onTransitionEnd={handler.onTransitionend}
|
371
|
-
style={styles.value}
|
372
|
-
>
|
373
|
-
{/*slide的情况下,arrow得放body外面,避免被overflow:hidden*/}
|
374
|
-
{!!state.option.arrowSize && !state.option.noArrow && state.option.animation !== ePopupAnimation.scale && (<div className="popup-item-arrow" ref={onRef.arrow}/>)}
|
375
|
-
<div
|
376
|
-
ref={onRef.body}
|
377
|
-
className="popup-item-body"
|
378
|
-
>
|
379
|
-
{/*scale的情况下,arrow得放body里边,一遍能够继承body的transform:scale*/}
|
380
|
-
{!!state.option.arrowSize && !state.option.noArrow && state.option.animation === ePopupAnimation.scale && (<div className="popup-item-arrow" ref={onRef.arrow}/>)}
|
373
|
+
!!state.option.reference && (
|
374
|
+
(() => {
|
375
|
+
const content = (
|
381
376
|
<div
|
382
|
-
|
383
|
-
|
384
|
-
className=
|
377
|
+
data-id={state.option.id}
|
378
|
+
ref={onRef.popup}
|
379
|
+
className={classes.value}
|
380
|
+
data-popup-show={String(state.isShow)}
|
385
381
|
onTransitionEnd={handler.onTransitionend}
|
382
|
+
style={styles.value}
|
383
|
+
onClick={handler.onClickPopup}
|
386
384
|
>
|
387
|
-
{
|
385
|
+
{/*slide的情况下,arrow得放body外面,避免被overflow:hidden*/}
|
386
|
+
{!!state.option.arrowSize && !state.option.noArrow && state.option.animation !== ePopupAnimation.scale && (<div className="popup-item-arrow" ref={onRef.arrow}/>)}
|
387
|
+
<div
|
388
|
+
ref={onRef.body}
|
389
|
+
className="popup-item-body"
|
390
|
+
>
|
391
|
+
{/*scale的情况下,arrow得放body里边,一遍能够继承body的transform:scale*/}
|
392
|
+
{!!state.option.arrowSize && !state.option.noArrow && state.option.animation === ePopupAnimation.scale && (<div className="popup-item-arrow" ref={onRef.arrow}/>)}
|
393
|
+
<div
|
394
|
+
ref={onRef.content}
|
395
|
+
style={contentStyles.value}
|
396
|
+
className="popup-item-content"
|
397
|
+
onTransitionEnd={handler.onTransitionend}
|
398
|
+
>
|
399
|
+
{slots.default.isExist() ? slots.default() : state.option.render()}
|
400
|
+
</div>
|
401
|
+
</div>
|
388
402
|
</div>
|
389
|
-
|
390
|
-
|
391
|
-
|
403
|
+
);
|
404
|
+
return state.option.appendToBody ? (
|
405
|
+
<Portal to={`.${getComponentCls(APPLICATION_SERVICE_CONTAINER_CLASS)}`}>
|
406
|
+
{content}
|
407
|
+
</Portal>
|
408
|
+
) : content;
|
409
|
+
})()
|
410
|
+
)
|
392
411
|
);
|
393
412
|
},
|
394
413
|
});
|
@@ -97,7 +97,7 @@
|
|
97
97
|
|
98
98
|
&.popup-item-is-dark {
|
99
99
|
--#{componentName('popup-item-background')}: rgba(0, 0, 0, 0.88);
|
100
|
-
color:
|
100
|
+
color: plv(pbfc);
|
101
101
|
filter: none;
|
102
102
|
}
|
103
103
|
|
@@ -112,6 +112,10 @@
|
|
112
112
|
&.popup-item-no-border {
|
113
113
|
filter: none !important;
|
114
114
|
}
|
115
|
+
|
116
|
+
&.popup-item-no-interactive {
|
117
|
+
pointer-events: none;
|
118
|
+
}
|
115
119
|
/*---------------------------------------animation-------------------------------------------*/
|
116
120
|
|
117
121
|
&.popup-item-animation-fade {
|
@@ -62,7 +62,8 @@ export function usePopupManager({ getSize }: { getSize: () => typeof ThemeSize.T
|
|
62
62
|
trigger: ePopupTrigger.hover,
|
63
63
|
animation: ePopupAnimation.fade,
|
64
64
|
destroyOnClose: true,
|
65
|
-
|
65
|
+
appendToBody: true,
|
66
|
+
transformRefreshOnScroll: true,
|
66
67
|
offset: 0,
|
67
68
|
offsetAlign: 0,
|
68
69
|
autoSwitchDirection: true,
|
@@ -62,7 +62,8 @@ export interface iPopupDefaultOption {
|
|
62
62
|
trigger: iPopupTrigger, // 触发类型
|
63
63
|
animation: iPopupAnimation, // 动画类型
|
64
64
|
destroyOnClose: boolean, // 关闭的时候销毁popup
|
65
|
-
|
65
|
+
appendToBody: boolean, // 挂载到某个dom节点下
|
66
|
+
transformRefreshOnScroll: boolean, // scroll的时候refresh使用transform来优化
|
66
67
|
offset: number, // 在direction方向上的距离
|
67
68
|
offsetAlign: number, // 在align方向上的偏移距离
|
68
69
|
autoSwitchDirection: boolean, // 当空间不够时,是否自动切换direction
|
@@ -46,6 +46,8 @@ export function createTooltip(option: iTooltipServiceOption, popup: iPopupServic
|
|
46
46
|
if (option.overflow) {
|
47
47
|
if (staticState.reference!.scrollWidth > staticState.reference!.offsetWidth) {
|
48
48
|
state.isOverflow = true;
|
49
|
+
} else {
|
50
|
+
state.isOverflow = false;
|
49
51
|
}
|
50
52
|
}
|
51
53
|
},
|
package/src/packages/entry.tsx
CHANGED
@@ -1,4 +1,5 @@
|
|
1
1
|
import {setComponentPrefix} from "plain-design-composition";
|
2
|
+
import packageJson from '../../package.json';
|
2
3
|
|
3
4
|
export {Application} from "./components/Application";
|
4
5
|
export type {iApplicationConfiguration} from './components/Application/utils/application.utils';
|
@@ -27,13 +28,14 @@ export {RadioGroup} from "./components/RadioGroup";
|
|
27
28
|
export {DropdownOption} from "./components/DropdownOption";
|
28
29
|
export {Dropdown} from "./components/Dropdown";
|
29
30
|
export {DropdownGroup} from "./components/DropdownGroup";
|
31
|
+
export {DropdownSeparator} from "./components/DropdownSeparator";
|
30
32
|
export {VirtualList} from "./components/VirtualList";
|
31
33
|
export {Segment} from "./components/Segment";
|
32
34
|
export {SegmentGroup} from "./components/SegmentGroup";
|
33
35
|
export {InputGroup} from "./components/InputGroup";
|
34
36
|
export {Card} from "./components/Card";
|
37
|
+
export {CarouselItem} from "./components/CarouselItem";
|
35
38
|
export {Carousel} from "./components/Carousel";
|
36
|
-
export {CarouselGroup} from "./components/CarouselGroup";
|
37
39
|
export {CollapseGroup} from "./components/CollapseGroup";
|
38
40
|
export {Collapse} from "./components/Collapse";
|
39
41
|
export {ProgressBar} from "./components/ProgressBar";
|
@@ -54,6 +56,7 @@ export {TabGroup} from './components/TabGroup';
|
|
54
56
|
export {Tab} from './components/Tab';
|
55
57
|
export {Tag} from './components/Tag';
|
56
58
|
export {Tree} from './components/Tree';
|
59
|
+
export {TreeNodeWithMenu} from './components/TreeNodeWithMenu';
|
57
60
|
export {ColorPicker} from './components/ColorPicker';
|
58
61
|
export {TimePicker} from './components/TimePicker';
|
59
62
|
export {DatePicker} from './components/DatePicker';
|
@@ -85,9 +88,32 @@ export {CascadePanel} from './components/CascadePanel';
|
|
85
88
|
export {usePopup} from './components/usePopup';
|
86
89
|
export {Popup} from './components/Popup';
|
87
90
|
export {createPopup} from './components/createPopup';
|
91
|
+
export type {
|
92
|
+
iPopupAlign,
|
93
|
+
iPopupAnimation,
|
94
|
+
iPopupBoundary,
|
95
|
+
iPopupCustomOption,
|
96
|
+
iPopupDefaultOption,
|
97
|
+
iPopupDirection,
|
98
|
+
iPopupManager,
|
99
|
+
iPopupOption,
|
100
|
+
iPopupPlacement,
|
101
|
+
iPopupRects,
|
102
|
+
iPopupRefreshBuildParams,
|
103
|
+
iPopupRefreshParams,
|
104
|
+
iPopupRefs,
|
105
|
+
iPopupTrigger,
|
106
|
+
iPopupUseOption,
|
107
|
+
} from './components/usePopup/utils/popup.utils';
|
88
108
|
export {createScrollUtils} from './components/createScrollUtils';
|
89
109
|
export {useAutoScrollUtils} from './components/useAutoScrollUtils';
|
90
110
|
export {ClientZoom} from './components/ClientZoom';
|
111
|
+
export {Layout} from './components/Layout';
|
112
|
+
export {LayoutSection} from './components/LayoutSection';
|
113
|
+
export {$previewer} from './components/$previewer';
|
114
|
+
export {StackCard} from './components/StackCard';
|
115
|
+
export {StackCardItem} from './components/StackCardItem';
|
116
|
+
export {SortList} from './components/SortList';
|
91
117
|
|
92
118
|
export {VirtualTable} from './components/VirtualTable';
|
93
119
|
export {Table} from './components/Table';
|
@@ -127,12 +153,18 @@ export type {iOvMeta} from './components/$ov/ov.utils';
|
|
127
153
|
export {$configuration} from './components/$configuration';
|
128
154
|
export {createAddressService} from './components/createAddressService';
|
129
155
|
export {createHttp} from './components/createHttp';
|
156
|
+
export type {
|
157
|
+
iHttpRequestConfig,
|
158
|
+
iPlainResponseDataType,
|
159
|
+
iHttpResponseDataType
|
160
|
+
} from './components/createHttp/http.utils';
|
130
161
|
|
131
162
|
export {Address} from './components/Address';
|
132
163
|
export {AddressCascade} from './components/AddressCascade';
|
133
164
|
export {eAddressTypeEnum} from './components/$address/address.utils';
|
134
165
|
export type {iAddressSyncMeta, iAddressLazyMeta} from './components/$address/address.utils';
|
135
166
|
export type {iPlainAddressData} from './components/createPlainAddressService';
|
167
|
+
export {Empty} from './components/Empty';
|
136
168
|
|
137
169
|
export {FormInput} from './components/FormInput';
|
138
170
|
export {FormSelect} from './components/FormSelect';
|
@@ -162,6 +194,20 @@ export type {
|
|
162
194
|
iTableOptionCacheRegistryConfig,
|
163
195
|
iTableOptionGetCacheParam
|
164
196
|
} from './components/AutoTable/use/useTableOption.cache.utils';
|
165
|
-
export {PageThemeUtils
|
197
|
+
export {PageThemeUtils} from './components/PageThemeUtils';
|
198
|
+
export {ThemePrimaryColors} from './components/ThemePrimaryColors';
|
199
|
+
export {ThemeEditor} from './components/ThemeEditor';
|
200
|
+
export {useReferenceTrigger} from './components/useReferenceTrigger';
|
201
|
+
export {usePopupTrigger} from './components/usePopupTrigger';
|
202
|
+
export {useWatchAutoClear} from './components/useWatchAutoClear';
|
203
|
+
export {nextPopupId} from './components/nextPopupId';
|
204
|
+
export {createProvider} from './components/createProvider';
|
205
|
+
export {usePopupManager} from './components/usePopupManager';
|
206
|
+
export {useEdit, EditProps, EDIT_PROVIDER} from './uses/useEdit';
|
207
|
+
export type {tEditComputed, tEditControl, EditProvideData} from './uses/useEdit';
|
208
|
+
export {useStyle, StyleProps, ThemeShape, ThemeSize, ThemeStatus} from './uses/useStyle';
|
209
|
+
export type {tStyleComputed, UseStyleProvideData} from './uses/useStyle';
|
166
210
|
|
167
211
|
setComponentPrefix(globalComponentPrefix);
|
212
|
+
|
213
|
+
export const version = packageJson.version;
|
@@ -244,4 +244,40 @@ export const EnUsLocale: tZhCnLocale = {
|
|
244
244
|
queryTotal: 'query total',
|
245
245
|
columnTitle: 'column title',
|
246
246
|
},
|
247
|
+
theme: {
|
248
|
+
inputMode: 'INPUT MODE',
|
249
|
+
inputModeFlat: 'flat',
|
250
|
+
inputModelStroke: 'stroke',
|
251
|
+
primaryColor: 'PRIMARY COLOR',
|
252
|
+
size: 'SIZE',
|
253
|
+
sizeLarge: 'large',
|
254
|
+
sizeNormal: 'normal',
|
255
|
+
sizeSmall: 'small',
|
256
|
+
sizeMini: 'mini',
|
257
|
+
darkMode: 'DARK MODE',
|
258
|
+
darkModeOn: 'dark',
|
259
|
+
darkModeOff: 'light',
|
260
|
+
radiusMode: 'RADIUS MODE',
|
261
|
+
radiusModeRound: 'round',
|
262
|
+
radiusModeNormal: 'filet',
|
263
|
+
radiusModeNone: 'none',
|
264
|
+
scale: 'SCALE'
|
265
|
+
},
|
266
|
+
colorName: {
|
267
|
+
默认主题: 'Default',
|
268
|
+
薄暮: 'Twilight',
|
269
|
+
火山: 'Volcano',
|
270
|
+
日暮: 'Sunset',
|
271
|
+
金盏花: 'MarigoldFlower',
|
272
|
+
日出: 'sunrise',
|
273
|
+
青柠: 'GreenLime',
|
274
|
+
极光绿: 'AuroraGreen',
|
275
|
+
明青: 'MingQing',
|
276
|
+
拂晓蓝: 'FuXiaolan',
|
277
|
+
极客蓝: 'GeekBlue',
|
278
|
+
酱紫: 'SaucePurple',
|
279
|
+
洋红: 'Magenta',
|
280
|
+
极昼: 'Light',
|
281
|
+
黑夜: 'Dark',
|
282
|
+
}
|
247
283
|
};
|
@@ -242,6 +242,42 @@ export const ZhCnLocale = {
|
|
242
242
|
queryTotal: '查询总数',
|
243
243
|
columnTitle: '列标题',
|
244
244
|
},
|
245
|
+
theme: {
|
246
|
+
inputMode: '输入框类型',
|
247
|
+
inputModeFlat: '填充',
|
248
|
+
inputModelStroke: '描边',
|
249
|
+
primaryColor: '主题色',
|
250
|
+
size: '大小尺寸',
|
251
|
+
sizeLarge: '大尺寸',
|
252
|
+
sizeNormal: '中等尺寸',
|
253
|
+
sizeSmall: '小尺寸',
|
254
|
+
sizeMini: '极小尺寸',
|
255
|
+
darkMode: '黑白主题',
|
256
|
+
darkModeOn: '黑色主题',
|
257
|
+
darkModeOff: '白色主题',
|
258
|
+
radiusMode: '圆角类型',
|
259
|
+
radiusModeRound: '圆角',
|
260
|
+
radiusModeNormal: '小圆角',
|
261
|
+
radiusModeNone: '无圆角',
|
262
|
+
scale: '大小缩放'
|
263
|
+
},
|
264
|
+
colorName: {
|
265
|
+
默认主题: '默认主题',
|
266
|
+
薄暮: '薄暮',
|
267
|
+
火山: '火山',
|
268
|
+
日暮: '日暮',
|
269
|
+
金盏花: '金盏花',
|
270
|
+
日出: '日出',
|
271
|
+
青柠: '青柠',
|
272
|
+
极光绿: '极光绿',
|
273
|
+
明青: '明青',
|
274
|
+
拂晓蓝: '拂晓蓝',
|
275
|
+
极客蓝: '极客蓝',
|
276
|
+
酱紫: '酱紫',
|
277
|
+
洋红: '洋红',
|
278
|
+
极昼: '极昼',
|
279
|
+
黑夜: '黑夜',
|
280
|
+
}
|
245
281
|
} as const;
|
246
282
|
|
247
283
|
type ZhCnLocaleUtils<T> = { [k in keyof T]: T[k] extends string ? string : ZhCnLocaleUtils<T[k]> }
|
@@ -0,0 +1,82 @@
|
|
1
|
+
import {createEffects} from "plain-utils/utils/createEffects";
|
2
|
+
import {ClientZoom} from "../utils/ClientZoom";
|
3
|
+
import {watch} from "plain-design-composition";
|
4
|
+
|
5
|
+
export function useDragHorizontalScroll(getEl: () => HTMLElement | null | undefined, config?: { onDragStart: () => void, onDragEnd: () => void }) {
|
6
|
+
|
7
|
+
const staticState = {
|
8
|
+
isDragging: false,
|
9
|
+
el: null as null | undefined | HTMLElement,
|
10
|
+
start: {
|
11
|
+
x: 0,
|
12
|
+
left: 0,
|
13
|
+
width: 0,
|
14
|
+
},
|
15
|
+
move: {
|
16
|
+
x: 0
|
17
|
+
}
|
18
|
+
};
|
19
|
+
|
20
|
+
const { effects } = createEffects();
|
21
|
+
|
22
|
+
const handler = {
|
23
|
+
mousedown: (e: MouseEvent) => {
|
24
|
+
const { clientX } = ClientZoom.getClientPosition(e);
|
25
|
+
staticState.isDragging = false;
|
26
|
+
staticState.start = {
|
27
|
+
x: clientX,
|
28
|
+
left: staticState.el!.scrollLeft,
|
29
|
+
width: staticState.el!.scrollWidth,
|
30
|
+
};
|
31
|
+
document.documentElement.addEventListener('mousemove', handler.mousemove, true);
|
32
|
+
document.documentElement.addEventListener('mouseup', handler.mouseup, true);
|
33
|
+
},
|
34
|
+
mousemove: (e: MouseEvent) => {
|
35
|
+
const { clientX } = ClientZoom.getClientPosition(e);
|
36
|
+
staticState.move.x = clientX;
|
37
|
+
const durX = staticState.move.x - staticState.start.x;
|
38
|
+
if (!staticState.isDragging) {
|
39
|
+
if (Math.abs(durX) > 5) {
|
40
|
+
staticState.isDragging = true;
|
41
|
+
config?.onDragStart();
|
42
|
+
}
|
43
|
+
}
|
44
|
+
if (!staticState.isDragging) {
|
45
|
+
return;
|
46
|
+
}
|
47
|
+
staticState.el!.scrollLeft = staticState.start.left - durX;
|
48
|
+
},
|
49
|
+
mouseup: () => {
|
50
|
+
config?.onDragEnd();
|
51
|
+
document.documentElement.removeEventListener('mousemove', handler.mousemove, true);
|
52
|
+
document.documentElement.removeEventListener('mouseup', handler.mouseup, true);
|
53
|
+
},
|
54
|
+
onWheel: (e: WheelEvent) => {
|
55
|
+
e.stopPropagation();
|
56
|
+
e.preventDefault();
|
57
|
+
const el = e.currentTarget as HTMLElement;
|
58
|
+
const delta = e.deltaX + e.deltaY;
|
59
|
+
el.scrollLeft += delta;
|
60
|
+
},
|
61
|
+
};
|
62
|
+
|
63
|
+
effects.push(watch(() => getEl(), el => {
|
64
|
+
if (!!staticState.el) {
|
65
|
+
staticState.el.removeEventListener('mousedown', handler.mousedown);
|
66
|
+
staticState.el.removeEventListener('wheel', handler.onWheel);
|
67
|
+
}
|
68
|
+
staticState.el = el;
|
69
|
+
if (!staticState.el) {return;}
|
70
|
+
staticState.el.addEventListener('mousedown', handler.mousedown);
|
71
|
+
staticState.el.addEventListener('wheel', handler.onWheel);
|
72
|
+
}));
|
73
|
+
|
74
|
+
effects.push(() => {
|
75
|
+
if (!!staticState.el) {
|
76
|
+
staticState.el.removeEventListener('mousedown', handler.mousedown);
|
77
|
+
staticState.el.removeEventListener('wheel', handler.onWheel);
|
78
|
+
}
|
79
|
+
});
|
80
|
+
|
81
|
+
return effects.clear;
|
82
|
+
}
|
@@ -14,7 +14,7 @@ export const EditProps = {
|
|
14
14
|
multiple: { type: Boolean }, // 是否多选
|
15
15
|
} as const;
|
16
16
|
|
17
|
-
interface EditProvideData {
|
17
|
+
export interface EditProvideData {
|
18
18
|
disabled: boolean | null,
|
19
19
|
readonly: boolean | null,
|
20
20
|
loading: boolean | null,
|
@@ -74,6 +74,10 @@ export const useEdit = useFunctionWrapper(
|
|
74
74
|
}
|
75
75
|
}
|
76
76
|
|
77
|
+
onBeforeUnmount(() => {
|
78
|
+
editComputed.effect.stop();
|
79
|
+
});
|
80
|
+
|
77
81
|
return {
|
78
82
|
editState,
|
79
83
|
editComputed,
|
@@ -1,4 +1,4 @@
|
|
1
|
-
import {computed, inject, PropType, provide} from "plain-design-composition";
|
1
|
+
import {computed, inject, onBeforeUnmount, PropType, provide} from "plain-design-composition";
|
2
2
|
import {useFunctionWrapper} from "./useFunctionWrapper";
|
3
3
|
import {createEnum} from "plain-utils/utils/createEnum";
|
4
4
|
import {ApplicationConfigurationProvider} from "../components/Application/utils/application.utils";
|
@@ -19,7 +19,7 @@ export const StyleProps = {
|
|
19
19
|
status: { type: String as PropType<typeof ThemeStatus.TYPE> }, // 'secondary', 'primary', 'success', 'warn', 'error'
|
20
20
|
} as const;
|
21
21
|
|
22
|
-
interface UseStyleProvideData {
|
22
|
+
export interface UseStyleProvideData {
|
23
23
|
shape: typeof ThemeShape.TYPE,
|
24
24
|
size: typeof ThemeSize.TYPE,
|
25
25
|
status?: typeof ThemeStatus.TYPE,
|
@@ -62,6 +62,14 @@ export const useStyle = useFunctionWrapper('style', (ctx, option: UseStyleOption
|
|
62
62
|
|
63
63
|
provide(USE_STYLE_PROVIDER, styleComputed);
|
64
64
|
|
65
|
+
onBeforeUnmount(() => {
|
66
|
+
setTimeout(() => {
|
67
|
+
(styleComputed.value as any).ctx = null;
|
68
|
+
(styleComputed.value as any).parent = null;
|
69
|
+
styleComputed.effect.stop();
|
70
|
+
});
|
71
|
+
});
|
72
|
+
|
65
73
|
return { styleComputed };
|
66
74
|
});
|
67
75
|
|
@@ -1,8 +1,10 @@
|
|
1
|
+
import {iMouseEvent} from 'plain-design-composition';
|
2
|
+
|
1
3
|
export const ClientZoom = (() => {
|
2
4
|
let zoom: '' | number = '';
|
3
5
|
return {
|
4
|
-
get: () => {
|
5
|
-
return zoom;
|
6
|
+
get: (): number => {
|
7
|
+
return zoom === '' ? 1 : zoom;
|
6
8
|
},
|
7
9
|
set: (_zoom: number | null) => {
|
8
10
|
const __zoom = _zoom == null ? '' : _zoom;
|
@@ -24,5 +26,25 @@ export const ClientZoom = (() => {
|
|
24
26
|
};
|
25
27
|
}
|
26
28
|
},
|
29
|
+
getClientPosition: (e: iMouseEvent | MouseEvent): { clientX: number, clientY: number, offsetX: number, offsetY: number, } => {
|
30
|
+
const { clientX, clientY, offsetX, offsetY } = 'nativeEvent' in e ? e.nativeEvent : e;
|
31
|
+
return {
|
32
|
+
clientX: ClientZoom.formatClientValue(clientX),
|
33
|
+
clientY: ClientZoom.formatClientValue(clientY),
|
34
|
+
offsetX: ClientZoom.formatClientValue(offsetX),
|
35
|
+
offsetY: ClientZoom.formatClientValue(offsetY),
|
36
|
+
};
|
37
|
+
},
|
38
|
+
formatClientValue: (val: number) => {
|
39
|
+
return ClientZoom.zoomPosition(val);
|
40
|
+
},
|
41
|
+
zoomPosition(val: number) {
|
42
|
+
const zoom = ClientZoom.get();
|
43
|
+
return Number((val / zoom).toFixed(2));
|
44
|
+
},
|
45
|
+
zoomSize(val: number) {
|
46
|
+
const zoom = ClientZoom.get();
|
47
|
+
return Number((val * zoom).toFixed(2));
|
48
|
+
},
|
27
49
|
};
|
28
50
|
})();
|
@@ -0,0 +1,31 @@
|
|
1
|
+
export function buildCycleIndexList({ length, current }: { length: number, current: number }) {
|
2
|
+
|
3
|
+
const sourceList = new Array(length).fill(null).map((_, index) => index);
|
4
|
+
const cycleIndexList = (() => {
|
5
|
+
|
6
|
+
if (sourceList.length <= 2) {
|
7
|
+
return sourceList;
|
8
|
+
}
|
9
|
+
|
10
|
+
const leftList = sourceList.slice(0, current);
|
11
|
+
const rightList = sourceList.slice(current + 1);
|
12
|
+
|
13
|
+
while (Math.abs(leftList.length - rightList.length) >= 2) {
|
14
|
+
if (leftList.length > rightList.length) {
|
15
|
+
rightList.push(leftList.shift()!);
|
16
|
+
} else {
|
17
|
+
leftList.unshift(rightList.pop()!);
|
18
|
+
}
|
19
|
+
}
|
20
|
+
return [...leftList, current, ...rightList];
|
21
|
+
})();
|
22
|
+
|
23
|
+
const currentIndexInCycle = cycleIndexList.indexOf(current);
|
24
|
+
|
25
|
+
const index2distance = cycleIndexList.reduce((prev, item, cycleIndex) => {
|
26
|
+
prev[item] = cycleIndex - currentIndexInCycle;
|
27
|
+
return prev;
|
28
|
+
}, {} as Record<number, number>);
|
29
|
+
|
30
|
+
return { cycleIndexList, currentIndexInCycle, index2distance };
|
31
|
+
}
|